From 32f40ed55bd94ff80cb2049dfa254d6f4f52c01b Mon Sep 17 00:00:00 2001 From: Venelin Date: Tue, 12 Nov 2024 16:05:52 +0000 Subject: [PATCH] make build_sdks --- sdk/dotnet/ActiveDirectory/Domain.cs | 12 + sdk/dotnet/Apigee/Api.cs | 230 + sdk/dotnet/Apigee/Inputs/ApiMetaDataArgs.cs | 38 + .../Apigee/Inputs/ApiMetaDataGetArgs.cs | 38 + sdk/dotnet/Apigee/Outputs/ApiMetaData.cs | 42 + .../ApplicationIntegration/AuthConfig.cs | 12 + .../BackupDisasterRecovery/BackupPlan.cs | 328 + .../BackupPlanAssociation.cs | 408 + .../BackupDisasterRecovery/BackupVault.cs | 54 +- .../BackupDisasterRecovery/GetBackupPlan.cs | 116 + .../GetBackupPlanAssociation.cs | 176 + ...ackupPlanAssociationRulesConfigInfoArgs.cs | 48 + ...upPlanAssociationRulesConfigInfoGetArgs.cs | 48 + ...ationRulesConfigInfoLastBackupErrorArgs.cs | 34 + ...onRulesConfigInfoLastBackupErrorGetArgs.cs | 34 + .../Inputs/BackupPlanBackupRuleArgs.cs | 39 + .../Inputs/BackupPlanBackupRuleGetArgs.cs | 39 + ...ackupPlanBackupRuleStandardScheduleArgs.cs | 93 + ...kupRuleStandardScheduleBackupWindowArgs.cs | 35 + ...RuleStandardScheduleBackupWindowGetArgs.cs | 35 + ...upPlanBackupRuleStandardScheduleGetArgs.cs | 93 + ...pRuleStandardScheduleWeekDayOfMonthArgs.cs | 34 + ...leStandardScheduleWeekDayOfMonthGetArgs.cs | 34 + .../BackupPlanAssociationRulesConfigInfo.cs | 46 + ...sociationRulesConfigInfoLastBackupError.cs | 37 + .../Outputs/BackupPlanBackupRule.cs | 43 + .../BackupPlanBackupRuleStandardSchedule.cs | 84 + ...nBackupRuleStandardScheduleBackupWindow.cs | 38 + ...ackupRuleStandardScheduleWeekDayOfMonth.cs | 37 + ...ionRulesConfigInfoLastBackupErrorResult.cs | 35 + ...kupPlanAssociationRulesConfigInfoResult.cs | 42 + .../Outputs/GetBackupPlanBackupRuleResult.cs | 42 + ...pRuleStandardScheduleBackupWindowResult.cs | 36 + ...kupPlanBackupRuleStandardScheduleResult.cs | 79 + ...uleStandardScheduleWeekDayOfMonthResult.cs | 35 + sdk/dotnet/BigQuery/DataTransferConfig.cs | 12 + .../JobTemplateTemplateVolumeGcsArgs.cs | 13 + .../JobTemplateTemplateVolumeGcsGetArgs.cs | 13 + .../Inputs/ServiceTemplateVolumeGcsArgs.cs | 13 + .../Inputs/ServiceTemplateVolumeGcsGetArgs.cs | 13 + sdk/dotnet/CloudRunV2/Job.cs | 1 - .../GetJobTemplateTemplateVolumeGcResult.cs | 8 + .../GetServiceTemplateVolumeGcResult.cs | 8 + .../Outputs/JobTemplateTemplateVolumeGcs.cs | 8 + .../Outputs/ServiceTemplateVolumeGcs.cs | 8 + sdk/dotnet/CloudRunV2/Service.cs | 1 - sdk/dotnet/Compute/Disk.cs | 6 +- sdk/dotnet/Compute/FirewallPolicyRule.cs | 71 +- .../Compute/GetRegionInstanceGroupManager.cs | 4 + sdk/dotnet/Compute/HealthCheck.cs | 36 +- ...erAutoscalingPolicyScaleDownControlArgs.cs | 2 +- ...utoscalingPolicyScaleDownControlGetArgs.cs | 2 +- ...alerAutoscalingPolicyScaleInControlArgs.cs | 2 +- ...rAutoscalingPolicyScaleInControlGetArgs.cs | 2 +- .../Inputs/FirewallPolicyRuleMatchArgs.cs | 24 +- .../Inputs/FirewallPolicyRuleMatchGetArgs.cs | 24 +- ...FirewallPolicyRuleMatchLayer4ConfigArgs.cs | 6 +- ...ewallPolicyRuleMatchLayer4ConfigGetArgs.cs | 6 +- .../Compute/Inputs/NodeTemplateDiskArgs.cs | 38 + .../Compute/Inputs/NodeTemplateDiskGetArgs.cs | 38 + ...erAutoscalingPolicyScaleDownControlArgs.cs | 2 +- ...utoscalingPolicyScaleDownControlGetArgs.cs | 2 +- ...alerAutoscalingPolicyScaleInControlArgs.cs | 2 +- ...rAutoscalingPolicyScaleInControlGetArgs.cs | 2 +- ...tanceGroupManagerAllInstancesConfigArgs.cs | 6 +- ...ceGroupManagerAllInstancesConfigGetArgs.cs | 6 +- ...oupManagerInstanceFlexibilityPolicyArgs.cs | 32 + ...ManagerInstanceFlexibilityPolicyGetArgs.cs | 32 + ...eFlexibilityPolicyInstanceSelectionArgs.cs | 47 + ...exibilityPolicyInstanceSelectionGetArgs.cs | 47 + ...GroupManagerInstanceLifecyclePolicyArgs.cs | 1 + ...upManagerInstanceLifecyclePolicyGetArgs.cs | 1 + ...onResizeRequestRequestedRunDurationArgs.cs | 32 + ...esizeRequestRequestedRunDurationGetArgs.cs | 32 + .../Inputs/RegionResizeRequestStatusArgs.cs | 48 + .../RegionResizeRequestStatusErrorArgs.cs | 34 + ...RegionResizeRequestStatusErrorErrorArgs.cs | 55 + ...eRequestStatusErrorErrorErrorDetailArgs.cs | 76 + ...tatusErrorErrorErrorDetailErrorInfoArgs.cs | 47 + ...usErrorErrorErrorDetailErrorInfoGetArgs.cs | 47 + ...questStatusErrorErrorErrorDetailGetArgs.cs | 76 + ...uestStatusErrorErrorErrorDetailHelpArgs.cs | 34 + ...tStatusErrorErrorErrorDetailHelpGetArgs.cs | 34 + ...StatusErrorErrorErrorDetailHelpLinkArgs.cs | 33 + ...tusErrorErrorErrorDetailHelpLinkGetArgs.cs | 33 + ...rorErrorErrorDetailLocalizedMessageArgs.cs | 34 + ...ErrorErrorDetailLocalizedMessageGetArgs.cs | 34 + ...tatusErrorErrorErrorDetailQuotaInfoArgs.cs | 68 + ...usErrorErrorErrorDetailQuotaInfoGetArgs.cs | 68 + ...ionResizeRequestStatusErrorErrorGetArgs.cs | 55 + .../RegionResizeRequestStatusErrorGetArgs.cs | 34 + .../RegionResizeRequestStatusGetArgs.cs | 48 + ...egionResizeRequestStatusLastAttemptArgs.cs | 34 + ...ResizeRequestStatusLastAttemptErrorArgs.cs | 34 + ...eRequestStatusLastAttemptErrorErrorArgs.cs | 55 + ...tusLastAttemptErrorErrorErrorDetailArgs.cs | 76 + ...temptErrorErrorErrorDetailErrorInfoArgs.cs | 47 + ...ptErrorErrorErrorDetailErrorInfoGetArgs.cs | 47 + ...LastAttemptErrorErrorErrorDetailGetArgs.cs | 76 + ...astAttemptErrorErrorErrorDetailHelpArgs.cs | 34 + ...AttemptErrorErrorErrorDetailHelpGetArgs.cs | 34 + ...ttemptErrorErrorErrorDetailHelpLinkArgs.cs | 33 + ...mptErrorErrorErrorDetailHelpLinkGetArgs.cs | 33 + ...rorErrorErrorDetailLocalizedMessageArgs.cs | 34 + ...ErrorErrorDetailLocalizedMessageGetArgs.cs | 34 + ...temptErrorErrorErrorDetailQuotaInfoArgs.cs | 68 + ...ptErrorErrorErrorDetailQuotaInfoGetArgs.cs | 68 + ...questStatusLastAttemptErrorErrorGetArgs.cs | 55 + ...izeRequestStatusLastAttemptErrorGetArgs.cs | 34 + ...onResizeRequestStatusLastAttemptGetArgs.cs | 34 + .../Inputs/RegionSecurityPolicyRuleArgs.cs | 88 + .../Inputs/RegionSecurityPolicyRuleGetArgs.cs | 88 + ...egionSecurityPolicyUserDefinedFieldArgs.cs | 2 +- ...onSecurityPolicyUserDefinedFieldGetArgs.cs | 2 +- .../RouterPeerCustomLearnedIpRangeArgs.cs | 2 +- .../RouterPeerCustomLearnedIpRangeGetArgs.cs | 2 +- .../Compute/NetworkFirewallPolicyRule.cs | 4 +- .../Compute/NetworkFirewallPolicyWithRules.cs | 10 +- sdk/dotnet/Compute/NodeTemplate.cs | 69 + ...scalerAutoscalingPolicyScaleDownControl.cs | 2 +- ...toscalerAutoscalingPolicyScaleInControl.cs | 2 +- .../Outputs/FirewallPolicyRuleMatch.cs | 24 +- .../FirewallPolicyRuleMatchLayer4Config.cs | 6 +- ...lexibilityPolicyInstanceSelectionResult.cs | 42 + ...pManagerInstanceFlexibilityPolicyResult.cs | 27 + .../Compute/Outputs/NodeTemplateDisk.cs | 42 + ...scalerAutoscalingPolicyScaleDownControl.cs | 2 +- ...toscalerAutoscalingPolicyScaleInControl.cs | 2 +- ...nInstanceGroupManagerAllInstancesConfig.cs | 6 +- ...ceGroupManagerInstanceFlexibilityPolicy.cs | 27 + ...tanceFlexibilityPolicyInstanceSelection.cs | 45 + ...anceGroupManagerInstanceLifecyclePolicy.cs | 1 + ...RegionResizeRequestRequestedRunDuration.cs | 35 + .../Outputs/RegionResizeRequestStatus.cs | 39 + .../Outputs/RegionResizeRequestStatusError.cs | 29 + .../RegionResizeRequestStatusErrorError.cs | 54 + ...esizeRequestStatusErrorErrorErrorDetail.cs | 57 + ...estStatusErrorErrorErrorDetailErrorInfo.cs | 45 + ...eRequestStatusErrorErrorErrorDetailHelp.cs | 29 + ...uestStatusErrorErrorErrorDetailHelpLink.cs | 36 + ...usErrorErrorErrorDetailLocalizedMessage.cs | 37 + ...estStatusErrorErrorErrorDetailQuotaInfo.cs | 69 + .../RegionResizeRequestStatusLastAttempt.cs | 29 + ...gionResizeRequestStatusLastAttemptError.cs | 29 + ...esizeRequestStatusLastAttemptErrorError.cs | 54 + ...tStatusLastAttemptErrorErrorErrorDetail.cs | 57 + ...stAttemptErrorErrorErrorDetailErrorInfo.cs | 45 + ...tusLastAttemptErrorErrorErrorDetailHelp.cs | 29 + ...astAttemptErrorErrorErrorDetailHelpLink.cs | 36 + ...ptErrorErrorErrorDetailLocalizedMessage.cs | 37 + ...stAttemptErrorErrorErrorDetailQuotaInfo.cs | 69 + .../Outputs/RegionSecurityPolicyRule.cs | 97 + .../RegionSecurityPolicyUserDefinedField.cs | 2 +- .../Outputs/RouterPeerCustomLearnedIpRange.cs | 2 +- sdk/dotnet/Compute/RegionDisk.cs | 6 +- sdk/dotnet/Compute/RegionHealthCheck.cs | 36 +- .../Compute/RegionInstanceGroupManager.cs | 27 +- .../RegionNetworkFirewallPolicyRule.cs | 4 +- .../RegionNetworkFirewallPolicyWithRules.cs | 10 +- sdk/dotnet/Compute/RegionResizeRequest.cs | 405 + sdk/dotnet/Compute/RegionSecurityPolicy.cs | 84 + sdk/dotnet/Compute/RouterPeer.cs | 39 +- sdk/dotnet/Compute/SecurityScanConfig.cs | 8 +- sdk/dotnet/Config/Config.cs | 14 + sdk/dotnet/Container/Cluster.cs | 39 + sdk/dotnet/Container/GetCluster.cs | 8 + .../Inputs/ClusterAddonsConfigArgs.cs | 15 +- .../Inputs/ClusterAddonsConfigGetArgs.cs | 15 +- ...sConfigParallelstoreCsiDriverConfigArgs.cs | 23 + ...nfigParallelstoreCsiDriverConfigGetArgs.cs | 23 + .../ClusterControlPlaneEndpointsConfigArgs.cs | 26 + ...aneEndpointsConfigDnsEndpointConfigArgs.cs | 32 + ...EndpointsConfigDnsEndpointConfigGetArgs.cs | 32 + ...usterControlPlaneEndpointsConfigGetArgs.cs | 26 + ...usterMasterAuthorizedNetworksConfigArgs.cs | 6 + ...erMasterAuthorizedNetworksConfigGetArgs.cs | 6 + .../ClusterUserManagedKeysConfigArgs.cs | 80 + .../ClusterUserManagedKeysConfigGetArgs.cs | 80 + .../Container/Outputs/ClusterAddonsConfig.cs | 16 +- ...ddonsConfigParallelstoreCsiDriverConfig.cs | 24 + .../ClusterControlPlaneEndpointsConfig.cs | 27 + ...olPlaneEndpointsConfigDnsEndpointConfig.cs | 35 + .../ClusterMasterAuthorizedNetworksConfig.cs | 9 +- .../Outputs/ClusterUserManagedKeysConfig.cs | 77 + ...onfigParallelstoreCsiDriverConfigResult.cs | 24 + .../Outputs/GetClusterAddonsConfigResult.cs | 7 + ...eEndpointsConfigDnsEndpointConfigResult.cs | 35 + ...lusterControlPlaneEndpointsConfigResult.cs | 27 + ...terMasterAuthorizedNetworksConfigResult.cs | 9 +- .../GetClusterUserManagedKeysConfigResult.cs | 77 + .../DataLoss/PreventionDiscoveryConfig.cs | 6 +- .../Dataproc/GdcApplicationEnvironment.cs | 492 + sdk/dotnet/Dataproc/GdcServiceInstance.cs | 511 + ...ntSparkApplicationEnvironmentConfigArgs.cs | 38 + ...parkApplicationEnvironmentConfigGetArgs.cs | 38 + .../GdcServiceInstanceGdceClusterArgs.cs | 26 + .../GdcServiceInstanceGdceClusterGetArgs.cs | 26 + ...eInstanceSparkServiceInstanceConfigArgs.cs | 20 + ...stanceSparkServiceInstanceConfigGetArgs.cs | 20 + ...onmentSparkApplicationEnvironmentConfig.cs | 35 + .../Outputs/GdcServiceInstanceGdceCluster.cs | 27 + ...rviceInstanceSparkServiceInstanceConfig.cs | 21 + sdk/dotnet/EdgeContainer/VpnConnection.cs | 4 +- sdk/dotnet/Firebase/AndroidApp.cs | 2 +- sdk/dotnet/Firebase/AppleApp.cs | 2 +- sdk/dotnet/Firebase/WebApp.cs | 2 +- sdk/dotnet/Firestore/Index.cs | 37 + .../BareMetalAdminClusterLoadBalancerArgs.cs | 2 +- ...areMetalAdminClusterLoadBalancerGetArgs.cs | 2 +- .../BareMetalAdminClusterNetworkConfigArgs.cs | 2 +- ...reMetalAdminClusterNetworkConfigGetArgs.cs | 2 +- .../BareMetalClusterLoadBalancerArgs.cs | 4 +- .../BareMetalClusterLoadBalancerGetArgs.cs | 4 +- .../BareMetalClusterNetworkConfigArgs.cs | 2 +- .../BareMetalClusterNetworkConfigGetArgs.cs | 2 +- .../BareMetalAdminClusterLoadBalancer.cs | 2 +- .../BareMetalAdminClusterNetworkConfig.cs | 2 +- .../Outputs/BareMetalClusterLoadBalancer.cs | 4 +- .../Outputs/BareMetalClusterNetworkConfig.cs | 2 +- sdk/dotnet/Healthcare/Dataset.cs | 6 +- sdk/dotnet/Healthcare/DicomStore.cs | 6 +- sdk/dotnet/Healthcare/FhirStore.cs | 6 +- sdk/dotnet/Healthcare/Hl7Store.cs | 12 +- ...rincipalAccessBoundaryPolicyDetailsArgs.cs | 42 + ...cipalAccessBoundaryPolicyDetailsGetArgs.cs | 42 + ...ipalAccessBoundaryPolicyDetailsRuleArgs.cs | 52 + ...lAccessBoundaryPolicyDetailsRuleGetArgs.cs | 52 + .../PrincipalAccessBoundaryPolicyDetails.cs | 39 + ...rincipalAccessBoundaryPolicyDetailsRule.cs | 50 + .../Iam/PrincipalAccessBoundaryPolicy.cs | 336 + sdk/dotnet/Logging/Metric.cs | 2 +- .../Looker/Inputs/InstanceOauthConfigArgs.cs | 2 + .../Inputs/InstanceOauthConfigGetArgs.cs | 2 + sdk/dotnet/Looker/Instance.cs | 203 +- .../Looker/Outputs/InstanceOauthConfig.cs | 2 + sdk/dotnet/MemoryStore/Instance.cs | 2 + sdk/dotnet/Monitoring/AlertPolicy.cs | 12 + sdk/dotnet/Monitoring/CustomService.cs | 12 + sdk/dotnet/Monitoring/Group.cs | 12 + sdk/dotnet/Monitoring/MetricDescriptor.cs | 12 + sdk/dotnet/Monitoring/Slo.cs | 12 + sdk/dotnet/Monitoring/UptimeCheckConfig.cs | 12 + .../NetworkManagement/VpcFlowLogsConfig.cs | 797 + sdk/dotnet/OsConfig/PatchDeployment.cs | 8 +- sdk/dotnet/Provider.cs | 12 + .../Redis/Inputs/ClusterStateInfoArgs.cs | 2 +- .../Redis/Inputs/ClusterStateInfoGetArgs.cs | 2 +- sdk/dotnet/Redis/Outputs/ClusterStateInfo.cs | 2 +- .../SecurityCenter/NotificationConfig.cs | 10 +- .../ProjectNotificationConfig.cs | 12 - .../V2OrganizationNotificationConfig.cs | 10 +- sdk/dotnet/Spanner/GetDatabase.cs | 180 + sdk/dotnet/Spanner/GetInstance.cs | 4 + ...ngConfigAsymmetricAutoscalingOptionArgs.cs | 4 +- ...onfigAsymmetricAutoscalingOptionGetArgs.cs | 4 +- ...symmetricAutoscalingOptionOverridesArgs.cs | 2 +- ...metricAutoscalingOptionOverridesGetArgs.cs | 2 +- sdk/dotnet/Spanner/Instance.cs | 28 + .../GetDatabaseEncryptionConfigResult.cs | 37 + ...ymmetricAutoscalingOptionOverrideResult.cs | 2 +- ...ConfigAsymmetricAutoscalingOptionResult.cs | 4 +- ...calingConfigAsymmetricAutoscalingOption.cs | 4 +- ...figAsymmetricAutoscalingOptionOverrides.cs | 2 +- sdk/dotnet/Sql/DatabaseInstance.cs | 73 +- sdk/dotnet/Sql/GetDatabaseInstance.cs | 4 + ...atabaseInstanceReplicaConfigurationArgs.cs | 8 + ...baseInstanceReplicaConfigurationGetArgs.cs | 8 + .../DatabaseInstanceReplicaConfiguration.cs | 9 + ...abaseInstanceReplicaConfigurationResult.cs | 7 + ...ancesInstanceReplicaConfigurationResult.cs | 7 + .../GetDatabaseInstancesInstanceResult.cs | 7 + ...rtConfigObjectMetadataReportOptionsArgs.cs | 2 +- ...onfigObjectMetadataReportOptionsGetArgs.cs | 2 +- ...ReportConfigObjectMetadataReportOptions.cs | 2 +- sdk/dotnet/Tags/TagBinding.cs | 4 +- sdk/dotnet/Tags/TagValue.cs | 2 +- sdk/dotnet/Transcoder/Job.cs | 12 + sdk/dotnet/Vertex/AiEndpoint.cs | 206 +- .../Vertex/AiFeatureOnlineStoreFeatureview.cs | 4 +- ...PredictRequestResponseLoggingConfigArgs.cs | 39 + ...nseLoggingConfigBigqueryDestinationArgs.cs | 26 + ...LoggingConfigBigqueryDestinationGetArgs.cs | 26 + ...dictRequestResponseLoggingConfigGetArgs.cs | 39 + ...EndpointPrivateServiceConnectConfigArgs.cs | 44 + ...pointPrivateServiceConnectConfigGetArgs.cs | 44 + ...ointPredictRequestResponseLoggingConfig.cs | 43 + ...esponseLoggingConfigBigqueryDestination.cs | 27 + .../AiEndpointPrivateServiceConnectConfig.cs | 42 + sdk/dotnet/Workbench/Instance.cs | 12 +- sdk/dotnet/Workflows/Workflow.cs | 10 + sdk/dotnet/Workstations/WorkstationConfig.cs | 10 +- sdk/go/gcp/activedirectory/domain.go | 12 + sdk/go/gcp/apigee/api.go | 343 + sdk/go/gcp/apigee/init.go | 7 + sdk/go/gcp/apigee/pulumiTypes.go | 119 + .../gcp/applicationintegration/authConfig.go | 12 + .../gcp/backupdisasterrecovery/backupPlan.go | 441 + .../backupPlanAssociation.go | 527 + .../gcp/backupdisasterrecovery/backupVault.go | 79 +- .../backupdisasterrecovery/getBackupPlan.go | 144 + .../getBackupPlanAssociation.go | 185 + sdk/go/gcp/backupdisasterrecovery/init.go | 14 + .../gcp/backupdisasterrecovery/pulumiTypes.go | 1832 +- sdk/go/gcp/bigquery/dataTransferConfig.go | 12 + sdk/go/gcp/cloudrunv2/job.go | 1 - sdk/go/gcp/cloudrunv2/pulumiTypes.go | 70 + sdk/go/gcp/cloudrunv2/service.go | 1 - sdk/go/gcp/compute/disk.go | 12 +- sdk/go/gcp/compute/firewallPolicyRule.go | 118 +- .../compute/getRegionInstanceGroupManager.go | 53 +- sdk/go/gcp/compute/healthCheck.go | 72 +- sdk/go/gcp/compute/init.go | 7 + .../gcp/compute/networkFirewallPolicyRule.go | 10 +- .../compute/networkFirewallPolicyWithRules.go | 18 +- sdk/go/gcp/compute/nodeTemplate.go | 67 + sdk/go/gcp/compute/pulumiTypes.go | 35711 ++++++++-------- sdk/go/gcp/compute/pulumiTypes1.go | 4004 ++ sdk/go/gcp/compute/regionDisk.go | 12 +- sdk/go/gcp/compute/regionHealthCheck.go | 72 +- .../gcp/compute/regionInstanceGroupManager.go | 35 +- .../regionNetworkFirewallPolicyRule.go | 10 +- .../regionNetworkFirewallPolicyWithRules.go | 18 +- sdk/go/gcp/compute/regionResizeRequest.go | 516 + sdk/go/gcp/compute/regionSecurityPolicy.go | 72 + sdk/go/gcp/compute/routerPeer.go | 78 +- sdk/go/gcp/compute/securityScanConfig.go | 8 +- sdk/go/gcp/config/config.go | 6 + sdk/go/gcp/container/cluster.go | 36 + sdk/go/gcp/container/getCluster.go | 74 +- sdk/go/gcp/container/pulumiTypes.go | 1281 +- .../gcp/dataloss/preventionDiscoveryConfig.go | 12 +- .../gcp/dataproc/gdcApplicationEnvironment.go | 578 + sdk/go/gcp/dataproc/gdcServiceInstance.go | 635 + sdk/go/gcp/dataproc/init.go | 14 + sdk/go/gcp/dataproc/pulumiTypes.go | 425 + sdk/go/gcp/edgecontainer/vpnConnection.go | 8 +- sdk/go/gcp/firebase/androidApp.go | 2 +- sdk/go/gcp/firebase/appleApp.go | 2 +- sdk/go/gcp/firebase/webApp.go | 2 +- sdk/go/gcp/firestore/index.go | 44 + sdk/go/gcp/gkeonprem/pulumiTypes.go | 40 +- sdk/go/gcp/healthcare/dataset.go | 12 +- sdk/go/gcp/healthcare/dicomStore.go | 12 +- sdk/go/gcp/healthcare/fhirStore.go | 12 +- sdk/go/gcp/healthcare/hl7Store.go | 24 +- sdk/go/gcp/iam/init.go | 7 + .../gcp/iam/principalAccessBoundaryPolicy.go | 461 + sdk/go/gcp/iam/pulumiTypes.go | 321 + sdk/go/gcp/logging/metric.go | 2 +- sdk/go/gcp/looker/instance.go | 402 +- sdk/go/gcp/looker/pulumiTypes.go | 8 + sdk/go/gcp/memorystore/instance.go | 2 + sdk/go/gcp/monitoring/alertPolicy.go | 12 + sdk/go/gcp/monitoring/customService.go | 12 + sdk/go/gcp/monitoring/group.go | 12 + sdk/go/gcp/monitoring/metricDescriptor.go | 12 + sdk/go/gcp/monitoring/slo.go | 12 + sdk/go/gcp/monitoring/uptimeCheckConfig.go | 12 + sdk/go/gcp/networkmanagement/init.go | 7 + .../networkmanagement/vpcFlowLogsConfig.go | 945 + sdk/go/gcp/osconfig/patchDeployment.go | 8 +- sdk/go/gcp/provider.go | 14 + sdk/go/gcp/redis/pulumiTypes.go | 6 +- .../gcp/securitycenter/notificationConfig.go | 10 +- .../projectNotificationConfig.go | 12 - .../v2organizationNotificationConfig.go | 10 +- sdk/go/gcp/spanner/getDatabase.go | 179 + sdk/go/gcp/spanner/getInstance.go | 17 +- sdk/go/gcp/spanner/instance.go | 42 +- sdk/go/gcp/spanner/pulumiTypes.go | 152 +- sdk/go/gcp/sql/databaseInstance.go | 68 +- sdk/go/gcp/sql/getDatabaseInstance.go | 5 + sdk/go/gcp/sql/pulumiTypes.go | 54 + sdk/go/gcp/storage/pulumiTypes.go | 8 +- sdk/go/gcp/tags/tagBinding.go | 8 +- sdk/go/gcp/tags/tagValue.go | 6 +- sdk/go/gcp/transcoder/job.go | 12 + sdk/go/gcp/vertex/aiEndpoint.go | 246 +- .../vertex/aiFeatureOnlineStoreFeatureview.go | 4 +- sdk/go/gcp/vertex/pulumiTypes.go | 505 + sdk/go/gcp/workbench/instance.go | 24 +- sdk/go/gcp/workflows/workflow.go | 20 +- sdk/go/gcp/workstations/workstationConfig.go | 14 +- .../src/main/java/com/pulumi/gcp/Config.java | 6 + .../main/java/com/pulumi/gcp/Provider.java | 12 + .../java/com/pulumi/gcp/ProviderArgs.java | 34 + .../pulumi/gcp/activedirectory/Domain.java | 12 + .../main/java/com/pulumi/gcp/apigee/Api.java | 213 + .../java/com/pulumi/gcp/apigee/ApiArgs.java | 189 + .../gcp/apigee/inputs/ApiMetaDataArgs.java | 157 + .../pulumi/gcp/apigee/inputs/ApiState.java | 357 + .../gcp/apigee/outputs/ApiMetaData.java | 99 + .../applicationintegration/AuthConfig.java | 12 + .../backupdisasterrecovery/BackupPlan.java | 315 + .../BackupPlanArgs.java | 318 + .../BackupPlanAssociation.java | 390 + .../BackupPlanAssociationArgs.java | 296 + .../backupdisasterrecovery/BackupVault.java | 47 +- .../BackupVaultArgs.java | 116 +- .../BackupdisasterrecoveryFunctions.java | 182 + ...kupPlanAssociationRulesConfigInfoArgs.java | 187 + ...ionRulesConfigInfoLastBackupErrorArgs.java | 129 + .../inputs/BackupPlanAssociationState.java | 519 + .../inputs/BackupPlanBackupRuleArgs.java | 171 + ...kupPlanBackupRuleStandardScheduleArgs.java | 413 + ...pRuleStandardScheduleBackupWindowArgs.java | 136 + ...uleStandardScheduleWeekDayOfMonthArgs.java | 133 + .../inputs/BackupPlanState.java | 450 + .../inputs/BackupVaultState.java | 116 +- .../inputs/GetBackupPlanArgs.java | 104 + .../inputs/GetBackupPlanAssociationArgs.java | 152 + .../GetBackupPlanAssociationPlainArgs.java | 125 + .../inputs/GetBackupPlanPlainArgs.java | 91 + .../BackupPlanAssociationRulesConfigInfo.java | 112 + ...ciationRulesConfigInfoLastBackupError.java | 83 + .../outputs/BackupPlanBackupRule.java | 108 + .../BackupPlanBackupRuleStandardSchedule.java | 236 + ...ackupRuleStandardScheduleBackupWindow.java | 87 + ...kupRuleStandardScheduleWeekDayOfMonth.java | 85 + .../GetBackupPlanAssociationResult.java | 243 + ...tBackupPlanAssociationRulesConfigInfo.java | 109 + ...ciationRulesConfigInfoLastBackupError.java | 82 + .../outputs/GetBackupPlanBackupRule.java | 110 + ...tBackupPlanBackupRuleStandardSchedule.java | 242 + ...ackupRuleStandardScheduleBackupWindow.java | 83 + ...kupRuleStandardScheduleWeekDayOfMonth.java | 81 + .../outputs/GetBackupPlanResult.java | 228 + .../gcp/bigquery/DataTransferConfig.java | 12 + .../java/com/pulumi/gcp/cloudrunv2/Job.java | 1 - .../com/pulumi/gcp/cloudrunv2/Service.java | 1 - .../JobTemplateTemplateVolumeGcsArgs.java | 53 + .../inputs/ServiceTemplateVolumeGcsArgs.java | 53 + .../GetJobTemplateTemplateVolumeGc.java | 29 + .../outputs/GetServiceTemplateVolumeGc.java | 29 + .../outputs/JobTemplateTemplateVolumeGcs.java | 27 + .../outputs/ServiceTemplateVolumeGcs.java | 27 + .../java/com/pulumi/gcp/compute/Disk.java | 4 +- .../java/com/pulumi/gcp/compute/DiskArgs.java | 8 +- .../gcp/compute/FirewallPolicyRule.java | 57 +- .../gcp/compute/FirewallPolicyRuleArgs.java | 64 +- .../com/pulumi/gcp/compute/HealthCheck.java | 24 +- .../pulumi/gcp/compute/HealthCheckArgs.java | 48 +- .../compute/NetworkFirewallPolicyRule.java | 4 +- .../NetworkFirewallPolicyWithRules.java | 10 +- .../com/pulumi/gcp/compute/NodeTemplate.java | 67 + .../pulumi/gcp/compute/NodeTemplateArgs.java | 58 + .../com/pulumi/gcp/compute/RegionDisk.java | 4 +- .../pulumi/gcp/compute/RegionDiskArgs.java | 8 +- .../pulumi/gcp/compute/RegionHealthCheck.java | 24 +- .../gcp/compute/RegionHealthCheckArgs.java | 48 +- .../compute/RegionInstanceGroupManager.java | 21 +- .../RegionInstanceGroupManagerArgs.java | 50 +- .../RegionNetworkFirewallPolicyRule.java | 4 +- .../RegionNetworkFirewallPolicyWithRules.java | 10 +- .../gcp/compute/RegionResizeRequest.java | 381 + .../gcp/compute/RegionResizeRequestArgs.java | 333 + .../gcp/compute/RegionSecurityPolicy.java | 78 + .../gcp/compute/RegionSecurityPolicyArgs.java | 53 + .../com/pulumi/gcp/compute/RouterPeer.java | 26 +- .../pulumi/gcp/compute/RouterPeerArgs.java | 58 +- .../gcp/compute/SecurityScanConfig.java | 8 +- ...AutoscalingPolicyScaleDownControlArgs.java | 8 +- ...erAutoscalingPolicyScaleInControlArgs.java | 8 +- .../pulumi/gcp/compute/inputs/DiskState.java | 8 +- .../inputs/FirewallPolicyRuleMatchArgs.java | 115 +- ...rewallPolicyRuleMatchLayer4ConfigArgs.java | 27 +- .../inputs/FirewallPolicyRuleState.java | 101 +- .../gcp/compute/inputs/HealthCheckState.java | 48 +- .../compute/inputs/NodeTemplateDiskArgs.java | 158 + .../gcp/compute/inputs/NodeTemplateState.java | 58 + ...AutoscalingPolicyScaleDownControlArgs.java | 8 +- ...erAutoscalingPolicyScaleInControlArgs.java | 8 +- .../gcp/compute/inputs/RegionDiskState.java | 8 +- .../inputs/RegionHealthCheckState.java | 48 +- ...nceGroupManagerAllInstancesConfigArgs.java | 24 +- ...pManagerInstanceFlexibilityPolicyArgs.java | 94 + ...lexibilityPolicyInstanceSelectionArgs.java | 188 + ...oupManagerInstanceLifecyclePolicyArgs.java | 4 + .../RegionInstanceGroupManagerState.java | 50 +- ...ResizeRequestRequestedRunDurationArgs.java | 125 + .../inputs/RegionResizeRequestState.java | 451 + .../inputs/RegionResizeRequestStatusArgs.java | 162 + .../RegionResizeRequestStatusErrorArgs.java | 104 + ...gionResizeRequestStatusErrorErrorArgs.java | 228 + ...equestStatusErrorErrorErrorDetailArgs.java | 278 + ...tusErrorErrorErrorDetailErrorInfoArgs.java | 170 + ...stStatusErrorErrorErrorDetailHelpArgs.java | 104 + ...atusErrorErrorErrorDetailHelpLinkArgs.java | 124 + ...rErrorErrorDetailLocalizedMessageArgs.java | 128 + ...tusErrorErrorErrorDetailQuotaInfoArgs.java | 294 + ...ionResizeRequestStatusLastAttemptArgs.java | 104 + ...sizeRequestStatusLastAttemptErrorArgs.java | 104 + ...equestStatusLastAttemptErrorErrorArgs.java | 228 + ...sLastAttemptErrorErrorErrorDetailArgs.java | 278 + ...mptErrorErrorErrorDetailErrorInfoArgs.java | 170 + ...tAttemptErrorErrorErrorDetailHelpArgs.java | 104 + ...emptErrorErrorErrorDetailHelpLinkArgs.java | 124 + ...rErrorErrorDetailLocalizedMessageArgs.java | 128 + ...mptErrorErrorErrorDetailQuotaInfoArgs.java | 294 + .../inputs/RegionSecurityPolicyRuleArgs.java | 435 + .../inputs/RegionSecurityPolicyState.java | 53 + ...ionSecurityPolicyUserDefinedFieldArgs.java | 8 +- .../RouterPeerCustomLearnedIpRangeArgs.java | 8 +- .../gcp/compute/inputs/RouterPeerState.java | 58 +- ...alerAutoscalingPolicyScaleDownControl.java | 4 +- ...scalerAutoscalingPolicyScaleInControl.java | 4 +- .../outputs/FirewallPolicyRuleMatch.java | 46 +- .../FirewallPolicyRuleMatchLayer4Config.java | 12 +- ...GroupManagerInstanceFlexibilityPolicy.java | 62 + ...nceFlexibilityPolicyInstanceSelection.java | 109 + .../GetRegionInstanceGroupManagerResult.java | 19 + .../gcp/compute/outputs/NodeTemplateDisk.java | 100 + ...alerAutoscalingPolicyScaleDownControl.java | 4 +- ...scalerAutoscalingPolicyScaleInControl.java | 4 +- ...nstanceGroupManagerAllInstancesConfig.java | 12 +- ...GroupManagerInstanceFlexibilityPolicy.java | 60 + ...nceFlexibilityPolicyInstanceSelection.java | 115 + ...ceGroupManagerInstanceLifecyclePolicy.java | 2 + ...gionResizeRequestRequestedRunDuration.java | 82 + .../outputs/RegionResizeRequestStatus.java | 93 + .../RegionResizeRequestStatusError.java | 64 + .../RegionResizeRequestStatusErrorError.java | 135 + ...izeRequestStatusErrorErrorErrorDetail.java | 151 + ...tStatusErrorErrorErrorDetailErrorInfo.java | 106 + ...equestStatusErrorErrorErrorDetailHelp.java | 64 + ...stStatusErrorErrorErrorDetailHelpLink.java | 80 + ...ErrorErrorErrorDetailLocalizedMessage.java | 82 + ...tStatusErrorErrorErrorDetailQuotaInfo.java | 176 + .../RegionResizeRequestStatusLastAttempt.java | 64 + ...onResizeRequestStatusLastAttemptError.java | 64 + ...izeRequestStatusLastAttemptErrorError.java | 135 + ...tatusLastAttemptErrorErrorErrorDetail.java | 151 + ...AttemptErrorErrorErrorDetailErrorInfo.java | 106 + ...sLastAttemptErrorErrorErrorDetailHelp.java | 64 + ...tAttemptErrorErrorErrorDetailHelpLink.java | 80 + ...ErrorErrorErrorDetailLocalizedMessage.java | 82 + ...AttemptErrorErrorErrorDetailQuotaInfo.java | 176 + .../outputs/RegionSecurityPolicyRule.java | 255 + .../RegionSecurityPolicyUserDefinedField.java | 4 +- .../RouterPeerCustomLearnedIpRange.java | 4 +- .../com/pulumi/gcp/container/Cluster.java | 32 + .../com/pulumi/gcp/container/ClusterArgs.java | 80 + .../inputs/ClusterAddonsConfigArgs.java | 72 +- ...onfigParallelstoreCsiDriverConfigArgs.java | 65 + ...lusterControlPlaneEndpointsConfigArgs.java | 83 + ...eEndpointsConfigDnsEndpointConfigArgs.java | 121 + ...terMasterAuthorizedNetworksConfigArgs.java | 37 + .../gcp/container/inputs/ClusterState.java | 80 + .../ClusterUserManagedKeysConfigArgs.java | 363 + .../outputs/ClusterAddonsConfig.java | 38 +- ...onsConfigParallelstoreCsiDriverConfig.java | 50 + .../ClusterControlPlaneEndpointsConfig.java | 57 + ...PlaneEndpointsConfigDnsEndpointConfig.java | 79 + ...ClusterMasterAuthorizedNetworksConfig.java | 21 + .../outputs/ClusterUserManagedKeysConfig.java | 211 + .../outputs/GetClusterAddonsConfig.java | 27 + ...onsConfigParallelstoreCsiDriverConfig.java | 50 + ...GetClusterControlPlaneEndpointsConfig.java | 62 + ...PlaneEndpointsConfigDnsEndpointConfig.java | 82 + ...ClusterMasterAuthorizedNetworksConfig.java | 23 + .../container/outputs/GetClusterResult.java | 38 + .../GetClusterUserManagedKeysConfig.java | 226 + .../dataloss/PreventionDiscoveryConfig.java | 4 +- .../PreventionDiscoveryConfigArgs.java | 8 +- .../PreventionDiscoveryConfigState.java | 8 +- .../dataproc/GdcApplicationEnvironment.java | 437 + .../GdcApplicationEnvironmentArgs.java | 420 + .../gcp/dataproc/GdcServiceInstance.java | 480 + .../gcp/dataproc/GdcServiceInstanceArgs.java | 376 + ...SparkApplicationEnvironmentConfigArgs.java | 121 + .../GdcApplicationEnvironmentState.java | 656 + .../GdcServiceInstanceGdceClusterArgs.java | 85 + ...nstanceSparkServiceInstanceConfigArgs.java | 28 + .../inputs/GdcServiceInstanceState.java | 853 + ...mentSparkApplicationEnvironmentConfig.java | 79 + .../GdcServiceInstanceGdceCluster.java | 58 + ...iceInstanceSparkServiceInstanceConfig.java | 32 + .../gcp/edgecontainer/VpnConnection.java | 4 +- .../inputs/VpnConnectionState.java | 10 +- .../com/pulumi/gcp/firebase/AndroidApp.java | 2 +- .../com/pulumi/gcp/firebase/AppleApp.java | 2 +- .../java/com/pulumi/gcp/firebase/WebApp.java | 2 +- .../java/com/pulumi/gcp/firestore/Index.java | 52 + ...BareMetalAdminClusterLoadBalancerArgs.java | 8 +- ...areMetalAdminClusterNetworkConfigArgs.java | 8 +- .../BareMetalClusterLoadBalancerArgs.java | 16 +- .../BareMetalClusterNetworkConfigArgs.java | 8 +- .../BareMetalAdminClusterLoadBalancer.java | 4 +- .../BareMetalAdminClusterNetworkConfig.java | 4 +- .../outputs/BareMetalClusterLoadBalancer.java | 8 +- .../BareMetalClusterNetworkConfig.java | 4 +- .../com/pulumi/gcp/healthcare/Dataset.java | 4 +- .../pulumi/gcp/healthcare/DatasetArgs.java | 8 +- .../com/pulumi/gcp/healthcare/DicomStore.java | 4 +- .../pulumi/gcp/healthcare/DicomStoreArgs.java | 8 +- .../com/pulumi/gcp/healthcare/FhirStore.java | 4 +- .../pulumi/gcp/healthcare/FhirStoreArgs.java | 8 +- .../com/pulumi/gcp/healthcare/Hl7Store.java | 8 +- .../pulumi/gcp/healthcare/Hl7StoreArgs.java | 16 +- .../gcp/healthcare/inputs/DatasetState.java | 8 +- .../healthcare/inputs/DicomStoreState.java | 8 +- .../gcp/healthcare/inputs/FhirStoreState.java | 8 +- .../gcp/healthcare/inputs/Hl7StoreState.java | 16 +- .../iam/PrincipalAccessBoundaryPolicy.java | 315 + .../PrincipalAccessBoundaryPolicyArgs.java | 312 + ...ncipalAccessBoundaryPolicyDetailsArgs.java | 153 + ...alAccessBoundaryPolicyDetailsRuleArgs.java | 214 + .../PrincipalAccessBoundaryPolicyState.java | 508 + .../PrincipalAccessBoundaryPolicyDetails.java | 94 + ...ncipalAccessBoundaryPolicyDetailsRule.java | 124 + .../java/com/pulumi/gcp/logging/Metric.java | 2 +- .../java/com/pulumi/gcp/looker/Instance.java | 142 +- .../com/pulumi/gcp/looker/InstanceArgs.java | 278 +- .../inputs/InstanceOauthConfigArgs.java | 8 + .../gcp/looker/inputs/InstanceState.java | 264 +- .../looker/outputs/InstanceOauthConfig.java | 4 + .../com/pulumi/gcp/memorystore/Instance.java | 2 + .../pulumi/gcp/monitoring/AlertPolicy.java | 12 + .../pulumi/gcp/monitoring/CustomService.java | 12 + .../java/com/pulumi/gcp/monitoring/Group.java | 12 + .../gcp/monitoring/MetricDescriptor.java | 12 + .../java/com/pulumi/gcp/monitoring/Slo.java | 12 + .../gcp/monitoring/UptimeCheckConfig.java | 12 + .../networkmanagement/VpcFlowLogsConfig.java | 761 + .../VpcFlowLogsConfigArgs.java | 616 + .../inputs/VpcFlowLogsConfigState.java | 798 + .../pulumi/gcp/osconfig/PatchDeployment.java | 8 +- .../redis/inputs/ClusterStateInfoArgs.java | 8 +- .../gcp/redis/outputs/ClusterStateInfo.java | 4 +- .../securitycenter/NotificationConfig.java | 10 +- .../ProjectNotificationConfig.java | 12 - .../V2OrganizationNotificationConfig.java | 10 +- .../java/com/pulumi/gcp/spanner/Instance.java | 21 + .../com/pulumi/gcp/spanner/InstanceArgs.java | 49 + .../pulumi/gcp/spanner/SpannerFunctions.java | 175 + .../gcp/spanner/inputs/GetDatabaseArgs.java | 176 + .../spanner/inputs/GetDatabasePlainArgs.java | 142 + ...ConfigAsymmetricAutoscalingOptionArgs.java | 16 +- ...mmetricAutoscalingOptionOverridesArgs.java | 8 +- .../gcp/spanner/inputs/InstanceState.java | 49 + .../outputs/GetDatabaseEncryptionConfig.java | 89 + .../spanner/outputs/GetDatabaseResult.java | 217 + ...lingConfigAsymmetricAutoscalingOption.java | 8 +- ...igAsymmetricAutoscalingOptionOverride.java | 4 +- .../spanner/outputs/GetInstanceResult.java | 15 + ...lingConfigAsymmetricAutoscalingOption.java | 8 +- ...gAsymmetricAutoscalingOptionOverrides.java | 4 +- .../com/pulumi/gcp/sql/DatabaseInstance.java | 55 +- .../pulumi/gcp/sql/DatabaseInstanceArgs.java | 56 +- ...abaseInstanceReplicaConfigurationArgs.java | 45 + .../gcp/sql/inputs/DatabaseInstanceState.java | 63 +- .../DatabaseInstanceReplicaConfiguration.java | 25 + ...tDatabaseInstanceReplicaConfiguration.java | 23 + .../outputs/GetDatabaseInstanceResult.java | 18 + .../outputs/GetDatabaseInstancesInstance.java | 26 + ...InstancesInstanceReplicaConfiguration.java | 23 + ...ConfigObjectMetadataReportOptionsArgs.java | 8 +- ...portConfigObjectMetadataReportOptions.java | 4 +- .../java/com/pulumi/gcp/tags/TagBinding.java | 4 +- .../java/com/pulumi/gcp/tags/TagValue.java | 2 +- .../java/com/pulumi/gcp/transcoder/Job.java | 12 + .../com/pulumi/gcp/vertex/AiEndpoint.java | 210 +- .../com/pulumi/gcp/vertex/AiEndpointArgs.java | 191 +- .../AiFeatureOnlineStoreFeatureview.java | 4 +- ...edictRequestResponseLoggingConfigArgs.java | 163 + ...eLoggingConfigBigqueryDestinationArgs.java | 83 + ...dpointPrivateServiceConnectConfigArgs.java | 173 + .../gcp/vertex/inputs/AiEndpointState.java | 228 +- ...ntPredictRequestResponseLoggingConfig.java | 103 + ...ponseLoggingConfigBigqueryDestination.java | 57 + ...AiEndpointPrivateServiceConnectConfig.java | 107 + .../com/pulumi/gcp/workbench/Instance.java | 8 +- .../pulumi/gcp/workbench/InstanceArgs.java | 20 +- .../gcp/workbench/inputs/InstanceState.java | 20 +- .../com/pulumi/gcp/workflows/Workflow.java | 8 + .../pulumi/gcp/workflows/WorkflowArgs.java | 18 + .../gcp/workflows/inputs/WorkflowState.java | 18 + .../gcp/workstations/WorkstationConfig.java | 10 +- sdk/nodejs/activedirectory/domain.ts | 12 + sdk/nodejs/apigee/api.ts | 195 + sdk/nodejs/apigee/index.ts | 8 + .../applicationintegration/authConfig.ts | 12 + .../backupdisasterrecovery/backupPlan.ts | 275 + .../backupPlanAssociation.ts | 337 + .../backupdisasterrecovery/backupVault.ts | 52 +- .../backupdisasterrecovery/getBackupPlan.ts | 63 + .../getBackupPlanAssociation.ts | 106 + sdk/nodejs/backupdisasterrecovery/index.ts | 26 + sdk/nodejs/bigquery/dataTransferConfig.ts | 12 + sdk/nodejs/cloudrunv2/job.ts | 1 - sdk/nodejs/cloudrunv2/service.ts | 1 - sdk/nodejs/compute/disk.ts | 6 +- sdk/nodejs/compute/firewallPolicyRule.ts | 69 +- .../compute/getRegionInstanceGroupManager.ts | 1 + sdk/nodejs/compute/healthCheck.ts | 36 +- sdk/nodejs/compute/index.ts | 8 + .../compute/networkFirewallPolicyRule.ts | 4 +- .../compute/networkFirewallPolicyWithRules.ts | 10 +- sdk/nodejs/compute/nodeTemplate.ts | 40 + sdk/nodejs/compute/regionDisk.ts | 6 +- sdk/nodejs/compute/regionHealthCheck.ts | 36 +- .../compute/regionInstanceGroupManager.ts | 23 +- .../regionNetworkFirewallPolicyRule.ts | 4 +- .../regionNetworkFirewallPolicyWithRules.ts | 10 +- sdk/nodejs/compute/regionResizeRequest.ts | 335 + sdk/nodejs/compute/regionSecurityPolicy.ts | 51 + sdk/nodejs/compute/routerPeer.ts | 39 +- sdk/nodejs/compute/securityScanConfig.ts | 8 +- sdk/nodejs/config/vars.ts | 16 + sdk/nodejs/container/cluster.ts | 31 + sdk/nodejs/container/getCluster.ts | 2 + .../dataloss/preventionDiscoveryConfig.ts | 6 +- .../dataproc/gdcApplicationEnvironment.ts | 373 + sdk/nodejs/dataproc/gdcServiceInstance.ts | 414 + sdk/nodejs/dataproc/index.ts | 16 + sdk/nodejs/edgecontainer/vpnConnection.ts | 4 +- sdk/nodejs/firebase/androidApp.ts | 2 +- sdk/nodejs/firebase/appleApp.ts | 2 +- sdk/nodejs/firebase/webApp.ts | 2 +- sdk/nodejs/firestore/index_.ts | 24 + sdk/nodejs/healthcare/dataset.ts | 6 +- sdk/nodejs/healthcare/dicomStore.ts | 6 +- sdk/nodejs/healthcare/fhirStore.ts | 6 +- sdk/nodejs/healthcare/hl7Store.ts | 12 +- sdk/nodejs/iam/index.ts | 8 + .../iam/principalAccessBoundaryPolicy.ts | 280 + sdk/nodejs/logging/metric.ts | 2 +- sdk/nodejs/looker/instance.ts | 204 +- sdk/nodejs/memorystore/instance.ts | 2 + sdk/nodejs/monitoring/alertPolicy.ts | 12 + sdk/nodejs/monitoring/customService.ts | 12 + sdk/nodejs/monitoring/group.ts | 12 + sdk/nodejs/monitoring/metricDescriptor.ts | 12 + sdk/nodejs/monitoring/slo.ts | 12 + sdk/nodejs/monitoring/uptimeCheckConfig.ts | 12 + sdk/nodejs/networkmanagement/index.ts | 8 + .../networkmanagement/vpcFlowLogsConfig.ts | 573 + sdk/nodejs/osconfig/patchDeployment.ts | 8 +- sdk/nodejs/provider.ts | 6 + .../securitycenter/notificationConfig.ts | 10 +- .../projectNotificationConfig.ts | 12 - .../v2organizationNotificationConfig.ts | 10 +- sdk/nodejs/spanner/getDatabase.ts | 116 + sdk/nodejs/spanner/getInstance.ts | 1 + sdk/nodejs/spanner/index.ts | 5 + sdk/nodejs/spanner/instance.ts | 24 + sdk/nodejs/sql/databaseInstance.ts | 57 +- sdk/nodejs/sql/getDatabaseInstance.ts | 1 + sdk/nodejs/tags/tagBinding.ts | 4 +- sdk/nodejs/tags/tagValue.ts | 2 +- sdk/nodejs/transcoder/job.ts | 12 + sdk/nodejs/tsconfig.json | 11 + sdk/nodejs/types/input.ts | 810 +- sdk/nodejs/types/output.ts | 1039 +- sdk/nodejs/vertex/aiEndpoint.ts | 155 +- .../vertex/aiFeatureOnlineStoreFeatureview.ts | 4 +- sdk/nodejs/workbench/instance.ts | 12 +- sdk/nodejs/workflows/workflow.ts | 6 + sdk/nodejs/workstations/workstationConfig.ts | 6 +- sdk/python/pulumi_gcp/__init__.py | 64 + .../pulumi_gcp/activedirectory/domain.py | 24 + sdk/python/pulumi_gcp/apigee/__init__.py | 1 + sdk/python/pulumi_gcp/apigee/_inputs.py | 74 + sdk/python/pulumi_gcp/apigee/api.py | 456 + sdk/python/pulumi_gcp/apigee/outputs.py | 65 + .../applicationintegration/auth_config.py | 24 + .../backupdisasterrecovery/__init__.py | 4 + .../backupdisasterrecovery/_inputs.py | 533 + .../backupdisasterrecovery/backup_plan.py | 653 + .../backup_plan_association.py | 766 + .../backupdisasterrecovery/backup_vault.py | 152 +- .../backupdisasterrecovery/get_backup_plan.py | 204 + .../get_backup_plan_association.py | 243 + .../backupdisasterrecovery/outputs.py | 702 + .../bigquery/data_transfer_config.py | 24 + sdk/python/pulumi_gcp/cloudrunv2/_inputs.py | 46 + sdk/python/pulumi_gcp/cloudrunv2/job.py | 2 - sdk/python/pulumi_gcp/cloudrunv2/outputs.py | 62 +- sdk/python/pulumi_gcp/cloudrunv2/service.py | 2 - sdk/python/pulumi_gcp/compute/__init__.py | 1 + sdk/python/pulumi_gcp/compute/_inputs.py | 2419 +- sdk/python/pulumi_gcp/compute/disk.py | 14 +- .../compute/firewall_policy_rule.py | 162 +- .../get_region_instance_group_manager.py | 13 +- sdk/python/pulumi_gcp/compute/health_check.py | 84 +- .../compute/network_firewall_policy_rule.py | 8 +- .../network_firewall_policy_with_rules.py | 20 +- .../pulumi_gcp/compute/node_template.py | 95 + sdk/python/pulumi_gcp/compute/outputs.py | 1852 +- sdk/python/pulumi_gcp/compute/region_disk.py | 14 +- .../pulumi_gcp/compute/region_health_check.py | 84 +- .../compute/region_instance_group_manager.py | 68 +- .../region_network_firewall_policy_rule.py | 8 +- ...gion_network_firewall_policy_with_rules.py | 20 +- .../compute/region_resize_request.py | 772 + .../compute/region_security_policy.py | 120 + .../compute/region_security_policy_rule.py | 12 +- sdk/python/pulumi_gcp/compute/router_peer.py | 91 +- .../compute/security_scan_config.py | 16 +- sdk/python/pulumi_gcp/config/__init__.pyi | 4 + sdk/python/pulumi_gcp/config/vars.py | 8 + sdk/python/pulumi_gcp/container/_inputs.py | 355 +- sdk/python/pulumi_gcp/container/cluster.py | 101 + .../pulumi_gcp/container/get_cluster.py | 24 +- sdk/python/pulumi_gcp/container/outputs.py | 464 +- .../dataloss/prevention_discovery_config.py | 14 +- sdk/python/pulumi_gcp/dataproc/__init__.py | 2 + sdk/python/pulumi_gcp/dataproc/_inputs.py | 101 + .../dataproc/gdc_application_environment.py | 931 + .../dataproc/gdc_service_instance.py | 1022 + sdk/python/pulumi_gcp/dataproc/outputs.py | 94 + .../edgecontainer/vpn_connection.py | 8 +- sdk/python/pulumi_gcp/firebase/android_app.py | 4 +- sdk/python/pulumi_gcp/firebase/apple_app.py | 4 +- sdk/python/pulumi_gcp/firebase/web_app.py | 4 +- sdk/python/pulumi_gcp/firestore/index.py | 44 + sdk/python/pulumi_gcp/gkeonprem/_inputs.py | 30 +- sdk/python/pulumi_gcp/gkeonprem/outputs.py | 20 +- sdk/python/pulumi_gcp/healthcare/dataset.py | 14 +- .../pulumi_gcp/healthcare/dicom_store.py | 14 +- .../pulumi_gcp/healthcare/fhir_store.py | 14 +- sdk/python/pulumi_gcp/healthcare/hl7_store.py | 28 +- sdk/python/pulumi_gcp/iam/__init__.py | 1 + sdk/python/pulumi_gcp/iam/_inputs.py | 161 + sdk/python/pulumi_gcp/iam/outputs.py | 114 + .../iam/principal_access_boundary_policy.py | 679 + sdk/python/pulumi_gcp/logging/metric.py | 4 +- sdk/python/pulumi_gcp/looker/_inputs.py | 6 + sdk/python/pulumi_gcp/looker/instance.py | 490 +- sdk/python/pulumi_gcp/looker/outputs.py | 4 + sdk/python/pulumi_gcp/memorystore/instance.py | 4 + .../pulumi_gcp/monitoring/alert_policy.py | 24 + .../pulumi_gcp/monitoring/custom_service.py | 24 + sdk/python/pulumi_gcp/monitoring/group.py | 24 + .../monitoring/metric_descriptor.py | 24 + sdk/python/pulumi_gcp/monitoring/slo.py | 24 + .../monitoring/uptime_check_config.py | 24 + .../pulumi_gcp/networkmanagement/__init__.py | 1 + .../networkmanagement/vpc_flow_logs_config.py | 1358 + .../pulumi_gcp/osconfig/patch_deployment.py | 16 +- sdk/python/pulumi_gcp/provider.py | 40 + sdk/python/pulumi_gcp/redis/_inputs.py | 6 +- sdk/python/pulumi_gcp/redis/outputs.py | 4 +- .../securitycenter/notification_config.py | 20 +- .../project_notification_config.py | 24 - .../v2_organization_notification_config.py | 20 +- sdk/python/pulumi_gcp/spanner/__init__.py | 1 + sdk/python/pulumi_gcp/spanner/_inputs.py | 18 +- sdk/python/pulumi_gcp/spanner/get_database.py | 229 + sdk/python/pulumi_gcp/spanner/get_instance.py | 13 +- sdk/python/pulumi_gcp/spanner/instance.py | 70 + sdk/python/pulumi_gcp/spanner/outputs.py | 58 +- sdk/python/pulumi_gcp/sql/_inputs.py | 26 + .../pulumi_gcp/sql/database_instance.py | 135 +- .../pulumi_gcp/sql/get_database_instance.py | 13 +- sdk/python/pulumi_gcp/sql/outputs.py | 51 + sdk/python/pulumi_gcp/storage/_inputs.py | 6 +- sdk/python/pulumi_gcp/storage/outputs.py | 4 +- sdk/python/pulumi_gcp/tags/tag_binding.py | 8 +- sdk/python/pulumi_gcp/tags/tag_value.py | 4 +- sdk/python/pulumi_gcp/transcoder/job.py | 24 + sdk/python/pulumi_gcp/vertex/_inputs.py | 184 + sdk/python/pulumi_gcp/vertex/ai_endpoint.py | 402 +- .../ai_feature_online_store_featureview.py | 8 +- sdk/python/pulumi_gcp/vertex/outputs.py | 166 + sdk/python/pulumi_gcp/workbench/instance.py | 28 +- sdk/python/pulumi_gcp/workflows/workflow.py | 36 + .../workstations/workstation_config.py | 16 +- 868 files changed, 95433 insertions(+), 22279 deletions(-) create mode 100644 sdk/dotnet/Apigee/Api.cs create mode 100644 sdk/dotnet/Apigee/Inputs/ApiMetaDataArgs.cs create mode 100644 sdk/dotnet/Apigee/Inputs/ApiMetaDataGetArgs.cs create mode 100644 sdk/dotnet/Apigee/Outputs/ApiMetaData.cs create mode 100644 sdk/dotnet/BackupDisasterRecovery/BackupPlan.cs create mode 100644 sdk/dotnet/BackupDisasterRecovery/BackupPlanAssociation.cs create mode 100644 sdk/dotnet/BackupDisasterRecovery/GetBackupPlan.cs create mode 100644 sdk/dotnet/BackupDisasterRecovery/GetBackupPlanAssociation.cs create mode 100644 sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanAssociationRulesConfigInfoArgs.cs create mode 100644 sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanAssociationRulesConfigInfoGetArgs.cs create mode 100644 sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs.cs create mode 100644 sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanAssociationRulesConfigInfoLastBackupErrorGetArgs.cs create mode 100644 sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanBackupRuleArgs.cs create mode 100644 sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanBackupRuleGetArgs.cs create mode 100644 sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanBackupRuleStandardScheduleArgs.cs create mode 100644 sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanBackupRuleStandardScheduleBackupWindowArgs.cs create mode 100644 sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanBackupRuleStandardScheduleBackupWindowGetArgs.cs create mode 100644 sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanBackupRuleStandardScheduleGetArgs.cs create mode 100644 sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs.cs create mode 100644 sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanBackupRuleStandardScheduleWeekDayOfMonthGetArgs.cs create mode 100644 sdk/dotnet/BackupDisasterRecovery/Outputs/BackupPlanAssociationRulesConfigInfo.cs create mode 100644 sdk/dotnet/BackupDisasterRecovery/Outputs/BackupPlanAssociationRulesConfigInfoLastBackupError.cs create mode 100644 sdk/dotnet/BackupDisasterRecovery/Outputs/BackupPlanBackupRule.cs create mode 100644 sdk/dotnet/BackupDisasterRecovery/Outputs/BackupPlanBackupRuleStandardSchedule.cs create mode 100644 sdk/dotnet/BackupDisasterRecovery/Outputs/BackupPlanBackupRuleStandardScheduleBackupWindow.cs create mode 100644 sdk/dotnet/BackupDisasterRecovery/Outputs/BackupPlanBackupRuleStandardScheduleWeekDayOfMonth.cs create mode 100644 sdk/dotnet/BackupDisasterRecovery/Outputs/GetBackupPlanAssociationRulesConfigInfoLastBackupErrorResult.cs create mode 100644 sdk/dotnet/BackupDisasterRecovery/Outputs/GetBackupPlanAssociationRulesConfigInfoResult.cs create mode 100644 sdk/dotnet/BackupDisasterRecovery/Outputs/GetBackupPlanBackupRuleResult.cs create mode 100644 sdk/dotnet/BackupDisasterRecovery/Outputs/GetBackupPlanBackupRuleStandardScheduleBackupWindowResult.cs create mode 100644 sdk/dotnet/BackupDisasterRecovery/Outputs/GetBackupPlanBackupRuleStandardScheduleResult.cs create mode 100644 sdk/dotnet/BackupDisasterRecovery/Outputs/GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthResult.cs create mode 100644 sdk/dotnet/Compute/Inputs/NodeTemplateDiskArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/NodeTemplateDiskGetArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerInstanceFlexibilityPolicyGetArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionGetArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestRequestedRunDurationArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestRequestedRunDurationGetArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoGetArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailGetArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailHelpGetArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkGetArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageGetArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoGetArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorGetArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorGetArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusGetArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoGetArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailGetArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpGetArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkGetArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageGetArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoGetArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorGetArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorGetArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptGetArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionSecurityPolicyRuleArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionSecurityPolicyRuleGetArgs.cs create mode 100644 sdk/dotnet/Compute/Outputs/GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionResult.cs create mode 100644 sdk/dotnet/Compute/Outputs/GetRegionInstanceGroupManagerInstanceFlexibilityPolicyResult.cs create mode 100644 sdk/dotnet/Compute/Outputs/NodeTemplateDisk.cs create mode 100644 sdk/dotnet/Compute/Outputs/RegionInstanceGroupManagerInstanceFlexibilityPolicy.cs create mode 100644 sdk/dotnet/Compute/Outputs/RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection.cs create mode 100644 sdk/dotnet/Compute/Outputs/RegionResizeRequestRequestedRunDuration.cs create mode 100644 sdk/dotnet/Compute/Outputs/RegionResizeRequestStatus.cs create mode 100644 sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusError.cs create mode 100644 sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusErrorError.cs create mode 100644 sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusErrorErrorErrorDetail.cs create mode 100644 sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo.cs create mode 100644 sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusErrorErrorErrorDetailHelp.cs create mode 100644 sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusErrorErrorErrorDetailHelpLink.cs create mode 100644 sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage.cs create mode 100644 sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo.cs create mode 100644 sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttempt.cs create mode 100644 sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttemptError.cs create mode 100644 sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttemptErrorError.cs create mode 100644 sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail.cs create mode 100644 sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo.cs create mode 100644 sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp.cs create mode 100644 sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink.cs create mode 100644 sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage.cs create mode 100644 sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo.cs create mode 100644 sdk/dotnet/Compute/Outputs/RegionSecurityPolicyRule.cs create mode 100644 sdk/dotnet/Compute/RegionResizeRequest.cs create mode 100644 sdk/dotnet/Container/Inputs/ClusterAddonsConfigParallelstoreCsiDriverConfigArgs.cs create mode 100644 sdk/dotnet/Container/Inputs/ClusterAddonsConfigParallelstoreCsiDriverConfigGetArgs.cs create mode 100644 sdk/dotnet/Container/Inputs/ClusterControlPlaneEndpointsConfigArgs.cs create mode 100644 sdk/dotnet/Container/Inputs/ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs.cs create mode 100644 sdk/dotnet/Container/Inputs/ClusterControlPlaneEndpointsConfigDnsEndpointConfigGetArgs.cs create mode 100644 sdk/dotnet/Container/Inputs/ClusterControlPlaneEndpointsConfigGetArgs.cs create mode 100644 sdk/dotnet/Container/Inputs/ClusterUserManagedKeysConfigArgs.cs create mode 100644 sdk/dotnet/Container/Inputs/ClusterUserManagedKeysConfigGetArgs.cs create mode 100644 sdk/dotnet/Container/Outputs/ClusterAddonsConfigParallelstoreCsiDriverConfig.cs create mode 100644 sdk/dotnet/Container/Outputs/ClusterControlPlaneEndpointsConfig.cs create mode 100644 sdk/dotnet/Container/Outputs/ClusterControlPlaneEndpointsConfigDnsEndpointConfig.cs create mode 100644 sdk/dotnet/Container/Outputs/ClusterUserManagedKeysConfig.cs create mode 100644 sdk/dotnet/Container/Outputs/GetClusterAddonsConfigParallelstoreCsiDriverConfigResult.cs create mode 100644 sdk/dotnet/Container/Outputs/GetClusterControlPlaneEndpointsConfigDnsEndpointConfigResult.cs create mode 100644 sdk/dotnet/Container/Outputs/GetClusterControlPlaneEndpointsConfigResult.cs create mode 100644 sdk/dotnet/Container/Outputs/GetClusterUserManagedKeysConfigResult.cs create mode 100644 sdk/dotnet/Dataproc/GdcApplicationEnvironment.cs create mode 100644 sdk/dotnet/Dataproc/GdcServiceInstance.cs create mode 100644 sdk/dotnet/Dataproc/Inputs/GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs.cs create mode 100644 sdk/dotnet/Dataproc/Inputs/GdcApplicationEnvironmentSparkApplicationEnvironmentConfigGetArgs.cs create mode 100644 sdk/dotnet/Dataproc/Inputs/GdcServiceInstanceGdceClusterArgs.cs create mode 100644 sdk/dotnet/Dataproc/Inputs/GdcServiceInstanceGdceClusterGetArgs.cs create mode 100644 sdk/dotnet/Dataproc/Inputs/GdcServiceInstanceSparkServiceInstanceConfigArgs.cs create mode 100644 sdk/dotnet/Dataproc/Inputs/GdcServiceInstanceSparkServiceInstanceConfigGetArgs.cs create mode 100644 sdk/dotnet/Dataproc/Outputs/GdcApplicationEnvironmentSparkApplicationEnvironmentConfig.cs create mode 100644 sdk/dotnet/Dataproc/Outputs/GdcServiceInstanceGdceCluster.cs create mode 100644 sdk/dotnet/Dataproc/Outputs/GdcServiceInstanceSparkServiceInstanceConfig.cs create mode 100644 sdk/dotnet/Iam/Inputs/PrincipalAccessBoundaryPolicyDetailsArgs.cs create mode 100644 sdk/dotnet/Iam/Inputs/PrincipalAccessBoundaryPolicyDetailsGetArgs.cs create mode 100644 sdk/dotnet/Iam/Inputs/PrincipalAccessBoundaryPolicyDetailsRuleArgs.cs create mode 100644 sdk/dotnet/Iam/Inputs/PrincipalAccessBoundaryPolicyDetailsRuleGetArgs.cs create mode 100644 sdk/dotnet/Iam/Outputs/PrincipalAccessBoundaryPolicyDetails.cs create mode 100644 sdk/dotnet/Iam/Outputs/PrincipalAccessBoundaryPolicyDetailsRule.cs create mode 100644 sdk/dotnet/Iam/PrincipalAccessBoundaryPolicy.cs create mode 100644 sdk/dotnet/NetworkManagement/VpcFlowLogsConfig.cs create mode 100644 sdk/dotnet/Spanner/GetDatabase.cs create mode 100644 sdk/dotnet/Spanner/Outputs/GetDatabaseEncryptionConfigResult.cs create mode 100644 sdk/dotnet/Vertex/Inputs/AiEndpointPredictRequestResponseLoggingConfigArgs.cs create mode 100644 sdk/dotnet/Vertex/Inputs/AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs.cs create mode 100644 sdk/dotnet/Vertex/Inputs/AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationGetArgs.cs create mode 100644 sdk/dotnet/Vertex/Inputs/AiEndpointPredictRequestResponseLoggingConfigGetArgs.cs create mode 100644 sdk/dotnet/Vertex/Inputs/AiEndpointPrivateServiceConnectConfigArgs.cs create mode 100644 sdk/dotnet/Vertex/Inputs/AiEndpointPrivateServiceConnectConfigGetArgs.cs create mode 100644 sdk/dotnet/Vertex/Outputs/AiEndpointPredictRequestResponseLoggingConfig.cs create mode 100644 sdk/dotnet/Vertex/Outputs/AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination.cs create mode 100644 sdk/dotnet/Vertex/Outputs/AiEndpointPrivateServiceConnectConfig.cs create mode 100644 sdk/go/gcp/apigee/api.go create mode 100644 sdk/go/gcp/backupdisasterrecovery/backupPlan.go create mode 100644 sdk/go/gcp/backupdisasterrecovery/backupPlanAssociation.go create mode 100644 sdk/go/gcp/backupdisasterrecovery/getBackupPlan.go create mode 100644 sdk/go/gcp/backupdisasterrecovery/getBackupPlanAssociation.go create mode 100644 sdk/go/gcp/compute/regionResizeRequest.go create mode 100644 sdk/go/gcp/dataproc/gdcApplicationEnvironment.go create mode 100644 sdk/go/gcp/dataproc/gdcServiceInstance.go create mode 100644 sdk/go/gcp/iam/principalAccessBoundaryPolicy.go create mode 100644 sdk/go/gcp/networkmanagement/vpcFlowLogsConfig.go create mode 100644 sdk/go/gcp/spanner/getDatabase.go create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/apigee/Api.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/apigee/ApiArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/ApiMetaDataArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/ApiState.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/apigee/outputs/ApiMetaData.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/BackupPlan.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/BackupPlanArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/BackupPlanAssociation.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/BackupPlanAssociationArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupPlanAssociationRulesConfigInfoArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupPlanAssociationState.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupPlanBackupRuleArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupPlanBackupRuleStandardScheduleArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupPlanBackupRuleStandardScheduleBackupWindowArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupPlanState.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/GetBackupPlanArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/GetBackupPlanAssociationArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/GetBackupPlanAssociationPlainArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/GetBackupPlanPlainArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/BackupPlanAssociationRulesConfigInfo.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/BackupPlanAssociationRulesConfigInfoLastBackupError.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/BackupPlanBackupRule.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/BackupPlanBackupRuleStandardSchedule.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/BackupPlanBackupRuleStandardScheduleBackupWindow.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/BackupPlanBackupRuleStandardScheduleWeekDayOfMonth.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/GetBackupPlanAssociationResult.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/GetBackupPlanAssociationRulesConfigInfo.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/GetBackupPlanAssociationRulesConfigInfoLastBackupError.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/GetBackupPlanBackupRule.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/GetBackupPlanBackupRuleStandardSchedule.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/GetBackupPlanBackupRuleStandardScheduleBackupWindow.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonth.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/GetBackupPlanResult.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/RegionResizeRequest.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/RegionResizeRequestArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/NodeTemplateDiskArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestRequestedRunDurationArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestState.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusErrorArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusErrorErrorArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusErrorErrorErrorDetailArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptErrorArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptErrorErrorArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionSecurityPolicyRuleArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetRegionInstanceGroupManagerInstanceFlexibilityPolicy.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/NodeTemplateDisk.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionInstanceGroupManagerInstanceFlexibilityPolicy.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestRequestedRunDuration.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatus.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusError.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusErrorError.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusErrorErrorErrorDetail.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusErrorErrorErrorDetailHelp.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusErrorErrorErrorDetailHelpLink.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttempt.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttemptError.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttemptErrorError.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionSecurityPolicyRule.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterAddonsConfigParallelstoreCsiDriverConfigArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterControlPlaneEndpointsConfigArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterUserManagedKeysConfigArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/container/outputs/ClusterAddonsConfigParallelstoreCsiDriverConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/container/outputs/ClusterControlPlaneEndpointsConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/container/outputs/ClusterControlPlaneEndpointsConfigDnsEndpointConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/container/outputs/ClusterUserManagedKeysConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterAddonsConfigParallelstoreCsiDriverConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterControlPlaneEndpointsConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterControlPlaneEndpointsConfigDnsEndpointConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterUserManagedKeysConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/dataproc/GdcApplicationEnvironment.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/dataproc/GdcApplicationEnvironmentArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/dataproc/GdcServiceInstance.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/dataproc/GdcServiceInstanceArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/dataproc/inputs/GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/dataproc/inputs/GdcApplicationEnvironmentState.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/dataproc/inputs/GdcServiceInstanceGdceClusterArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/dataproc/inputs/GdcServiceInstanceSparkServiceInstanceConfigArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/dataproc/inputs/GdcServiceInstanceState.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/dataproc/outputs/GdcApplicationEnvironmentSparkApplicationEnvironmentConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/dataproc/outputs/GdcServiceInstanceGdceCluster.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/dataproc/outputs/GdcServiceInstanceSparkServiceInstanceConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/iam/PrincipalAccessBoundaryPolicy.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/iam/PrincipalAccessBoundaryPolicyArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/iam/inputs/PrincipalAccessBoundaryPolicyDetailsArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/iam/inputs/PrincipalAccessBoundaryPolicyDetailsRuleArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/iam/inputs/PrincipalAccessBoundaryPolicyState.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/iam/outputs/PrincipalAccessBoundaryPolicyDetails.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/iam/outputs/PrincipalAccessBoundaryPolicyDetailsRule.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/networkmanagement/VpcFlowLogsConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/networkmanagement/VpcFlowLogsConfigArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/networkmanagement/inputs/VpcFlowLogsConfigState.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/spanner/inputs/GetDatabaseArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/spanner/inputs/GetDatabasePlainArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/spanner/outputs/GetDatabaseEncryptionConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/spanner/outputs/GetDatabaseResult.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/vertex/inputs/AiEndpointPredictRequestResponseLoggingConfigArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/vertex/inputs/AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/vertex/inputs/AiEndpointPrivateServiceConnectConfigArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/vertex/outputs/AiEndpointPredictRequestResponseLoggingConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/vertex/outputs/AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/vertex/outputs/AiEndpointPrivateServiceConnectConfig.java create mode 100644 sdk/nodejs/apigee/api.ts create mode 100644 sdk/nodejs/backupdisasterrecovery/backupPlan.ts create mode 100644 sdk/nodejs/backupdisasterrecovery/backupPlanAssociation.ts create mode 100644 sdk/nodejs/backupdisasterrecovery/getBackupPlan.ts create mode 100644 sdk/nodejs/backupdisasterrecovery/getBackupPlanAssociation.ts create mode 100644 sdk/nodejs/compute/regionResizeRequest.ts create mode 100644 sdk/nodejs/dataproc/gdcApplicationEnvironment.ts create mode 100644 sdk/nodejs/dataproc/gdcServiceInstance.ts create mode 100644 sdk/nodejs/iam/principalAccessBoundaryPolicy.ts create mode 100644 sdk/nodejs/networkmanagement/vpcFlowLogsConfig.ts create mode 100644 sdk/nodejs/spanner/getDatabase.ts create mode 100644 sdk/python/pulumi_gcp/apigee/api.py create mode 100644 sdk/python/pulumi_gcp/backupdisasterrecovery/backup_plan.py create mode 100644 sdk/python/pulumi_gcp/backupdisasterrecovery/backup_plan_association.py create mode 100644 sdk/python/pulumi_gcp/backupdisasterrecovery/get_backup_plan.py create mode 100644 sdk/python/pulumi_gcp/backupdisasterrecovery/get_backup_plan_association.py create mode 100644 sdk/python/pulumi_gcp/compute/region_resize_request.py create mode 100644 sdk/python/pulumi_gcp/dataproc/gdc_application_environment.py create mode 100644 sdk/python/pulumi_gcp/dataproc/gdc_service_instance.py create mode 100644 sdk/python/pulumi_gcp/iam/principal_access_boundary_policy.py create mode 100644 sdk/python/pulumi_gcp/networkmanagement/vpc_flow_logs_config.py create mode 100644 sdk/python/pulumi_gcp/spanner/get_database.py diff --git a/sdk/dotnet/ActiveDirectory/Domain.cs b/sdk/dotnet/ActiveDirectory/Domain.cs index 2e8601624e..1639416dc7 100644 --- a/sdk/dotnet/ActiveDirectory/Domain.cs +++ b/sdk/dotnet/ActiveDirectory/Domain.cs @@ -48,11 +48,23 @@ namespace Pulumi.Gcp.ActiveDirectory /// /// Domain can be imported using any of these accepted formats: /// + /// * `{{project}}/{{name}}` + /// + /// * `{{project}} {{name}}` + /// /// * `{{name}}` /// /// When using the `pulumi import` command, Domain can be imported using one of the formats above. For example: /// /// ```sh + /// $ pulumi import gcp:activedirectory/domain:Domain default {{project}}/{{name}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:activedirectory/domain:Domain default "{{project}} {{name}}" + /// ``` + /// + /// ```sh /// $ pulumi import gcp:activedirectory/domain:Domain default {{name}} /// ``` /// diff --git a/sdk/dotnet/Apigee/Api.cs b/sdk/dotnet/Apigee/Api.cs new file mode 100644 index 0000000000..9b0e0f9182 --- /dev/null +++ b/sdk/dotnet/Apigee/Api.cs @@ -0,0 +1,230 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Apigee +{ + /// + /// To get more information about API proxies see, see: + /// + /// * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.apis) + /// * How-to Guides + /// * [API proxies](https://cloud.google.com/apigee/docs/resources) + /// + /// ## Import + /// + /// An API proxy can be imported using any of these accepted formats: + /// + /// * `{{org_id}}/apis/{{name}}` + /// + /// * `{{org_id}}/{{name}}` + /// + /// When using the `pulumi import` command, API proxy can be imported using one of the formats above. For example: + /// + /// ```sh + /// $ pulumi import gcp:apigee/api:Api default {{org_id}}/apis/{{name}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:apigee/api:Api default {{org_id}}/{{name}} + /// ``` + /// + [GcpResourceType("gcp:apigee/api:Api")] + public partial class Api : global::Pulumi.CustomResource + { + /// + /// Path to the config zip bundle. + /// + /// - - - + /// + [Output("configBundle")] + public Output ConfigBundle { get; private set; } = null!; + + [Output("detectMd5hash")] + public Output DetectMd5hash { get; private set; } = null!; + + /// + /// The id of the most recently created revision for this API proxy. + /// + [Output("latestRevisionId")] + public Output LatestRevisionId { get; private set; } = null!; + + /// + /// (Computed) Base 64 MD5 hash of the uploaded data. It is speculative as remote does not return hash of the bundle. Remote changes are detected using returned last_modified timestamp. + /// + [Output("md5hash")] + public Output Md5hash { get; private set; } = null!; + + /// + /// Metadata describing the API proxy. + /// Structure is documented below. + /// + [Output("metaDatas")] + public Output> MetaDatas { get; private set; } = null!; + + /// + /// The ID of the API proxy. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// The Apigee Organization name associated with the Apigee instance. + /// + [Output("orgId")] + public Output OrgId { get; private set; } = null!; + + /// + /// A list of revisions of this API proxy. + /// + [Output("revisions")] + public Output> Revisions { get; private set; } = null!; + + + /// + /// Create a Api resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public Api(string name, ApiArgs args, CustomResourceOptions? options = null) + : base("gcp:apigee/api:Api", name, args ?? new ApiArgs(), MakeResourceOptions(options, "")) + { + } + + private Api(string name, Input id, ApiState? state = null, CustomResourceOptions? options = null) + : base("gcp:apigee/api:Api", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing Api resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static Api Get(string name, Input id, ApiState? state = null, CustomResourceOptions? options = null) + { + return new Api(name, id, state, options); + } + } + + public sealed class ApiArgs : global::Pulumi.ResourceArgs + { + /// + /// Path to the config zip bundle. + /// + /// - - - + /// + [Input("configBundle", required: true)] + public Input ConfigBundle { get; set; } = null!; + + [Input("detectMd5hash")] + public Input? DetectMd5hash { get; set; } + + /// + /// The ID of the API proxy. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The Apigee Organization name associated with the Apigee instance. + /// + [Input("orgId", required: true)] + public Input OrgId { get; set; } = null!; + + public ApiArgs() + { + } + public static new ApiArgs Empty => new ApiArgs(); + } + + public sealed class ApiState : global::Pulumi.ResourceArgs + { + /// + /// Path to the config zip bundle. + /// + /// - - - + /// + [Input("configBundle")] + public Input? ConfigBundle { get; set; } + + [Input("detectMd5hash")] + public Input? DetectMd5hash { get; set; } + + /// + /// The id of the most recently created revision for this API proxy. + /// + [Input("latestRevisionId")] + public Input? LatestRevisionId { get; set; } + + /// + /// (Computed) Base 64 MD5 hash of the uploaded data. It is speculative as remote does not return hash of the bundle. Remote changes are detected using returned last_modified timestamp. + /// + [Input("md5hash")] + public Input? Md5hash { get; set; } + + [Input("metaDatas")] + private InputList? _metaDatas; + + /// + /// Metadata describing the API proxy. + /// Structure is documented below. + /// + public InputList MetaDatas + { + get => _metaDatas ?? (_metaDatas = new InputList()); + set => _metaDatas = value; + } + + /// + /// The ID of the API proxy. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The Apigee Organization name associated with the Apigee instance. + /// + [Input("orgId")] + public Input? OrgId { get; set; } + + [Input("revisions")] + private InputList? _revisions; + + /// + /// A list of revisions of this API proxy. + /// + public InputList Revisions + { + get => _revisions ?? (_revisions = new InputList()); + set => _revisions = value; + } + + public ApiState() + { + } + public static new ApiState Empty => new ApiState(); + } +} diff --git a/sdk/dotnet/Apigee/Inputs/ApiMetaDataArgs.cs b/sdk/dotnet/Apigee/Inputs/ApiMetaDataArgs.cs new file mode 100644 index 0000000000..f7729150a2 --- /dev/null +++ b/sdk/dotnet/Apigee/Inputs/ApiMetaDataArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Apigee.Inputs +{ + + public sealed class ApiMetaDataArgs : global::Pulumi.ResourceArgs + { + /// + /// Time at which the API proxy was created, in milliseconds since epoch. + /// + [Input("createdAt")] + public Input? CreatedAt { get; set; } + + /// + /// Time at which the API proxy was most recently modified, in milliseconds since epoch. + /// + [Input("lastModifiedAt")] + public Input? LastModifiedAt { get; set; } + + /// + /// The type of entity described + /// + [Input("subType")] + public Input? SubType { get; set; } + + public ApiMetaDataArgs() + { + } + public static new ApiMetaDataArgs Empty => new ApiMetaDataArgs(); + } +} diff --git a/sdk/dotnet/Apigee/Inputs/ApiMetaDataGetArgs.cs b/sdk/dotnet/Apigee/Inputs/ApiMetaDataGetArgs.cs new file mode 100644 index 0000000000..3a2bad1b24 --- /dev/null +++ b/sdk/dotnet/Apigee/Inputs/ApiMetaDataGetArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Apigee.Inputs +{ + + public sealed class ApiMetaDataGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Time at which the API proxy was created, in milliseconds since epoch. + /// + [Input("createdAt")] + public Input? CreatedAt { get; set; } + + /// + /// Time at which the API proxy was most recently modified, in milliseconds since epoch. + /// + [Input("lastModifiedAt")] + public Input? LastModifiedAt { get; set; } + + /// + /// The type of entity described + /// + [Input("subType")] + public Input? SubType { get; set; } + + public ApiMetaDataGetArgs() + { + } + public static new ApiMetaDataGetArgs Empty => new ApiMetaDataGetArgs(); + } +} diff --git a/sdk/dotnet/Apigee/Outputs/ApiMetaData.cs b/sdk/dotnet/Apigee/Outputs/ApiMetaData.cs new file mode 100644 index 0000000000..e68b376c81 --- /dev/null +++ b/sdk/dotnet/Apigee/Outputs/ApiMetaData.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Apigee.Outputs +{ + + [OutputType] + public sealed class ApiMetaData + { + /// + /// Time at which the API proxy was created, in milliseconds since epoch. + /// + public readonly string? CreatedAt; + /// + /// Time at which the API proxy was most recently modified, in milliseconds since epoch. + /// + public readonly string? LastModifiedAt; + /// + /// The type of entity described + /// + public readonly string? SubType; + + [OutputConstructor] + private ApiMetaData( + string? createdAt, + + string? lastModifiedAt, + + string? subType) + { + CreatedAt = createdAt; + LastModifiedAt = lastModifiedAt; + SubType = subType; + } + } +} diff --git a/sdk/dotnet/ApplicationIntegration/AuthConfig.cs b/sdk/dotnet/ApplicationIntegration/AuthConfig.cs index e20ce9cb2d..a9a60a6c8c 100644 --- a/sdk/dotnet/ApplicationIntegration/AuthConfig.cs +++ b/sdk/dotnet/ApplicationIntegration/AuthConfig.cs @@ -65,11 +65,23 @@ namespace Pulumi.Gcp.ApplicationIntegration /// /// AuthConfig can be imported using any of these accepted formats: /// + /// * `{{project}}/{{name}}` + /// + /// * `{{project}} {{name}}` + /// /// * `{{name}}` /// /// When using the `pulumi import` command, AuthConfig can be imported using one of the formats above. For example: /// /// ```sh + /// $ pulumi import gcp:applicationintegration/authConfig:AuthConfig default {{project}}/{{name}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:applicationintegration/authConfig:AuthConfig default "{{project}} {{name}}" + /// ``` + /// + /// ```sh /// $ pulumi import gcp:applicationintegration/authConfig:AuthConfig default {{name}} /// ``` /// diff --git a/sdk/dotnet/BackupDisasterRecovery/BackupPlan.cs b/sdk/dotnet/BackupDisasterRecovery/BackupPlan.cs new file mode 100644 index 0000000000..2c98a84541 --- /dev/null +++ b/sdk/dotnet/BackupDisasterRecovery/BackupPlan.cs @@ -0,0 +1,328 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.BackupDisasterRecovery +{ + /// + /// ## Example Usage + /// + /// ### Backup Dr Backup Plan Simple + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var myBackupVault = new Gcp.BackupDisasterRecovery.BackupVault("my_backup_vault", new() + /// { + /// Location = "us-central1", + /// BackupVaultId = "bv-bp-test", + /// BackupMinimumEnforcedRetentionDuration = "100000s", + /// }); + /// + /// var my_backup_plan_1 = new Gcp.BackupDisasterRecovery.BackupPlan("my-backup-plan-1", new() + /// { + /// Location = "us-central1", + /// BackupPlanId = "backup-plan-simple-test", + /// ResourceType = "compute.googleapis.com/Instance", + /// BackupVault = myBackupVault.Id, + /// BackupRules = new[] + /// { + /// new Gcp.BackupDisasterRecovery.Inputs.BackupPlanBackupRuleArgs + /// { + /// RuleId = "rule-1", + /// BackupRetentionDays = 5, + /// StandardSchedule = new Gcp.BackupDisasterRecovery.Inputs.BackupPlanBackupRuleStandardScheduleArgs + /// { + /// RecurrenceType = "HOURLY", + /// HourlyFrequency = 6, + /// TimeZone = "UTC", + /// BackupWindow = new Gcp.BackupDisasterRecovery.Inputs.BackupPlanBackupRuleStandardScheduleBackupWindowArgs + /// { + /// StartHourOfDay = 0, + /// EndHourOfDay = 24, + /// }, + /// }, + /// }, + /// }, + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// BackupPlan can be imported using any of these accepted formats: + /// + /// * `projects/{{project}}/locations/{{location}}/backupPlans/{{backup_plan_id}}` + /// + /// * `{{project}}/{{location}}/{{backup_plan_id}}` + /// + /// * `{{location}}/{{backup_plan_id}}` + /// + /// When using the `pulumi import` command, BackupPlan can be imported using one of the formats above. For example: + /// + /// ```sh + /// $ pulumi import gcp:backupdisasterrecovery/backupPlan:BackupPlan default projects/{{project}}/locations/{{location}}/backupPlans/{{backup_plan_id}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:backupdisasterrecovery/backupPlan:BackupPlan default {{project}}/{{location}}/{{backup_plan_id}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:backupdisasterrecovery/backupPlan:BackupPlan default {{location}}/{{backup_plan_id}} + /// ``` + /// + [GcpResourceType("gcp:backupdisasterrecovery/backupPlan:BackupPlan")] + public partial class BackupPlan : global::Pulumi.CustomResource + { + /// + /// The ID of the backup plan + /// + [Output("backupPlanId")] + public Output BackupPlanId { get; private set; } = null!; + + /// + /// The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message. + /// Structure is documented below. + /// + [Output("backupRules")] + public Output> BackupRules { get; private set; } = null!; + + /// + /// Backup vault where the backups gets stored using this Backup plan. + /// + [Output("backupVault")] + public Output BackupVault { get; private set; } = null!; + + /// + /// The Google Cloud Platform Service Account to be used by the BackupVault for taking backups. + /// + [Output("backupVaultServiceAccount")] + public Output BackupVaultServiceAccount { get; private set; } = null!; + + /// + /// When the `BackupPlan` was created. + /// + [Output("createTime")] + public Output CreateTime { get; private set; } = null!; + + /// + /// The description allows for additional details about 'BackupPlan' and its use cases to be provided. + /// + [Output("description")] + public Output Description { get; private set; } = null!; + + /// + /// The location for the backup plan + /// + [Output("location")] + public Output Location { get; private set; } = null!; + + /// + /// The name of backup plan resource created + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + [Output("project")] + public Output Project { get; private set; } = null!; + + /// + /// The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket". + /// + [Output("resourceType")] + public Output ResourceType { get; private set; } = null!; + + /// + /// When the `BackupPlan` was last updated. + /// + [Output("updateTime")] + public Output UpdateTime { get; private set; } = null!; + + + /// + /// Create a BackupPlan resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public BackupPlan(string name, BackupPlanArgs args, CustomResourceOptions? options = null) + : base("gcp:backupdisasterrecovery/backupPlan:BackupPlan", name, args ?? new BackupPlanArgs(), MakeResourceOptions(options, "")) + { + } + + private BackupPlan(string name, Input id, BackupPlanState? state = null, CustomResourceOptions? options = null) + : base("gcp:backupdisasterrecovery/backupPlan:BackupPlan", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing BackupPlan resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static BackupPlan Get(string name, Input id, BackupPlanState? state = null, CustomResourceOptions? options = null) + { + return new BackupPlan(name, id, state, options); + } + } + + public sealed class BackupPlanArgs : global::Pulumi.ResourceArgs + { + /// + /// The ID of the backup plan + /// + [Input("backupPlanId", required: true)] + public Input BackupPlanId { get; set; } = null!; + + [Input("backupRules", required: true)] + private InputList? _backupRules; + + /// + /// The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message. + /// Structure is documented below. + /// + public InputList BackupRules + { + get => _backupRules ?? (_backupRules = new InputList()); + set => _backupRules = value; + } + + /// + /// Backup vault where the backups gets stored using this Backup plan. + /// + [Input("backupVault", required: true)] + public Input BackupVault { get; set; } = null!; + + /// + /// The description allows for additional details about 'BackupPlan' and its use cases to be provided. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// The location for the backup plan + /// + [Input("location", required: true)] + public Input Location { get; set; } = null!; + + [Input("project")] + public Input? Project { get; set; } + + /// + /// The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket". + /// + [Input("resourceType", required: true)] + public Input ResourceType { get; set; } = null!; + + public BackupPlanArgs() + { + } + public static new BackupPlanArgs Empty => new BackupPlanArgs(); + } + + public sealed class BackupPlanState : global::Pulumi.ResourceArgs + { + /// + /// The ID of the backup plan + /// + [Input("backupPlanId")] + public Input? BackupPlanId { get; set; } + + [Input("backupRules")] + private InputList? _backupRules; + + /// + /// The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message. + /// Structure is documented below. + /// + public InputList BackupRules + { + get => _backupRules ?? (_backupRules = new InputList()); + set => _backupRules = value; + } + + /// + /// Backup vault where the backups gets stored using this Backup plan. + /// + [Input("backupVault")] + public Input? BackupVault { get; set; } + + /// + /// The Google Cloud Platform Service Account to be used by the BackupVault for taking backups. + /// + [Input("backupVaultServiceAccount")] + public Input? BackupVaultServiceAccount { get; set; } + + /// + /// When the `BackupPlan` was created. + /// + [Input("createTime")] + public Input? CreateTime { get; set; } + + /// + /// The description allows for additional details about 'BackupPlan' and its use cases to be provided. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// The location for the backup plan + /// + [Input("location")] + public Input? Location { get; set; } + + /// + /// The name of backup plan resource created + /// + [Input("name")] + public Input? Name { get; set; } + + [Input("project")] + public Input? Project { get; set; } + + /// + /// The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket". + /// + [Input("resourceType")] + public Input? ResourceType { get; set; } + + /// + /// When the `BackupPlan` was last updated. + /// + [Input("updateTime")] + public Input? UpdateTime { get; set; } + + public BackupPlanState() + { + } + public static new BackupPlanState Empty => new BackupPlanState(); + } +} diff --git a/sdk/dotnet/BackupDisasterRecovery/BackupPlanAssociation.cs b/sdk/dotnet/BackupDisasterRecovery/BackupPlanAssociation.cs new file mode 100644 index 0000000000..616c003935 --- /dev/null +++ b/sdk/dotnet/BackupDisasterRecovery/BackupPlanAssociation.cs @@ -0,0 +1,408 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.BackupDisasterRecovery +{ + /// + /// ## Example Usage + /// + /// ### Backup Dr Bpa + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var mySA = new Gcp.ServiceAccount.Account("mySA", new() + /// { + /// AccountId = "my-custom", + /// DisplayName = "Custom SA for VM Instance", + /// }); + /// + /// var myinstance = new Gcp.Compute.Instance("myinstance", new() + /// { + /// NetworkInterfaces = new[] + /// { + /// new Gcp.Compute.Inputs.InstanceNetworkInterfaceArgs + /// { + /// AccessConfigs = new[] + /// { + /// null, + /// }, + /// Network = "default", + /// }, + /// }, + /// Name = "test-instance", + /// MachineType = "n2-standard-2", + /// Zone = "us-central1-a", + /// BootDisk = new Gcp.Compute.Inputs.InstanceBootDiskArgs + /// { + /// InitializeParams = new Gcp.Compute.Inputs.InstanceBootDiskInitializeParamsArgs + /// { + /// Image = "debian-cloud/debian-11", + /// Labels = + /// { + /// { "my_label", "value" }, + /// }, + /// }, + /// }, + /// ScratchDisks = new[] + /// { + /// new Gcp.Compute.Inputs.InstanceScratchDiskArgs + /// { + /// Interface = "NVME", + /// }, + /// }, + /// ServiceAccount = new Gcp.Compute.Inputs.InstanceServiceAccountArgs + /// { + /// Email = mySA.Email, + /// Scopes = new[] + /// { + /// "cloud-platform", + /// }, + /// }, + /// }); + /// + /// var bv1 = new Gcp.BackupDisasterRecovery.BackupVault("bv1", new() + /// { + /// Location = "us-central1", + /// BackupVaultId = "bv-bpa", + /// BackupMinimumEnforcedRetentionDuration = "100000s", + /// ForceDelete = true, + /// }); + /// + /// var bp1 = new Gcp.BackupDisasterRecovery.BackupPlan("bp1", new() + /// { + /// Location = "us-central1", + /// BackupPlanId = "bp-bpa-test", + /// ResourceType = "compute.googleapis.com/Instance", + /// BackupVault = bv1.Id, + /// BackupRules = new[] + /// { + /// new Gcp.BackupDisasterRecovery.Inputs.BackupPlanBackupRuleArgs + /// { + /// RuleId = "rule-1", + /// BackupRetentionDays = 2, + /// StandardSchedule = new Gcp.BackupDisasterRecovery.Inputs.BackupPlanBackupRuleStandardScheduleArgs + /// { + /// RecurrenceType = "HOURLY", + /// HourlyFrequency = 6, + /// TimeZone = "UTC", + /// BackupWindow = new Gcp.BackupDisasterRecovery.Inputs.BackupPlanBackupRuleStandardScheduleBackupWindowArgs + /// { + /// StartHourOfDay = 12, + /// EndHourOfDay = 18, + /// }, + /// }, + /// }, + /// }, + /// }); + /// + /// var my_backup_plan_association = new Gcp.BackupDisasterRecovery.BackupPlanAssociation("my-backup-plan-association", new() + /// { + /// Location = "us-central1", + /// ResourceType = "compute.googleapis.com/Instance", + /// BackupPlanAssociationId = "my-bpa", + /// Resource = myinstance.Id, + /// BackupPlan = bp1.Name, + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// BackupPlanAssociation can be imported using any of these accepted formats: + /// + /// * `projects/{{project}}/locations/{{location}}/backupPlanAssociations/{{backup_plan_association_id}}` + /// + /// * `{{project}}/{{location}}/{{backup_plan_association_id}}` + /// + /// * `{{location}}/{{backup_plan_association_id}}` + /// + /// When using the `pulumi import` command, BackupPlanAssociation can be imported using one of the formats above. For example: + /// + /// ```sh + /// $ pulumi import gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation default projects/{{project}}/locations/{{location}}/backupPlanAssociations/{{backup_plan_association_id}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation default {{project}}/{{location}}/{{backup_plan_association_id}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation default {{location}}/{{backup_plan_association_id}} + /// ``` + /// + [GcpResourceType("gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation")] + public partial class BackupPlanAssociation : global::Pulumi.CustomResource + { + /// + /// The BP with which resource needs to be created + /// + [Output("backupPlan")] + public Output BackupPlan { get; private set; } = null!; + + /// + /// The id of backupplan association + /// + /// + /// - - - + /// + [Output("backupPlanAssociationId")] + public Output BackupPlanAssociationId { get; private set; } = null!; + + /// + /// The time when the instance was created + /// + [Output("createTime")] + public Output CreateTime { get; private set; } = null!; + + /// + /// Resource name of data source which will be used as storage location for backups taken + /// + [Output("dataSource")] + public Output DataSource { get; private set; } = null!; + + /// + /// The point in time when the last successful backup was captured from the source + /// + [Output("lastSuccessfulBackupConsistencyTime")] + public Output LastSuccessfulBackupConsistencyTime { get; private set; } = null!; + + /// + /// The location for the backupplan association + /// + [Output("location")] + public Output Location { get; private set; } = null!; + + /// + /// The name of backup plan association resource created + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. + /// + [Output("project")] + public Output Project { get; private set; } = null!; + + /// + /// The resource for which BPA needs to be created + /// + [Output("resource")] + public Output Resource { get; private set; } = null!; + + /// + /// The resource type of workload on which backupplan is applied + /// + [Output("resourceType")] + public Output ResourceType { get; private set; } = null!; + + /// + /// Message for rules config info + /// Structure is documented below. + /// + [Output("rulesConfigInfos")] + public Output> RulesConfigInfos { get; private set; } = null!; + + /// + /// The time when the instance was updated. + /// + [Output("updateTime")] + public Output UpdateTime { get; private set; } = null!; + + + /// + /// Create a BackupPlanAssociation resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public BackupPlanAssociation(string name, BackupPlanAssociationArgs args, CustomResourceOptions? options = null) + : base("gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation", name, args ?? new BackupPlanAssociationArgs(), MakeResourceOptions(options, "")) + { + } + + private BackupPlanAssociation(string name, Input id, BackupPlanAssociationState? state = null, CustomResourceOptions? options = null) + : base("gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing BackupPlanAssociation resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static BackupPlanAssociation Get(string name, Input id, BackupPlanAssociationState? state = null, CustomResourceOptions? options = null) + { + return new BackupPlanAssociation(name, id, state, options); + } + } + + public sealed class BackupPlanAssociationArgs : global::Pulumi.ResourceArgs + { + /// + /// The BP with which resource needs to be created + /// + [Input("backupPlan", required: true)] + public Input BackupPlan { get; set; } = null!; + + /// + /// The id of backupplan association + /// + /// + /// - - - + /// + [Input("backupPlanAssociationId", required: true)] + public Input BackupPlanAssociationId { get; set; } = null!; + + /// + /// The location for the backupplan association + /// + [Input("location", required: true)] + public Input Location { get; set; } = null!; + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. + /// + [Input("project")] + public Input? Project { get; set; } + + /// + /// The resource for which BPA needs to be created + /// + [Input("resource", required: true)] + public Input Resource { get; set; } = null!; + + /// + /// The resource type of workload on which backupplan is applied + /// + [Input("resourceType", required: true)] + public Input ResourceType { get; set; } = null!; + + public BackupPlanAssociationArgs() + { + } + public static new BackupPlanAssociationArgs Empty => new BackupPlanAssociationArgs(); + } + + public sealed class BackupPlanAssociationState : global::Pulumi.ResourceArgs + { + /// + /// The BP with which resource needs to be created + /// + [Input("backupPlan")] + public Input? BackupPlan { get; set; } + + /// + /// The id of backupplan association + /// + /// + /// - - - + /// + [Input("backupPlanAssociationId")] + public Input? BackupPlanAssociationId { get; set; } + + /// + /// The time when the instance was created + /// + [Input("createTime")] + public Input? CreateTime { get; set; } + + /// + /// Resource name of data source which will be used as storage location for backups taken + /// + [Input("dataSource")] + public Input? DataSource { get; set; } + + /// + /// The point in time when the last successful backup was captured from the source + /// + [Input("lastSuccessfulBackupConsistencyTime")] + public Input? LastSuccessfulBackupConsistencyTime { get; set; } + + /// + /// The location for the backupplan association + /// + [Input("location")] + public Input? Location { get; set; } + + /// + /// The name of backup plan association resource created + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. + /// + [Input("project")] + public Input? Project { get; set; } + + /// + /// The resource for which BPA needs to be created + /// + [Input("resource")] + public Input? Resource { get; set; } + + /// + /// The resource type of workload on which backupplan is applied + /// + [Input("resourceType")] + public Input? ResourceType { get; set; } + + [Input("rulesConfigInfos")] + private InputList? _rulesConfigInfos; + + /// + /// Message for rules config info + /// Structure is documented below. + /// + public InputList RulesConfigInfos + { + get => _rulesConfigInfos ?? (_rulesConfigInfos = new InputList()); + set => _rulesConfigInfos = value; + } + + /// + /// The time when the instance was updated. + /// + [Input("updateTime")] + public Input? UpdateTime { get; set; } + + public BackupPlanAssociationState() + { + } + public static new BackupPlanAssociationState Empty => new BackupPlanAssociationState(); + } +} diff --git a/sdk/dotnet/BackupDisasterRecovery/BackupVault.cs b/sdk/dotnet/BackupDisasterRecovery/BackupVault.cs index 3ef8667ea8..ff3f063eda 100644 --- a/sdk/dotnet/BackupDisasterRecovery/BackupVault.cs +++ b/sdk/dotnet/BackupDisasterRecovery/BackupVault.cs @@ -39,7 +39,8 @@ namespace Pulumi.Gcp.BackupDisasterRecovery /// { "annotations2", "baz1" }, /// }, /// ForceUpdate = true, - /// ForceDelete = true, + /// IgnoreInactiveDatasources = true, + /// IgnoreBackupPlanReferences = true, /// AllowMissing = true, /// }); /// @@ -149,9 +150,12 @@ public partial class BackupVault : global::Pulumi.CustomResource public Output Etag { get; private set; } = null!; /// + /// (Optional, Deprecated) /// If set, the following restrictions against deletion of the backup vault instance can be overridden: /// * deletion of a backup vault instance containing no backups, but still containing empty datasources. /// * deletion of a backup vault instance that is being referenced by an active backup plan. + /// + /// > **Warning:** `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. /// [Output("forceDelete")] public Output ForceDelete { get; private set; } = null!; @@ -165,6 +169,20 @@ public partial class BackupVault : global::Pulumi.CustomResource [Output("forceUpdate")] public Output ForceUpdate { get; private set; } = null!; + /// + /// If set, the following restrictions against deletion of the backup vault instance can be overridden: + /// * deletion of a backup vault instance that is being referenced by an active backup plan. + /// + [Output("ignoreBackupPlanReferences")] + public Output IgnoreBackupPlanReferences { get; private set; } = null!; + + /// + /// If set, the following restrictions against deletion of the backup vault instance can be overridden: + /// * deletion of a backup vault instance containing no backups, but still containing empty datasources. + /// + [Output("ignoreInactiveDatasources")] + public Output IgnoreInactiveDatasources { get; private set; } = null!; + /// /// Optional. Resource labels to represent user provided metadata. /// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. @@ -335,9 +353,12 @@ public InputMap Annotations public Input? EffectiveTime { get; set; } /// + /// (Optional, Deprecated) /// If set, the following restrictions against deletion of the backup vault instance can be overridden: /// * deletion of a backup vault instance containing no backups, but still containing empty datasources. /// * deletion of a backup vault instance that is being referenced by an active backup plan. + /// + /// > **Warning:** `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. /// [Input("forceDelete")] public Input? ForceDelete { get; set; } @@ -351,6 +372,20 @@ public InputMap Annotations [Input("forceUpdate")] public Input? ForceUpdate { get; set; } + /// + /// If set, the following restrictions against deletion of the backup vault instance can be overridden: + /// * deletion of a backup vault instance that is being referenced by an active backup plan. + /// + [Input("ignoreBackupPlanReferences")] + public Input? IgnoreBackupPlanReferences { get; set; } + + /// + /// If set, the following restrictions against deletion of the backup vault instance can be overridden: + /// * deletion of a backup vault instance containing no backups, but still containing empty datasources. + /// + [Input("ignoreInactiveDatasources")] + public Input? IgnoreInactiveDatasources { get; set; } + [Input("labels")] private InputMap? _labels; @@ -483,9 +518,12 @@ public InputMap EffectiveLabels public Input? Etag { get; set; } /// + /// (Optional, Deprecated) /// If set, the following restrictions against deletion of the backup vault instance can be overridden: /// * deletion of a backup vault instance containing no backups, but still containing empty datasources. /// * deletion of a backup vault instance that is being referenced by an active backup plan. + /// + /// > **Warning:** `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. /// [Input("forceDelete")] public Input? ForceDelete { get; set; } @@ -499,6 +537,20 @@ public InputMap EffectiveLabels [Input("forceUpdate")] public Input? ForceUpdate { get; set; } + /// + /// If set, the following restrictions against deletion of the backup vault instance can be overridden: + /// * deletion of a backup vault instance that is being referenced by an active backup plan. + /// + [Input("ignoreBackupPlanReferences")] + public Input? IgnoreBackupPlanReferences { get; set; } + + /// + /// If set, the following restrictions against deletion of the backup vault instance can be overridden: + /// * deletion of a backup vault instance containing no backups, but still containing empty datasources. + /// + [Input("ignoreInactiveDatasources")] + public Input? IgnoreInactiveDatasources { get; set; } + [Input("labels")] private InputMap? _labels; diff --git a/sdk/dotnet/BackupDisasterRecovery/GetBackupPlan.cs b/sdk/dotnet/BackupDisasterRecovery/GetBackupPlan.cs new file mode 100644 index 0000000000..9b069da18f --- /dev/null +++ b/sdk/dotnet/BackupDisasterRecovery/GetBackupPlan.cs @@ -0,0 +1,116 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.BackupDisasterRecovery +{ + public static class GetBackupPlan + { + public static Task InvokeAsync(GetBackupPlanArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("gcp:backupdisasterrecovery/getBackupPlan:getBackupPlan", args ?? new GetBackupPlanArgs(), options.WithDefaults()); + + public static Output Invoke(GetBackupPlanInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("gcp:backupdisasterrecovery/getBackupPlan:getBackupPlan", args ?? new GetBackupPlanInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetBackupPlanArgs : global::Pulumi.InvokeArgs + { + [Input("backupPlanId", required: true)] + public string BackupPlanId { get; set; } = null!; + + [Input("location", required: true)] + public string Location { get; set; } = null!; + + [Input("project")] + public string? Project { get; set; } + + public GetBackupPlanArgs() + { + } + public static new GetBackupPlanArgs Empty => new GetBackupPlanArgs(); + } + + public sealed class GetBackupPlanInvokeArgs : global::Pulumi.InvokeArgs + { + [Input("backupPlanId", required: true)] + public Input BackupPlanId { get; set; } = null!; + + [Input("location", required: true)] + public Input Location { get; set; } = null!; + + [Input("project")] + public Input? Project { get; set; } + + public GetBackupPlanInvokeArgs() + { + } + public static new GetBackupPlanInvokeArgs Empty => new GetBackupPlanInvokeArgs(); + } + + + [OutputType] + public sealed class GetBackupPlanResult + { + public readonly string BackupPlanId; + public readonly ImmutableArray BackupRules; + public readonly string BackupVault; + public readonly string BackupVaultServiceAccount; + public readonly string CreateTime; + public readonly string Description; + /// + /// The provider-assigned unique ID for this managed resource. + /// + public readonly string Id; + public readonly string Location; + public readonly string Name; + public readonly string? Project; + public readonly string ResourceType; + public readonly string UpdateTime; + + [OutputConstructor] + private GetBackupPlanResult( + string backupPlanId, + + ImmutableArray backupRules, + + string backupVault, + + string backupVaultServiceAccount, + + string createTime, + + string description, + + string id, + + string location, + + string name, + + string? project, + + string resourceType, + + string updateTime) + { + BackupPlanId = backupPlanId; + BackupRules = backupRules; + BackupVault = backupVault; + BackupVaultServiceAccount = backupVaultServiceAccount; + CreateTime = createTime; + Description = description; + Id = id; + Location = location; + Name = name; + Project = project; + ResourceType = resourceType; + UpdateTime = updateTime; + } + } +} diff --git a/sdk/dotnet/BackupDisasterRecovery/GetBackupPlanAssociation.cs b/sdk/dotnet/BackupDisasterRecovery/GetBackupPlanAssociation.cs new file mode 100644 index 0000000000..63b98206ee --- /dev/null +++ b/sdk/dotnet/BackupDisasterRecovery/GetBackupPlanAssociation.cs @@ -0,0 +1,176 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.BackupDisasterRecovery +{ + public static class GetBackupPlanAssociation + { + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var my_backupplan_association = Gcp.BackupDisasterRecovery.GetBackupPlanAssociation.Invoke(new() + /// { + /// Location = "us-central1", + /// BackupPlanAssociationId = "bpa-id", + /// }); + /// + /// }); + /// ``` + /// + public static Task InvokeAsync(GetBackupPlanAssociationArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("gcp:backupdisasterrecovery/getBackupPlanAssociation:getBackupPlanAssociation", args ?? new GetBackupPlanAssociationArgs(), options.WithDefaults()); + + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var my_backupplan_association = Gcp.BackupDisasterRecovery.GetBackupPlanAssociation.Invoke(new() + /// { + /// Location = "us-central1", + /// BackupPlanAssociationId = "bpa-id", + /// }); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetBackupPlanAssociationInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("gcp:backupdisasterrecovery/getBackupPlanAssociation:getBackupPlanAssociation", args ?? new GetBackupPlanAssociationInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetBackupPlanAssociationArgs : global::Pulumi.InvokeArgs + { + /// + /// The id of Backupplan association resource. + /// + /// - - - + /// + [Input("backupPlanAssociationId", required: true)] + public string BackupPlanAssociationId { get; set; } = null!; + + /// + /// The location in which the Backupplan association resource belongs. + /// + [Input("location", required: true)] + public string Location { get; set; } = null!; + + [Input("project")] + public string? Project { get; set; } + + public GetBackupPlanAssociationArgs() + { + } + public static new GetBackupPlanAssociationArgs Empty => new GetBackupPlanAssociationArgs(); + } + + public sealed class GetBackupPlanAssociationInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The id of Backupplan association resource. + /// + /// - - - + /// + [Input("backupPlanAssociationId", required: true)] + public Input BackupPlanAssociationId { get; set; } = null!; + + /// + /// The location in which the Backupplan association resource belongs. + /// + [Input("location", required: true)] + public Input Location { get; set; } = null!; + + [Input("project")] + public Input? Project { get; set; } + + public GetBackupPlanAssociationInvokeArgs() + { + } + public static new GetBackupPlanAssociationInvokeArgs Empty => new GetBackupPlanAssociationInvokeArgs(); + } + + + [OutputType] + public sealed class GetBackupPlanAssociationResult + { + public readonly string BackupPlan; + public readonly string BackupPlanAssociationId; + public readonly string CreateTime; + public readonly string DataSource; + /// + /// The provider-assigned unique ID for this managed resource. + /// + public readonly string Id; + public readonly string LastSuccessfulBackupConsistencyTime; + public readonly string Location; + public readonly string Name; + public readonly string? Project; + public readonly string Resource; + public readonly string ResourceType; + public readonly ImmutableArray RulesConfigInfos; + public readonly string UpdateTime; + + [OutputConstructor] + private GetBackupPlanAssociationResult( + string backupPlan, + + string backupPlanAssociationId, + + string createTime, + + string dataSource, + + string id, + + string lastSuccessfulBackupConsistencyTime, + + string location, + + string name, + + string? project, + + string resource, + + string resourceType, + + ImmutableArray rulesConfigInfos, + + string updateTime) + { + BackupPlan = backupPlan; + BackupPlanAssociationId = backupPlanAssociationId; + CreateTime = createTime; + DataSource = dataSource; + Id = id; + LastSuccessfulBackupConsistencyTime = lastSuccessfulBackupConsistencyTime; + Location = location; + Name = name; + Project = project; + Resource = resource; + ResourceType = resourceType; + RulesConfigInfos = rulesConfigInfos; + UpdateTime = updateTime; + } + } +} diff --git a/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanAssociationRulesConfigInfoArgs.cs b/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanAssociationRulesConfigInfoArgs.cs new file mode 100644 index 0000000000..db2c13afb8 --- /dev/null +++ b/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanAssociationRulesConfigInfoArgs.cs @@ -0,0 +1,48 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.BackupDisasterRecovery.Inputs +{ + + public sealed class BackupPlanAssociationRulesConfigInfoArgs : global::Pulumi.ResourceArgs + { + [Input("lastBackupErrors")] + private InputList? _lastBackupErrors; + + /// + /// (Output) + /// google.rpc.Status object to store the last backup error + /// Structure is documented below. + /// + public InputList LastBackupErrors + { + get => _lastBackupErrors ?? (_lastBackupErrors = new InputList()); + set => _lastBackupErrors = value; + } + + /// + /// (Output) + /// State of last backup taken. + /// + [Input("lastBackupState")] + public Input? LastBackupState { get; set; } + + /// + /// (Output) + /// Backup Rule id fetched from backup plan. + /// + [Input("ruleId")] + public Input? RuleId { get; set; } + + public BackupPlanAssociationRulesConfigInfoArgs() + { + } + public static new BackupPlanAssociationRulesConfigInfoArgs Empty => new BackupPlanAssociationRulesConfigInfoArgs(); + } +} diff --git a/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanAssociationRulesConfigInfoGetArgs.cs b/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanAssociationRulesConfigInfoGetArgs.cs new file mode 100644 index 0000000000..a7b3df9d97 --- /dev/null +++ b/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanAssociationRulesConfigInfoGetArgs.cs @@ -0,0 +1,48 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.BackupDisasterRecovery.Inputs +{ + + public sealed class BackupPlanAssociationRulesConfigInfoGetArgs : global::Pulumi.ResourceArgs + { + [Input("lastBackupErrors")] + private InputList? _lastBackupErrors; + + /// + /// (Output) + /// google.rpc.Status object to store the last backup error + /// Structure is documented below. + /// + public InputList LastBackupErrors + { + get => _lastBackupErrors ?? (_lastBackupErrors = new InputList()); + set => _lastBackupErrors = value; + } + + /// + /// (Output) + /// State of last backup taken. + /// + [Input("lastBackupState")] + public Input? LastBackupState { get; set; } + + /// + /// (Output) + /// Backup Rule id fetched from backup plan. + /// + [Input("ruleId")] + public Input? RuleId { get; set; } + + public BackupPlanAssociationRulesConfigInfoGetArgs() + { + } + public static new BackupPlanAssociationRulesConfigInfoGetArgs Empty => new BackupPlanAssociationRulesConfigInfoGetArgs(); + } +} diff --git a/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs.cs b/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs.cs new file mode 100644 index 0000000000..f145eddf79 --- /dev/null +++ b/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.BackupDisasterRecovery.Inputs +{ + + public sealed class BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs : global::Pulumi.ResourceArgs + { + /// + /// (Output) + /// The status code, which should be an enum value of [google.rpc.Code] + /// + [Input("code")] + public Input? Code { get; set; } + + /// + /// (Output) + /// A developer-facing error message, which should be in English. + /// + [Input("message")] + public Input? Message { get; set; } + + public BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs() + { + } + public static new BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs Empty => new BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs(); + } +} diff --git a/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanAssociationRulesConfigInfoLastBackupErrorGetArgs.cs b/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanAssociationRulesConfigInfoLastBackupErrorGetArgs.cs new file mode 100644 index 0000000000..f4bae34efa --- /dev/null +++ b/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanAssociationRulesConfigInfoLastBackupErrorGetArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.BackupDisasterRecovery.Inputs +{ + + public sealed class BackupPlanAssociationRulesConfigInfoLastBackupErrorGetArgs : global::Pulumi.ResourceArgs + { + /// + /// (Output) + /// The status code, which should be an enum value of [google.rpc.Code] + /// + [Input("code")] + public Input? Code { get; set; } + + /// + /// (Output) + /// A developer-facing error message, which should be in English. + /// + [Input("message")] + public Input? Message { get; set; } + + public BackupPlanAssociationRulesConfigInfoLastBackupErrorGetArgs() + { + } + public static new BackupPlanAssociationRulesConfigInfoLastBackupErrorGetArgs Empty => new BackupPlanAssociationRulesConfigInfoLastBackupErrorGetArgs(); + } +} diff --git a/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanBackupRuleArgs.cs b/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanBackupRuleArgs.cs new file mode 100644 index 0000000000..8d099a06a3 --- /dev/null +++ b/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanBackupRuleArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.BackupDisasterRecovery.Inputs +{ + + public sealed class BackupPlanBackupRuleArgs : global::Pulumi.ResourceArgs + { + /// + /// Configures the duration for which backup data will be kept. The value should be greater than or equal to minimum enforced retention of the backup vault. + /// + [Input("backupRetentionDays", required: true)] + public Input BackupRetentionDays { get; set; } = null!; + + /// + /// The unique ID of this `BackupRule`. The `rule_id` is unique per `BackupPlan`. + /// + [Input("ruleId", required: true)] + public Input RuleId { get; set; } = null!; + + /// + /// StandardSchedule defines a schedule that runs within the confines of a defined window of days. + /// Structure is documented below. + /// + [Input("standardSchedule", required: true)] + public Input StandardSchedule { get; set; } = null!; + + public BackupPlanBackupRuleArgs() + { + } + public static new BackupPlanBackupRuleArgs Empty => new BackupPlanBackupRuleArgs(); + } +} diff --git a/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanBackupRuleGetArgs.cs b/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanBackupRuleGetArgs.cs new file mode 100644 index 0000000000..51913bb3c1 --- /dev/null +++ b/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanBackupRuleGetArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.BackupDisasterRecovery.Inputs +{ + + public sealed class BackupPlanBackupRuleGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Configures the duration for which backup data will be kept. The value should be greater than or equal to minimum enforced retention of the backup vault. + /// + [Input("backupRetentionDays", required: true)] + public Input BackupRetentionDays { get; set; } = null!; + + /// + /// The unique ID of this `BackupRule`. The `rule_id` is unique per `BackupPlan`. + /// + [Input("ruleId", required: true)] + public Input RuleId { get; set; } = null!; + + /// + /// StandardSchedule defines a schedule that runs within the confines of a defined window of days. + /// Structure is documented below. + /// + [Input("standardSchedule", required: true)] + public Input StandardSchedule { get; set; } = null!; + + public BackupPlanBackupRuleGetArgs() + { + } + public static new BackupPlanBackupRuleGetArgs Empty => new BackupPlanBackupRuleGetArgs(); + } +} diff --git a/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanBackupRuleStandardScheduleArgs.cs b/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanBackupRuleStandardScheduleArgs.cs new file mode 100644 index 0000000000..d7d242e04f --- /dev/null +++ b/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanBackupRuleStandardScheduleArgs.cs @@ -0,0 +1,93 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.BackupDisasterRecovery.Inputs +{ + + public sealed class BackupPlanBackupRuleStandardScheduleArgs : global::Pulumi.ResourceArgs + { + /// + /// A BackupWindow defines the window of the day during which backup jobs will run. Jobs are queued at the beginning of the window and will be marked as + /// `NOT_RUN` if they do not start by the end of the window. + /// Structure is documented below. + /// + [Input("backupWindow")] + public Input? BackupWindow { get; set; } + + [Input("daysOfMonths")] + private InputList? _daysOfMonths; + + /// + /// Specifies days of months like 1, 5, or 14 on which jobs will run. + /// + public InputList DaysOfMonths + { + get => _daysOfMonths ?? (_daysOfMonths = new InputList()); + set => _daysOfMonths = value; + } + + [Input("daysOfWeeks")] + private InputList? _daysOfWeeks; + + /// + /// Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for `recurrence_type`, `WEEKLY` and is not applicable otherwise. + /// Each value may be one of: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`. + /// + public InputList DaysOfWeeks + { + get => _daysOfWeeks ?? (_daysOfWeeks = new InputList()); + set => _daysOfWeeks = value; + } + + /// + /// Specifies frequency for hourly backups. An hourly frequency of 2 means jobs will run every 2 hours from start time till end time defined. + /// This is required for `recurrence_type`, `HOURLY` and is not applicable otherwise. + /// + [Input("hourlyFrequency")] + public Input? HourlyFrequency { get; set; } + + [Input("months")] + private InputList? _months; + + /// + /// Specifies values of months + /// Each value may be one of: `MONTH_UNSPECIFIED`, `JANUARY`, `FEBRUARY`, `MARCH`, `APRIL`, `MAY`, `JUNE`, `JULY`, `AUGUST`, `SEPTEMBER`, `OCTOBER`, `NOVEMBER`, `DECEMBER`. + /// + public InputList Months + { + get => _months ?? (_months = new InputList()); + set => _months = value; + } + + /// + /// RecurrenceType enumerates the applicable periodicity for the schedule. + /// Possible values are: `HOURLY`, `DAILY`, `WEEKLY`, `MONTHLY`, `YEARLY`. + /// + [Input("recurrenceType", required: true)] + public Input RecurrenceType { get; set; } = null!; + + /// + /// The time zone to be used when interpreting the schedule. + /// + [Input("timeZone", required: true)] + public Input TimeZone { get; set; } = null!; + + /// + /// Specifies a week day of the month like FIRST SUNDAY or LAST MONDAY, on which jobs will run. + /// Structure is documented below. + /// + [Input("weekDayOfMonth")] + public Input? WeekDayOfMonth { get; set; } + + public BackupPlanBackupRuleStandardScheduleArgs() + { + } + public static new BackupPlanBackupRuleStandardScheduleArgs Empty => new BackupPlanBackupRuleStandardScheduleArgs(); + } +} diff --git a/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanBackupRuleStandardScheduleBackupWindowArgs.cs b/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanBackupRuleStandardScheduleBackupWindowArgs.cs new file mode 100644 index 0000000000..f951772046 --- /dev/null +++ b/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanBackupRuleStandardScheduleBackupWindowArgs.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.BackupDisasterRecovery.Inputs +{ + + public sealed class BackupPlanBackupRuleStandardScheduleBackupWindowArgs : global::Pulumi.ResourceArgs + { + /// + /// The hour of the day (1-24) when the window ends, for example, if the value of end hour of the day is 10, that means the backup window end time is 10:00. + /// The end hour of the day should be greater than the start + /// + /// - - - + /// + [Input("endHourOfDay")] + public Input? EndHourOfDay { get; set; } + + /// + /// The hour of the day (0-23) when the window starts, for example, if the value of the start hour of the day is 6, that means the backup window starts at 6:00. + /// + [Input("startHourOfDay", required: true)] + public Input StartHourOfDay { get; set; } = null!; + + public BackupPlanBackupRuleStandardScheduleBackupWindowArgs() + { + } + public static new BackupPlanBackupRuleStandardScheduleBackupWindowArgs Empty => new BackupPlanBackupRuleStandardScheduleBackupWindowArgs(); + } +} diff --git a/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanBackupRuleStandardScheduleBackupWindowGetArgs.cs b/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanBackupRuleStandardScheduleBackupWindowGetArgs.cs new file mode 100644 index 0000000000..8cd6c83da8 --- /dev/null +++ b/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanBackupRuleStandardScheduleBackupWindowGetArgs.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.BackupDisasterRecovery.Inputs +{ + + public sealed class BackupPlanBackupRuleStandardScheduleBackupWindowGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The hour of the day (1-24) when the window ends, for example, if the value of end hour of the day is 10, that means the backup window end time is 10:00. + /// The end hour of the day should be greater than the start + /// + /// - - - + /// + [Input("endHourOfDay")] + public Input? EndHourOfDay { get; set; } + + /// + /// The hour of the day (0-23) when the window starts, for example, if the value of the start hour of the day is 6, that means the backup window starts at 6:00. + /// + [Input("startHourOfDay", required: true)] + public Input StartHourOfDay { get; set; } = null!; + + public BackupPlanBackupRuleStandardScheduleBackupWindowGetArgs() + { + } + public static new BackupPlanBackupRuleStandardScheduleBackupWindowGetArgs Empty => new BackupPlanBackupRuleStandardScheduleBackupWindowGetArgs(); + } +} diff --git a/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanBackupRuleStandardScheduleGetArgs.cs b/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanBackupRuleStandardScheduleGetArgs.cs new file mode 100644 index 0000000000..b31127364f --- /dev/null +++ b/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanBackupRuleStandardScheduleGetArgs.cs @@ -0,0 +1,93 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.BackupDisasterRecovery.Inputs +{ + + public sealed class BackupPlanBackupRuleStandardScheduleGetArgs : global::Pulumi.ResourceArgs + { + /// + /// A BackupWindow defines the window of the day during which backup jobs will run. Jobs are queued at the beginning of the window and will be marked as + /// `NOT_RUN` if they do not start by the end of the window. + /// Structure is documented below. + /// + [Input("backupWindow")] + public Input? BackupWindow { get; set; } + + [Input("daysOfMonths")] + private InputList? _daysOfMonths; + + /// + /// Specifies days of months like 1, 5, or 14 on which jobs will run. + /// + public InputList DaysOfMonths + { + get => _daysOfMonths ?? (_daysOfMonths = new InputList()); + set => _daysOfMonths = value; + } + + [Input("daysOfWeeks")] + private InputList? _daysOfWeeks; + + /// + /// Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for `recurrence_type`, `WEEKLY` and is not applicable otherwise. + /// Each value may be one of: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`. + /// + public InputList DaysOfWeeks + { + get => _daysOfWeeks ?? (_daysOfWeeks = new InputList()); + set => _daysOfWeeks = value; + } + + /// + /// Specifies frequency for hourly backups. An hourly frequency of 2 means jobs will run every 2 hours from start time till end time defined. + /// This is required for `recurrence_type`, `HOURLY` and is not applicable otherwise. + /// + [Input("hourlyFrequency")] + public Input? HourlyFrequency { get; set; } + + [Input("months")] + private InputList? _months; + + /// + /// Specifies values of months + /// Each value may be one of: `MONTH_UNSPECIFIED`, `JANUARY`, `FEBRUARY`, `MARCH`, `APRIL`, `MAY`, `JUNE`, `JULY`, `AUGUST`, `SEPTEMBER`, `OCTOBER`, `NOVEMBER`, `DECEMBER`. + /// + public InputList Months + { + get => _months ?? (_months = new InputList()); + set => _months = value; + } + + /// + /// RecurrenceType enumerates the applicable periodicity for the schedule. + /// Possible values are: `HOURLY`, `DAILY`, `WEEKLY`, `MONTHLY`, `YEARLY`. + /// + [Input("recurrenceType", required: true)] + public Input RecurrenceType { get; set; } = null!; + + /// + /// The time zone to be used when interpreting the schedule. + /// + [Input("timeZone", required: true)] + public Input TimeZone { get; set; } = null!; + + /// + /// Specifies a week day of the month like FIRST SUNDAY or LAST MONDAY, on which jobs will run. + /// Structure is documented below. + /// + [Input("weekDayOfMonth")] + public Input? WeekDayOfMonth { get; set; } + + public BackupPlanBackupRuleStandardScheduleGetArgs() + { + } + public static new BackupPlanBackupRuleStandardScheduleGetArgs Empty => new BackupPlanBackupRuleStandardScheduleGetArgs(); + } +} diff --git a/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs.cs b/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs.cs new file mode 100644 index 0000000000..85be19fd77 --- /dev/null +++ b/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.BackupDisasterRecovery.Inputs +{ + + public sealed class BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs : global::Pulumi.ResourceArgs + { + /// + /// Specifies the day of the week. + /// Possible values are: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`. + /// + [Input("dayOfWeek", required: true)] + public Input DayOfWeek { get; set; } = null!; + + /// + /// WeekOfMonth enumerates possible weeks in the month, e.g. the first, third, or last week of the month. + /// Possible values are: `WEEK_OF_MONTH_UNSPECIFIED`, `FIRST`, `SECOND`, `THIRD`, `FOURTH`, `LAST`. + /// + [Input("weekOfMonth", required: true)] + public Input WeekOfMonth { get; set; } = null!; + + public BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs() + { + } + public static new BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs Empty => new BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs(); + } +} diff --git a/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanBackupRuleStandardScheduleWeekDayOfMonthGetArgs.cs b/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanBackupRuleStandardScheduleWeekDayOfMonthGetArgs.cs new file mode 100644 index 0000000000..f8acd2e1dc --- /dev/null +++ b/sdk/dotnet/BackupDisasterRecovery/Inputs/BackupPlanBackupRuleStandardScheduleWeekDayOfMonthGetArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.BackupDisasterRecovery.Inputs +{ + + public sealed class BackupPlanBackupRuleStandardScheduleWeekDayOfMonthGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Specifies the day of the week. + /// Possible values are: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`. + /// + [Input("dayOfWeek", required: true)] + public Input DayOfWeek { get; set; } = null!; + + /// + /// WeekOfMonth enumerates possible weeks in the month, e.g. the first, third, or last week of the month. + /// Possible values are: `WEEK_OF_MONTH_UNSPECIFIED`, `FIRST`, `SECOND`, `THIRD`, `FOURTH`, `LAST`. + /// + [Input("weekOfMonth", required: true)] + public Input WeekOfMonth { get; set; } = null!; + + public BackupPlanBackupRuleStandardScheduleWeekDayOfMonthGetArgs() + { + } + public static new BackupPlanBackupRuleStandardScheduleWeekDayOfMonthGetArgs Empty => new BackupPlanBackupRuleStandardScheduleWeekDayOfMonthGetArgs(); + } +} diff --git a/sdk/dotnet/BackupDisasterRecovery/Outputs/BackupPlanAssociationRulesConfigInfo.cs b/sdk/dotnet/BackupDisasterRecovery/Outputs/BackupPlanAssociationRulesConfigInfo.cs new file mode 100644 index 0000000000..518e841736 --- /dev/null +++ b/sdk/dotnet/BackupDisasterRecovery/Outputs/BackupPlanAssociationRulesConfigInfo.cs @@ -0,0 +1,46 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.BackupDisasterRecovery.Outputs +{ + + [OutputType] + public sealed class BackupPlanAssociationRulesConfigInfo + { + /// + /// (Output) + /// google.rpc.Status object to store the last backup error + /// Structure is documented below. + /// + public readonly ImmutableArray LastBackupErrors; + /// + /// (Output) + /// State of last backup taken. + /// + public readonly string? LastBackupState; + /// + /// (Output) + /// Backup Rule id fetched from backup plan. + /// + public readonly string? RuleId; + + [OutputConstructor] + private BackupPlanAssociationRulesConfigInfo( + ImmutableArray lastBackupErrors, + + string? lastBackupState, + + string? ruleId) + { + LastBackupErrors = lastBackupErrors; + LastBackupState = lastBackupState; + RuleId = ruleId; + } + } +} diff --git a/sdk/dotnet/BackupDisasterRecovery/Outputs/BackupPlanAssociationRulesConfigInfoLastBackupError.cs b/sdk/dotnet/BackupDisasterRecovery/Outputs/BackupPlanAssociationRulesConfigInfoLastBackupError.cs new file mode 100644 index 0000000000..c17a5ecb8e --- /dev/null +++ b/sdk/dotnet/BackupDisasterRecovery/Outputs/BackupPlanAssociationRulesConfigInfoLastBackupError.cs @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.BackupDisasterRecovery.Outputs +{ + + [OutputType] + public sealed class BackupPlanAssociationRulesConfigInfoLastBackupError + { + /// + /// (Output) + /// The status code, which should be an enum value of [google.rpc.Code] + /// + public readonly double? Code; + /// + /// (Output) + /// A developer-facing error message, which should be in English. + /// + public readonly string? Message; + + [OutputConstructor] + private BackupPlanAssociationRulesConfigInfoLastBackupError( + double? code, + + string? message) + { + Code = code; + Message = message; + } + } +} diff --git a/sdk/dotnet/BackupDisasterRecovery/Outputs/BackupPlanBackupRule.cs b/sdk/dotnet/BackupDisasterRecovery/Outputs/BackupPlanBackupRule.cs new file mode 100644 index 0000000000..7c3866d655 --- /dev/null +++ b/sdk/dotnet/BackupDisasterRecovery/Outputs/BackupPlanBackupRule.cs @@ -0,0 +1,43 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.BackupDisasterRecovery.Outputs +{ + + [OutputType] + public sealed class BackupPlanBackupRule + { + /// + /// Configures the duration for which backup data will be kept. The value should be greater than or equal to minimum enforced retention of the backup vault. + /// + public readonly int BackupRetentionDays; + /// + /// The unique ID of this `BackupRule`. The `rule_id` is unique per `BackupPlan`. + /// + public readonly string RuleId; + /// + /// StandardSchedule defines a schedule that runs within the confines of a defined window of days. + /// Structure is documented below. + /// + public readonly Outputs.BackupPlanBackupRuleStandardSchedule StandardSchedule; + + [OutputConstructor] + private BackupPlanBackupRule( + int backupRetentionDays, + + string ruleId, + + Outputs.BackupPlanBackupRuleStandardSchedule standardSchedule) + { + BackupRetentionDays = backupRetentionDays; + RuleId = ruleId; + StandardSchedule = standardSchedule; + } + } +} diff --git a/sdk/dotnet/BackupDisasterRecovery/Outputs/BackupPlanBackupRuleStandardSchedule.cs b/sdk/dotnet/BackupDisasterRecovery/Outputs/BackupPlanBackupRuleStandardSchedule.cs new file mode 100644 index 0000000000..686cea97a4 --- /dev/null +++ b/sdk/dotnet/BackupDisasterRecovery/Outputs/BackupPlanBackupRuleStandardSchedule.cs @@ -0,0 +1,84 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.BackupDisasterRecovery.Outputs +{ + + [OutputType] + public sealed class BackupPlanBackupRuleStandardSchedule + { + /// + /// A BackupWindow defines the window of the day during which backup jobs will run. Jobs are queued at the beginning of the window and will be marked as + /// `NOT_RUN` if they do not start by the end of the window. + /// Structure is documented below. + /// + public readonly Outputs.BackupPlanBackupRuleStandardScheduleBackupWindow? BackupWindow; + /// + /// Specifies days of months like 1, 5, or 14 on which jobs will run. + /// + public readonly ImmutableArray DaysOfMonths; + /// + /// Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for `recurrence_type`, `WEEKLY` and is not applicable otherwise. + /// Each value may be one of: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`. + /// + public readonly ImmutableArray DaysOfWeeks; + /// + /// Specifies frequency for hourly backups. An hourly frequency of 2 means jobs will run every 2 hours from start time till end time defined. + /// This is required for `recurrence_type`, `HOURLY` and is not applicable otherwise. + /// + public readonly int? HourlyFrequency; + /// + /// Specifies values of months + /// Each value may be one of: `MONTH_UNSPECIFIED`, `JANUARY`, `FEBRUARY`, `MARCH`, `APRIL`, `MAY`, `JUNE`, `JULY`, `AUGUST`, `SEPTEMBER`, `OCTOBER`, `NOVEMBER`, `DECEMBER`. + /// + public readonly ImmutableArray Months; + /// + /// RecurrenceType enumerates the applicable periodicity for the schedule. + /// Possible values are: `HOURLY`, `DAILY`, `WEEKLY`, `MONTHLY`, `YEARLY`. + /// + public readonly string RecurrenceType; + /// + /// The time zone to be used when interpreting the schedule. + /// + public readonly string TimeZone; + /// + /// Specifies a week day of the month like FIRST SUNDAY or LAST MONDAY, on which jobs will run. + /// Structure is documented below. + /// + public readonly Outputs.BackupPlanBackupRuleStandardScheduleWeekDayOfMonth? WeekDayOfMonth; + + [OutputConstructor] + private BackupPlanBackupRuleStandardSchedule( + Outputs.BackupPlanBackupRuleStandardScheduleBackupWindow? backupWindow, + + ImmutableArray daysOfMonths, + + ImmutableArray daysOfWeeks, + + int? hourlyFrequency, + + ImmutableArray months, + + string recurrenceType, + + string timeZone, + + Outputs.BackupPlanBackupRuleStandardScheduleWeekDayOfMonth? weekDayOfMonth) + { + BackupWindow = backupWindow; + DaysOfMonths = daysOfMonths; + DaysOfWeeks = daysOfWeeks; + HourlyFrequency = hourlyFrequency; + Months = months; + RecurrenceType = recurrenceType; + TimeZone = timeZone; + WeekDayOfMonth = weekDayOfMonth; + } + } +} diff --git a/sdk/dotnet/BackupDisasterRecovery/Outputs/BackupPlanBackupRuleStandardScheduleBackupWindow.cs b/sdk/dotnet/BackupDisasterRecovery/Outputs/BackupPlanBackupRuleStandardScheduleBackupWindow.cs new file mode 100644 index 0000000000..1b3d6969d3 --- /dev/null +++ b/sdk/dotnet/BackupDisasterRecovery/Outputs/BackupPlanBackupRuleStandardScheduleBackupWindow.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.BackupDisasterRecovery.Outputs +{ + + [OutputType] + public sealed class BackupPlanBackupRuleStandardScheduleBackupWindow + { + /// + /// The hour of the day (1-24) when the window ends, for example, if the value of end hour of the day is 10, that means the backup window end time is 10:00. + /// The end hour of the day should be greater than the start + /// + /// - - - + /// + public readonly int? EndHourOfDay; + /// + /// The hour of the day (0-23) when the window starts, for example, if the value of the start hour of the day is 6, that means the backup window starts at 6:00. + /// + public readonly int StartHourOfDay; + + [OutputConstructor] + private BackupPlanBackupRuleStandardScheduleBackupWindow( + int? endHourOfDay, + + int startHourOfDay) + { + EndHourOfDay = endHourOfDay; + StartHourOfDay = startHourOfDay; + } + } +} diff --git a/sdk/dotnet/BackupDisasterRecovery/Outputs/BackupPlanBackupRuleStandardScheduleWeekDayOfMonth.cs b/sdk/dotnet/BackupDisasterRecovery/Outputs/BackupPlanBackupRuleStandardScheduleWeekDayOfMonth.cs new file mode 100644 index 0000000000..e9f979764e --- /dev/null +++ b/sdk/dotnet/BackupDisasterRecovery/Outputs/BackupPlanBackupRuleStandardScheduleWeekDayOfMonth.cs @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.BackupDisasterRecovery.Outputs +{ + + [OutputType] + public sealed class BackupPlanBackupRuleStandardScheduleWeekDayOfMonth + { + /// + /// Specifies the day of the week. + /// Possible values are: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`. + /// + public readonly string DayOfWeek; + /// + /// WeekOfMonth enumerates possible weeks in the month, e.g. the first, third, or last week of the month. + /// Possible values are: `WEEK_OF_MONTH_UNSPECIFIED`, `FIRST`, `SECOND`, `THIRD`, `FOURTH`, `LAST`. + /// + public readonly string WeekOfMonth; + + [OutputConstructor] + private BackupPlanBackupRuleStandardScheduleWeekDayOfMonth( + string dayOfWeek, + + string weekOfMonth) + { + DayOfWeek = dayOfWeek; + WeekOfMonth = weekOfMonth; + } + } +} diff --git a/sdk/dotnet/BackupDisasterRecovery/Outputs/GetBackupPlanAssociationRulesConfigInfoLastBackupErrorResult.cs b/sdk/dotnet/BackupDisasterRecovery/Outputs/GetBackupPlanAssociationRulesConfigInfoLastBackupErrorResult.cs new file mode 100644 index 0000000000..f9d0fea5c6 --- /dev/null +++ b/sdk/dotnet/BackupDisasterRecovery/Outputs/GetBackupPlanAssociationRulesConfigInfoLastBackupErrorResult.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.BackupDisasterRecovery.Outputs +{ + + [OutputType] + public sealed class GetBackupPlanAssociationRulesConfigInfoLastBackupErrorResult + { + /// + /// The status code, which should be an enum value of [google.rpc.Code] + /// + public readonly double Code; + /// + /// A developer-facing error message, which should be in English. + /// + public readonly string Message; + + [OutputConstructor] + private GetBackupPlanAssociationRulesConfigInfoLastBackupErrorResult( + double code, + + string message) + { + Code = code; + Message = message; + } + } +} diff --git a/sdk/dotnet/BackupDisasterRecovery/Outputs/GetBackupPlanAssociationRulesConfigInfoResult.cs b/sdk/dotnet/BackupDisasterRecovery/Outputs/GetBackupPlanAssociationRulesConfigInfoResult.cs new file mode 100644 index 0000000000..cb2d8dd11e --- /dev/null +++ b/sdk/dotnet/BackupDisasterRecovery/Outputs/GetBackupPlanAssociationRulesConfigInfoResult.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.BackupDisasterRecovery.Outputs +{ + + [OutputType] + public sealed class GetBackupPlanAssociationRulesConfigInfoResult + { + /// + /// google.rpc.Status object to store the last backup error + /// + public readonly ImmutableArray LastBackupErrors; + /// + /// State of last backup taken. + /// + public readonly string LastBackupState; + /// + /// Backup Rule id fetched from backup plan. + /// + public readonly string RuleId; + + [OutputConstructor] + private GetBackupPlanAssociationRulesConfigInfoResult( + ImmutableArray lastBackupErrors, + + string lastBackupState, + + string ruleId) + { + LastBackupErrors = lastBackupErrors; + LastBackupState = lastBackupState; + RuleId = ruleId; + } + } +} diff --git a/sdk/dotnet/BackupDisasterRecovery/Outputs/GetBackupPlanBackupRuleResult.cs b/sdk/dotnet/BackupDisasterRecovery/Outputs/GetBackupPlanBackupRuleResult.cs new file mode 100644 index 0000000000..4c7de93d81 --- /dev/null +++ b/sdk/dotnet/BackupDisasterRecovery/Outputs/GetBackupPlanBackupRuleResult.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.BackupDisasterRecovery.Outputs +{ + + [OutputType] + public sealed class GetBackupPlanBackupRuleResult + { + /// + /// Configures the duration for which backup data will be kept. The value should be greater than or equal to minimum enforced retention of the backup vault. + /// + public readonly int BackupRetentionDays; + /// + /// The unique ID of this 'BackupRule'. The 'rule_id' is unique per 'BackupPlan'. + /// + public readonly string RuleId; + /// + /// StandardSchedule defines a schedule that runs within the confines of a defined window of days. + /// + public readonly ImmutableArray StandardSchedules; + + [OutputConstructor] + private GetBackupPlanBackupRuleResult( + int backupRetentionDays, + + string ruleId, + + ImmutableArray standardSchedules) + { + BackupRetentionDays = backupRetentionDays; + RuleId = ruleId; + StandardSchedules = standardSchedules; + } + } +} diff --git a/sdk/dotnet/BackupDisasterRecovery/Outputs/GetBackupPlanBackupRuleStandardScheduleBackupWindowResult.cs b/sdk/dotnet/BackupDisasterRecovery/Outputs/GetBackupPlanBackupRuleStandardScheduleBackupWindowResult.cs new file mode 100644 index 0000000000..8baaad619d --- /dev/null +++ b/sdk/dotnet/BackupDisasterRecovery/Outputs/GetBackupPlanBackupRuleStandardScheduleBackupWindowResult.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.BackupDisasterRecovery.Outputs +{ + + [OutputType] + public sealed class GetBackupPlanBackupRuleStandardScheduleBackupWindowResult + { + /// + /// The hour of the day (1-24) when the window ends, for example, if the value of end hour of the day is 10, that means the backup window end time is 10:00. + /// The end hour of the day should be greater than the start + /// + public readonly int EndHourOfDay; + /// + /// The hour of the day (0-23) when the window starts, for example, if the value of the start hour of the day is 6, that means the backup window starts at 6:00. + /// + public readonly int StartHourOfDay; + + [OutputConstructor] + private GetBackupPlanBackupRuleStandardScheduleBackupWindowResult( + int endHourOfDay, + + int startHourOfDay) + { + EndHourOfDay = endHourOfDay; + StartHourOfDay = startHourOfDay; + } + } +} diff --git a/sdk/dotnet/BackupDisasterRecovery/Outputs/GetBackupPlanBackupRuleStandardScheduleResult.cs b/sdk/dotnet/BackupDisasterRecovery/Outputs/GetBackupPlanBackupRuleStandardScheduleResult.cs new file mode 100644 index 0000000000..6532302ef5 --- /dev/null +++ b/sdk/dotnet/BackupDisasterRecovery/Outputs/GetBackupPlanBackupRuleStandardScheduleResult.cs @@ -0,0 +1,79 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.BackupDisasterRecovery.Outputs +{ + + [OutputType] + public sealed class GetBackupPlanBackupRuleStandardScheduleResult + { + /// + /// A BackupWindow defines the window of the day during which backup jobs will run. Jobs are queued at the beginning of the window and will be marked as + /// 'NOT_RUN' if they do not start by the end of the window. + /// + public readonly ImmutableArray BackupWindows; + /// + /// Specifies days of months like 1, 5, or 14 on which jobs will run. + /// + public readonly ImmutableArray DaysOfMonths; + /// + /// Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for 'recurrence_type', 'WEEKLY' and is not applicable otherwise. Possible values: ["DAY_OF_WEEK_UNSPECIFIED", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY"] + /// + public readonly ImmutableArray DaysOfWeeks; + /// + /// Specifies frequency for hourly backups. An hourly frequency of 2 means jobs will run every 2 hours from start time till end time defined. + /// This is required for 'recurrence_type', 'HOURLY' and is not applicable otherwise. + /// + public readonly int HourlyFrequency; + /// + /// Specifies values of months Possible values: ["MONTH_UNSPECIFIED", "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER"] + /// + public readonly ImmutableArray Months; + /// + /// RecurrenceType enumerates the applicable periodicity for the schedule. Possible values: ["HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY"] + /// + public readonly string RecurrenceType; + /// + /// The time zone to be used when interpreting the schedule. + /// + public readonly string TimeZone; + /// + /// Specifies a week day of the month like FIRST SUNDAY or LAST MONDAY, on which jobs will run. + /// + public readonly ImmutableArray WeekDayOfMonths; + + [OutputConstructor] + private GetBackupPlanBackupRuleStandardScheduleResult( + ImmutableArray backupWindows, + + ImmutableArray daysOfMonths, + + ImmutableArray daysOfWeeks, + + int hourlyFrequency, + + ImmutableArray months, + + string recurrenceType, + + string timeZone, + + ImmutableArray weekDayOfMonths) + { + BackupWindows = backupWindows; + DaysOfMonths = daysOfMonths; + DaysOfWeeks = daysOfWeeks; + HourlyFrequency = hourlyFrequency; + Months = months; + RecurrenceType = recurrenceType; + TimeZone = timeZone; + WeekDayOfMonths = weekDayOfMonths; + } + } +} diff --git a/sdk/dotnet/BackupDisasterRecovery/Outputs/GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthResult.cs b/sdk/dotnet/BackupDisasterRecovery/Outputs/GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthResult.cs new file mode 100644 index 0000000000..d1c93f842f --- /dev/null +++ b/sdk/dotnet/BackupDisasterRecovery/Outputs/GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthResult.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.BackupDisasterRecovery.Outputs +{ + + [OutputType] + public sealed class GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthResult + { + /// + /// Specifies the day of the week. Possible values: ["DAY_OF_WEEK_UNSPECIFIED", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"] + /// + public readonly string DayOfWeek; + /// + /// WeekOfMonth enumerates possible weeks in the month, e.g. the first, third, or last week of the month. Possible values: ["WEEK_OF_MONTH_UNSPECIFIED", "FIRST", "SECOND", "THIRD", "FOURTH", "LAST"] + /// + public readonly string WeekOfMonth; + + [OutputConstructor] + private GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthResult( + string dayOfWeek, + + string weekOfMonth) + { + DayOfWeek = dayOfWeek; + WeekOfMonth = weekOfMonth; + } + } +} diff --git a/sdk/dotnet/BigQuery/DataTransferConfig.cs b/sdk/dotnet/BigQuery/DataTransferConfig.cs index 4f7ed8365b..13067723a3 100644 --- a/sdk/dotnet/BigQuery/DataTransferConfig.cs +++ b/sdk/dotnet/BigQuery/DataTransferConfig.cs @@ -191,11 +191,23 @@ namespace Pulumi.Gcp.BigQuery /// /// Config can be imported using any of these accepted formats: /// + /// * `{{project}}/{{name}}` + /// + /// * `{{project}} {{name}}` + /// /// * `{{name}}` /// /// When using the `pulumi import` command, Config can be imported using one of the formats above. For example: /// /// ```sh + /// $ pulumi import gcp:bigquery/dataTransferConfig:DataTransferConfig default {{project}}/{{name}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:bigquery/dataTransferConfig:DataTransferConfig default "{{project}} {{name}}" + /// ``` + /// + /// ```sh /// $ pulumi import gcp:bigquery/dataTransferConfig:DataTransferConfig default {{name}} /// ``` /// diff --git a/sdk/dotnet/CloudRunV2/Inputs/JobTemplateTemplateVolumeGcsArgs.cs b/sdk/dotnet/CloudRunV2/Inputs/JobTemplateTemplateVolumeGcsArgs.cs index 26a06f4e3a..c68e146ddf 100644 --- a/sdk/dotnet/CloudRunV2/Inputs/JobTemplateTemplateVolumeGcsArgs.cs +++ b/sdk/dotnet/CloudRunV2/Inputs/JobTemplateTemplateVolumeGcsArgs.cs @@ -18,6 +18,19 @@ public sealed class JobTemplateTemplateVolumeGcsArgs : global::Pulumi.ResourceAr [Input("bucket", required: true)] public Input Bucket { get; set; } = null!; + [Input("mountOptions")] + private InputList? _mountOptions; + + /// + /// A list of flags to pass to the gcsfuse command for configuring this volume. + /// Flags should be passed without leading dashes. + /// + public InputList MountOptions + { + get => _mountOptions ?? (_mountOptions = new InputList()); + set => _mountOptions = value; + } + /// /// If true, mount this volume as read-only in all mounts. If false, mount this volume as read-write. /// diff --git a/sdk/dotnet/CloudRunV2/Inputs/JobTemplateTemplateVolumeGcsGetArgs.cs b/sdk/dotnet/CloudRunV2/Inputs/JobTemplateTemplateVolumeGcsGetArgs.cs index c2614314ae..f56f59e7f6 100644 --- a/sdk/dotnet/CloudRunV2/Inputs/JobTemplateTemplateVolumeGcsGetArgs.cs +++ b/sdk/dotnet/CloudRunV2/Inputs/JobTemplateTemplateVolumeGcsGetArgs.cs @@ -18,6 +18,19 @@ public sealed class JobTemplateTemplateVolumeGcsGetArgs : global::Pulumi.Resourc [Input("bucket", required: true)] public Input Bucket { get; set; } = null!; + [Input("mountOptions")] + private InputList? _mountOptions; + + /// + /// A list of flags to pass to the gcsfuse command for configuring this volume. + /// Flags should be passed without leading dashes. + /// + public InputList MountOptions + { + get => _mountOptions ?? (_mountOptions = new InputList()); + set => _mountOptions = value; + } + /// /// If true, mount this volume as read-only in all mounts. If false, mount this volume as read-write. /// diff --git a/sdk/dotnet/CloudRunV2/Inputs/ServiceTemplateVolumeGcsArgs.cs b/sdk/dotnet/CloudRunV2/Inputs/ServiceTemplateVolumeGcsArgs.cs index 0d2b98e660..81da433609 100644 --- a/sdk/dotnet/CloudRunV2/Inputs/ServiceTemplateVolumeGcsArgs.cs +++ b/sdk/dotnet/CloudRunV2/Inputs/ServiceTemplateVolumeGcsArgs.cs @@ -18,6 +18,19 @@ public sealed class ServiceTemplateVolumeGcsArgs : global::Pulumi.ResourceArgs [Input("bucket", required: true)] public Input Bucket { get; set; } = null!; + [Input("mountOptions")] + private InputList? _mountOptions; + + /// + /// A list of flags to pass to the gcsfuse command for configuring this volume. + /// Flags should be passed without leading dashes. + /// + public InputList MountOptions + { + get => _mountOptions ?? (_mountOptions = new InputList()); + set => _mountOptions = value; + } + /// /// If true, mount the GCS bucket as read-only /// diff --git a/sdk/dotnet/CloudRunV2/Inputs/ServiceTemplateVolumeGcsGetArgs.cs b/sdk/dotnet/CloudRunV2/Inputs/ServiceTemplateVolumeGcsGetArgs.cs index 6c1ca8976c..544008b485 100644 --- a/sdk/dotnet/CloudRunV2/Inputs/ServiceTemplateVolumeGcsGetArgs.cs +++ b/sdk/dotnet/CloudRunV2/Inputs/ServiceTemplateVolumeGcsGetArgs.cs @@ -18,6 +18,19 @@ public sealed class ServiceTemplateVolumeGcsGetArgs : global::Pulumi.ResourceArg [Input("bucket", required: true)] public Input Bucket { get; set; } = null!; + [Input("mountOptions")] + private InputList? _mountOptions; + + /// + /// A list of flags to pass to the gcsfuse command for configuring this volume. + /// Flags should be passed without leading dashes. + /// + public InputList MountOptions + { + get => _mountOptions ?? (_mountOptions = new InputList()); + set => _mountOptions = value; + } + /// /// If true, mount the GCS bucket as read-only /// diff --git a/sdk/dotnet/CloudRunV2/Job.cs b/sdk/dotnet/CloudRunV2/Job.cs index fd79869860..64606e84e9 100644 --- a/sdk/dotnet/CloudRunV2/Job.cs +++ b/sdk/dotnet/CloudRunV2/Job.cs @@ -435,7 +435,6 @@ namespace Pulumi.Gcp.CloudRunV2 /// Name = "cloudrun-job", /// Location = "us-central1", /// DeletionProtection = false, - /// LaunchStage = "BETA", /// Template = new Gcp.CloudRunV2.Inputs.JobTemplateArgs /// { /// Template = new Gcp.CloudRunV2.Inputs.JobTemplateTemplateArgs diff --git a/sdk/dotnet/CloudRunV2/Outputs/GetJobTemplateTemplateVolumeGcResult.cs b/sdk/dotnet/CloudRunV2/Outputs/GetJobTemplateTemplateVolumeGcResult.cs index 82d63f5244..72b0ab9715 100644 --- a/sdk/dotnet/CloudRunV2/Outputs/GetJobTemplateTemplateVolumeGcResult.cs +++ b/sdk/dotnet/CloudRunV2/Outputs/GetJobTemplateTemplateVolumeGcResult.cs @@ -18,6 +18,11 @@ public sealed class GetJobTemplateTemplateVolumeGcResult /// public readonly string Bucket; /// + /// A list of flags to pass to the gcsfuse command for configuring this volume. + /// Flags should be passed without leading dashes. + /// + public readonly ImmutableArray MountOptions; + /// /// If true, mount this volume as read-only in all mounts. If false, mount this volume as read-write. /// public readonly bool ReadOnly; @@ -26,9 +31,12 @@ public sealed class GetJobTemplateTemplateVolumeGcResult private GetJobTemplateTemplateVolumeGcResult( string bucket, + ImmutableArray mountOptions, + bool readOnly) { Bucket = bucket; + MountOptions = mountOptions; ReadOnly = readOnly; } } diff --git a/sdk/dotnet/CloudRunV2/Outputs/GetServiceTemplateVolumeGcResult.cs b/sdk/dotnet/CloudRunV2/Outputs/GetServiceTemplateVolumeGcResult.cs index 1293a2320e..c3800df687 100644 --- a/sdk/dotnet/CloudRunV2/Outputs/GetServiceTemplateVolumeGcResult.cs +++ b/sdk/dotnet/CloudRunV2/Outputs/GetServiceTemplateVolumeGcResult.cs @@ -18,6 +18,11 @@ public sealed class GetServiceTemplateVolumeGcResult /// public readonly string Bucket; /// + /// A list of flags to pass to the gcsfuse command for configuring this volume. + /// Flags should be passed without leading dashes. + /// + public readonly ImmutableArray MountOptions; + /// /// If true, mount the GCS bucket as read-only /// public readonly bool ReadOnly; @@ -26,9 +31,12 @@ public sealed class GetServiceTemplateVolumeGcResult private GetServiceTemplateVolumeGcResult( string bucket, + ImmutableArray mountOptions, + bool readOnly) { Bucket = bucket; + MountOptions = mountOptions; ReadOnly = readOnly; } } diff --git a/sdk/dotnet/CloudRunV2/Outputs/JobTemplateTemplateVolumeGcs.cs b/sdk/dotnet/CloudRunV2/Outputs/JobTemplateTemplateVolumeGcs.cs index c9cbc2f1ba..223ddad6aa 100644 --- a/sdk/dotnet/CloudRunV2/Outputs/JobTemplateTemplateVolumeGcs.cs +++ b/sdk/dotnet/CloudRunV2/Outputs/JobTemplateTemplateVolumeGcs.cs @@ -18,6 +18,11 @@ public sealed class JobTemplateTemplateVolumeGcs /// public readonly string Bucket; /// + /// A list of flags to pass to the gcsfuse command for configuring this volume. + /// Flags should be passed without leading dashes. + /// + public readonly ImmutableArray MountOptions; + /// /// If true, mount this volume as read-only in all mounts. If false, mount this volume as read-write. /// public readonly bool? ReadOnly; @@ -26,9 +31,12 @@ public sealed class JobTemplateTemplateVolumeGcs private JobTemplateTemplateVolumeGcs( string bucket, + ImmutableArray mountOptions, + bool? readOnly) { Bucket = bucket; + MountOptions = mountOptions; ReadOnly = readOnly; } } diff --git a/sdk/dotnet/CloudRunV2/Outputs/ServiceTemplateVolumeGcs.cs b/sdk/dotnet/CloudRunV2/Outputs/ServiceTemplateVolumeGcs.cs index 5c3e7b63ae..0b90845fae 100644 --- a/sdk/dotnet/CloudRunV2/Outputs/ServiceTemplateVolumeGcs.cs +++ b/sdk/dotnet/CloudRunV2/Outputs/ServiceTemplateVolumeGcs.cs @@ -18,6 +18,11 @@ public sealed class ServiceTemplateVolumeGcs /// public readonly string Bucket; /// + /// A list of flags to pass to the gcsfuse command for configuring this volume. + /// Flags should be passed without leading dashes. + /// + public readonly ImmutableArray MountOptions; + /// /// If true, mount the GCS bucket as read-only /// public readonly bool? ReadOnly; @@ -26,9 +31,12 @@ public sealed class ServiceTemplateVolumeGcs private ServiceTemplateVolumeGcs( string bucket, + ImmutableArray mountOptions, + bool? readOnly) { Bucket = bucket; + MountOptions = mountOptions; ReadOnly = readOnly; } } diff --git a/sdk/dotnet/CloudRunV2/Service.cs b/sdk/dotnet/CloudRunV2/Service.cs index e37f6d30b5..cb8a9b3c52 100644 --- a/sdk/dotnet/CloudRunV2/Service.cs +++ b/sdk/dotnet/CloudRunV2/Service.cs @@ -533,7 +533,6 @@ namespace Pulumi.Gcp.CloudRunV2 /// Name = "cloudrun-service", /// Location = "us-central1", /// DeletionProtection = false, - /// LaunchStage = "BETA", /// Ingress = "INGRESS_TRAFFIC_ALL", /// Template = new Gcp.CloudRunV2.Inputs.ServiceTemplateArgs /// { diff --git a/sdk/dotnet/Compute/Disk.cs b/sdk/dotnet/Compute/Disk.cs index 8985ca1d74..1b228967f2 100644 --- a/sdk/dotnet/Compute/Disk.cs +++ b/sdk/dotnet/Compute/Disk.cs @@ -179,7 +179,7 @@ public partial class Disk : global::Pulumi.CustomResource public Output AccessMode { get; private set; } = null!; /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Output("asyncPrimaryDisk")] @@ -552,7 +552,7 @@ public sealed class DiskArgs : global::Pulumi.ResourceArgs public Input? AccessMode { get; set; } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("asyncPrimaryDisk")] @@ -820,7 +820,7 @@ public sealed class DiskState : global::Pulumi.ResourceArgs public Input? AccessMode { get; set; } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("asyncPrimaryDisk")] diff --git a/sdk/dotnet/Compute/FirewallPolicyRule.cs b/sdk/dotnet/Compute/FirewallPolicyRule.cs index eb49da1ed5..c6e35679c3 100644 --- a/sdk/dotnet/Compute/FirewallPolicyRule.cs +++ b/sdk/dotnet/Compute/FirewallPolicyRule.cs @@ -10,11 +10,10 @@ namespace Pulumi.Gcp.Compute { /// - /// The Compute FirewallPolicyRule resource - /// /// ## Example Usage /// - /// ### Basic_fir_sec_rule + /// ### Firewall Policy Rule + /// /// ```csharp /// using System.Collections.Generic; /// using System.Linq; @@ -25,7 +24,7 @@ namespace Pulumi.Gcp.Compute /// { /// var basicGlobalNetworksecurityAddressGroup = new Gcp.NetworkSecurity.AddressGroup("basic_global_networksecurity_address_group", new() /// { - /// Name = "policy", + /// Name = "address", /// Parent = "organizations/123456789", /// Description = "Sample global networksecurity_address_group", /// Location = "global", @@ -39,7 +38,7 @@ namespace Pulumi.Gcp.Compute /// /// var folder = new Gcp.Organizations.Folder("folder", new() /// { - /// DisplayName = "policy", + /// DisplayName = "folder", /// Parent = "organizations/123456789", /// DeletionProtection = false, /// }); @@ -51,7 +50,7 @@ namespace Pulumi.Gcp.Compute /// Description = "Resource created for Terraform acceptance testing", /// }); /// - /// var primary = new Gcp.Compute.FirewallPolicyRule("primary", new() + /// var policyRule = new Gcp.Compute.FirewallPolicyRule("policy_rule", new() /// { /// FirewallPolicy = @default.Name, /// Description = "Resource created for Terraform acceptance testing", @@ -136,6 +135,12 @@ public partial class FirewallPolicyRule : global::Pulumi.CustomResource [Output("action")] public Output Action { get; private set; } = null!; + /// + /// Creation timestamp in RFC3339 text format. + /// + [Output("creationTimestamp")] + public Output CreationTimestamp { get; private set; } = null!; + /// /// An optional description for this resource. /// @@ -143,7 +148,8 @@ public partial class FirewallPolicyRule : global::Pulumi.CustomResource public Output Description { get; private set; } = null!; /// - /// The direction in which this rule applies. Possible values: INGRESS, EGRESS + /// The direction in which this rule applies. + /// Possible values are: `INGRESS`, `EGRESS`. /// [Output("direction")] public Output Direction { get; private set; } = null!; @@ -177,12 +183,15 @@ public partial class FirewallPolicyRule : global::Pulumi.CustomResource /// /// A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. + /// Structure is documented below. /// [Output("match")] public Output Match { get; private set; } = null!; /// - /// An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. + /// An integer indicating the priority of a rule in the list. + /// The priority must be a positive value between 0 and 2147483647. + /// Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. /// [Output("priority")] public Output Priority { get; private set; } = null!; @@ -194,9 +203,9 @@ public partial class FirewallPolicyRule : global::Pulumi.CustomResource public Output RuleTupleCount { get; private set; } = null!; /// - /// A fully-qualified URL of a SecurityProfileGroup resource. Example: - /// https://networksecurity.googleapis.com/v1/organizations/{organizationId}/locations/global/securityProfileGroups/my-security-profile-group. - /// It must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. + /// A fully-qualified URL of a SecurityProfile resource instance. Example: + /// https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group + /// Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. /// [Output("securityProfileGroup")] public Output SecurityProfileGroup { get; private set; } = null!; @@ -215,7 +224,7 @@ public partial class FirewallPolicyRule : global::Pulumi.CustomResource public Output> TargetServiceAccounts { get; private set; } = null!; /// - /// Boolean flag indicating if the traffic should be TLS decrypted. It can be set only if action = + /// Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = /// 'apply_security_profile_group' and cannot be set for other actions. /// [Output("tlsInspect")] @@ -280,7 +289,8 @@ public sealed class FirewallPolicyRuleArgs : global::Pulumi.ResourceArgs public Input? Description { get; set; } /// - /// The direction in which this rule applies. Possible values: INGRESS, EGRESS + /// The direction in which this rule applies. + /// Possible values are: `INGRESS`, `EGRESS`. /// [Input("direction", required: true)] public Input Direction { get; set; } = null!; @@ -308,20 +318,23 @@ public sealed class FirewallPolicyRuleArgs : global::Pulumi.ResourceArgs /// /// A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. + /// Structure is documented below. /// [Input("match", required: true)] public Input Match { get; set; } = null!; /// - /// An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. + /// An integer indicating the priority of a rule in the list. + /// The priority must be a positive value between 0 and 2147483647. + /// Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. /// [Input("priority", required: true)] public Input Priority { get; set; } = null!; /// - /// A fully-qualified URL of a SecurityProfileGroup resource. Example: - /// https://networksecurity.googleapis.com/v1/organizations/{organizationId}/locations/global/securityProfileGroups/my-security-profile-group. - /// It must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. + /// A fully-qualified URL of a SecurityProfile resource instance. Example: + /// https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group + /// Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. /// [Input("securityProfileGroup")] public Input? SecurityProfileGroup { get; set; } @@ -352,7 +365,7 @@ public InputList TargetServiceAccounts } /// - /// Boolean flag indicating if the traffic should be TLS decrypted. It can be set only if action = + /// Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = /// 'apply_security_profile_group' and cannot be set for other actions. /// [Input("tlsInspect")] @@ -372,6 +385,12 @@ public sealed class FirewallPolicyRuleState : global::Pulumi.ResourceArgs [Input("action")] public Input? Action { get; set; } + /// + /// Creation timestamp in RFC3339 text format. + /// + [Input("creationTimestamp")] + public Input? CreationTimestamp { get; set; } + /// /// An optional description for this resource. /// @@ -379,7 +398,8 @@ public sealed class FirewallPolicyRuleState : global::Pulumi.ResourceArgs public Input? Description { get; set; } /// - /// The direction in which this rule applies. Possible values: INGRESS, EGRESS + /// The direction in which this rule applies. + /// Possible values are: `INGRESS`, `EGRESS`. /// [Input("direction")] public Input? Direction { get; set; } @@ -413,12 +433,15 @@ public sealed class FirewallPolicyRuleState : global::Pulumi.ResourceArgs /// /// A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. + /// Structure is documented below. /// [Input("match")] public Input? Match { get; set; } /// - /// An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. + /// An integer indicating the priority of a rule in the list. + /// The priority must be a positive value between 0 and 2147483647. + /// Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. /// [Input("priority")] public Input? Priority { get; set; } @@ -430,9 +453,9 @@ public sealed class FirewallPolicyRuleState : global::Pulumi.ResourceArgs public Input? RuleTupleCount { get; set; } /// - /// A fully-qualified URL of a SecurityProfileGroup resource. Example: - /// https://networksecurity.googleapis.com/v1/organizations/{organizationId}/locations/global/securityProfileGroups/my-security-profile-group. - /// It must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. + /// A fully-qualified URL of a SecurityProfile resource instance. Example: + /// https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group + /// Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. /// [Input("securityProfileGroup")] public Input? SecurityProfileGroup { get; set; } @@ -463,7 +486,7 @@ public InputList TargetServiceAccounts } /// - /// Boolean flag indicating if the traffic should be TLS decrypted. It can be set only if action = + /// Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = /// 'apply_security_profile_group' and cannot be set for other actions. /// [Input("tlsInspect")] diff --git a/sdk/dotnet/Compute/GetRegionInstanceGroupManager.cs b/sdk/dotnet/Compute/GetRegionInstanceGroupManager.cs index be26928ae4..4d4b6cd83b 100644 --- a/sdk/dotnet/Compute/GetRegionInstanceGroupManager.cs +++ b/sdk/dotnet/Compute/GetRegionInstanceGroupManager.cs @@ -145,6 +145,7 @@ public sealed class GetRegionInstanceGroupManagerResult /// The provider-assigned unique ID for this managed resource. /// public readonly string Id; + public readonly ImmutableArray InstanceFlexibilityPolicies; public readonly string InstanceGroup; public readonly ImmutableArray InstanceLifecyclePolicies; public readonly string ListManagedInstancesResults; @@ -188,6 +189,8 @@ private GetRegionInstanceGroupManagerResult( string id, + ImmutableArray instanceFlexibilityPolicies, + string instanceGroup, ImmutableArray instanceLifecyclePolicies, @@ -241,6 +244,7 @@ private GetRegionInstanceGroupManagerResult( DistributionPolicyZones = distributionPolicyZones; Fingerprint = fingerprint; Id = id; + InstanceFlexibilityPolicies = instanceFlexibilityPolicies; InstanceGroup = instanceGroup; InstanceLifecyclePolicies = instanceLifecyclePolicies; ListManagedInstancesResults = listManagedInstancesResults; diff --git a/sdk/dotnet/Compute/HealthCheck.cs b/sdk/dotnet/Compute/HealthCheck.cs index 6fdabc3121..1ddf7c964a 100644 --- a/sdk/dotnet/Compute/HealthCheck.cs +++ b/sdk/dotnet/Compute/HealthCheck.cs @@ -513,7 +513,7 @@ public partial class HealthCheck : global::Pulumi.CustomResource public Output Description { get; private set; } = null!; /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Output("grpcHealthCheck")] @@ -527,21 +527,21 @@ public partial class HealthCheck : global::Pulumi.CustomResource public Output HealthyThreshold { get; private set; } = null!; /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Output("http2HealthCheck")] public Output Http2HealthCheck { get; private set; } = null!; /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Output("httpHealthCheck")] public Output HttpHealthCheck { get; private set; } = null!; /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Output("httpsHealthCheck")] @@ -600,14 +600,14 @@ public partial class HealthCheck : global::Pulumi.CustomResource public Output> SourceRegions { get; private set; } = null!; /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Output("sslHealthCheck")] public Output SslHealthCheck { get; private set; } = null!; /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Output("tcpHealthCheck")] @@ -695,7 +695,7 @@ public sealed class HealthCheckArgs : global::Pulumi.ResourceArgs public Input? Description { get; set; } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("grpcHealthCheck")] @@ -709,21 +709,21 @@ public sealed class HealthCheckArgs : global::Pulumi.ResourceArgs public Input? HealthyThreshold { get; set; } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("http2HealthCheck")] public Input? Http2HealthCheck { get; set; } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("httpHealthCheck")] public Input? HttpHealthCheck { get; set; } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("httpsHealthCheck")] @@ -782,14 +782,14 @@ public InputList SourceRegions } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("sslHealthCheck")] public Input? SslHealthCheck { get; set; } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("tcpHealthCheck")] @@ -839,7 +839,7 @@ public sealed class HealthCheckState : global::Pulumi.ResourceArgs public Input? Description { get; set; } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("grpcHealthCheck")] @@ -853,21 +853,21 @@ public sealed class HealthCheckState : global::Pulumi.ResourceArgs public Input? HealthyThreshold { get; set; } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("http2HealthCheck")] public Input? Http2HealthCheck { get; set; } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("httpHealthCheck")] public Input? HttpHealthCheck { get; set; } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("httpsHealthCheck")] @@ -932,14 +932,14 @@ public InputList SourceRegions } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("sslHealthCheck")] public Input? SslHealthCheck { get; set; } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("tcpHealthCheck")] diff --git a/sdk/dotnet/Compute/Inputs/AutoscalerAutoscalingPolicyScaleDownControlArgs.cs b/sdk/dotnet/Compute/Inputs/AutoscalerAutoscalingPolicyScaleDownControlArgs.cs index 41c450014b..7ddc83f7ae 100644 --- a/sdk/dotnet/Compute/Inputs/AutoscalerAutoscalingPolicyScaleDownControlArgs.cs +++ b/sdk/dotnet/Compute/Inputs/AutoscalerAutoscalingPolicyScaleDownControlArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Gcp.Compute.Inputs public sealed class AutoscalerAutoscalingPolicyScaleDownControlArgs : global::Pulumi.ResourceArgs { /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("maxScaledDownReplicas")] diff --git a/sdk/dotnet/Compute/Inputs/AutoscalerAutoscalingPolicyScaleDownControlGetArgs.cs b/sdk/dotnet/Compute/Inputs/AutoscalerAutoscalingPolicyScaleDownControlGetArgs.cs index dd15f31715..0f2522393e 100644 --- a/sdk/dotnet/Compute/Inputs/AutoscalerAutoscalingPolicyScaleDownControlGetArgs.cs +++ b/sdk/dotnet/Compute/Inputs/AutoscalerAutoscalingPolicyScaleDownControlGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Gcp.Compute.Inputs public sealed class AutoscalerAutoscalingPolicyScaleDownControlGetArgs : global::Pulumi.ResourceArgs { /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("maxScaledDownReplicas")] diff --git a/sdk/dotnet/Compute/Inputs/AutoscalerAutoscalingPolicyScaleInControlArgs.cs b/sdk/dotnet/Compute/Inputs/AutoscalerAutoscalingPolicyScaleInControlArgs.cs index f7125374ba..5a8fd2ff7d 100644 --- a/sdk/dotnet/Compute/Inputs/AutoscalerAutoscalingPolicyScaleInControlArgs.cs +++ b/sdk/dotnet/Compute/Inputs/AutoscalerAutoscalingPolicyScaleInControlArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Gcp.Compute.Inputs public sealed class AutoscalerAutoscalingPolicyScaleInControlArgs : global::Pulumi.ResourceArgs { /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("maxScaledInReplicas")] diff --git a/sdk/dotnet/Compute/Inputs/AutoscalerAutoscalingPolicyScaleInControlGetArgs.cs b/sdk/dotnet/Compute/Inputs/AutoscalerAutoscalingPolicyScaleInControlGetArgs.cs index 25798ade98..2e6fdbf09a 100644 --- a/sdk/dotnet/Compute/Inputs/AutoscalerAutoscalingPolicyScaleInControlGetArgs.cs +++ b/sdk/dotnet/Compute/Inputs/AutoscalerAutoscalingPolicyScaleInControlGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Gcp.Compute.Inputs public sealed class AutoscalerAutoscalingPolicyScaleInControlGetArgs : global::Pulumi.ResourceArgs { /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("maxScaledInReplicas")] diff --git a/sdk/dotnet/Compute/Inputs/FirewallPolicyRuleMatchArgs.cs b/sdk/dotnet/Compute/Inputs/FirewallPolicyRuleMatchArgs.cs index df81cda13a..ea82d8e273 100644 --- a/sdk/dotnet/Compute/Inputs/FirewallPolicyRuleMatchArgs.cs +++ b/sdk/dotnet/Compute/Inputs/FirewallPolicyRuleMatchArgs.cs @@ -16,7 +16,7 @@ public sealed class FirewallPolicyRuleMatchArgs : global::Pulumi.ResourceArgs private InputList? _destAddressGroups; /// - /// Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. Destination address groups is only supported in Egress rules. + /// Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. /// public InputList DestAddressGroups { @@ -28,7 +28,7 @@ public InputList DestAddressGroups private InputList? _destFqdns; /// - /// Domain names that will be used to match against the resolved domain name of destination of traffic. Can only be specified if DIRECTION is egress. + /// Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100. /// public InputList DestFqdns { @@ -40,7 +40,7 @@ public InputList DestFqdns private InputList? _destIpRanges; /// - /// CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 256. + /// CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000. /// public InputList DestIpRanges { @@ -52,7 +52,7 @@ public InputList DestIpRanges private InputList? _destRegionCodes; /// - /// The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is egress. + /// Region codes whose IP addresses will be used to match for destination of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of dest region codes allowed is 5000. /// public InputList DestRegionCodes { @@ -64,7 +64,7 @@ public InputList DestRegionCodes private InputList? _destThreatIntelligences; /// - /// Name of the Google Cloud Threat Intelligence list. + /// Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination. /// public InputList DestThreatIntelligences { @@ -77,6 +77,7 @@ public InputList DestThreatIntelligences /// /// Pairs of IP protocols and ports that the rule should match. + /// Structure is documented below. /// public InputList Layer4Configs { @@ -88,7 +89,7 @@ public InputList Layer4Configs private InputList? _srcAddressGroups; /// - /// Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. Source address groups is only supported in Ingress rules. + /// Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. /// public InputList SrcAddressGroups { @@ -100,7 +101,7 @@ public InputList SrcAddressGroups private InputList? _srcFqdns; /// - /// Domain names that will be used to match against the resolved domain name of source of traffic. Can only be specified if DIRECTION is ingress. + /// Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100. /// public InputList SrcFqdns { @@ -112,7 +113,7 @@ public InputList SrcFqdns private InputList? _srcIpRanges; /// - /// CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 256. + /// CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000. /// public InputList SrcIpRanges { @@ -124,7 +125,7 @@ public InputList SrcIpRanges private InputList? _srcRegionCodes; /// - /// The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is ingress. + /// Region codes whose IP addresses will be used to match for source of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of source region codes allowed is 5000. /// public InputList SrcRegionCodes { @@ -136,9 +137,10 @@ public InputList SrcRegionCodes private InputList? _srcThreatIntelligences; /// - /// Name of the Google Cloud Threat Intelligence list. + /// Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source. /// - /// The `layer4_configs` block supports: + /// + /// <a name="nested_layer4_configs"></a>The `layer4_configs` block supports: /// public InputList SrcThreatIntelligences { diff --git a/sdk/dotnet/Compute/Inputs/FirewallPolicyRuleMatchGetArgs.cs b/sdk/dotnet/Compute/Inputs/FirewallPolicyRuleMatchGetArgs.cs index ab8598ce06..accc5cb31a 100644 --- a/sdk/dotnet/Compute/Inputs/FirewallPolicyRuleMatchGetArgs.cs +++ b/sdk/dotnet/Compute/Inputs/FirewallPolicyRuleMatchGetArgs.cs @@ -16,7 +16,7 @@ public sealed class FirewallPolicyRuleMatchGetArgs : global::Pulumi.ResourceArgs private InputList? _destAddressGroups; /// - /// Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. Destination address groups is only supported in Egress rules. + /// Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. /// public InputList DestAddressGroups { @@ -28,7 +28,7 @@ public InputList DestAddressGroups private InputList? _destFqdns; /// - /// Domain names that will be used to match against the resolved domain name of destination of traffic. Can only be specified if DIRECTION is egress. + /// Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100. /// public InputList DestFqdns { @@ -40,7 +40,7 @@ public InputList DestFqdns private InputList? _destIpRanges; /// - /// CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 256. + /// CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000. /// public InputList DestIpRanges { @@ -52,7 +52,7 @@ public InputList DestIpRanges private InputList? _destRegionCodes; /// - /// The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is egress. + /// Region codes whose IP addresses will be used to match for destination of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of dest region codes allowed is 5000. /// public InputList DestRegionCodes { @@ -64,7 +64,7 @@ public InputList DestRegionCodes private InputList? _destThreatIntelligences; /// - /// Name of the Google Cloud Threat Intelligence list. + /// Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination. /// public InputList DestThreatIntelligences { @@ -77,6 +77,7 @@ public InputList DestThreatIntelligences /// /// Pairs of IP protocols and ports that the rule should match. + /// Structure is documented below. /// public InputList Layer4Configs { @@ -88,7 +89,7 @@ public InputList Layer4Config private InputList? _srcAddressGroups; /// - /// Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. Source address groups is only supported in Ingress rules. + /// Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. /// public InputList SrcAddressGroups { @@ -100,7 +101,7 @@ public InputList SrcAddressGroups private InputList? _srcFqdns; /// - /// Domain names that will be used to match against the resolved domain name of source of traffic. Can only be specified if DIRECTION is ingress. + /// Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100. /// public InputList SrcFqdns { @@ -112,7 +113,7 @@ public InputList SrcFqdns private InputList? _srcIpRanges; /// - /// CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 256. + /// CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000. /// public InputList SrcIpRanges { @@ -124,7 +125,7 @@ public InputList SrcIpRanges private InputList? _srcRegionCodes; /// - /// The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is ingress. + /// Region codes whose IP addresses will be used to match for source of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of source region codes allowed is 5000. /// public InputList SrcRegionCodes { @@ -136,9 +137,10 @@ public InputList SrcRegionCodes private InputList? _srcThreatIntelligences; /// - /// Name of the Google Cloud Threat Intelligence list. + /// Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source. /// - /// The `layer4_configs` block supports: + /// + /// <a name="nested_layer4_configs"></a>The `layer4_configs` block supports: /// public InputList SrcThreatIntelligences { diff --git a/sdk/dotnet/Compute/Inputs/FirewallPolicyRuleMatchLayer4ConfigArgs.cs b/sdk/dotnet/Compute/Inputs/FirewallPolicyRuleMatchLayer4ConfigArgs.cs index dd4c28f9ad..4caee8cdff 100644 --- a/sdk/dotnet/Compute/Inputs/FirewallPolicyRuleMatchLayer4ConfigArgs.cs +++ b/sdk/dotnet/Compute/Inputs/FirewallPolicyRuleMatchLayer4ConfigArgs.cs @@ -13,7 +13,8 @@ namespace Pulumi.Gcp.Compute.Inputs public sealed class FirewallPolicyRuleMatchLayer4ConfigArgs : global::Pulumi.ResourceArgs { /// - /// The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (`tcp`, `udp`, `icmp`, `esp`, `ah`, `ipip`, `sctp`), or the IP protocol number. + /// The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. + /// This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number. /// [Input("ipProtocol", required: true)] public Input IpProtocol { get; set; } = null!; @@ -22,7 +23,8 @@ public sealed class FirewallPolicyRuleMatchLayer4ConfigArgs : global::Pulumi.Res private InputList? _ports; /// - /// An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ``. + /// An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. + /// Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. /// public InputList Ports { diff --git a/sdk/dotnet/Compute/Inputs/FirewallPolicyRuleMatchLayer4ConfigGetArgs.cs b/sdk/dotnet/Compute/Inputs/FirewallPolicyRuleMatchLayer4ConfigGetArgs.cs index 49fc899e3c..35931ffa19 100644 --- a/sdk/dotnet/Compute/Inputs/FirewallPolicyRuleMatchLayer4ConfigGetArgs.cs +++ b/sdk/dotnet/Compute/Inputs/FirewallPolicyRuleMatchLayer4ConfigGetArgs.cs @@ -13,7 +13,8 @@ namespace Pulumi.Gcp.Compute.Inputs public sealed class FirewallPolicyRuleMatchLayer4ConfigGetArgs : global::Pulumi.ResourceArgs { /// - /// The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (`tcp`, `udp`, `icmp`, `esp`, `ah`, `ipip`, `sctp`), or the IP protocol number. + /// The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. + /// This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number. /// [Input("ipProtocol", required: true)] public Input IpProtocol { get; set; } = null!; @@ -22,7 +23,8 @@ public sealed class FirewallPolicyRuleMatchLayer4ConfigGetArgs : global::Pulumi. private InputList? _ports; /// - /// An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ``. + /// An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. + /// Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. /// public InputList Ports { diff --git a/sdk/dotnet/Compute/Inputs/NodeTemplateDiskArgs.cs b/sdk/dotnet/Compute/Inputs/NodeTemplateDiskArgs.cs new file mode 100644 index 0000000000..cd33f28146 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/NodeTemplateDiskArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class NodeTemplateDiskArgs : global::Pulumi.ResourceArgs + { + /// + /// Specifies the number of such disks. + /// + [Input("diskCount")] + public Input? DiskCount { get; set; } + + /// + /// Specifies the size of the disk in base-2 GB. + /// + [Input("diskSizeGb")] + public Input? DiskSizeGb { get; set; } + + /// + /// Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be the name of the disk type and not its URL. + /// + [Input("diskType")] + public Input? DiskType { get; set; } + + public NodeTemplateDiskArgs() + { + } + public static new NodeTemplateDiskArgs Empty => new NodeTemplateDiskArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/NodeTemplateDiskGetArgs.cs b/sdk/dotnet/Compute/Inputs/NodeTemplateDiskGetArgs.cs new file mode 100644 index 0000000000..061e13305e --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/NodeTemplateDiskGetArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class NodeTemplateDiskGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Specifies the number of such disks. + /// + [Input("diskCount")] + public Input? DiskCount { get; set; } + + /// + /// Specifies the size of the disk in base-2 GB. + /// + [Input("diskSizeGb")] + public Input? DiskSizeGb { get; set; } + + /// + /// Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be the name of the disk type and not its URL. + /// + [Input("diskType")] + public Input? DiskType { get; set; } + + public NodeTemplateDiskGetArgs() + { + } + public static new NodeTemplateDiskGetArgs Empty => new NodeTemplateDiskGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionAutoscalerAutoscalingPolicyScaleDownControlArgs.cs b/sdk/dotnet/Compute/Inputs/RegionAutoscalerAutoscalingPolicyScaleDownControlArgs.cs index 93b81b642c..c2843ed5a8 100644 --- a/sdk/dotnet/Compute/Inputs/RegionAutoscalerAutoscalingPolicyScaleDownControlArgs.cs +++ b/sdk/dotnet/Compute/Inputs/RegionAutoscalerAutoscalingPolicyScaleDownControlArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Gcp.Compute.Inputs public sealed class RegionAutoscalerAutoscalingPolicyScaleDownControlArgs : global::Pulumi.ResourceArgs { /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("maxScaledDownReplicas")] diff --git a/sdk/dotnet/Compute/Inputs/RegionAutoscalerAutoscalingPolicyScaleDownControlGetArgs.cs b/sdk/dotnet/Compute/Inputs/RegionAutoscalerAutoscalingPolicyScaleDownControlGetArgs.cs index ec9fd9f1de..84ce847b57 100644 --- a/sdk/dotnet/Compute/Inputs/RegionAutoscalerAutoscalingPolicyScaleDownControlGetArgs.cs +++ b/sdk/dotnet/Compute/Inputs/RegionAutoscalerAutoscalingPolicyScaleDownControlGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Gcp.Compute.Inputs public sealed class RegionAutoscalerAutoscalingPolicyScaleDownControlGetArgs : global::Pulumi.ResourceArgs { /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("maxScaledDownReplicas")] diff --git a/sdk/dotnet/Compute/Inputs/RegionAutoscalerAutoscalingPolicyScaleInControlArgs.cs b/sdk/dotnet/Compute/Inputs/RegionAutoscalerAutoscalingPolicyScaleInControlArgs.cs index bd07becd2f..d0bd1a00ea 100644 --- a/sdk/dotnet/Compute/Inputs/RegionAutoscalerAutoscalingPolicyScaleInControlArgs.cs +++ b/sdk/dotnet/Compute/Inputs/RegionAutoscalerAutoscalingPolicyScaleInControlArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Gcp.Compute.Inputs public sealed class RegionAutoscalerAutoscalingPolicyScaleInControlArgs : global::Pulumi.ResourceArgs { /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("maxScaledInReplicas")] diff --git a/sdk/dotnet/Compute/Inputs/RegionAutoscalerAutoscalingPolicyScaleInControlGetArgs.cs b/sdk/dotnet/Compute/Inputs/RegionAutoscalerAutoscalingPolicyScaleInControlGetArgs.cs index 44c81654b5..9dc69e5025 100644 --- a/sdk/dotnet/Compute/Inputs/RegionAutoscalerAutoscalingPolicyScaleInControlGetArgs.cs +++ b/sdk/dotnet/Compute/Inputs/RegionAutoscalerAutoscalingPolicyScaleInControlGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Gcp.Compute.Inputs public sealed class RegionAutoscalerAutoscalingPolicyScaleInControlGetArgs : global::Pulumi.ResourceArgs { /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("maxScaledInReplicas")] diff --git a/sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerAllInstancesConfigArgs.cs b/sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerAllInstancesConfigArgs.cs index deeb74d3ad..aae6931585 100644 --- a/sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerAllInstancesConfigArgs.cs +++ b/sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerAllInstancesConfigArgs.cs @@ -16,9 +16,7 @@ public sealed class RegionInstanceGroupManagerAllInstancesConfigArgs : global::P private InputMap? _labels; /// - /// , The label key-value pairs that you want to patch onto the instance. - /// - /// - - - + /// The label key-value pairs that you want to patch onto the instance, /// public InputMap Labels { @@ -30,7 +28,7 @@ public InputMap Labels private InputMap? _metadata; /// - /// , The metadata key-value pairs that you want to patch onto the instance. For more information, see [Project and instance metadata](https://cloud.google.com/compute/docs/metadata#project_and_instance_metadata). + /// The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata, /// public InputMap Metadata { diff --git a/sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerAllInstancesConfigGetArgs.cs b/sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerAllInstancesConfigGetArgs.cs index 63b27f9b5b..12ec07f8ac 100644 --- a/sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerAllInstancesConfigGetArgs.cs +++ b/sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerAllInstancesConfigGetArgs.cs @@ -16,9 +16,7 @@ public sealed class RegionInstanceGroupManagerAllInstancesConfigGetArgs : global private InputMap? _labels; /// - /// , The label key-value pairs that you want to patch onto the instance. - /// - /// - - - + /// The label key-value pairs that you want to patch onto the instance, /// public InputMap Labels { @@ -30,7 +28,7 @@ public InputMap Labels private InputMap? _metadata; /// - /// , The metadata key-value pairs that you want to patch onto the instance. For more information, see [Project and instance metadata](https://cloud.google.com/compute/docs/metadata#project_and_instance_metadata). + /// The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata, /// public InputMap Metadata { diff --git a/sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs.cs b/sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs.cs new file mode 100644 index 0000000000..fb8200b947 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs : global::Pulumi.ResourceArgs + { + [Input("instanceSelections")] + private InputList? _instanceSelections; + + /// + /// Named instance selections configuring properties that the group will use when creating new VMs. + /// + public InputList InstanceSelections + { + get => _instanceSelections ?? (_instanceSelections = new InputList()); + set => _instanceSelections = value; + } + + public RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs() + { + } + public static new RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs Empty => new RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerInstanceFlexibilityPolicyGetArgs.cs b/sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerInstanceFlexibilityPolicyGetArgs.cs new file mode 100644 index 0000000000..d17b902798 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerInstanceFlexibilityPolicyGetArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionInstanceGroupManagerInstanceFlexibilityPolicyGetArgs : global::Pulumi.ResourceArgs + { + [Input("instanceSelections")] + private InputList? _instanceSelections; + + /// + /// Named instance selections configuring properties that the group will use when creating new VMs. + /// + public InputList InstanceSelections + { + get => _instanceSelections ?? (_instanceSelections = new InputList()); + set => _instanceSelections = value; + } + + public RegionInstanceGroupManagerInstanceFlexibilityPolicyGetArgs() + { + } + public static new RegionInstanceGroupManagerInstanceFlexibilityPolicyGetArgs Empty => new RegionInstanceGroupManagerInstanceFlexibilityPolicyGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs.cs b/sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs.cs new file mode 100644 index 0000000000..1f7ce97e88 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs.cs @@ -0,0 +1,47 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs : global::Pulumi.ResourceArgs + { + [Input("machineTypes", required: true)] + private InputList? _machineTypes; + + /// + /// Full machine-type names, e.g. "n1-standard-16" + /// + public InputList MachineTypes + { + get => _machineTypes ?? (_machineTypes = new InputList()); + set => _machineTypes = value; + } + + /// + /// The name of the instance group manager. Must be 1-63 + /// characters long and comply with + /// [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Supported characters + /// include lowercase letters, numbers, and hyphens. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + /// + /// Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference. + /// + [Input("rank")] + public Input? Rank { get; set; } + + public RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs() + { + } + public static new RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs Empty => new RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionGetArgs.cs b/sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionGetArgs.cs new file mode 100644 index 0000000000..dd08b56171 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionGetArgs.cs @@ -0,0 +1,47 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionGetArgs : global::Pulumi.ResourceArgs + { + [Input("machineTypes", required: true)] + private InputList? _machineTypes; + + /// + /// Full machine-type names, e.g. "n1-standard-16" + /// + public InputList MachineTypes + { + get => _machineTypes ?? (_machineTypes = new InputList()); + set => _machineTypes = value; + } + + /// + /// The name of the instance group manager. Must be 1-63 + /// characters long and comply with + /// [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Supported characters + /// include lowercase letters, numbers, and hyphens. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + /// + /// Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference. + /// + [Input("rank")] + public Input? Rank { get; set; } + + public RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionGetArgs() + { + } + public static new RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionGetArgs Empty => new RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerInstanceLifecyclePolicyArgs.cs b/sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerInstanceLifecyclePolicyArgs.cs index 545d83ba6a..f0c51fdb11 100644 --- a/sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerInstanceLifecyclePolicyArgs.cs +++ b/sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerInstanceLifecyclePolicyArgs.cs @@ -16,6 +16,7 @@ public sealed class RegionInstanceGroupManagerInstanceLifecyclePolicyArgs : glob /// , Default behavior for all instance or health check failures. Valid options are: `REPAIR`, `DO_NOTHING`. If `DO_NOTHING` then instances will not be repaired. If `REPAIR` (default), then failed instances will be repaired. /// /// - - - + /// <a name="nested_instance_flexibility_policy"></a>The `instance_flexibility_policy` block supports: /// [Input("defaultActionOnFailure")] public Input? DefaultActionOnFailure { get; set; } diff --git a/sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerInstanceLifecyclePolicyGetArgs.cs b/sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerInstanceLifecyclePolicyGetArgs.cs index a517e10168..4c0487c318 100644 --- a/sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerInstanceLifecyclePolicyGetArgs.cs +++ b/sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerInstanceLifecyclePolicyGetArgs.cs @@ -16,6 +16,7 @@ public sealed class RegionInstanceGroupManagerInstanceLifecyclePolicyGetArgs : g /// , Default behavior for all instance or health check failures. Valid options are: `REPAIR`, `DO_NOTHING`. If `DO_NOTHING` then instances will not be repaired. If `REPAIR` (default), then failed instances will be repaired. /// /// - - - + /// <a name="nested_instance_flexibility_policy"></a>The `instance_flexibility_policy` block supports: /// [Input("defaultActionOnFailure")] public Input? DefaultActionOnFailure { get; set; } diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestRequestedRunDurationArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestRequestedRunDurationArgs.cs new file mode 100644 index 0000000000..389c3477a5 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestRequestedRunDurationArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestRequestedRunDurationArgs : global::Pulumi.ResourceArgs + { + /// + /// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. + /// + [Input("nanos")] + public Input? Nanos { get; set; } + + /// + /// Span of time at a resolution of a second. Must be from 600 to 604800 inclusive. Note: minimum and maximum allowed range for requestedRunDuration is 10 minutes (600 seconds) and 7 days(604800 seconds) correspondingly. + /// + [Input("seconds", required: true)] + public Input Seconds { get; set; } = null!; + + public RegionResizeRequestRequestedRunDurationArgs() + { + } + public static new RegionResizeRequestRequestedRunDurationArgs Empty => new RegionResizeRequestRequestedRunDurationArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestRequestedRunDurationGetArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestRequestedRunDurationGetArgs.cs new file mode 100644 index 0000000000..ee2d8cdc7b --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestRequestedRunDurationGetArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestRequestedRunDurationGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. + /// + [Input("nanos")] + public Input? Nanos { get; set; } + + /// + /// Span of time at a resolution of a second. Must be from 600 to 604800 inclusive. Note: minimum and maximum allowed range for requestedRunDuration is 10 minutes (600 seconds) and 7 days(604800 seconds) correspondingly. + /// + [Input("seconds", required: true)] + public Input Seconds { get; set; } = null!; + + public RegionResizeRequestRequestedRunDurationGetArgs() + { + } + public static new RegionResizeRequestRequestedRunDurationGetArgs Empty => new RegionResizeRequestRequestedRunDurationGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusArgs.cs new file mode 100644 index 0000000000..ff504dfe13 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusArgs.cs @@ -0,0 +1,48 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusArgs : global::Pulumi.ResourceArgs + { + [Input("errors")] + private InputList? _errors; + + /// + /// (Output) + /// Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + /// Structure is documented below. + /// + public InputList Errors + { + get => _errors ?? (_errors = new InputList()); + set => _errors = value; + } + + [Input("lastAttempts")] + private InputList? _lastAttempts; + + /// + /// (Output) + /// Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the "error" field only. + /// Structure is documented below. + /// + public InputList LastAttempts + { + get => _lastAttempts ?? (_lastAttempts = new InputList()); + set => _lastAttempts = value; + } + + public RegionResizeRequestStatusArgs() + { + } + public static new RegionResizeRequestStatusArgs Empty => new RegionResizeRequestStatusArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorArgs.cs new file mode 100644 index 0000000000..4fa10afa36 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusErrorArgs : global::Pulumi.ResourceArgs + { + [Input("errors")] + private InputList? _errors; + + /// + /// (Output) + /// The array of errors encountered while processing this operation. + /// Structure is documented below. + /// + public InputList Errors + { + get => _errors ?? (_errors = new InputList()); + set => _errors = value; + } + + public RegionResizeRequestStatusErrorArgs() + { + } + public static new RegionResizeRequestStatusErrorArgs Empty => new RegionResizeRequestStatusErrorArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorArgs.cs new file mode 100644 index 0000000000..7d1bbebb6f --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorArgs.cs @@ -0,0 +1,55 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusErrorErrorArgs : global::Pulumi.ResourceArgs + { + /// + /// (Output) + /// The error type identifier for this error. + /// + [Input("code")] + public Input? Code { get; set; } + + [Input("errorDetails")] + private InputList? _errorDetails; + + /// + /// (Output) + /// An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + /// Structure is documented below. + /// + public InputList ErrorDetails + { + get => _errorDetails ?? (_errorDetails = new InputList()); + set => _errorDetails = value; + } + + /// + /// (Output) + /// Indicates the field in the request that caused the error. This property is optional. + /// + [Input("location")] + public Input? Location { get; set; } + + /// + /// (Output) + /// The localized error message in the above locale. + /// + [Input("message")] + public Input? Message { get; set; } + + public RegionResizeRequestStatusErrorErrorArgs() + { + } + public static new RegionResizeRequestStatusErrorErrorArgs Empty => new RegionResizeRequestStatusErrorErrorArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailArgs.cs new file mode 100644 index 0000000000..c661c0ce30 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailArgs.cs @@ -0,0 +1,76 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusErrorErrorErrorDetailArgs : global::Pulumi.ResourceArgs + { + [Input("errorInfos")] + private InputList? _errorInfos; + + /// + /// (Output) + /// A nested object resource. + /// Structure is documented below. + /// + public InputList ErrorInfos + { + get => _errorInfos ?? (_errorInfos = new InputList()); + set => _errorInfos = value; + } + + [Input("helps")] + private InputList? _helps; + + /// + /// (Output) + /// A nested object resource. + /// Structure is documented below. + /// + public InputList Helps + { + get => _helps ?? (_helps = new InputList()); + set => _helps = value; + } + + [Input("localizedMessages")] + private InputList? _localizedMessages; + + /// + /// (Output) + /// A nested object resource. + /// Structure is documented below. + /// + public InputList LocalizedMessages + { + get => _localizedMessages ?? (_localizedMessages = new InputList()); + set => _localizedMessages = value; + } + + [Input("quotaInfos")] + private InputList? _quotaInfos; + + /// + /// (Output) + /// A nested object resource. + /// Structure is documented below. + /// + public InputList QuotaInfos + { + get => _quotaInfos ?? (_quotaInfos = new InputList()); + set => _quotaInfos = value; + } + + public RegionResizeRequestStatusErrorErrorErrorDetailArgs() + { + } + public static new RegionResizeRequestStatusErrorErrorErrorDetailArgs Empty => new RegionResizeRequestStatusErrorErrorErrorDetailArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs.cs new file mode 100644 index 0000000000..1a09f37316 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs.cs @@ -0,0 +1,47 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs : global::Pulumi.ResourceArgs + { + /// + /// (Output) + /// 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". + /// + [Input("domain")] + public Input? Domain { get; set; } + + [Input("metadatas")] + private InputMap? _metadatas; + + /// + /// (Output) + /// Additional structured details about this error. + /// + public InputMap Metadatas + { + get => _metadatas ?? (_metadatas = new InputMap()); + set => _metadatas = value; + } + + /// + /// (Output) + /// 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. + /// + [Input("reason")] + public Input? Reason { get; set; } + + public RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs() + { + } + public static new RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs Empty => new RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoGetArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoGetArgs.cs new file mode 100644 index 0000000000..b1510e0d67 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoGetArgs.cs @@ -0,0 +1,47 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoGetArgs : global::Pulumi.ResourceArgs + { + /// + /// (Output) + /// 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". + /// + [Input("domain")] + public Input? Domain { get; set; } + + [Input("metadatas")] + private InputMap? _metadatas; + + /// + /// (Output) + /// Additional structured details about this error. + /// + public InputMap Metadatas + { + get => _metadatas ?? (_metadatas = new InputMap()); + set => _metadatas = value; + } + + /// + /// (Output) + /// 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. + /// + [Input("reason")] + public Input? Reason { get; set; } + + public RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoGetArgs() + { + } + public static new RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoGetArgs Empty => new RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailGetArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailGetArgs.cs new file mode 100644 index 0000000000..f328788469 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailGetArgs.cs @@ -0,0 +1,76 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusErrorErrorErrorDetailGetArgs : global::Pulumi.ResourceArgs + { + [Input("errorInfos")] + private InputList? _errorInfos; + + /// + /// (Output) + /// A nested object resource. + /// Structure is documented below. + /// + public InputList ErrorInfos + { + get => _errorInfos ?? (_errorInfos = new InputList()); + set => _errorInfos = value; + } + + [Input("helps")] + private InputList? _helps; + + /// + /// (Output) + /// A nested object resource. + /// Structure is documented below. + /// + public InputList Helps + { + get => _helps ?? (_helps = new InputList()); + set => _helps = value; + } + + [Input("localizedMessages")] + private InputList? _localizedMessages; + + /// + /// (Output) + /// A nested object resource. + /// Structure is documented below. + /// + public InputList LocalizedMessages + { + get => _localizedMessages ?? (_localizedMessages = new InputList()); + set => _localizedMessages = value; + } + + [Input("quotaInfos")] + private InputList? _quotaInfos; + + /// + /// (Output) + /// A nested object resource. + /// Structure is documented below. + /// + public InputList QuotaInfos + { + get => _quotaInfos ?? (_quotaInfos = new InputList()); + set => _quotaInfos = value; + } + + public RegionResizeRequestStatusErrorErrorErrorDetailGetArgs() + { + } + public static new RegionResizeRequestStatusErrorErrorErrorDetailGetArgs Empty => new RegionResizeRequestStatusErrorErrorErrorDetailGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs.cs new file mode 100644 index 0000000000..cb3c42c4a5 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs : global::Pulumi.ResourceArgs + { + [Input("links")] + private InputList? _links; + + /// + /// (Output) + /// A nested object resource. + /// Structure is documented below. + /// + public InputList Links + { + get => _links ?? (_links = new InputList()); + set => _links = value; + } + + public RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs() + { + } + public static new RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs Empty => new RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailHelpGetArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailHelpGetArgs.cs new file mode 100644 index 0000000000..2d78a9443d --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailHelpGetArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusErrorErrorErrorDetailHelpGetArgs : global::Pulumi.ResourceArgs + { + [Input("links")] + private InputList? _links; + + /// + /// (Output) + /// A nested object resource. + /// Structure is documented below. + /// + public InputList Links + { + get => _links ?? (_links = new InputList()); + set => _links = value; + } + + public RegionResizeRequestStatusErrorErrorErrorDetailHelpGetArgs() + { + } + public static new RegionResizeRequestStatusErrorErrorErrorDetailHelpGetArgs Empty => new RegionResizeRequestStatusErrorErrorErrorDetailHelpGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs.cs new file mode 100644 index 0000000000..4df4dce241 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs : global::Pulumi.ResourceArgs + { + /// + /// An optional description of this resize-request. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// (Output) + /// The URL of the link. + /// + [Input("url")] + public Input? Url { get; set; } + + public RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs() + { + } + public static new RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs Empty => new RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkGetArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkGetArgs.cs new file mode 100644 index 0000000000..7b0458c304 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkGetArgs.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkGetArgs : global::Pulumi.ResourceArgs + { + /// + /// An optional description of this resize-request. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// (Output) + /// The URL of the link. + /// + [Input("url")] + public Input? Url { get; set; } + + public RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkGetArgs() + { + } + public static new RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkGetArgs Empty => new RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs.cs new file mode 100644 index 0000000000..8ab9a8b58b --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs : global::Pulumi.ResourceArgs + { + /// + /// (Output) + /// The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + /// + [Input("locale")] + public Input? Locale { get; set; } + + /// + /// (Output) + /// The localized error message in the above locale. + /// + [Input("message")] + public Input? Message { get; set; } + + public RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs() + { + } + public static new RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs Empty => new RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageGetArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageGetArgs.cs new file mode 100644 index 0000000000..802146f3d1 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageGetArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageGetArgs : global::Pulumi.ResourceArgs + { + /// + /// (Output) + /// The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + /// + [Input("locale")] + public Input? Locale { get; set; } + + /// + /// (Output) + /// The localized error message in the above locale. + /// + [Input("message")] + public Input? Message { get; set; } + + public RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageGetArgs() + { + } + public static new RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageGetArgs Empty => new RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs.cs new file mode 100644 index 0000000000..58b3e3af2d --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs.cs @@ -0,0 +1,68 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs : global::Pulumi.ResourceArgs + { + [Input("dimensions")] + private InputMap? _dimensions; + + /// + /// (Output) + /// The map holding related quota dimensions + /// + public InputMap Dimensions + { + get => _dimensions ?? (_dimensions = new InputMap()); + set => _dimensions = value; + } + + /// + /// (Output) + /// Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + /// + [Input("futureLimit")] + public Input? FutureLimit { get; set; } + + /// + /// (Output) + /// Current effective quota limit. The limit's unit depends on the quota type or metric. + /// + [Input("limit")] + public Input? Limit { get; set; } + + /// + /// (Output) + /// The name of the quota limit. + /// + [Input("limitName")] + public Input? LimitName { get; set; } + + /// + /// (Output) + /// The Compute Engine quota metric name. + /// + [Input("metricName")] + public Input? MetricName { get; set; } + + /// + /// (Output) + /// Rollout status of the future quota limit. + /// + [Input("rolloutStatus")] + public Input? RolloutStatus { get; set; } + + public RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs() + { + } + public static new RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs Empty => new RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoGetArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoGetArgs.cs new file mode 100644 index 0000000000..42c1bc8929 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoGetArgs.cs @@ -0,0 +1,68 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoGetArgs : global::Pulumi.ResourceArgs + { + [Input("dimensions")] + private InputMap? _dimensions; + + /// + /// (Output) + /// The map holding related quota dimensions + /// + public InputMap Dimensions + { + get => _dimensions ?? (_dimensions = new InputMap()); + set => _dimensions = value; + } + + /// + /// (Output) + /// Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + /// + [Input("futureLimit")] + public Input? FutureLimit { get; set; } + + /// + /// (Output) + /// Current effective quota limit. The limit's unit depends on the quota type or metric. + /// + [Input("limit")] + public Input? Limit { get; set; } + + /// + /// (Output) + /// The name of the quota limit. + /// + [Input("limitName")] + public Input? LimitName { get; set; } + + /// + /// (Output) + /// The Compute Engine quota metric name. + /// + [Input("metricName")] + public Input? MetricName { get; set; } + + /// + /// (Output) + /// Rollout status of the future quota limit. + /// + [Input("rolloutStatus")] + public Input? RolloutStatus { get; set; } + + public RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoGetArgs() + { + } + public static new RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoGetArgs Empty => new RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorGetArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorGetArgs.cs new file mode 100644 index 0000000000..04819b8598 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorErrorGetArgs.cs @@ -0,0 +1,55 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusErrorErrorGetArgs : global::Pulumi.ResourceArgs + { + /// + /// (Output) + /// The error type identifier for this error. + /// + [Input("code")] + public Input? Code { get; set; } + + [Input("errorDetails")] + private InputList? _errorDetails; + + /// + /// (Output) + /// An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + /// Structure is documented below. + /// + public InputList ErrorDetails + { + get => _errorDetails ?? (_errorDetails = new InputList()); + set => _errorDetails = value; + } + + /// + /// (Output) + /// Indicates the field in the request that caused the error. This property is optional. + /// + [Input("location")] + public Input? Location { get; set; } + + /// + /// (Output) + /// The localized error message in the above locale. + /// + [Input("message")] + public Input? Message { get; set; } + + public RegionResizeRequestStatusErrorErrorGetArgs() + { + } + public static new RegionResizeRequestStatusErrorErrorGetArgs Empty => new RegionResizeRequestStatusErrorErrorGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorGetArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorGetArgs.cs new file mode 100644 index 0000000000..75d0e040ba --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusErrorGetArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusErrorGetArgs : global::Pulumi.ResourceArgs + { + [Input("errors")] + private InputList? _errors; + + /// + /// (Output) + /// The array of errors encountered while processing this operation. + /// Structure is documented below. + /// + public InputList Errors + { + get => _errors ?? (_errors = new InputList()); + set => _errors = value; + } + + public RegionResizeRequestStatusErrorGetArgs() + { + } + public static new RegionResizeRequestStatusErrorGetArgs Empty => new RegionResizeRequestStatusErrorGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusGetArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusGetArgs.cs new file mode 100644 index 0000000000..da2e8a52d4 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusGetArgs.cs @@ -0,0 +1,48 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusGetArgs : global::Pulumi.ResourceArgs + { + [Input("errors")] + private InputList? _errors; + + /// + /// (Output) + /// Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + /// Structure is documented below. + /// + public InputList Errors + { + get => _errors ?? (_errors = new InputList()); + set => _errors = value; + } + + [Input("lastAttempts")] + private InputList? _lastAttempts; + + /// + /// (Output) + /// Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the "error" field only. + /// Structure is documented below. + /// + public InputList LastAttempts + { + get => _lastAttempts ?? (_lastAttempts = new InputList()); + set => _lastAttempts = value; + } + + public RegionResizeRequestStatusGetArgs() + { + } + public static new RegionResizeRequestStatusGetArgs Empty => new RegionResizeRequestStatusGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptArgs.cs new file mode 100644 index 0000000000..64a4d798ae --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusLastAttemptArgs : global::Pulumi.ResourceArgs + { + [Input("errors")] + private InputList? _errors; + + /// + /// (Output) + /// Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + /// Structure is documented below. + /// + public InputList Errors + { + get => _errors ?? (_errors = new InputList()); + set => _errors = value; + } + + public RegionResizeRequestStatusLastAttemptArgs() + { + } + public static new RegionResizeRequestStatusLastAttemptArgs Empty => new RegionResizeRequestStatusLastAttemptArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorArgs.cs new file mode 100644 index 0000000000..e949c973da --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusLastAttemptErrorArgs : global::Pulumi.ResourceArgs + { + [Input("errors")] + private InputList? _errors; + + /// + /// (Output) + /// The array of errors encountered while processing this operation. + /// Structure is documented below. + /// + public InputList Errors + { + get => _errors ?? (_errors = new InputList()); + set => _errors = value; + } + + public RegionResizeRequestStatusLastAttemptErrorArgs() + { + } + public static new RegionResizeRequestStatusLastAttemptErrorArgs Empty => new RegionResizeRequestStatusLastAttemptErrorArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorArgs.cs new file mode 100644 index 0000000000..6d6262ccab --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorArgs.cs @@ -0,0 +1,55 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusLastAttemptErrorErrorArgs : global::Pulumi.ResourceArgs + { + /// + /// (Output) + /// The error type identifier for this error. + /// + [Input("code")] + public Input? Code { get; set; } + + [Input("errorDetails")] + private InputList? _errorDetails; + + /// + /// (Output) + /// An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + /// Structure is documented below. + /// + public InputList ErrorDetails + { + get => _errorDetails ?? (_errorDetails = new InputList()); + set => _errorDetails = value; + } + + /// + /// (Output) + /// Indicates the field in the request that caused the error. This property is optional. + /// + [Input("location")] + public Input? Location { get; set; } + + /// + /// (Output) + /// The localized error message in the above locale. + /// + [Input("message")] + public Input? Message { get; set; } + + public RegionResizeRequestStatusLastAttemptErrorErrorArgs() + { + } + public static new RegionResizeRequestStatusLastAttemptErrorErrorArgs Empty => new RegionResizeRequestStatusLastAttemptErrorErrorArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs.cs new file mode 100644 index 0000000000..da7f62d5dc --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs.cs @@ -0,0 +1,76 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs : global::Pulumi.ResourceArgs + { + [Input("errorInfos")] + private InputList? _errorInfos; + + /// + /// (Output) + /// A nested object resource. + /// Structure is documented below. + /// + public InputList ErrorInfos + { + get => _errorInfos ?? (_errorInfos = new InputList()); + set => _errorInfos = value; + } + + [Input("helps")] + private InputList? _helps; + + /// + /// (Output) + /// A nested object resource. + /// Structure is documented below. + /// + public InputList Helps + { + get => _helps ?? (_helps = new InputList()); + set => _helps = value; + } + + [Input("localizedMessages")] + private InputList? _localizedMessages; + + /// + /// (Output) + /// A nested object resource. + /// Structure is documented below. + /// + public InputList LocalizedMessages + { + get => _localizedMessages ?? (_localizedMessages = new InputList()); + set => _localizedMessages = value; + } + + [Input("quotaInfos")] + private InputList? _quotaInfos; + + /// + /// (Output) + /// A nested object resource. + /// Structure is documented below. + /// + public InputList QuotaInfos + { + get => _quotaInfos ?? (_quotaInfos = new InputList()); + set => _quotaInfos = value; + } + + public RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs() + { + } + public static new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs Empty => new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs.cs new file mode 100644 index 0000000000..7c43415083 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs.cs @@ -0,0 +1,47 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs : global::Pulumi.ResourceArgs + { + /// + /// (Output) + /// 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". + /// + [Input("domain")] + public Input? Domain { get; set; } + + [Input("metadatas")] + private InputMap? _metadatas; + + /// + /// (Output) + /// Additional structured details about this error. + /// + public InputMap Metadatas + { + get => _metadatas ?? (_metadatas = new InputMap()); + set => _metadatas = value; + } + + /// + /// (Output) + /// 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. + /// + [Input("reason")] + public Input? Reason { get; set; } + + public RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs() + { + } + public static new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs Empty => new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoGetArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoGetArgs.cs new file mode 100644 index 0000000000..04de720cb5 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoGetArgs.cs @@ -0,0 +1,47 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoGetArgs : global::Pulumi.ResourceArgs + { + /// + /// (Output) + /// 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". + /// + [Input("domain")] + public Input? Domain { get; set; } + + [Input("metadatas")] + private InputMap? _metadatas; + + /// + /// (Output) + /// Additional structured details about this error. + /// + public InputMap Metadatas + { + get => _metadatas ?? (_metadatas = new InputMap()); + set => _metadatas = value; + } + + /// + /// (Output) + /// 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. + /// + [Input("reason")] + public Input? Reason { get; set; } + + public RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoGetArgs() + { + } + public static new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoGetArgs Empty => new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailGetArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailGetArgs.cs new file mode 100644 index 0000000000..628cbe8032 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailGetArgs.cs @@ -0,0 +1,76 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailGetArgs : global::Pulumi.ResourceArgs + { + [Input("errorInfos")] + private InputList? _errorInfos; + + /// + /// (Output) + /// A nested object resource. + /// Structure is documented below. + /// + public InputList ErrorInfos + { + get => _errorInfos ?? (_errorInfos = new InputList()); + set => _errorInfos = value; + } + + [Input("helps")] + private InputList? _helps; + + /// + /// (Output) + /// A nested object resource. + /// Structure is documented below. + /// + public InputList Helps + { + get => _helps ?? (_helps = new InputList()); + set => _helps = value; + } + + [Input("localizedMessages")] + private InputList? _localizedMessages; + + /// + /// (Output) + /// A nested object resource. + /// Structure is documented below. + /// + public InputList LocalizedMessages + { + get => _localizedMessages ?? (_localizedMessages = new InputList()); + set => _localizedMessages = value; + } + + [Input("quotaInfos")] + private InputList? _quotaInfos; + + /// + /// (Output) + /// A nested object resource. + /// Structure is documented below. + /// + public InputList QuotaInfos + { + get => _quotaInfos ?? (_quotaInfos = new InputList()); + set => _quotaInfos = value; + } + + public RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailGetArgs() + { + } + public static new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailGetArgs Empty => new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs.cs new file mode 100644 index 0000000000..d18923fd72 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs : global::Pulumi.ResourceArgs + { + [Input("links")] + private InputList? _links; + + /// + /// (Output) + /// A nested object resource. + /// Structure is documented below. + /// + public InputList Links + { + get => _links ?? (_links = new InputList()); + set => _links = value; + } + + public RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs() + { + } + public static new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs Empty => new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpGetArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpGetArgs.cs new file mode 100644 index 0000000000..a7c9a1f40e --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpGetArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpGetArgs : global::Pulumi.ResourceArgs + { + [Input("links")] + private InputList? _links; + + /// + /// (Output) + /// A nested object resource. + /// Structure is documented below. + /// + public InputList Links + { + get => _links ?? (_links = new InputList()); + set => _links = value; + } + + public RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpGetArgs() + { + } + public static new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpGetArgs Empty => new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs.cs new file mode 100644 index 0000000000..536fcd3d59 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs : global::Pulumi.ResourceArgs + { + /// + /// An optional description of this resize-request. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// (Output) + /// The URL of the link. + /// + [Input("url")] + public Input? Url { get; set; } + + public RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs() + { + } + public static new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs Empty => new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkGetArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkGetArgs.cs new file mode 100644 index 0000000000..e49480e64a --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkGetArgs.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkGetArgs : global::Pulumi.ResourceArgs + { + /// + /// An optional description of this resize-request. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// (Output) + /// The URL of the link. + /// + [Input("url")] + public Input? Url { get; set; } + + public RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkGetArgs() + { + } + public static new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkGetArgs Empty => new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs.cs new file mode 100644 index 0000000000..8015b77429 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs : global::Pulumi.ResourceArgs + { + /// + /// (Output) + /// The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + /// + [Input("locale")] + public Input? Locale { get; set; } + + /// + /// (Output) + /// The localized error message in the above locale. + /// + [Input("message")] + public Input? Message { get; set; } + + public RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs() + { + } + public static new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs Empty => new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageGetArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageGetArgs.cs new file mode 100644 index 0000000000..d941d1ee4c --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageGetArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageGetArgs : global::Pulumi.ResourceArgs + { + /// + /// (Output) + /// The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + /// + [Input("locale")] + public Input? Locale { get; set; } + + /// + /// (Output) + /// The localized error message in the above locale. + /// + [Input("message")] + public Input? Message { get; set; } + + public RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageGetArgs() + { + } + public static new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageGetArgs Empty => new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs.cs new file mode 100644 index 0000000000..edf24bd6c5 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs.cs @@ -0,0 +1,68 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs : global::Pulumi.ResourceArgs + { + [Input("dimensions")] + private InputMap? _dimensions; + + /// + /// (Output) + /// The map holding related quota dimensions + /// + public InputMap Dimensions + { + get => _dimensions ?? (_dimensions = new InputMap()); + set => _dimensions = value; + } + + /// + /// (Output) + /// Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + /// + [Input("futureLimit")] + public Input? FutureLimit { get; set; } + + /// + /// (Output) + /// Current effective quota limit. The limit's unit depends on the quota type or metric. + /// + [Input("limit")] + public Input? Limit { get; set; } + + /// + /// (Output) + /// The name of the quota limit. + /// + [Input("limitName")] + public Input? LimitName { get; set; } + + /// + /// (Output) + /// The Compute Engine quota metric name. + /// + [Input("metricName")] + public Input? MetricName { get; set; } + + /// + /// (Output) + /// Rollout status of the future quota limit. + /// + [Input("rolloutStatus")] + public Input? RolloutStatus { get; set; } + + public RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs() + { + } + public static new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs Empty => new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoGetArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoGetArgs.cs new file mode 100644 index 0000000000..8d14f694de --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoGetArgs.cs @@ -0,0 +1,68 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoGetArgs : global::Pulumi.ResourceArgs + { + [Input("dimensions")] + private InputMap? _dimensions; + + /// + /// (Output) + /// The map holding related quota dimensions + /// + public InputMap Dimensions + { + get => _dimensions ?? (_dimensions = new InputMap()); + set => _dimensions = value; + } + + /// + /// (Output) + /// Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + /// + [Input("futureLimit")] + public Input? FutureLimit { get; set; } + + /// + /// (Output) + /// Current effective quota limit. The limit's unit depends on the quota type or metric. + /// + [Input("limit")] + public Input? Limit { get; set; } + + /// + /// (Output) + /// The name of the quota limit. + /// + [Input("limitName")] + public Input? LimitName { get; set; } + + /// + /// (Output) + /// The Compute Engine quota metric name. + /// + [Input("metricName")] + public Input? MetricName { get; set; } + + /// + /// (Output) + /// Rollout status of the future quota limit. + /// + [Input("rolloutStatus")] + public Input? RolloutStatus { get; set; } + + public RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoGetArgs() + { + } + public static new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoGetArgs Empty => new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorGetArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorGetArgs.cs new file mode 100644 index 0000000000..0f5f4a4be1 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorErrorGetArgs.cs @@ -0,0 +1,55 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusLastAttemptErrorErrorGetArgs : global::Pulumi.ResourceArgs + { + /// + /// (Output) + /// The error type identifier for this error. + /// + [Input("code")] + public Input? Code { get; set; } + + [Input("errorDetails")] + private InputList? _errorDetails; + + /// + /// (Output) + /// An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + /// Structure is documented below. + /// + public InputList ErrorDetails + { + get => _errorDetails ?? (_errorDetails = new InputList()); + set => _errorDetails = value; + } + + /// + /// (Output) + /// Indicates the field in the request that caused the error. This property is optional. + /// + [Input("location")] + public Input? Location { get; set; } + + /// + /// (Output) + /// The localized error message in the above locale. + /// + [Input("message")] + public Input? Message { get; set; } + + public RegionResizeRequestStatusLastAttemptErrorErrorGetArgs() + { + } + public static new RegionResizeRequestStatusLastAttemptErrorErrorGetArgs Empty => new RegionResizeRequestStatusLastAttemptErrorErrorGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorGetArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorGetArgs.cs new file mode 100644 index 0000000000..8f7a532b48 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptErrorGetArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusLastAttemptErrorGetArgs : global::Pulumi.ResourceArgs + { + [Input("errors")] + private InputList? _errors; + + /// + /// (Output) + /// The array of errors encountered while processing this operation. + /// Structure is documented below. + /// + public InputList Errors + { + get => _errors ?? (_errors = new InputList()); + set => _errors = value; + } + + public RegionResizeRequestStatusLastAttemptErrorGetArgs() + { + } + public static new RegionResizeRequestStatusLastAttemptErrorGetArgs Empty => new RegionResizeRequestStatusLastAttemptErrorGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptGetArgs.cs b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptGetArgs.cs new file mode 100644 index 0000000000..59a4c8d52a --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionResizeRequestStatusLastAttemptGetArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionResizeRequestStatusLastAttemptGetArgs : global::Pulumi.ResourceArgs + { + [Input("errors")] + private InputList? _errors; + + /// + /// (Output) + /// Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + /// Structure is documented below. + /// + public InputList Errors + { + get => _errors ?? (_errors = new InputList()); + set => _errors = value; + } + + public RegionResizeRequestStatusLastAttemptGetArgs() + { + } + public static new RegionResizeRequestStatusLastAttemptGetArgs Empty => new RegionResizeRequestStatusLastAttemptGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionSecurityPolicyRuleArgs.cs b/sdk/dotnet/Compute/Inputs/RegionSecurityPolicyRuleArgs.cs new file mode 100644 index 0000000000..5a9467d5cd --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionSecurityPolicyRuleArgs.cs @@ -0,0 +1,88 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionSecurityPolicyRuleArgs : global::Pulumi.ResourceArgs + { + /// + /// The Action to perform when the rule is matched. The following are the valid actions: + /// * allow: allow access to target. + /// * deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for STATUS are 403, 404, and 502. + /// * rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rateLimitOptions to be set. + /// * redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. This action is only supported in Global Security Policies of type CLOUD_ARMOR. + /// * throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rateLimitOptions to be set for this. + /// + [Input("action", required: true)] + public Input Action { get; set; } = null!; + + /// + /// An optional description of this resource. Provide this property when you create the resource. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// A match condition that incoming traffic is evaluated against. + /// If it evaluates to true, the corresponding 'action' is enforced. + /// Structure is documented below. + /// + [Input("match")] + public Input? Match { get; set; } + + /// + /// A match condition that incoming packets are evaluated against for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding 'action' is enforced. + /// The match criteria for a rule consists of built-in match fields (like 'srcIpRanges') and potentially multiple user-defined match fields ('userDefinedFields'). + /// Field values may be extracted directly from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may not be present in every packet (e.g. 'srcPorts'). A user-defined field is only present if the base header is found in the packet and the entire field is in bounds. + /// Each match field may specify which values can match it, listing one or more ranges, prefixes, or exact values that are considered a match for the field. A field value must be present in order to match a specified match field. If no match values are specified for a match field, then any field value is considered to match it, and it's not required to be present. For strings specifying '*' is also equivalent to match all. + /// For a packet to match a rule, all specified match fields must match the corresponding field values derived from the packet. + /// Example: + /// networkMatch: srcIpRanges: - "192.0.2.0/24" - "198.51.100.0/24" userDefinedFields: - name: "ipv4_fragment_offset" values: - "1-0x1fff" + /// The above match condition matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a user-defined field named "ipv4_fragment_offset" with a value between 1 and 0x1fff inclusive + /// Structure is documented below. + /// + [Input("networkMatch")] + public Input? NetworkMatch { get; set; } + + /// + /// Preconfigured WAF configuration to be applied for the rule. + /// If the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect. + /// Structure is documented below. + /// + [Input("preconfiguredWafConfig")] + public Input? PreconfiguredWafConfig { get; set; } + + /// + /// If set to true, the specified action is not enforced. + /// + [Input("preview")] + public Input? Preview { get; set; } + + /// + /// An integer indicating the priority of a rule in the list. + /// The priority must be a positive value between 0 and 2147483647. + /// Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority. + /// + [Input("priority", required: true)] + public Input Priority { get; set; } = null!; + + /// + /// Must be specified if the action is "rate_based_ban" or "throttle". Cannot be specified for any other actions. + /// Structure is documented below. + /// + [Input("rateLimitOptions")] + public Input? RateLimitOptions { get; set; } + + public RegionSecurityPolicyRuleArgs() + { + } + public static new RegionSecurityPolicyRuleArgs Empty => new RegionSecurityPolicyRuleArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionSecurityPolicyRuleGetArgs.cs b/sdk/dotnet/Compute/Inputs/RegionSecurityPolicyRuleGetArgs.cs new file mode 100644 index 0000000000..741137a085 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionSecurityPolicyRuleGetArgs.cs @@ -0,0 +1,88 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionSecurityPolicyRuleGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The Action to perform when the rule is matched. The following are the valid actions: + /// * allow: allow access to target. + /// * deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for STATUS are 403, 404, and 502. + /// * rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rateLimitOptions to be set. + /// * redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. This action is only supported in Global Security Policies of type CLOUD_ARMOR. + /// * throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rateLimitOptions to be set for this. + /// + [Input("action", required: true)] + public Input Action { get; set; } = null!; + + /// + /// An optional description of this resource. Provide this property when you create the resource. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// A match condition that incoming traffic is evaluated against. + /// If it evaluates to true, the corresponding 'action' is enforced. + /// Structure is documented below. + /// + [Input("match")] + public Input? Match { get; set; } + + /// + /// A match condition that incoming packets are evaluated against for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding 'action' is enforced. + /// The match criteria for a rule consists of built-in match fields (like 'srcIpRanges') and potentially multiple user-defined match fields ('userDefinedFields'). + /// Field values may be extracted directly from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may not be present in every packet (e.g. 'srcPorts'). A user-defined field is only present if the base header is found in the packet and the entire field is in bounds. + /// Each match field may specify which values can match it, listing one or more ranges, prefixes, or exact values that are considered a match for the field. A field value must be present in order to match a specified match field. If no match values are specified for a match field, then any field value is considered to match it, and it's not required to be present. For strings specifying '*' is also equivalent to match all. + /// For a packet to match a rule, all specified match fields must match the corresponding field values derived from the packet. + /// Example: + /// networkMatch: srcIpRanges: - "192.0.2.0/24" - "198.51.100.0/24" userDefinedFields: - name: "ipv4_fragment_offset" values: - "1-0x1fff" + /// The above match condition matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a user-defined field named "ipv4_fragment_offset" with a value between 1 and 0x1fff inclusive + /// Structure is documented below. + /// + [Input("networkMatch")] + public Input? NetworkMatch { get; set; } + + /// + /// Preconfigured WAF configuration to be applied for the rule. + /// If the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect. + /// Structure is documented below. + /// + [Input("preconfiguredWafConfig")] + public Input? PreconfiguredWafConfig { get; set; } + + /// + /// If set to true, the specified action is not enforced. + /// + [Input("preview")] + public Input? Preview { get; set; } + + /// + /// An integer indicating the priority of a rule in the list. + /// The priority must be a positive value between 0 and 2147483647. + /// Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority. + /// + [Input("priority", required: true)] + public Input Priority { get; set; } = null!; + + /// + /// Must be specified if the action is "rate_based_ban" or "throttle". Cannot be specified for any other actions. + /// Structure is documented below. + /// + [Input("rateLimitOptions")] + public Input? RateLimitOptions { get; set; } + + public RegionSecurityPolicyRuleGetArgs() + { + } + public static new RegionSecurityPolicyRuleGetArgs Empty => new RegionSecurityPolicyRuleGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionSecurityPolicyUserDefinedFieldArgs.cs b/sdk/dotnet/Compute/Inputs/RegionSecurityPolicyUserDefinedFieldArgs.cs index 71d046246f..f3ddf92e29 100644 --- a/sdk/dotnet/Compute/Inputs/RegionSecurityPolicyUserDefinedFieldArgs.cs +++ b/sdk/dotnet/Compute/Inputs/RegionSecurityPolicyUserDefinedFieldArgs.cs @@ -32,7 +32,7 @@ public sealed class RegionSecurityPolicyUserDefinedFieldArgs : global::Pulumi.Re public Input? Mask { get; set; } /// - /// The name of this field. Must be unique within the policy. + /// Name of the user-defined field, as given in the definition. /// [Input("name")] public Input? Name { get; set; } diff --git a/sdk/dotnet/Compute/Inputs/RegionSecurityPolicyUserDefinedFieldGetArgs.cs b/sdk/dotnet/Compute/Inputs/RegionSecurityPolicyUserDefinedFieldGetArgs.cs index 0c001e34c2..33086d346a 100644 --- a/sdk/dotnet/Compute/Inputs/RegionSecurityPolicyUserDefinedFieldGetArgs.cs +++ b/sdk/dotnet/Compute/Inputs/RegionSecurityPolicyUserDefinedFieldGetArgs.cs @@ -32,7 +32,7 @@ public sealed class RegionSecurityPolicyUserDefinedFieldGetArgs : global::Pulumi public Input? Mask { get; set; } /// - /// The name of this field. Must be unique within the policy. + /// Name of the user-defined field, as given in the definition. /// [Input("name")] public Input? Name { get; set; } diff --git a/sdk/dotnet/Compute/Inputs/RouterPeerCustomLearnedIpRangeArgs.cs b/sdk/dotnet/Compute/Inputs/RouterPeerCustomLearnedIpRangeArgs.cs index 523d5858a5..6a854cec61 100644 --- a/sdk/dotnet/Compute/Inputs/RouterPeerCustomLearnedIpRangeArgs.cs +++ b/sdk/dotnet/Compute/Inputs/RouterPeerCustomLearnedIpRangeArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Gcp.Compute.Inputs public sealed class RouterPeerCustomLearnedIpRangeArgs : global::Pulumi.ResourceArgs { /// - /// The IP range to advertise. The value must be a + /// The IP range to learn. The value must be a /// CIDR-formatted string. /// [Input("range", required: true)] diff --git a/sdk/dotnet/Compute/Inputs/RouterPeerCustomLearnedIpRangeGetArgs.cs b/sdk/dotnet/Compute/Inputs/RouterPeerCustomLearnedIpRangeGetArgs.cs index 40a38ee98a..32e0979193 100644 --- a/sdk/dotnet/Compute/Inputs/RouterPeerCustomLearnedIpRangeGetArgs.cs +++ b/sdk/dotnet/Compute/Inputs/RouterPeerCustomLearnedIpRangeGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Gcp.Compute.Inputs public sealed class RouterPeerCustomLearnedIpRangeGetArgs : global::Pulumi.ResourceArgs { /// - /// The IP range to advertise. The value must be a + /// The IP range to learn. The value must be a /// CIDR-formatted string. /// [Input("range", required: true)] diff --git a/sdk/dotnet/Compute/NetworkFirewallPolicyRule.cs b/sdk/dotnet/Compute/NetworkFirewallPolicyRule.cs index 1732ac7c85..6983802adb 100644 --- a/sdk/dotnet/Compute/NetworkFirewallPolicyRule.cs +++ b/sdk/dotnet/Compute/NetworkFirewallPolicyRule.cs @@ -69,7 +69,7 @@ namespace Pulumi.Gcp.Compute /// var basicValue = new Gcp.Tags.TagValue("basic_value", new() /// { /// Description = "For valuename resources.", - /// Parent = basicKey.Name.Apply(name => $"tagKeys/{name}"), + /// Parent = basicKey.Id, /// ShortName = "tagvalue", /// }); /// @@ -109,7 +109,7 @@ namespace Pulumi.Gcp.Compute /// { /// new Gcp.Compute.Inputs.NetworkFirewallPolicyRuleMatchSrcSecureTagArgs /// { - /// Name = basicValue.Name.Apply(name => $"tagValues/{name}"), + /// Name = basicValue.Id, /// }, /// }, /// Layer4Configs = new[] diff --git a/sdk/dotnet/Compute/NetworkFirewallPolicyWithRules.cs b/sdk/dotnet/Compute/NetworkFirewallPolicyWithRules.cs index be50d7ed87..0f0ef8c182 100644 --- a/sdk/dotnet/Compute/NetworkFirewallPolicyWithRules.cs +++ b/sdk/dotnet/Compute/NetworkFirewallPolicyWithRules.cs @@ -27,7 +27,7 @@ namespace Pulumi.Gcp.Compute /// var addressGroup1 = new Gcp.NetworkSecurity.AddressGroup("address_group_1", new() /// { /// Name = "tf-address-group", - /// Parent = $"projects/{project.Apply(getProjectResult => getProjectResult.Name)}", + /// Parent = project.Apply(getProjectResult => getProjectResult.Id), /// Description = "Global address group", /// Location = "global", /// Items = new[] @@ -41,7 +41,7 @@ namespace Pulumi.Gcp.Compute /// var secureTagKey1 = new Gcp.Tags.TagKey("secure_tag_key_1", new() /// { /// Description = "Tag key", - /// Parent = $"projects/{project.Apply(getProjectResult => getProjectResult.Name)}", + /// Parent = project.Apply(getProjectResult => getProjectResult.Id), /// Purpose = "GCE_FIREWALL", /// ShortName = "tf-tag-key", /// PurposeData = @@ -53,7 +53,7 @@ namespace Pulumi.Gcp.Compute /// var secureTagValue1 = new Gcp.Tags.TagValue("secure_tag_value_1", new() /// { /// Description = "Tag value", - /// Parent = secureTagKey1.Name.Apply(name => $"tagKeys/{name}"), + /// Parent = secureTagKey1.Id, /// ShortName = "tf-tag-value", /// }); /// @@ -128,7 +128,7 @@ namespace Pulumi.Gcp.Compute /// { /// new Gcp.Compute.Inputs.NetworkFirewallPolicyWithRulesRuleTargetSecureTagArgs /// { - /// Name = secureTagValue1.Name.Apply(name => $"tagValues/{name}"), + /// Name = secureTagValue1.Id, /// }, /// }, /// }, @@ -175,7 +175,7 @@ namespace Pulumi.Gcp.Compute /// { /// new Gcp.Compute.Inputs.NetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgs /// { - /// Name = secureTagValue1.Name.Apply(name => $"tagValues/{name}"), + /// Name = secureTagValue1.Id, /// }, /// }, /// }, diff --git a/sdk/dotnet/Compute/NodeTemplate.cs b/sdk/dotnet/Compute/NodeTemplate.cs index 88cbdad318..7dcc656f96 100644 --- a/sdk/dotnet/Compute/NodeTemplate.cs +++ b/sdk/dotnet/Compute/NodeTemplate.cs @@ -105,6 +105,39 @@ namespace Pulumi.Gcp.Compute /// /// }); /// ``` + /// ### Node Template Disks + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var central1a = Gcp.Compute.GetNodeTypes.Invoke(new() + /// { + /// Zone = "us-central1-a", + /// }); + /// + /// var template = new Gcp.Compute.NodeTemplate("template", new() + /// { + /// Name = "soletenant-with-disks", + /// Region = "us-central1", + /// NodeType = "n2-node-80-640", + /// Disks = new[] + /// { + /// new Gcp.Compute.Inputs.NodeTemplateDiskArgs + /// { + /// DiskCount = 16, + /// DiskSizeGb = 375, + /// DiskType = "local-ssd", + /// }, + /// }, + /// }); + /// + /// }); + /// ``` /// /// ## Import /// @@ -167,6 +200,14 @@ public partial class NodeTemplate : global::Pulumi.CustomResource [Output("description")] public Output Description { get; private set; } = null!; + /// + /// List of the type, size and count of disks attached to the + /// node template + /// Structure is documented below. + /// + [Output("disks")] + public Output> Disks { get; private set; } = null!; + /// /// Name of the resource. /// @@ -299,6 +340,20 @@ public InputList Accelerators [Input("description")] public Input? Description { get; set; } + [Input("disks")] + private InputList? _disks; + + /// + /// List of the type, size and count of disks attached to the + /// node template + /// Structure is documented below. + /// + public InputList Disks + { + get => _disks ?? (_disks = new InputList()); + set => _disks = value; + } + /// /// Name of the resource. /// @@ -399,6 +454,20 @@ public InputList Accelerators [Input("description")] public Input? Description { get; set; } + [Input("disks")] + private InputList? _disks; + + /// + /// List of the type, size and count of disks attached to the + /// node template + /// Structure is documented below. + /// + public InputList Disks + { + get => _disks ?? (_disks = new InputList()); + set => _disks = value; + } + /// /// Name of the resource. /// diff --git a/sdk/dotnet/Compute/Outputs/AutoscalerAutoscalingPolicyScaleDownControl.cs b/sdk/dotnet/Compute/Outputs/AutoscalerAutoscalingPolicyScaleDownControl.cs index a25edcfa6c..50b5905be3 100644 --- a/sdk/dotnet/Compute/Outputs/AutoscalerAutoscalingPolicyScaleDownControl.cs +++ b/sdk/dotnet/Compute/Outputs/AutoscalerAutoscalingPolicyScaleDownControl.cs @@ -14,7 +14,7 @@ namespace Pulumi.Gcp.Compute.Outputs public sealed class AutoscalerAutoscalingPolicyScaleDownControl { /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// public readonly Outputs.AutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicas? MaxScaledDownReplicas; diff --git a/sdk/dotnet/Compute/Outputs/AutoscalerAutoscalingPolicyScaleInControl.cs b/sdk/dotnet/Compute/Outputs/AutoscalerAutoscalingPolicyScaleInControl.cs index 9b6e7b0e72..3eb4b90cc7 100644 --- a/sdk/dotnet/Compute/Outputs/AutoscalerAutoscalingPolicyScaleInControl.cs +++ b/sdk/dotnet/Compute/Outputs/AutoscalerAutoscalingPolicyScaleInControl.cs @@ -14,7 +14,7 @@ namespace Pulumi.Gcp.Compute.Outputs public sealed class AutoscalerAutoscalingPolicyScaleInControl { /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// public readonly Outputs.AutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicas? MaxScaledInReplicas; diff --git a/sdk/dotnet/Compute/Outputs/FirewallPolicyRuleMatch.cs b/sdk/dotnet/Compute/Outputs/FirewallPolicyRuleMatch.cs index 6d22b212cf..df75011418 100644 --- a/sdk/dotnet/Compute/Outputs/FirewallPolicyRuleMatch.cs +++ b/sdk/dotnet/Compute/Outputs/FirewallPolicyRuleMatch.cs @@ -14,49 +14,51 @@ namespace Pulumi.Gcp.Compute.Outputs public sealed class FirewallPolicyRuleMatch { /// - /// Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. Destination address groups is only supported in Egress rules. + /// Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. /// public readonly ImmutableArray DestAddressGroups; /// - /// Domain names that will be used to match against the resolved domain name of destination of traffic. Can only be specified if DIRECTION is egress. + /// Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100. /// public readonly ImmutableArray DestFqdns; /// - /// CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 256. + /// CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000. /// public readonly ImmutableArray DestIpRanges; /// - /// The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is egress. + /// Region codes whose IP addresses will be used to match for destination of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of dest region codes allowed is 5000. /// public readonly ImmutableArray DestRegionCodes; /// - /// Name of the Google Cloud Threat Intelligence list. + /// Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination. /// public readonly ImmutableArray DestThreatIntelligences; /// /// Pairs of IP protocols and ports that the rule should match. + /// Structure is documented below. /// public readonly ImmutableArray Layer4Configs; /// - /// Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. Source address groups is only supported in Ingress rules. + /// Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. /// public readonly ImmutableArray SrcAddressGroups; /// - /// Domain names that will be used to match against the resolved domain name of source of traffic. Can only be specified if DIRECTION is ingress. + /// Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100. /// public readonly ImmutableArray SrcFqdns; /// - /// CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 256. + /// CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000. /// public readonly ImmutableArray SrcIpRanges; /// - /// The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is ingress. + /// Region codes whose IP addresses will be used to match for source of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of source region codes allowed is 5000. /// public readonly ImmutableArray SrcRegionCodes; /// - /// Name of the Google Cloud Threat Intelligence list. + /// Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source. /// - /// The `layer4_configs` block supports: + /// + /// <a name="nested_layer4_configs"></a>The `layer4_configs` block supports: /// public readonly ImmutableArray SrcThreatIntelligences; diff --git a/sdk/dotnet/Compute/Outputs/FirewallPolicyRuleMatchLayer4Config.cs b/sdk/dotnet/Compute/Outputs/FirewallPolicyRuleMatchLayer4Config.cs index eca0bfe963..95d6eca8d3 100644 --- a/sdk/dotnet/Compute/Outputs/FirewallPolicyRuleMatchLayer4Config.cs +++ b/sdk/dotnet/Compute/Outputs/FirewallPolicyRuleMatchLayer4Config.cs @@ -14,11 +14,13 @@ namespace Pulumi.Gcp.Compute.Outputs public sealed class FirewallPolicyRuleMatchLayer4Config { /// - /// The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (`tcp`, `udp`, `icmp`, `esp`, `ah`, `ipip`, `sctp`), or the IP protocol number. + /// The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. + /// This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number. /// public readonly string IpProtocol; /// - /// An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ``. + /// An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. + /// Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. /// public readonly ImmutableArray Ports; diff --git a/sdk/dotnet/Compute/Outputs/GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionResult.cs b/sdk/dotnet/Compute/Outputs/GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionResult.cs new file mode 100644 index 0000000000..aeae02bfb8 --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionResult.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionResult + { + /// + /// Full machine-type names, e.g. "n1-standard-16" + /// + public readonly ImmutableArray MachineTypes; + /// + /// The name of the instance group. Either `name` or `self_link` must be provided. + /// + public readonly string Name; + /// + /// Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference. + /// + public readonly int Rank; + + [OutputConstructor] + private GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionResult( + ImmutableArray machineTypes, + + string name, + + int rank) + { + MachineTypes = machineTypes; + Name = name; + Rank = rank; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/GetRegionInstanceGroupManagerInstanceFlexibilityPolicyResult.cs b/sdk/dotnet/Compute/Outputs/GetRegionInstanceGroupManagerInstanceFlexibilityPolicyResult.cs new file mode 100644 index 0000000000..fa1427d170 --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/GetRegionInstanceGroupManagerInstanceFlexibilityPolicyResult.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class GetRegionInstanceGroupManagerInstanceFlexibilityPolicyResult + { + /// + /// Named instance selections configuring properties that the group will use when creating new VMs. + /// + public readonly ImmutableArray InstanceSelections; + + [OutputConstructor] + private GetRegionInstanceGroupManagerInstanceFlexibilityPolicyResult(ImmutableArray instanceSelections) + { + InstanceSelections = instanceSelections; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/NodeTemplateDisk.cs b/sdk/dotnet/Compute/Outputs/NodeTemplateDisk.cs new file mode 100644 index 0000000000..113b778b3f --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/NodeTemplateDisk.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class NodeTemplateDisk + { + /// + /// Specifies the number of such disks. + /// + public readonly int? DiskCount; + /// + /// Specifies the size of the disk in base-2 GB. + /// + public readonly int? DiskSizeGb; + /// + /// Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be the name of the disk type and not its URL. + /// + public readonly string? DiskType; + + [OutputConstructor] + private NodeTemplateDisk( + int? diskCount, + + int? diskSizeGb, + + string? diskType) + { + DiskCount = diskCount; + DiskSizeGb = diskSizeGb; + DiskType = diskType; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/RegionAutoscalerAutoscalingPolicyScaleDownControl.cs b/sdk/dotnet/Compute/Outputs/RegionAutoscalerAutoscalingPolicyScaleDownControl.cs index a7dde15854..0d9579a6f9 100644 --- a/sdk/dotnet/Compute/Outputs/RegionAutoscalerAutoscalingPolicyScaleDownControl.cs +++ b/sdk/dotnet/Compute/Outputs/RegionAutoscalerAutoscalingPolicyScaleDownControl.cs @@ -14,7 +14,7 @@ namespace Pulumi.Gcp.Compute.Outputs public sealed class RegionAutoscalerAutoscalingPolicyScaleDownControl { /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// public readonly Outputs.RegionAutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicas? MaxScaledDownReplicas; diff --git a/sdk/dotnet/Compute/Outputs/RegionAutoscalerAutoscalingPolicyScaleInControl.cs b/sdk/dotnet/Compute/Outputs/RegionAutoscalerAutoscalingPolicyScaleInControl.cs index 1e1a9dc769..f26ec6bc09 100644 --- a/sdk/dotnet/Compute/Outputs/RegionAutoscalerAutoscalingPolicyScaleInControl.cs +++ b/sdk/dotnet/Compute/Outputs/RegionAutoscalerAutoscalingPolicyScaleInControl.cs @@ -14,7 +14,7 @@ namespace Pulumi.Gcp.Compute.Outputs public sealed class RegionAutoscalerAutoscalingPolicyScaleInControl { /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// public readonly Outputs.RegionAutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicas? MaxScaledInReplicas; diff --git a/sdk/dotnet/Compute/Outputs/RegionInstanceGroupManagerAllInstancesConfig.cs b/sdk/dotnet/Compute/Outputs/RegionInstanceGroupManagerAllInstancesConfig.cs index 6e59527605..36945a8d64 100644 --- a/sdk/dotnet/Compute/Outputs/RegionInstanceGroupManagerAllInstancesConfig.cs +++ b/sdk/dotnet/Compute/Outputs/RegionInstanceGroupManagerAllInstancesConfig.cs @@ -14,13 +14,11 @@ namespace Pulumi.Gcp.Compute.Outputs public sealed class RegionInstanceGroupManagerAllInstancesConfig { /// - /// , The label key-value pairs that you want to patch onto the instance. - /// - /// - - - + /// The label key-value pairs that you want to patch onto the instance, /// public readonly ImmutableDictionary? Labels; /// - /// , The metadata key-value pairs that you want to patch onto the instance. For more information, see [Project and instance metadata](https://cloud.google.com/compute/docs/metadata#project_and_instance_metadata). + /// The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata, /// public readonly ImmutableDictionary? Metadata; diff --git a/sdk/dotnet/Compute/Outputs/RegionInstanceGroupManagerInstanceFlexibilityPolicy.cs b/sdk/dotnet/Compute/Outputs/RegionInstanceGroupManagerInstanceFlexibilityPolicy.cs new file mode 100644 index 0000000000..c87b7c58e0 --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/RegionInstanceGroupManagerInstanceFlexibilityPolicy.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class RegionInstanceGroupManagerInstanceFlexibilityPolicy + { + /// + /// Named instance selections configuring properties that the group will use when creating new VMs. + /// + public readonly ImmutableArray InstanceSelections; + + [OutputConstructor] + private RegionInstanceGroupManagerInstanceFlexibilityPolicy(ImmutableArray instanceSelections) + { + InstanceSelections = instanceSelections; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection.cs b/sdk/dotnet/Compute/Outputs/RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection.cs new file mode 100644 index 0000000000..ef6dff3fdf --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection.cs @@ -0,0 +1,45 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection + { + /// + /// Full machine-type names, e.g. "n1-standard-16" + /// + public readonly ImmutableArray MachineTypes; + /// + /// The name of the instance group manager. Must be 1-63 + /// characters long and comply with + /// [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Supported characters + /// include lowercase letters, numbers, and hyphens. + /// + public readonly string Name; + /// + /// Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference. + /// + public readonly int? Rank; + + [OutputConstructor] + private RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection( + ImmutableArray machineTypes, + + string name, + + int? rank) + { + MachineTypes = machineTypes; + Name = name; + Rank = rank; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/RegionInstanceGroupManagerInstanceLifecyclePolicy.cs b/sdk/dotnet/Compute/Outputs/RegionInstanceGroupManagerInstanceLifecyclePolicy.cs index b6e065f664..3fd8d7203f 100644 --- a/sdk/dotnet/Compute/Outputs/RegionInstanceGroupManagerInstanceLifecyclePolicy.cs +++ b/sdk/dotnet/Compute/Outputs/RegionInstanceGroupManagerInstanceLifecyclePolicy.cs @@ -17,6 +17,7 @@ public sealed class RegionInstanceGroupManagerInstanceLifecyclePolicy /// , Default behavior for all instance or health check failures. Valid options are: `REPAIR`, `DO_NOTHING`. If `DO_NOTHING` then instances will not be repaired. If `REPAIR` (default), then failed instances will be repaired. /// /// - - - + /// <a name="nested_instance_flexibility_policy"></a>The `instance_flexibility_policy` block supports: /// public readonly string? DefaultActionOnFailure; /// diff --git a/sdk/dotnet/Compute/Outputs/RegionResizeRequestRequestedRunDuration.cs b/sdk/dotnet/Compute/Outputs/RegionResizeRequestRequestedRunDuration.cs new file mode 100644 index 0000000000..5ce9d9b34b --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/RegionResizeRequestRequestedRunDuration.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class RegionResizeRequestRequestedRunDuration + { + /// + /// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. + /// + public readonly int? Nanos; + /// + /// Span of time at a resolution of a second. Must be from 600 to 604800 inclusive. Note: minimum and maximum allowed range for requestedRunDuration is 10 minutes (600 seconds) and 7 days(604800 seconds) correspondingly. + /// + public readonly string Seconds; + + [OutputConstructor] + private RegionResizeRequestRequestedRunDuration( + int? nanos, + + string seconds) + { + Nanos = nanos; + Seconds = seconds; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatus.cs b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatus.cs new file mode 100644 index 0000000000..8fb4235180 --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatus.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class RegionResizeRequestStatus + { + /// + /// (Output) + /// Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + /// Structure is documented below. + /// + public readonly ImmutableArray Errors; + /// + /// (Output) + /// Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the "error" field only. + /// Structure is documented below. + /// + public readonly ImmutableArray LastAttempts; + + [OutputConstructor] + private RegionResizeRequestStatus( + ImmutableArray errors, + + ImmutableArray lastAttempts) + { + Errors = errors; + LastAttempts = lastAttempts; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusError.cs b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusError.cs new file mode 100644 index 0000000000..56ce289cfc --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusError.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class RegionResizeRequestStatusError + { + /// + /// (Output) + /// The array of errors encountered while processing this operation. + /// Structure is documented below. + /// + public readonly ImmutableArray Errors; + + [OutputConstructor] + private RegionResizeRequestStatusError(ImmutableArray errors) + { + Errors = errors; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusErrorError.cs b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusErrorError.cs new file mode 100644 index 0000000000..8853265c95 --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusErrorError.cs @@ -0,0 +1,54 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class RegionResizeRequestStatusErrorError + { + /// + /// (Output) + /// The error type identifier for this error. + /// + public readonly string? Code; + /// + /// (Output) + /// An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + /// Structure is documented below. + /// + public readonly ImmutableArray ErrorDetails; + /// + /// (Output) + /// Indicates the field in the request that caused the error. This property is optional. + /// + public readonly string? Location; + /// + /// (Output) + /// The localized error message in the above locale. + /// + public readonly string? Message; + + [OutputConstructor] + private RegionResizeRequestStatusErrorError( + string? code, + + ImmutableArray errorDetails, + + string? location, + + string? message) + { + Code = code; + ErrorDetails = errorDetails; + Location = location; + Message = message; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusErrorErrorErrorDetail.cs b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusErrorErrorErrorDetail.cs new file mode 100644 index 0000000000..0a1e1ff14c --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusErrorErrorErrorDetail.cs @@ -0,0 +1,57 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class RegionResizeRequestStatusErrorErrorErrorDetail + { + /// + /// (Output) + /// A nested object resource. + /// Structure is documented below. + /// + public readonly ImmutableArray ErrorInfos; + /// + /// (Output) + /// A nested object resource. + /// Structure is documented below. + /// + public readonly ImmutableArray Helps; + /// + /// (Output) + /// A nested object resource. + /// Structure is documented below. + /// + public readonly ImmutableArray LocalizedMessages; + /// + /// (Output) + /// A nested object resource. + /// Structure is documented below. + /// + public readonly ImmutableArray QuotaInfos; + + [OutputConstructor] + private RegionResizeRequestStatusErrorErrorErrorDetail( + ImmutableArray errorInfos, + + ImmutableArray helps, + + ImmutableArray localizedMessages, + + ImmutableArray quotaInfos) + { + ErrorInfos = errorInfos; + Helps = helps; + LocalizedMessages = localizedMessages; + QuotaInfos = quotaInfos; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo.cs b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo.cs new file mode 100644 index 0000000000..21a3773931 --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo.cs @@ -0,0 +1,45 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo + { + /// + /// (Output) + /// 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". + /// + public readonly string? Domain; + /// + /// (Output) + /// Additional structured details about this error. + /// + public readonly ImmutableDictionary? Metadatas; + /// + /// (Output) + /// 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. + /// + public readonly string? Reason; + + [OutputConstructor] + private RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo( + string? domain, + + ImmutableDictionary? metadatas, + + string? reason) + { + Domain = domain; + Metadatas = metadatas; + Reason = reason; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusErrorErrorErrorDetailHelp.cs b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusErrorErrorErrorDetailHelp.cs new file mode 100644 index 0000000000..24ae12755a --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusErrorErrorErrorDetailHelp.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class RegionResizeRequestStatusErrorErrorErrorDetailHelp + { + /// + /// (Output) + /// A nested object resource. + /// Structure is documented below. + /// + public readonly ImmutableArray Links; + + [OutputConstructor] + private RegionResizeRequestStatusErrorErrorErrorDetailHelp(ImmutableArray links) + { + Links = links; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusErrorErrorErrorDetailHelpLink.cs b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusErrorErrorErrorDetailHelpLink.cs new file mode 100644 index 0000000000..88be487693 --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusErrorErrorErrorDetailHelpLink.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class RegionResizeRequestStatusErrorErrorErrorDetailHelpLink + { + /// + /// An optional description of this resize-request. + /// + public readonly string? Description; + /// + /// (Output) + /// The URL of the link. + /// + public readonly string? Url; + + [OutputConstructor] + private RegionResizeRequestStatusErrorErrorErrorDetailHelpLink( + string? description, + + string? url) + { + Description = description; + Url = url; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage.cs b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage.cs new file mode 100644 index 0000000000..1c9693f64a --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage.cs @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage + { + /// + /// (Output) + /// The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + /// + public readonly string? Locale; + /// + /// (Output) + /// The localized error message in the above locale. + /// + public readonly string? Message; + + [OutputConstructor] + private RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage( + string? locale, + + string? message) + { + Locale = locale; + Message = message; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo.cs b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo.cs new file mode 100644 index 0000000000..f05dc27f10 --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo.cs @@ -0,0 +1,69 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo + { + /// + /// (Output) + /// The map holding related quota dimensions + /// + public readonly ImmutableDictionary? Dimensions; + /// + /// (Output) + /// Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + /// + public readonly int? FutureLimit; + /// + /// (Output) + /// Current effective quota limit. The limit's unit depends on the quota type or metric. + /// + public readonly int? Limit; + /// + /// (Output) + /// The name of the quota limit. + /// + public readonly string? LimitName; + /// + /// (Output) + /// The Compute Engine quota metric name. + /// + public readonly string? MetricName; + /// + /// (Output) + /// Rollout status of the future quota limit. + /// + public readonly string? RolloutStatus; + + [OutputConstructor] + private RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo( + ImmutableDictionary? dimensions, + + int? futureLimit, + + int? limit, + + string? limitName, + + string? metricName, + + string? rolloutStatus) + { + Dimensions = dimensions; + FutureLimit = futureLimit; + Limit = limit; + LimitName = limitName; + MetricName = metricName; + RolloutStatus = rolloutStatus; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttempt.cs b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttempt.cs new file mode 100644 index 0000000000..5ded70a251 --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttempt.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class RegionResizeRequestStatusLastAttempt + { + /// + /// (Output) + /// Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + /// Structure is documented below. + /// + public readonly ImmutableArray Errors; + + [OutputConstructor] + private RegionResizeRequestStatusLastAttempt(ImmutableArray errors) + { + Errors = errors; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttemptError.cs b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttemptError.cs new file mode 100644 index 0000000000..69f5c2a3c8 --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttemptError.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class RegionResizeRequestStatusLastAttemptError + { + /// + /// (Output) + /// The array of errors encountered while processing this operation. + /// Structure is documented below. + /// + public readonly ImmutableArray Errors; + + [OutputConstructor] + private RegionResizeRequestStatusLastAttemptError(ImmutableArray errors) + { + Errors = errors; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttemptErrorError.cs b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttemptErrorError.cs new file mode 100644 index 0000000000..df9d039059 --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttemptErrorError.cs @@ -0,0 +1,54 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class RegionResizeRequestStatusLastAttemptErrorError + { + /// + /// (Output) + /// The error type identifier for this error. + /// + public readonly string? Code; + /// + /// (Output) + /// An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + /// Structure is documented below. + /// + public readonly ImmutableArray ErrorDetails; + /// + /// (Output) + /// Indicates the field in the request that caused the error. This property is optional. + /// + public readonly string? Location; + /// + /// (Output) + /// The localized error message in the above locale. + /// + public readonly string? Message; + + [OutputConstructor] + private RegionResizeRequestStatusLastAttemptErrorError( + string? code, + + ImmutableArray errorDetails, + + string? location, + + string? message) + { + Code = code; + ErrorDetails = errorDetails; + Location = location; + Message = message; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail.cs b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail.cs new file mode 100644 index 0000000000..bbad582cab --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail.cs @@ -0,0 +1,57 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail + { + /// + /// (Output) + /// A nested object resource. + /// Structure is documented below. + /// + public readonly ImmutableArray ErrorInfos; + /// + /// (Output) + /// A nested object resource. + /// Structure is documented below. + /// + public readonly ImmutableArray Helps; + /// + /// (Output) + /// A nested object resource. + /// Structure is documented below. + /// + public readonly ImmutableArray LocalizedMessages; + /// + /// (Output) + /// A nested object resource. + /// Structure is documented below. + /// + public readonly ImmutableArray QuotaInfos; + + [OutputConstructor] + private RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail( + ImmutableArray errorInfos, + + ImmutableArray helps, + + ImmutableArray localizedMessages, + + ImmutableArray quotaInfos) + { + ErrorInfos = errorInfos; + Helps = helps; + LocalizedMessages = localizedMessages; + QuotaInfos = quotaInfos; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo.cs b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo.cs new file mode 100644 index 0000000000..f07a2af59b --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo.cs @@ -0,0 +1,45 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo + { + /// + /// (Output) + /// 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". + /// + public readonly string? Domain; + /// + /// (Output) + /// Additional structured details about this error. + /// + public readonly ImmutableDictionary? Metadatas; + /// + /// (Output) + /// 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. + /// + public readonly string? Reason; + + [OutputConstructor] + private RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo( + string? domain, + + ImmutableDictionary? metadatas, + + string? reason) + { + Domain = domain; + Metadatas = metadatas; + Reason = reason; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp.cs b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp.cs new file mode 100644 index 0000000000..7282a61f29 --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp + { + /// + /// (Output) + /// A nested object resource. + /// Structure is documented below. + /// + public readonly ImmutableArray Links; + + [OutputConstructor] + private RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp(ImmutableArray links) + { + Links = links; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink.cs b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink.cs new file mode 100644 index 0000000000..31dd969e0c --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink + { + /// + /// An optional description of this resize-request. + /// + public readonly string? Description; + /// + /// (Output) + /// The URL of the link. + /// + public readonly string? Url; + + [OutputConstructor] + private RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink( + string? description, + + string? url) + { + Description = description; + Url = url; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage.cs b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage.cs new file mode 100644 index 0000000000..781b68ccf5 --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage.cs @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage + { + /// + /// (Output) + /// The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + /// + public readonly string? Locale; + /// + /// (Output) + /// The localized error message in the above locale. + /// + public readonly string? Message; + + [OutputConstructor] + private RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage( + string? locale, + + string? message) + { + Locale = locale; + Message = message; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo.cs b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo.cs new file mode 100644 index 0000000000..edd3d34dd7 --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo.cs @@ -0,0 +1,69 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo + { + /// + /// (Output) + /// The map holding related quota dimensions + /// + public readonly ImmutableDictionary? Dimensions; + /// + /// (Output) + /// Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + /// + public readonly int? FutureLimit; + /// + /// (Output) + /// Current effective quota limit. The limit's unit depends on the quota type or metric. + /// + public readonly int? Limit; + /// + /// (Output) + /// The name of the quota limit. + /// + public readonly string? LimitName; + /// + /// (Output) + /// The Compute Engine quota metric name. + /// + public readonly string? MetricName; + /// + /// (Output) + /// Rollout status of the future quota limit. + /// + public readonly string? RolloutStatus; + + [OutputConstructor] + private RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo( + ImmutableDictionary? dimensions, + + int? futureLimit, + + int? limit, + + string? limitName, + + string? metricName, + + string? rolloutStatus) + { + Dimensions = dimensions; + FutureLimit = futureLimit; + Limit = limit; + LimitName = limitName; + MetricName = metricName; + RolloutStatus = rolloutStatus; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/RegionSecurityPolicyRule.cs b/sdk/dotnet/Compute/Outputs/RegionSecurityPolicyRule.cs new file mode 100644 index 0000000000..33260cc9bd --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/RegionSecurityPolicyRule.cs @@ -0,0 +1,97 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class RegionSecurityPolicyRule + { + /// + /// The Action to perform when the rule is matched. The following are the valid actions: + /// * allow: allow access to target. + /// * deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for STATUS are 403, 404, and 502. + /// * rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rateLimitOptions to be set. + /// * redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. This action is only supported in Global Security Policies of type CLOUD_ARMOR. + /// * throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rateLimitOptions to be set for this. + /// + public readonly string Action; + /// + /// An optional description of this resource. Provide this property when you create the resource. + /// + public readonly string? Description; + /// + /// A match condition that incoming traffic is evaluated against. + /// If it evaluates to true, the corresponding 'action' is enforced. + /// Structure is documented below. + /// + public readonly Outputs.RegionSecurityPolicyRuleMatch? Match; + /// + /// A match condition that incoming packets are evaluated against for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding 'action' is enforced. + /// The match criteria for a rule consists of built-in match fields (like 'srcIpRanges') and potentially multiple user-defined match fields ('userDefinedFields'). + /// Field values may be extracted directly from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may not be present in every packet (e.g. 'srcPorts'). A user-defined field is only present if the base header is found in the packet and the entire field is in bounds. + /// Each match field may specify which values can match it, listing one or more ranges, prefixes, or exact values that are considered a match for the field. A field value must be present in order to match a specified match field. If no match values are specified for a match field, then any field value is considered to match it, and it's not required to be present. For strings specifying '*' is also equivalent to match all. + /// For a packet to match a rule, all specified match fields must match the corresponding field values derived from the packet. + /// Example: + /// networkMatch: srcIpRanges: - "192.0.2.0/24" - "198.51.100.0/24" userDefinedFields: - name: "ipv4_fragment_offset" values: - "1-0x1fff" + /// The above match condition matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a user-defined field named "ipv4_fragment_offset" with a value between 1 and 0x1fff inclusive + /// Structure is documented below. + /// + public readonly Outputs.RegionSecurityPolicyRuleNetworkMatch? NetworkMatch; + /// + /// Preconfigured WAF configuration to be applied for the rule. + /// If the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect. + /// Structure is documented below. + /// + public readonly Outputs.RegionSecurityPolicyRulePreconfiguredWafConfig? PreconfiguredWafConfig; + /// + /// If set to true, the specified action is not enforced. + /// + public readonly bool? Preview; + /// + /// An integer indicating the priority of a rule in the list. + /// The priority must be a positive value between 0 and 2147483647. + /// Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority. + /// + public readonly int Priority; + /// + /// Must be specified if the action is "rate_based_ban" or "throttle". Cannot be specified for any other actions. + /// Structure is documented below. + /// + public readonly Outputs.RegionSecurityPolicyRuleRateLimitOptions? RateLimitOptions; + + [OutputConstructor] + private RegionSecurityPolicyRule( + string action, + + string? description, + + Outputs.RegionSecurityPolicyRuleMatch? match, + + Outputs.RegionSecurityPolicyRuleNetworkMatch? networkMatch, + + Outputs.RegionSecurityPolicyRulePreconfiguredWafConfig? preconfiguredWafConfig, + + bool? preview, + + int priority, + + Outputs.RegionSecurityPolicyRuleRateLimitOptions? rateLimitOptions) + { + Action = action; + Description = description; + Match = match; + NetworkMatch = networkMatch; + PreconfiguredWafConfig = preconfiguredWafConfig; + Preview = preview; + Priority = priority; + RateLimitOptions = rateLimitOptions; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/RegionSecurityPolicyUserDefinedField.cs b/sdk/dotnet/Compute/Outputs/RegionSecurityPolicyUserDefinedField.cs index 3ba645cdcb..dbf4574c32 100644 --- a/sdk/dotnet/Compute/Outputs/RegionSecurityPolicyUserDefinedField.cs +++ b/sdk/dotnet/Compute/Outputs/RegionSecurityPolicyUserDefinedField.cs @@ -29,7 +29,7 @@ public sealed class RegionSecurityPolicyUserDefinedField /// public readonly string? Mask; /// - /// The name of this field. Must be unique within the policy. + /// Name of the user-defined field, as given in the definition. /// public readonly string? Name; /// diff --git a/sdk/dotnet/Compute/Outputs/RouterPeerCustomLearnedIpRange.cs b/sdk/dotnet/Compute/Outputs/RouterPeerCustomLearnedIpRange.cs index 63d770f34f..ab7db86e49 100644 --- a/sdk/dotnet/Compute/Outputs/RouterPeerCustomLearnedIpRange.cs +++ b/sdk/dotnet/Compute/Outputs/RouterPeerCustomLearnedIpRange.cs @@ -14,7 +14,7 @@ namespace Pulumi.Gcp.Compute.Outputs public sealed class RouterPeerCustomLearnedIpRange { /// - /// The IP range to advertise. The value must be a + /// The IP range to learn. The value must be a /// CIDR-formatted string. /// public readonly string Range; diff --git a/sdk/dotnet/Compute/RegionDisk.cs b/sdk/dotnet/Compute/RegionDisk.cs index 174bc70380..4e793deaaf 100644 --- a/sdk/dotnet/Compute/RegionDisk.cs +++ b/sdk/dotnet/Compute/RegionDisk.cs @@ -197,7 +197,7 @@ namespace Pulumi.Gcp.Compute public partial class RegionDisk : global::Pulumi.CustomResource { /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Output("asyncPrimaryDisk")] @@ -474,7 +474,7 @@ public static RegionDisk Get(string name, Input id, RegionDiskState? sta public sealed class RegionDiskArgs : global::Pulumi.ResourceArgs { /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("asyncPrimaryDisk")] @@ -662,7 +662,7 @@ public RegionDiskArgs() public sealed class RegionDiskState : global::Pulumi.ResourceArgs { /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("asyncPrimaryDisk")] diff --git a/sdk/dotnet/Compute/RegionHealthCheck.cs b/sdk/dotnet/Compute/RegionHealthCheck.cs index 0930369063..2aa7a3048c 100644 --- a/sdk/dotnet/Compute/RegionHealthCheck.cs +++ b/sdk/dotnet/Compute/RegionHealthCheck.cs @@ -428,7 +428,7 @@ public partial class RegionHealthCheck : global::Pulumi.CustomResource public Output Description { get; private set; } = null!; /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Output("grpcHealthCheck")] @@ -442,21 +442,21 @@ public partial class RegionHealthCheck : global::Pulumi.CustomResource public Output HealthyThreshold { get; private set; } = null!; /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Output("http2HealthCheck")] public Output Http2HealthCheck { get; private set; } = null!; /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Output("httpHealthCheck")] public Output HttpHealthCheck { get; private set; } = null!; /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Output("httpsHealthCheck")] @@ -505,14 +505,14 @@ public partial class RegionHealthCheck : global::Pulumi.CustomResource public Output SelfLink { get; private set; } = null!; /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Output("sslHealthCheck")] public Output SslHealthCheck { get; private set; } = null!; /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Output("tcpHealthCheck")] @@ -600,7 +600,7 @@ public sealed class RegionHealthCheckArgs : global::Pulumi.ResourceArgs public Input? Description { get; set; } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("grpcHealthCheck")] @@ -614,21 +614,21 @@ public sealed class RegionHealthCheckArgs : global::Pulumi.ResourceArgs public Input? HealthyThreshold { get; set; } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("http2HealthCheck")] public Input? Http2HealthCheck { get; set; } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("httpHealthCheck")] public Input? HttpHealthCheck { get; set; } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("httpsHealthCheck")] @@ -671,14 +671,14 @@ public sealed class RegionHealthCheckArgs : global::Pulumi.ResourceArgs public Input? Region { get; set; } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("sslHealthCheck")] public Input? SslHealthCheck { get; set; } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("tcpHealthCheck")] @@ -728,7 +728,7 @@ public sealed class RegionHealthCheckState : global::Pulumi.ResourceArgs public Input? Description { get; set; } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("grpcHealthCheck")] @@ -742,21 +742,21 @@ public sealed class RegionHealthCheckState : global::Pulumi.ResourceArgs public Input? HealthyThreshold { get; set; } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("http2HealthCheck")] public Input? Http2HealthCheck { get; set; } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("httpHealthCheck")] public Input? HttpHealthCheck { get; set; } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("httpsHealthCheck")] @@ -805,14 +805,14 @@ public sealed class RegionHealthCheckState : global::Pulumi.ResourceArgs public Input? SelfLink { get; set; } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("sslHealthCheck")] public Input? SslHealthCheck { get; set; } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("tcpHealthCheck")] diff --git a/sdk/dotnet/Compute/RegionInstanceGroupManager.cs b/sdk/dotnet/Compute/RegionInstanceGroupManager.cs index 56e9d8f466..bbb679f6bd 100644 --- a/sdk/dotnet/Compute/RegionInstanceGroupManager.cs +++ b/sdk/dotnet/Compute/RegionInstanceGroupManager.cs @@ -242,6 +242,13 @@ public partial class RegionInstanceGroupManager : global::Pulumi.CustomResource [Output("fingerprint")] public Output Fingerprint { get; private set; } = null!; + /// + /// The flexibility policy for managed instance group. Instance flexibility allows managed instance group to create VMs from multiple types of machines. Instance flexibility configuration on managed instance group overrides instance template configuration. Structure is documented below. + /// - - - + /// + [Output("instanceFlexibilityPolicy")] + public Output InstanceFlexibilityPolicy { get; private set; } = null!; + /// /// The full URL of the instance group created by the manager. /// @@ -283,8 +290,6 @@ public partial class RegionInstanceGroupManager : global::Pulumi.CustomResource /// /// Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert). - /// - /// - - - /// [Output("params")] public Output Params { get; private set; } = null!; @@ -496,6 +501,13 @@ public InputList DistributionPolicyZones set => _distributionPolicyZones = value; } + /// + /// The flexibility policy for managed instance group. Instance flexibility allows managed instance group to create VMs from multiple types of machines. Instance flexibility configuration on managed instance group overrides instance template configuration. Structure is documented below. + /// - - - + /// + [Input("instanceFlexibilityPolicy")] + public Input? InstanceFlexibilityPolicy { get; set; } + /// /// The instance lifecycle policy for this managed instance group. /// @@ -537,8 +549,6 @@ public InputList NamedPorts /// /// Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert). - /// - /// - - - /// [Input("params")] public Input? Params { get; set; } @@ -742,6 +752,13 @@ public InputList DistributionPolicyZones [Input("fingerprint")] public Input? Fingerprint { get; set; } + /// + /// The flexibility policy for managed instance group. Instance flexibility allows managed instance group to create VMs from multiple types of machines. Instance flexibility configuration on managed instance group overrides instance template configuration. Structure is documented below. + /// - - - + /// + [Input("instanceFlexibilityPolicy")] + public Input? InstanceFlexibilityPolicy { get; set; } + /// /// The full URL of the instance group created by the manager. /// @@ -789,8 +806,6 @@ public InputList NamedPorts /// /// Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert). - /// - /// - - - /// [Input("params")] public Input? Params { get; set; } diff --git a/sdk/dotnet/Compute/RegionNetworkFirewallPolicyRule.cs b/sdk/dotnet/Compute/RegionNetworkFirewallPolicyRule.cs index 84a84fbf59..e2bee26a58 100644 --- a/sdk/dotnet/Compute/RegionNetworkFirewallPolicyRule.cs +++ b/sdk/dotnet/Compute/RegionNetworkFirewallPolicyRule.cs @@ -70,7 +70,7 @@ namespace Pulumi.Gcp.Compute /// var basicValue = new Gcp.Tags.TagValue("basic_value", new() /// { /// Description = "For valuename resources.", - /// Parent = basicKey.Name.Apply(name => $"tagKeys/{name}"), + /// Parent = basicKey.Id, /// ShortName = "tagvalue", /// }); /// @@ -118,7 +118,7 @@ namespace Pulumi.Gcp.Compute /// { /// new Gcp.Compute.Inputs.RegionNetworkFirewallPolicyRuleMatchSrcSecureTagArgs /// { - /// Name = basicValue.Name.Apply(name => $"tagValues/{name}"), + /// Name = basicValue.Id, /// }, /// }, /// SrcAddressGroups = new[] diff --git a/sdk/dotnet/Compute/RegionNetworkFirewallPolicyWithRules.cs b/sdk/dotnet/Compute/RegionNetworkFirewallPolicyWithRules.cs index 29ffab1221..b91e4f7d8e 100644 --- a/sdk/dotnet/Compute/RegionNetworkFirewallPolicyWithRules.cs +++ b/sdk/dotnet/Compute/RegionNetworkFirewallPolicyWithRules.cs @@ -27,7 +27,7 @@ namespace Pulumi.Gcp.Compute /// var addressGroup1 = new Gcp.NetworkSecurity.AddressGroup("address_group_1", new() /// { /// Name = "tf-address-group", - /// Parent = $"projects/{project.Apply(getProjectResult => getProjectResult.Name)}", + /// Parent = project.Apply(getProjectResult => getProjectResult.Id), /// Description = "Regional address group", /// Location = "us-west2", /// Items = new[] @@ -41,7 +41,7 @@ namespace Pulumi.Gcp.Compute /// var secureTagKey1 = new Gcp.Tags.TagKey("secure_tag_key_1", new() /// { /// Description = "Tag key", - /// Parent = $"projects/{project.Apply(getProjectResult => getProjectResult.Name)}", + /// Parent = project.Apply(getProjectResult => getProjectResult.Id), /// Purpose = "GCE_FIREWALL", /// ShortName = "tf-tag-key", /// PurposeData = @@ -53,7 +53,7 @@ namespace Pulumi.Gcp.Compute /// var secureTagValue1 = new Gcp.Tags.TagValue("secure_tag_value_1", new() /// { /// Description = "Tag value", - /// Parent = secureTagKey1.Name.Apply(name => $"tagKeys/{name}"), + /// Parent = secureTagKey1.Id, /// ShortName = "tf-tag-value", /// }); /// @@ -113,7 +113,7 @@ namespace Pulumi.Gcp.Compute /// { /// new Gcp.Compute.Inputs.RegionNetworkFirewallPolicyWithRulesRuleTargetSecureTagArgs /// { - /// Name = secureTagValue1.Name.Apply(name => $"tagValues/{name}"), + /// Name = secureTagValue1.Id, /// }, /// }, /// }, @@ -161,7 +161,7 @@ namespace Pulumi.Gcp.Compute /// { /// new Gcp.Compute.Inputs.RegionNetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgs /// { - /// Name = secureTagValue1.Name.Apply(name => $"tagValues/{name}"), + /// Name = secureTagValue1.Id, /// }, /// }, /// }, diff --git a/sdk/dotnet/Compute/RegionResizeRequest.cs b/sdk/dotnet/Compute/RegionResizeRequest.cs new file mode 100644 index 0000000000..144a0b10f6 --- /dev/null +++ b/sdk/dotnet/Compute/RegionResizeRequest.cs @@ -0,0 +1,405 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute +{ + /// + /// ## Example Usage + /// + /// ### Compute Rmig Resize Request + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var a3Dws = new Gcp.Compute.RegionInstanceTemplate("a3_dws", new() + /// { + /// Name = "a3-dws", + /// Region = "us-central1", + /// Description = "This template is used to create a mig instance that is compatible with DWS resize requests.", + /// InstanceDescription = "A3 GPU", + /// MachineType = "a3-highgpu-8g", + /// CanIpForward = false, + /// Scheduling = new Gcp.Compute.Inputs.RegionInstanceTemplateSchedulingArgs + /// { + /// AutomaticRestart = false, + /// OnHostMaintenance = "TERMINATE", + /// }, + /// Disks = new[] + /// { + /// new Gcp.Compute.Inputs.RegionInstanceTemplateDiskArgs + /// { + /// SourceImage = "cos-cloud/cos-105-lts", + /// AutoDelete = true, + /// Boot = true, + /// DiskType = "pd-ssd", + /// DiskSizeGb = 960, + /// Mode = "READ_WRITE", + /// }, + /// }, + /// GuestAccelerators = new[] + /// { + /// new Gcp.Compute.Inputs.RegionInstanceTemplateGuestAcceleratorArgs + /// { + /// Type = "nvidia-h100-80gb", + /// Count = 8, + /// }, + /// }, + /// ReservationAffinity = new Gcp.Compute.Inputs.RegionInstanceTemplateReservationAffinityArgs + /// { + /// Type = "NO_RESERVATION", + /// }, + /// ShieldedInstanceConfig = new Gcp.Compute.Inputs.RegionInstanceTemplateShieldedInstanceConfigArgs + /// { + /// EnableVtpm = true, + /// EnableIntegrityMonitoring = true, + /// }, + /// NetworkInterfaces = new[] + /// { + /// new Gcp.Compute.Inputs.RegionInstanceTemplateNetworkInterfaceArgs + /// { + /// Network = "default", + /// }, + /// }, + /// }); + /// + /// var a3DwsRegionInstanceGroupManager = new Gcp.Compute.RegionInstanceGroupManager("a3_dws", new() + /// { + /// Name = "a3-dws", + /// BaseInstanceName = "a3-dws", + /// Region = "us-central1", + /// Versions = new[] + /// { + /// new Gcp.Compute.Inputs.RegionInstanceGroupManagerVersionArgs + /// { + /// InstanceTemplate = a3Dws.SelfLink, + /// }, + /// }, + /// InstanceLifecyclePolicy = new Gcp.Compute.Inputs.RegionInstanceGroupManagerInstanceLifecyclePolicyArgs + /// { + /// DefaultActionOnFailure = "DO_NOTHING", + /// }, + /// DistributionPolicyTargetShape = "ANY_SINGLE_ZONE", + /// DistributionPolicyZones = new[] + /// { + /// "us-central1-a", + /// "us-central1-b", + /// "us-central1-c", + /// "us-central1-f", + /// }, + /// UpdatePolicy = new Gcp.Compute.Inputs.RegionInstanceGroupManagerUpdatePolicyArgs + /// { + /// InstanceRedistributionType = "NONE", + /// Type = "OPPORTUNISTIC", + /// MinimalAction = "REPLACE", + /// MaxSurgeFixed = 0, + /// MaxUnavailableFixed = 6, + /// }, + /// WaitForInstances = false, + /// }); + /// + /// var a3ResizeRequest = new Gcp.Compute.RegionResizeRequest("a3_resize_request", new() + /// { + /// Name = "a3-dws", + /// InstanceGroupManager = a3DwsRegionInstanceGroupManager.Name, + /// Region = "us-central1", + /// Description = "Test resize request resource", + /// ResizeBy = 2, + /// RequestedRunDuration = new Gcp.Compute.Inputs.RegionResizeRequestRequestedRunDurationArgs + /// { + /// Seconds = "14400", + /// Nanos = 0, + /// }, + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// RegionResizeRequest can be imported using any of these accepted formats: + /// + /// * `projects/{{project}}/regions/{{region}}/instanceGroupManagers/{{instance_group_manager}}/resizeRequests/{{name}}` + /// + /// * `{{project}}/{{region}}/{{instance_group_manager}}/{{name}}` + /// + /// * `{{region}}/{{instance_group_manager}}/{{name}}` + /// + /// * `{{instance_group_manager}}/{{name}}` + /// + /// When using the `pulumi import` command, RegionResizeRequest can be imported using one of the formats above. For example: + /// + /// ```sh + /// $ pulumi import gcp:compute/regionResizeRequest:RegionResizeRequest default projects/{{project}}/regions/{{region}}/instanceGroupManagers/{{instance_group_manager}}/resizeRequests/{{name}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:compute/regionResizeRequest:RegionResizeRequest default {{project}}/{{region}}/{{instance_group_manager}}/{{name}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:compute/regionResizeRequest:RegionResizeRequest default {{region}}/{{instance_group_manager}}/{{name}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:compute/regionResizeRequest:RegionResizeRequest default {{instance_group_manager}}/{{name}} + /// ``` + /// + [GcpResourceType("gcp:compute/regionResizeRequest:RegionResizeRequest")] + public partial class RegionResizeRequest : global::Pulumi.CustomResource + { + /// + /// The creation timestamp for this resize request in RFC3339 text format. + /// + [Output("creationTimestamp")] + public Output CreationTimestamp { get; private set; } = null!; + + /// + /// An optional description of this resize-request. + /// + [Output("description")] + public Output Description { get; private set; } = null!; + + /// + /// The reference of the regional instance group manager this ResizeRequest is a part of. + /// + /// + /// - - - + /// + [Output("instanceGroupManager")] + public Output InstanceGroupManager { get; private set; } = null!; + + /// + /// The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. + /// + [Output("project")] + public Output Project { get; private set; } = null!; + + /// + /// The reference of the compute region scoping this request. + /// + [Output("region")] + public Output Region { get; private set; } = null!; + + /// + /// Requested run duration for instances that will be created by this request. At the end of the run duration instances will be deleted. + /// Structure is documented below. + /// + [Output("requestedRunDuration")] + public Output RequestedRunDuration { get; private set; } = null!; + + /// + /// The number of instances to be created by this resize request. The group's target size will be increased by this number. + /// + [Output("resizeBy")] + public Output ResizeBy { get; private set; } = null!; + + /// + /// Current state of the request. + /// + [Output("state")] + public Output State { get; private set; } = null!; + + /// + /// Status of the request. + /// Structure is documented below. + /// + [Output("statuses")] + public Output> Statuses { get; private set; } = null!; + + + /// + /// Create a RegionResizeRequest resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public RegionResizeRequest(string name, RegionResizeRequestArgs args, CustomResourceOptions? options = null) + : base("gcp:compute/regionResizeRequest:RegionResizeRequest", name, args ?? new RegionResizeRequestArgs(), MakeResourceOptions(options, "")) + { + } + + private RegionResizeRequest(string name, Input id, RegionResizeRequestState? state = null, CustomResourceOptions? options = null) + : base("gcp:compute/regionResizeRequest:RegionResizeRequest", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing RegionResizeRequest resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static RegionResizeRequest Get(string name, Input id, RegionResizeRequestState? state = null, CustomResourceOptions? options = null) + { + return new RegionResizeRequest(name, id, state, options); + } + } + + public sealed class RegionResizeRequestArgs : global::Pulumi.ResourceArgs + { + /// + /// An optional description of this resize-request. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// The reference of the regional instance group manager this ResizeRequest is a part of. + /// + /// + /// - - - + /// + [Input("instanceGroupManager", required: true)] + public Input InstanceGroupManager { get; set; } = null!; + + /// + /// The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. + /// + [Input("project")] + public Input? Project { get; set; } + + /// + /// The reference of the compute region scoping this request. + /// + [Input("region", required: true)] + public Input Region { get; set; } = null!; + + /// + /// Requested run duration for instances that will be created by this request. At the end of the run duration instances will be deleted. + /// Structure is documented below. + /// + [Input("requestedRunDuration")] + public Input? RequestedRunDuration { get; set; } + + /// + /// The number of instances to be created by this resize request. The group's target size will be increased by this number. + /// + [Input("resizeBy", required: true)] + public Input ResizeBy { get; set; } = null!; + + public RegionResizeRequestArgs() + { + } + public static new RegionResizeRequestArgs Empty => new RegionResizeRequestArgs(); + } + + public sealed class RegionResizeRequestState : global::Pulumi.ResourceArgs + { + /// + /// The creation timestamp for this resize request in RFC3339 text format. + /// + [Input("creationTimestamp")] + public Input? CreationTimestamp { get; set; } + + /// + /// An optional description of this resize-request. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// The reference of the regional instance group manager this ResizeRequest is a part of. + /// + /// + /// - - - + /// + [Input("instanceGroupManager")] + public Input? InstanceGroupManager { get; set; } + + /// + /// The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. + /// + [Input("project")] + public Input? Project { get; set; } + + /// + /// The reference of the compute region scoping this request. + /// + [Input("region")] + public Input? Region { get; set; } + + /// + /// Requested run duration for instances that will be created by this request. At the end of the run duration instances will be deleted. + /// Structure is documented below. + /// + [Input("requestedRunDuration")] + public Input? RequestedRunDuration { get; set; } + + /// + /// The number of instances to be created by this resize request. The group's target size will be increased by this number. + /// + [Input("resizeBy")] + public Input? ResizeBy { get; set; } + + /// + /// Current state of the request. + /// + [Input("state")] + public Input? State { get; set; } + + [Input("statuses")] + private InputList? _statuses; + + /// + /// Status of the request. + /// Structure is documented below. + /// + public InputList Statuses + { + get => _statuses ?? (_statuses = new InputList()); + set => _statuses = value; + } + + public RegionResizeRequestState() + { + } + public static new RegionResizeRequestState Empty => new RegionResizeRequestState(); + } +} diff --git a/sdk/dotnet/Compute/RegionSecurityPolicy.cs b/sdk/dotnet/Compute/RegionSecurityPolicy.cs index 50dfc2361e..31dd596760 100644 --- a/sdk/dotnet/Compute/RegionSecurityPolicy.cs +++ b/sdk/dotnet/Compute/RegionSecurityPolicy.cs @@ -92,6 +92,57 @@ namespace Pulumi.Gcp.Compute /// /// }); /// ``` + /// ### Region Security Policy With Rules + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var region_sec_policy_with_rules = new Gcp.Compute.RegionSecurityPolicy("region-sec-policy-with-rules", new() + /// { + /// Name = "my-sec-policy-with-rules", + /// Description = "basic region security policy with multiple rules", + /// Type = "CLOUD_ARMOR", + /// Rules = new[] + /// { + /// new Gcp.Compute.Inputs.RegionSecurityPolicyRuleArgs + /// { + /// Action = "deny", + /// Priority = 1000, + /// Match = new Gcp.Compute.Inputs.RegionSecurityPolicyRuleMatchArgs + /// { + /// Expr = new Gcp.Compute.Inputs.RegionSecurityPolicyRuleMatchExprArgs + /// { + /// Expression = "request.path.matches(\"/login.html\") && token.recaptcha_session.score < 0.2", + /// }, + /// }, + /// }, + /// new Gcp.Compute.Inputs.RegionSecurityPolicyRuleArgs + /// { + /// Action = "deny", + /// Priority = 2147483647, + /// Match = new Gcp.Compute.Inputs.RegionSecurityPolicyRuleMatchArgs + /// { + /// VersionedExpr = "SRC_IPS_V1", + /// Config = new Gcp.Compute.Inputs.RegionSecurityPolicyRuleMatchConfigArgs + /// { + /// SrcIpRanges = new[] + /// { + /// "*", + /// }, + /// }, + /// }, + /// Description = "default rule", + /// }, + /// }, + /// }); + /// + /// }); + /// ``` /// /// ## Import /// @@ -176,6 +227,13 @@ public partial class RegionSecurityPolicy : global::Pulumi.CustomResource [Output("region")] public Output Region { get; private set; } = null!; + /// + /// The set of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added. + /// Structure is documented below. + /// + [Output("rules")] + public Output> Rules { get; private set; } = null!; + /// /// Server-defined URL for the resource. /// @@ -291,6 +349,19 @@ public sealed class RegionSecurityPolicyArgs : global::Pulumi.ResourceArgs [Input("region")] public Input? Region { get; set; } + [Input("rules")] + private InputList? _rules; + + /// + /// The set of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added. + /// Structure is documented below. + /// + public InputList Rules + { + get => _rules ?? (_rules = new InputList()); + set => _rules = value; + } + /// /// The type indicates the intended use of the security policy. /// - CLOUD_ARMOR: Cloud Armor backend security policies can be configured to filter incoming HTTP requests targeting backend services. They filter requests before they hit the origin servers. @@ -375,6 +446,19 @@ public sealed class RegionSecurityPolicyState : global::Pulumi.ResourceArgs [Input("region")] public Input? Region { get; set; } + [Input("rules")] + private InputList? _rules; + + /// + /// The set of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added. + /// Structure is documented below. + /// + public InputList Rules + { + get => _rules ?? (_rules = new InputList()); + set => _rules = value; + } + /// /// Server-defined URL for the resource. /// diff --git a/sdk/dotnet/Compute/RouterPeer.cs b/sdk/dotnet/Compute/RouterPeer.cs index ce2d92856c..374ddfae86 100644 --- a/sdk/dotnet/Compute/RouterPeer.cs +++ b/sdk/dotnet/Compute/RouterPeer.cs @@ -537,16 +537,19 @@ public partial class RouterPeer : global::Pulumi.CustomResource public Output Bfd { get; private set; } = null!; /// - /// The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a - /// subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + /// The custom learned route IP address range. Must be a valid CIDR-formatted prefix. + /// If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, + /// a /32 singular IP address range, and, for IPv6, /128. + /// Structure is documented below. /// [Output("customLearnedIpRanges")] public Output> CustomLearnedIpRanges { get; private set; } = null!; /// - /// The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route - /// ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a - /// priority of 100 to the ranges. + /// The user-defined custom learned route priority for a BGP session. + /// This value is applied to all custom learned route ranges for the session. + /// You can choose a value from 0 to 65335. If you don't provide a value, + /// Google Cloud assigns a priority of 100 to the ranges. /// [Output("customLearnedRoutePriority")] public Output CustomLearnedRoutePriority { get; private set; } = null!; @@ -819,8 +822,10 @@ public InputList AdvertisedIpRanges private InputList? _customLearnedIpRanges; /// - /// The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a - /// subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + /// The custom learned route IP address range. Must be a valid CIDR-formatted prefix. + /// If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, + /// a /32 singular IP address range, and, for IPv6, /128. + /// Structure is documented below. /// public InputList CustomLearnedIpRanges { @@ -829,9 +834,10 @@ public InputList CustomLearnedIpRange } /// - /// The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route - /// ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a - /// priority of 100 to the ranges. + /// The user-defined custom learned route priority for a BGP session. + /// This value is applied to all custom learned route ranges for the session. + /// You can choose a value from 0 to 65335. If you don't provide a value, + /// Google Cloud assigns a priority of 100 to the ranges. /// [Input("customLearnedRoutePriority")] public Input? CustomLearnedRoutePriority { get; set; } @@ -1064,8 +1070,10 @@ public InputList AdvertisedIpRanges private InputList? _customLearnedIpRanges; /// - /// The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a - /// subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + /// The custom learned route IP address range. Must be a valid CIDR-formatted prefix. + /// If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, + /// a /32 singular IP address range, and, for IPv6, /128. + /// Structure is documented below. /// public InputList CustomLearnedIpRanges { @@ -1074,9 +1082,10 @@ public InputList CustomLearnedIpRa } /// - /// The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route - /// ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a - /// priority of 100 to the ranges. + /// The user-defined custom learned route priority for a BGP session. + /// This value is applied to all custom learned route ranges for the session. + /// You can choose a value from 0 to 65335. If you don't provide a value, + /// Google Cloud assigns a priority of 100 to the ranges. /// [Input("customLearnedRoutePriority")] public Input? CustomLearnedRoutePriority { get; set; } diff --git a/sdk/dotnet/Compute/SecurityScanConfig.cs b/sdk/dotnet/Compute/SecurityScanConfig.cs index b565babf86..8b6f4bed52 100644 --- a/sdk/dotnet/Compute/SecurityScanConfig.cs +++ b/sdk/dotnet/Compute/SecurityScanConfig.cs @@ -55,20 +55,20 @@ namespace Pulumi.Gcp.Compute /// /// ScanConfig can be imported using any of these accepted formats: /// - /// * `projects/{{project}}/scanConfigs/{{name}}` - /// /// * `{{project}}/{{name}}` /// + /// * `{{project}} {{name}}` + /// /// * `{{name}}` /// /// When using the `pulumi import` command, ScanConfig can be imported using one of the formats above. For example: /// /// ```sh - /// $ pulumi import gcp:compute/securityScanConfig:SecurityScanConfig default projects/{{project}}/scanConfigs/{{name}} + /// $ pulumi import gcp:compute/securityScanConfig:SecurityScanConfig default {{project}}/{{name}} /// ``` /// /// ```sh - /// $ pulumi import gcp:compute/securityScanConfig:SecurityScanConfig default {{project}}/{{name}} + /// $ pulumi import gcp:compute/securityScanConfig:SecurityScanConfig default "{{project}} {{name}}" /// ``` /// /// ```sh diff --git a/sdk/dotnet/Config/Config.cs b/sdk/dotnet/Config/Config.cs index 41885451a3..06fff130ba 100644 --- a/sdk/dotnet/Config/Config.cs +++ b/sdk/dotnet/Config/Config.cs @@ -480,6 +480,13 @@ public static string? DataprocCustomEndpoint set => _dataprocCustomEndpoint.Set(value); } + private static readonly __Value _dataprocGdcCustomEndpoint = new __Value(() => __config.Get("dataprocGdcCustomEndpoint")); + public static string? DataprocGdcCustomEndpoint + { + get => _dataprocGdcCustomEndpoint.Get(); + set => _dataprocGdcCustomEndpoint.Set(value); + } + private static readonly __Value _dataprocMetastoreCustomEndpoint = new __Value(() => __config.Get("dataprocMetastoreCustomEndpoint")); public static string? DataprocMetastoreCustomEndpoint { @@ -711,6 +718,13 @@ public static string? Iam2CustomEndpoint set => _iam2CustomEndpoint.Set(value); } + private static readonly __Value _iam3CustomEndpoint = new __Value(() => __config.Get("iam3CustomEndpoint")); + public static string? Iam3CustomEndpoint + { + get => _iam3CustomEndpoint.Get(); + set => _iam3CustomEndpoint.Set(value); + } + private static readonly __Value _iamBetaCustomEndpoint = new __Value(() => __config.Get("iamBetaCustomEndpoint")); public static string? IamBetaCustomEndpoint { diff --git a/sdk/dotnet/Container/Cluster.cs b/sdk/dotnet/Container/Cluster.cs index ad4c8d03e5..679f676025 100644 --- a/sdk/dotnet/Container/Cluster.cs +++ b/sdk/dotnet/Container/Cluster.cs @@ -242,6 +242,13 @@ public partial class Cluster : global::Pulumi.CustomResource [Output("confidentialNodes")] public Output ConfidentialNodes { get; private set; } = null!; + /// + /// Configuration for all of the cluster's control plane endpoints. + /// Structure is documented below. + /// + [Output("controlPlaneEndpointsConfig")] + public Output ControlPlaneEndpointsConfig { get; private set; } = null!; + /// /// Configuration for the /// [Cost Allocation](https://cloud.google.com/kubernetes-engine/docs/how-to/cost-allocations) feature. @@ -769,6 +776,12 @@ public partial class Cluster : global::Pulumi.CustomResource [Output("tpuIpv4CidrBlock")] public Output TpuIpv4CidrBlock { get; private set; } = null!; + /// + /// The custom keys configuration of the cluster. + /// + [Output("userManagedKeysConfig")] + public Output UserManagedKeysConfig { get; private set; } = null!; + /// /// Vertical Pod Autoscaling automatically adjusts the resources of pods controlled by it. /// Structure is documented below. @@ -906,6 +919,13 @@ public sealed class ClusterArgs : global::Pulumi.ResourceArgs [Input("confidentialNodes")] public Input? ConfidentialNodes { get; set; } + /// + /// Configuration for all of the cluster's control plane endpoints. + /// Structure is documented below. + /// + [Input("controlPlaneEndpointsConfig")] + public Input? ControlPlaneEndpointsConfig { get; set; } + /// /// Configuration for the /// [Cost Allocation](https://cloud.google.com/kubernetes-engine/docs/how-to/cost-allocations) feature. @@ -1393,6 +1413,12 @@ public InputMap ResourceLabels [Input("tpuConfig")] public Input? TpuConfig { get; set; } + /// + /// The custom keys configuration of the cluster. + /// + [Input("userManagedKeysConfig")] + public Input? UserManagedKeysConfig { get; set; } + /// /// Vertical Pod Autoscaling automatically adjusts the resources of pods controlled by it. /// Structure is documented below. @@ -1487,6 +1513,13 @@ public sealed class ClusterState : global::Pulumi.ResourceArgs [Input("confidentialNodes")] public Input? ConfidentialNodes { get; set; } + /// + /// Configuration for all of the cluster's control plane endpoints. + /// Structure is documented below. + /// + [Input("controlPlaneEndpointsConfig")] + public Input? ControlPlaneEndpointsConfig { get; set; } + /// /// Configuration for the /// [Cost Allocation](https://cloud.google.com/kubernetes-engine/docs/how-to/cost-allocations) feature. @@ -2052,6 +2085,12 @@ public InputMap ResourceLabels [Input("tpuIpv4CidrBlock")] public Input? TpuIpv4CidrBlock { get; set; } + /// + /// The custom keys configuration of the cluster. + /// + [Input("userManagedKeysConfig")] + public Input? UserManagedKeysConfig { get; set; } + /// /// Vertical Pod Autoscaling automatically adjusts the resources of pods controlled by it. /// Structure is documented below. diff --git a/sdk/dotnet/Container/GetCluster.cs b/sdk/dotnet/Container/GetCluster.cs index 0650885da3..3a2eb4396d 100644 --- a/sdk/dotnet/Container/GetCluster.cs +++ b/sdk/dotnet/Container/GetCluster.cs @@ -147,6 +147,7 @@ public sealed class GetClusterResult public readonly string ClusterIpv4Cidr; public readonly ImmutableArray ClusterTelemetries; public readonly ImmutableArray ConfidentialNodes; + public readonly ImmutableArray ControlPlaneEndpointsConfigs; public readonly ImmutableArray CostManagementConfigs; public readonly ImmutableArray DatabaseEncryptions; public readonly string DatapathProvider; @@ -219,6 +220,7 @@ public sealed class GetClusterResult public readonly string Subnetwork; public readonly ImmutableArray TpuConfigs; public readonly string TpuIpv4CidrBlock; + public readonly ImmutableArray UserManagedKeysConfigs; public readonly ImmutableArray VerticalPodAutoscalings; public readonly ImmutableArray WorkloadAltsConfigs; public readonly ImmutableArray WorkloadIdentityConfigs; @@ -241,6 +243,8 @@ private GetClusterResult( ImmutableArray confidentialNodes, + ImmutableArray controlPlaneEndpointsConfigs, + ImmutableArray costManagementConfigs, ImmutableArray databaseEncryptions, @@ -379,6 +383,8 @@ private GetClusterResult( string tpuIpv4CidrBlock, + ImmutableArray userManagedKeysConfigs, + ImmutableArray verticalPodAutoscalings, ImmutableArray workloadAltsConfigs, @@ -393,6 +399,7 @@ private GetClusterResult( ClusterIpv4Cidr = clusterIpv4Cidr; ClusterTelemetries = clusterTelemetries; ConfidentialNodes = confidentialNodes; + ControlPlaneEndpointsConfigs = controlPlaneEndpointsConfigs; CostManagementConfigs = costManagementConfigs; DatabaseEncryptions = databaseEncryptions; DatapathProvider = datapathProvider; @@ -462,6 +469,7 @@ private GetClusterResult( Subnetwork = subnetwork; TpuConfigs = tpuConfigs; TpuIpv4CidrBlock = tpuIpv4CidrBlock; + UserManagedKeysConfigs = userManagedKeysConfigs; VerticalPodAutoscalings = verticalPodAutoscalings; WorkloadAltsConfigs = workloadAltsConfigs; WorkloadIdentityConfigs = workloadIdentityConfigs; diff --git a/sdk/dotnet/Container/Inputs/ClusterAddonsConfigArgs.cs b/sdk/dotnet/Container/Inputs/ClusterAddonsConfigArgs.cs index 0873f5582a..8262dbf1e0 100644 --- a/sdk/dotnet/Container/Inputs/ClusterAddonsConfigArgs.cs +++ b/sdk/dotnet/Container/Inputs/ClusterAddonsConfigArgs.cs @@ -113,6 +113,18 @@ public sealed class ClusterAddonsConfigArgs : global::Pulumi.ResourceArgs [Input("networkPolicyConfig")] public Input? NetworkPolicyConfig { get; set; } + /// + /// The status of the Parallelstore CSI driver addon, + /// which allows the usage of a Parallelstore instances as volumes. + /// It is disabled by default for Standard clusters; set `enabled = true` to enable. + /// It is enabled by default for Autopilot clusters with version 1.29 or later; set `enabled = true` to enable it explicitly. + /// See [Enable the Parallelstore CSI driver](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/parallelstore-csi-new-volume#enable) for more information. + /// + /// This example `addons_config` disables two addons: + /// + [Input("parallelstoreCsiDriverConfig")] + public Input? ParallelstoreCsiDriverConfig { get; set; } + [Input("rayOperatorConfigs")] private InputList? _rayOperatorConfigs; @@ -129,9 +141,6 @@ public sealed class ClusterAddonsConfigArgs : global::Pulumi.ResourceArgs /// clusters on /// GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) /// for more information. - /// - /// - /// This example `addons_config` disables two addons: /// public InputList RayOperatorConfigs { diff --git a/sdk/dotnet/Container/Inputs/ClusterAddonsConfigGetArgs.cs b/sdk/dotnet/Container/Inputs/ClusterAddonsConfigGetArgs.cs index 607673141b..5f8cc1021f 100644 --- a/sdk/dotnet/Container/Inputs/ClusterAddonsConfigGetArgs.cs +++ b/sdk/dotnet/Container/Inputs/ClusterAddonsConfigGetArgs.cs @@ -113,6 +113,18 @@ public sealed class ClusterAddonsConfigGetArgs : global::Pulumi.ResourceArgs [Input("networkPolicyConfig")] public Input? NetworkPolicyConfig { get; set; } + /// + /// The status of the Parallelstore CSI driver addon, + /// which allows the usage of a Parallelstore instances as volumes. + /// It is disabled by default for Standard clusters; set `enabled = true` to enable. + /// It is enabled by default for Autopilot clusters with version 1.29 or later; set `enabled = true` to enable it explicitly. + /// See [Enable the Parallelstore CSI driver](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/parallelstore-csi-new-volume#enable) for more information. + /// + /// This example `addons_config` disables two addons: + /// + [Input("parallelstoreCsiDriverConfig")] + public Input? ParallelstoreCsiDriverConfig { get; set; } + [Input("rayOperatorConfigs")] private InputList? _rayOperatorConfigs; @@ -129,9 +141,6 @@ public sealed class ClusterAddonsConfigGetArgs : global::Pulumi.ResourceArgs /// clusters on /// GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) /// for more information. - /// - /// - /// This example `addons_config` disables two addons: /// public InputList RayOperatorConfigs { diff --git a/sdk/dotnet/Container/Inputs/ClusterAddonsConfigParallelstoreCsiDriverConfigArgs.cs b/sdk/dotnet/Container/Inputs/ClusterAddonsConfigParallelstoreCsiDriverConfigArgs.cs new file mode 100644 index 0000000000..a1eba7302e --- /dev/null +++ b/sdk/dotnet/Container/Inputs/ClusterAddonsConfigParallelstoreCsiDriverConfigArgs.cs @@ -0,0 +1,23 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Container.Inputs +{ + + public sealed class ClusterAddonsConfigParallelstoreCsiDriverConfigArgs : global::Pulumi.ResourceArgs + { + [Input("enabled", required: true)] + public Input Enabled { get; set; } = null!; + + public ClusterAddonsConfigParallelstoreCsiDriverConfigArgs() + { + } + public static new ClusterAddonsConfigParallelstoreCsiDriverConfigArgs Empty => new ClusterAddonsConfigParallelstoreCsiDriverConfigArgs(); + } +} diff --git a/sdk/dotnet/Container/Inputs/ClusterAddonsConfigParallelstoreCsiDriverConfigGetArgs.cs b/sdk/dotnet/Container/Inputs/ClusterAddonsConfigParallelstoreCsiDriverConfigGetArgs.cs new file mode 100644 index 0000000000..4cccec4cfa --- /dev/null +++ b/sdk/dotnet/Container/Inputs/ClusterAddonsConfigParallelstoreCsiDriverConfigGetArgs.cs @@ -0,0 +1,23 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Container.Inputs +{ + + public sealed class ClusterAddonsConfigParallelstoreCsiDriverConfigGetArgs : global::Pulumi.ResourceArgs + { + [Input("enabled", required: true)] + public Input Enabled { get; set; } = null!; + + public ClusterAddonsConfigParallelstoreCsiDriverConfigGetArgs() + { + } + public static new ClusterAddonsConfigParallelstoreCsiDriverConfigGetArgs Empty => new ClusterAddonsConfigParallelstoreCsiDriverConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Container/Inputs/ClusterControlPlaneEndpointsConfigArgs.cs b/sdk/dotnet/Container/Inputs/ClusterControlPlaneEndpointsConfigArgs.cs new file mode 100644 index 0000000000..afee5c19f9 --- /dev/null +++ b/sdk/dotnet/Container/Inputs/ClusterControlPlaneEndpointsConfigArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Container.Inputs +{ + + public sealed class ClusterControlPlaneEndpointsConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// DNS endpoint configuration. + /// + [Input("dnsEndpointConfig")] + public Input? DnsEndpointConfig { get; set; } + + public ClusterControlPlaneEndpointsConfigArgs() + { + } + public static new ClusterControlPlaneEndpointsConfigArgs Empty => new ClusterControlPlaneEndpointsConfigArgs(); + } +} diff --git a/sdk/dotnet/Container/Inputs/ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs.cs b/sdk/dotnet/Container/Inputs/ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs.cs new file mode 100644 index 0000000000..8bf53001cf --- /dev/null +++ b/sdk/dotnet/Container/Inputs/ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Container.Inputs +{ + + public sealed class ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// Controls whether user traffic is allowed over this endpoint. Note that GCP-managed services may still use the endpoint even if this is false. + /// + [Input("allowExternalTraffic")] + public Input? AllowExternalTraffic { get; set; } + + /// + /// The cluster's DNS endpoint. + /// + [Input("endpoint")] + public Input? Endpoint { get; set; } + + public ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs() + { + } + public static new ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs Empty => new ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs(); + } +} diff --git a/sdk/dotnet/Container/Inputs/ClusterControlPlaneEndpointsConfigDnsEndpointConfigGetArgs.cs b/sdk/dotnet/Container/Inputs/ClusterControlPlaneEndpointsConfigDnsEndpointConfigGetArgs.cs new file mode 100644 index 0000000000..4067d95cda --- /dev/null +++ b/sdk/dotnet/Container/Inputs/ClusterControlPlaneEndpointsConfigDnsEndpointConfigGetArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Container.Inputs +{ + + public sealed class ClusterControlPlaneEndpointsConfigDnsEndpointConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Controls whether user traffic is allowed over this endpoint. Note that GCP-managed services may still use the endpoint even if this is false. + /// + [Input("allowExternalTraffic")] + public Input? AllowExternalTraffic { get; set; } + + /// + /// The cluster's DNS endpoint. + /// + [Input("endpoint")] + public Input? Endpoint { get; set; } + + public ClusterControlPlaneEndpointsConfigDnsEndpointConfigGetArgs() + { + } + public static new ClusterControlPlaneEndpointsConfigDnsEndpointConfigGetArgs Empty => new ClusterControlPlaneEndpointsConfigDnsEndpointConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Container/Inputs/ClusterControlPlaneEndpointsConfigGetArgs.cs b/sdk/dotnet/Container/Inputs/ClusterControlPlaneEndpointsConfigGetArgs.cs new file mode 100644 index 0000000000..d08847f6a1 --- /dev/null +++ b/sdk/dotnet/Container/Inputs/ClusterControlPlaneEndpointsConfigGetArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Container.Inputs +{ + + public sealed class ClusterControlPlaneEndpointsConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// DNS endpoint configuration. + /// + [Input("dnsEndpointConfig")] + public Input? DnsEndpointConfig { get; set; } + + public ClusterControlPlaneEndpointsConfigGetArgs() + { + } + public static new ClusterControlPlaneEndpointsConfigGetArgs Empty => new ClusterControlPlaneEndpointsConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Container/Inputs/ClusterMasterAuthorizedNetworksConfigArgs.cs b/sdk/dotnet/Container/Inputs/ClusterMasterAuthorizedNetworksConfigArgs.cs index d79f7743ee..858421bcfe 100644 --- a/sdk/dotnet/Container/Inputs/ClusterMasterAuthorizedNetworksConfigArgs.cs +++ b/sdk/dotnet/Container/Inputs/ClusterMasterAuthorizedNetworksConfigArgs.cs @@ -32,6 +32,12 @@ public InputList Cidr [Input("gcpPublicCidrsAccessEnabled")] public Input? GcpPublicCidrsAccessEnabled { get; set; } + /// + /// Whether authorized networks is enforced on the private endpoint or not. Defaults to false. + /// + [Input("privateEndpointEnforcementEnabled")] + public Input? PrivateEndpointEnforcementEnabled { get; set; } + public ClusterMasterAuthorizedNetworksConfigArgs() { } diff --git a/sdk/dotnet/Container/Inputs/ClusterMasterAuthorizedNetworksConfigGetArgs.cs b/sdk/dotnet/Container/Inputs/ClusterMasterAuthorizedNetworksConfigGetArgs.cs index f542468abc..0ce2488776 100644 --- a/sdk/dotnet/Container/Inputs/ClusterMasterAuthorizedNetworksConfigGetArgs.cs +++ b/sdk/dotnet/Container/Inputs/ClusterMasterAuthorizedNetworksConfigGetArgs.cs @@ -32,6 +32,12 @@ public InputList C [Input("gcpPublicCidrsAccessEnabled")] public Input? GcpPublicCidrsAccessEnabled { get; set; } + /// + /// Whether authorized networks is enforced on the private endpoint or not. Defaults to false. + /// + [Input("privateEndpointEnforcementEnabled")] + public Input? PrivateEndpointEnforcementEnabled { get; set; } + public ClusterMasterAuthorizedNetworksConfigGetArgs() { } diff --git a/sdk/dotnet/Container/Inputs/ClusterUserManagedKeysConfigArgs.cs b/sdk/dotnet/Container/Inputs/ClusterUserManagedKeysConfigArgs.cs new file mode 100644 index 0000000000..b20c72246c --- /dev/null +++ b/sdk/dotnet/Container/Inputs/ClusterUserManagedKeysConfigArgs.cs @@ -0,0 +1,80 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Container.Inputs +{ + + public sealed class ClusterUserManagedKeysConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// The Certificate Authority Service caPool to use for the aggreation CA in this cluster. + /// + [Input("aggregationCa")] + public Input? AggregationCa { get; set; } + + /// + /// The Certificate Authority Service caPool to use for the cluster CA in this cluster. + /// + [Input("clusterCa")] + public Input? ClusterCa { get; set; } + + /// + /// The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes. + /// + [Input("controlPlaneDiskEncryptionKey")] + public Input? ControlPlaneDiskEncryptionKey { get; set; } + + /// + /// The Certificate Authority Service caPool to use for the etcd API CA in this cluster. + /// + [Input("etcdApiCa")] + public Input? EtcdApiCa { get; set; } + + /// + /// The Certificate Authority Service caPool to use for the etcd peer CA in this cluster. + /// + [Input("etcdPeerCa")] + public Input? EtcdPeerCa { get; set; } + + /// + /// Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups. + /// + [Input("gkeopsEtcdBackupEncryptionKey")] + public Input? GkeopsEtcdBackupEncryptionKey { get; set; } + + [Input("serviceAccountSigningKeys")] + private InputList? _serviceAccountSigningKeys; + + /// + /// The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. + /// + public InputList ServiceAccountSigningKeys + { + get => _serviceAccountSigningKeys ?? (_serviceAccountSigningKeys = new InputList()); + set => _serviceAccountSigningKeys = value; + } + + [Input("serviceAccountVerificationKeys")] + private InputList? _serviceAccountVerificationKeys; + + /// + /// The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. + /// + public InputList ServiceAccountVerificationKeys + { + get => _serviceAccountVerificationKeys ?? (_serviceAccountVerificationKeys = new InputList()); + set => _serviceAccountVerificationKeys = value; + } + + public ClusterUserManagedKeysConfigArgs() + { + } + public static new ClusterUserManagedKeysConfigArgs Empty => new ClusterUserManagedKeysConfigArgs(); + } +} diff --git a/sdk/dotnet/Container/Inputs/ClusterUserManagedKeysConfigGetArgs.cs b/sdk/dotnet/Container/Inputs/ClusterUserManagedKeysConfigGetArgs.cs new file mode 100644 index 0000000000..e586d1c75c --- /dev/null +++ b/sdk/dotnet/Container/Inputs/ClusterUserManagedKeysConfigGetArgs.cs @@ -0,0 +1,80 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Container.Inputs +{ + + public sealed class ClusterUserManagedKeysConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The Certificate Authority Service caPool to use for the aggreation CA in this cluster. + /// + [Input("aggregationCa")] + public Input? AggregationCa { get; set; } + + /// + /// The Certificate Authority Service caPool to use for the cluster CA in this cluster. + /// + [Input("clusterCa")] + public Input? ClusterCa { get; set; } + + /// + /// The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes. + /// + [Input("controlPlaneDiskEncryptionKey")] + public Input? ControlPlaneDiskEncryptionKey { get; set; } + + /// + /// The Certificate Authority Service caPool to use for the etcd API CA in this cluster. + /// + [Input("etcdApiCa")] + public Input? EtcdApiCa { get; set; } + + /// + /// The Certificate Authority Service caPool to use for the etcd peer CA in this cluster. + /// + [Input("etcdPeerCa")] + public Input? EtcdPeerCa { get; set; } + + /// + /// Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups. + /// + [Input("gkeopsEtcdBackupEncryptionKey")] + public Input? GkeopsEtcdBackupEncryptionKey { get; set; } + + [Input("serviceAccountSigningKeys")] + private InputList? _serviceAccountSigningKeys; + + /// + /// The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. + /// + public InputList ServiceAccountSigningKeys + { + get => _serviceAccountSigningKeys ?? (_serviceAccountSigningKeys = new InputList()); + set => _serviceAccountSigningKeys = value; + } + + [Input("serviceAccountVerificationKeys")] + private InputList? _serviceAccountVerificationKeys; + + /// + /// The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. + /// + public InputList ServiceAccountVerificationKeys + { + get => _serviceAccountVerificationKeys ?? (_serviceAccountVerificationKeys = new InputList()); + set => _serviceAccountVerificationKeys = value; + } + + public ClusterUserManagedKeysConfigGetArgs() + { + } + public static new ClusterUserManagedKeysConfigGetArgs Empty => new ClusterUserManagedKeysConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Container/Outputs/ClusterAddonsConfig.cs b/sdk/dotnet/Container/Outputs/ClusterAddonsConfig.cs index b569a31f84..b50849b99e 100644 --- a/sdk/dotnet/Container/Outputs/ClusterAddonsConfig.cs +++ b/sdk/dotnet/Container/Outputs/ClusterAddonsConfig.cs @@ -91,6 +91,16 @@ public sealed class ClusterAddonsConfig /// public readonly Outputs.ClusterAddonsConfigNetworkPolicyConfig? NetworkPolicyConfig; /// + /// The status of the Parallelstore CSI driver addon, + /// which allows the usage of a Parallelstore instances as volumes. + /// It is disabled by default for Standard clusters; set `enabled = true` to enable. + /// It is enabled by default for Autopilot clusters with version 1.29 or later; set `enabled = true` to enable it explicitly. + /// See [Enable the Parallelstore CSI driver](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/parallelstore-csi-new-volume#enable) for more information. + /// + /// This example `addons_config` disables two addons: + /// + public readonly Outputs.ClusterAddonsConfigParallelstoreCsiDriverConfig? ParallelstoreCsiDriverConfig; + /// /// . The status of the [Ray Operator /// addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview). /// It is disabled by default. Set `enabled = true` to enable. The minimum @@ -103,9 +113,6 @@ public sealed class ClusterAddonsConfig /// clusters on /// GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) /// for more information. - /// - /// - /// This example `addons_config` disables two addons: /// public readonly ImmutableArray RayOperatorConfigs; /// @@ -141,6 +148,8 @@ private ClusterAddonsConfig( Outputs.ClusterAddonsConfigNetworkPolicyConfig? networkPolicyConfig, + Outputs.ClusterAddonsConfigParallelstoreCsiDriverConfig? parallelstoreCsiDriverConfig, + ImmutableArray rayOperatorConfigs, Outputs.ClusterAddonsConfigStatefulHaConfig? statefulHaConfig) @@ -157,6 +166,7 @@ private ClusterAddonsConfig( IstioConfig = istioConfig; KalmConfig = kalmConfig; NetworkPolicyConfig = networkPolicyConfig; + ParallelstoreCsiDriverConfig = parallelstoreCsiDriverConfig; RayOperatorConfigs = rayOperatorConfigs; StatefulHaConfig = statefulHaConfig; } diff --git a/sdk/dotnet/Container/Outputs/ClusterAddonsConfigParallelstoreCsiDriverConfig.cs b/sdk/dotnet/Container/Outputs/ClusterAddonsConfigParallelstoreCsiDriverConfig.cs new file mode 100644 index 0000000000..fa6cc6b1e8 --- /dev/null +++ b/sdk/dotnet/Container/Outputs/ClusterAddonsConfigParallelstoreCsiDriverConfig.cs @@ -0,0 +1,24 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Container.Outputs +{ + + [OutputType] + public sealed class ClusterAddonsConfigParallelstoreCsiDriverConfig + { + public readonly bool Enabled; + + [OutputConstructor] + private ClusterAddonsConfigParallelstoreCsiDriverConfig(bool enabled) + { + Enabled = enabled; + } + } +} diff --git a/sdk/dotnet/Container/Outputs/ClusterControlPlaneEndpointsConfig.cs b/sdk/dotnet/Container/Outputs/ClusterControlPlaneEndpointsConfig.cs new file mode 100644 index 0000000000..29a7495736 --- /dev/null +++ b/sdk/dotnet/Container/Outputs/ClusterControlPlaneEndpointsConfig.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Container.Outputs +{ + + [OutputType] + public sealed class ClusterControlPlaneEndpointsConfig + { + /// + /// DNS endpoint configuration. + /// + public readonly Outputs.ClusterControlPlaneEndpointsConfigDnsEndpointConfig? DnsEndpointConfig; + + [OutputConstructor] + private ClusterControlPlaneEndpointsConfig(Outputs.ClusterControlPlaneEndpointsConfigDnsEndpointConfig? dnsEndpointConfig) + { + DnsEndpointConfig = dnsEndpointConfig; + } + } +} diff --git a/sdk/dotnet/Container/Outputs/ClusterControlPlaneEndpointsConfigDnsEndpointConfig.cs b/sdk/dotnet/Container/Outputs/ClusterControlPlaneEndpointsConfigDnsEndpointConfig.cs new file mode 100644 index 0000000000..e9aed93957 --- /dev/null +++ b/sdk/dotnet/Container/Outputs/ClusterControlPlaneEndpointsConfigDnsEndpointConfig.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Container.Outputs +{ + + [OutputType] + public sealed class ClusterControlPlaneEndpointsConfigDnsEndpointConfig + { + /// + /// Controls whether user traffic is allowed over this endpoint. Note that GCP-managed services may still use the endpoint even if this is false. + /// + public readonly bool? AllowExternalTraffic; + /// + /// The cluster's DNS endpoint. + /// + public readonly string? Endpoint; + + [OutputConstructor] + private ClusterControlPlaneEndpointsConfigDnsEndpointConfig( + bool? allowExternalTraffic, + + string? endpoint) + { + AllowExternalTraffic = allowExternalTraffic; + Endpoint = endpoint; + } + } +} diff --git a/sdk/dotnet/Container/Outputs/ClusterMasterAuthorizedNetworksConfig.cs b/sdk/dotnet/Container/Outputs/ClusterMasterAuthorizedNetworksConfig.cs index b82a6953cd..39c46da009 100644 --- a/sdk/dotnet/Container/Outputs/ClusterMasterAuthorizedNetworksConfig.cs +++ b/sdk/dotnet/Container/Outputs/ClusterMasterAuthorizedNetworksConfig.cs @@ -23,15 +23,22 @@ public sealed class ClusterMasterAuthorizedNetworksConfig /// accessible via Google Compute Engine Public IPs. /// public readonly bool? GcpPublicCidrsAccessEnabled; + /// + /// Whether authorized networks is enforced on the private endpoint or not. Defaults to false. + /// + public readonly bool? PrivateEndpointEnforcementEnabled; [OutputConstructor] private ClusterMasterAuthorizedNetworksConfig( ImmutableArray cidrBlocks, - bool? gcpPublicCidrsAccessEnabled) + bool? gcpPublicCidrsAccessEnabled, + + bool? privateEndpointEnforcementEnabled) { CidrBlocks = cidrBlocks; GcpPublicCidrsAccessEnabled = gcpPublicCidrsAccessEnabled; + PrivateEndpointEnforcementEnabled = privateEndpointEnforcementEnabled; } } } diff --git a/sdk/dotnet/Container/Outputs/ClusterUserManagedKeysConfig.cs b/sdk/dotnet/Container/Outputs/ClusterUserManagedKeysConfig.cs new file mode 100644 index 0000000000..7365c058f4 --- /dev/null +++ b/sdk/dotnet/Container/Outputs/ClusterUserManagedKeysConfig.cs @@ -0,0 +1,77 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Container.Outputs +{ + + [OutputType] + public sealed class ClusterUserManagedKeysConfig + { + /// + /// The Certificate Authority Service caPool to use for the aggreation CA in this cluster. + /// + public readonly string? AggregationCa; + /// + /// The Certificate Authority Service caPool to use for the cluster CA in this cluster. + /// + public readonly string? ClusterCa; + /// + /// The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes. + /// + public readonly string? ControlPlaneDiskEncryptionKey; + /// + /// The Certificate Authority Service caPool to use for the etcd API CA in this cluster. + /// + public readonly string? EtcdApiCa; + /// + /// The Certificate Authority Service caPool to use for the etcd peer CA in this cluster. + /// + public readonly string? EtcdPeerCa; + /// + /// Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups. + /// + public readonly string? GkeopsEtcdBackupEncryptionKey; + /// + /// The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. + /// + public readonly ImmutableArray ServiceAccountSigningKeys; + /// + /// The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. + /// + public readonly ImmutableArray ServiceAccountVerificationKeys; + + [OutputConstructor] + private ClusterUserManagedKeysConfig( + string? aggregationCa, + + string? clusterCa, + + string? controlPlaneDiskEncryptionKey, + + string? etcdApiCa, + + string? etcdPeerCa, + + string? gkeopsEtcdBackupEncryptionKey, + + ImmutableArray serviceAccountSigningKeys, + + ImmutableArray serviceAccountVerificationKeys) + { + AggregationCa = aggregationCa; + ClusterCa = clusterCa; + ControlPlaneDiskEncryptionKey = controlPlaneDiskEncryptionKey; + EtcdApiCa = etcdApiCa; + EtcdPeerCa = etcdPeerCa; + GkeopsEtcdBackupEncryptionKey = gkeopsEtcdBackupEncryptionKey; + ServiceAccountSigningKeys = serviceAccountSigningKeys; + ServiceAccountVerificationKeys = serviceAccountVerificationKeys; + } + } +} diff --git a/sdk/dotnet/Container/Outputs/GetClusterAddonsConfigParallelstoreCsiDriverConfigResult.cs b/sdk/dotnet/Container/Outputs/GetClusterAddonsConfigParallelstoreCsiDriverConfigResult.cs new file mode 100644 index 0000000000..a01b2f0345 --- /dev/null +++ b/sdk/dotnet/Container/Outputs/GetClusterAddonsConfigParallelstoreCsiDriverConfigResult.cs @@ -0,0 +1,24 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Container.Outputs +{ + + [OutputType] + public sealed class GetClusterAddonsConfigParallelstoreCsiDriverConfigResult + { + public readonly bool Enabled; + + [OutputConstructor] + private GetClusterAddonsConfigParallelstoreCsiDriverConfigResult(bool enabled) + { + Enabled = enabled; + } + } +} diff --git a/sdk/dotnet/Container/Outputs/GetClusterAddonsConfigResult.cs b/sdk/dotnet/Container/Outputs/GetClusterAddonsConfigResult.cs index a295eba001..e087be079e 100644 --- a/sdk/dotnet/Container/Outputs/GetClusterAddonsConfigResult.cs +++ b/sdk/dotnet/Container/Outputs/GetClusterAddonsConfigResult.cs @@ -62,6 +62,10 @@ public sealed class GetClusterAddonsConfigResult /// public readonly ImmutableArray NetworkPolicyConfigs; /// + /// The status of the Parallelstore CSI driver addon, which allows the usage of Parallelstore instances as volumes. Defaults to disabled; set enabled = true to enable. + /// + public readonly ImmutableArray ParallelstoreCsiDriverConfigs; + /// /// The status of the Ray Operator addon, which enabled management of Ray AI/ML jobs on GKE. Defaults to disabled; set enabled = true to enable. /// public readonly ImmutableArray RayOperatorConfigs; @@ -96,6 +100,8 @@ private GetClusterAddonsConfigResult( ImmutableArray networkPolicyConfigs, + ImmutableArray parallelstoreCsiDriverConfigs, + ImmutableArray rayOperatorConfigs, ImmutableArray statefulHaConfigs) @@ -112,6 +118,7 @@ private GetClusterAddonsConfigResult( IstioConfigs = istioConfigs; KalmConfigs = kalmConfigs; NetworkPolicyConfigs = networkPolicyConfigs; + ParallelstoreCsiDriverConfigs = parallelstoreCsiDriverConfigs; RayOperatorConfigs = rayOperatorConfigs; StatefulHaConfigs = statefulHaConfigs; } diff --git a/sdk/dotnet/Container/Outputs/GetClusterControlPlaneEndpointsConfigDnsEndpointConfigResult.cs b/sdk/dotnet/Container/Outputs/GetClusterControlPlaneEndpointsConfigDnsEndpointConfigResult.cs new file mode 100644 index 0000000000..8e77fefdde --- /dev/null +++ b/sdk/dotnet/Container/Outputs/GetClusterControlPlaneEndpointsConfigDnsEndpointConfigResult.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Container.Outputs +{ + + [OutputType] + public sealed class GetClusterControlPlaneEndpointsConfigDnsEndpointConfigResult + { + /// + /// Controls whether user traffic is allowed over this endpoint. Note that GCP-managed services may still use the endpoint even if this is false. + /// + public readonly bool AllowExternalTraffic; + /// + /// The cluster's DNS endpoint. + /// + public readonly string Endpoint; + + [OutputConstructor] + private GetClusterControlPlaneEndpointsConfigDnsEndpointConfigResult( + bool allowExternalTraffic, + + string endpoint) + { + AllowExternalTraffic = allowExternalTraffic; + Endpoint = endpoint; + } + } +} diff --git a/sdk/dotnet/Container/Outputs/GetClusterControlPlaneEndpointsConfigResult.cs b/sdk/dotnet/Container/Outputs/GetClusterControlPlaneEndpointsConfigResult.cs new file mode 100644 index 0000000000..f0a3baca3b --- /dev/null +++ b/sdk/dotnet/Container/Outputs/GetClusterControlPlaneEndpointsConfigResult.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Container.Outputs +{ + + [OutputType] + public sealed class GetClusterControlPlaneEndpointsConfigResult + { + /// + /// DNS endpoint configuration. + /// + public readonly ImmutableArray DnsEndpointConfigs; + + [OutputConstructor] + private GetClusterControlPlaneEndpointsConfigResult(ImmutableArray dnsEndpointConfigs) + { + DnsEndpointConfigs = dnsEndpointConfigs; + } + } +} diff --git a/sdk/dotnet/Container/Outputs/GetClusterMasterAuthorizedNetworksConfigResult.cs b/sdk/dotnet/Container/Outputs/GetClusterMasterAuthorizedNetworksConfigResult.cs index a400341485..9e88945132 100644 --- a/sdk/dotnet/Container/Outputs/GetClusterMasterAuthorizedNetworksConfigResult.cs +++ b/sdk/dotnet/Container/Outputs/GetClusterMasterAuthorizedNetworksConfigResult.cs @@ -21,15 +21,22 @@ public sealed class GetClusterMasterAuthorizedNetworksConfigResult /// Whether Kubernetes master is accessible via Google Compute Engine Public IPs. /// public readonly bool GcpPublicCidrsAccessEnabled; + /// + /// Whether authorized networks is enforced on the private endpoint or not. Defaults to false. + /// + public readonly bool PrivateEndpointEnforcementEnabled; [OutputConstructor] private GetClusterMasterAuthorizedNetworksConfigResult( ImmutableArray cidrBlocks, - bool gcpPublicCidrsAccessEnabled) + bool gcpPublicCidrsAccessEnabled, + + bool privateEndpointEnforcementEnabled) { CidrBlocks = cidrBlocks; GcpPublicCidrsAccessEnabled = gcpPublicCidrsAccessEnabled; + PrivateEndpointEnforcementEnabled = privateEndpointEnforcementEnabled; } } } diff --git a/sdk/dotnet/Container/Outputs/GetClusterUserManagedKeysConfigResult.cs b/sdk/dotnet/Container/Outputs/GetClusterUserManagedKeysConfigResult.cs new file mode 100644 index 0000000000..855e3a8d5c --- /dev/null +++ b/sdk/dotnet/Container/Outputs/GetClusterUserManagedKeysConfigResult.cs @@ -0,0 +1,77 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Container.Outputs +{ + + [OutputType] + public sealed class GetClusterUserManagedKeysConfigResult + { + /// + /// The Certificate Authority Service caPool to use for the aggreation CA in this cluster. + /// + public readonly string AggregationCa; + /// + /// The Certificate Authority Service caPool to use for the cluster CA in this cluster. + /// + public readonly string ClusterCa; + /// + /// The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes. + /// + public readonly string ControlPlaneDiskEncryptionKey; + /// + /// The Certificate Authority Service caPool to use for the etcd API CA in this cluster. + /// + public readonly string EtcdApiCa; + /// + /// The Certificate Authority Service caPool to use for the etcd peer CA in this cluster. + /// + public readonly string EtcdPeerCa; + /// + /// Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups. + /// + public readonly string GkeopsEtcdBackupEncryptionKey; + /// + /// The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. + /// + public readonly ImmutableArray ServiceAccountSigningKeys; + /// + /// The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. + /// + public readonly ImmutableArray ServiceAccountVerificationKeys; + + [OutputConstructor] + private GetClusterUserManagedKeysConfigResult( + string aggregationCa, + + string clusterCa, + + string controlPlaneDiskEncryptionKey, + + string etcdApiCa, + + string etcdPeerCa, + + string gkeopsEtcdBackupEncryptionKey, + + ImmutableArray serviceAccountSigningKeys, + + ImmutableArray serviceAccountVerificationKeys) + { + AggregationCa = aggregationCa; + ClusterCa = clusterCa; + ControlPlaneDiskEncryptionKey = controlPlaneDiskEncryptionKey; + EtcdApiCa = etcdApiCa; + EtcdPeerCa = etcdPeerCa; + GkeopsEtcdBackupEncryptionKey = gkeopsEtcdBackupEncryptionKey; + ServiceAccountSigningKeys = serviceAccountSigningKeys; + ServiceAccountVerificationKeys = serviceAccountVerificationKeys; + } + } +} diff --git a/sdk/dotnet/DataLoss/PreventionDiscoveryConfig.cs b/sdk/dotnet/DataLoss/PreventionDiscoveryConfig.cs index b28d81229b..eef2d63c36 100644 --- a/sdk/dotnet/DataLoss/PreventionDiscoveryConfig.cs +++ b/sdk/dotnet/DataLoss/PreventionDiscoveryConfig.cs @@ -95,7 +95,7 @@ public partial class PreventionDiscoveryConfig : global::Pulumi.CustomResource public Output Name { get; private set; } = null!; /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Output("orgConfig")] @@ -216,7 +216,7 @@ public InputList InspectTemplates public Input Location { get; set; } = null!; /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("orgConfig")] @@ -330,7 +330,7 @@ public InputList InspectTemplates public Input? Name { get; set; } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("orgConfig")] diff --git a/sdk/dotnet/Dataproc/GdcApplicationEnvironment.cs b/sdk/dotnet/Dataproc/GdcApplicationEnvironment.cs new file mode 100644 index 0000000000..92a0d3af49 --- /dev/null +++ b/sdk/dotnet/Dataproc/GdcApplicationEnvironment.cs @@ -0,0 +1,492 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Dataproc +{ + /// + /// An ApplicationEnvironment contains shared configuration that may be referenced by multiple SparkApplications. + /// + /// To get more information about ApplicationEnvironment, see: + /// + /// * [API documentation](https://cloud.google.com/dataproc-gdc/docs/reference/rest/v1/projects.locations.applicationEnvironments) + /// * How-to Guides + /// * [Dataproc Intro](https://cloud.google.com/dataproc/) + /// + /// ## Example Usage + /// + /// ### Dataprocgdc Applicationenvironment Basic + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var application_environment = new Gcp.Dataproc.GdcApplicationEnvironment("application-environment", new() + /// { + /// ApplicationEnvironmentId = "dp-tf-e2e-application-environment-basic", + /// Serviceinstance = "do-not-delete-dataproc-gdc-instance", + /// Project = "my-project", + /// Location = "us-west2", + /// Namespace = "default", + /// }); + /// + /// }); + /// ``` + /// ### Dataprocgdc Applicationenvironment + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var application_environment = new Gcp.Dataproc.GdcApplicationEnvironment("application-environment", new() + /// { + /// ApplicationEnvironmentId = "dp-tf-e2e-application-environment", + /// Serviceinstance = "do-not-delete-dataproc-gdc-instance", + /// Project = "my-project", + /// Location = "us-west2", + /// Namespace = "default", + /// DisplayName = "An application environment", + /// Labels = + /// { + /// { "test-label", "label-value" }, + /// }, + /// Annotations = + /// { + /// { "an_annotation", "annotation_value" }, + /// }, + /// SparkApplicationEnvironmentConfig = new Gcp.Dataproc.Inputs.GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs + /// { + /// DefaultProperties = + /// { + /// { "spark.executor.memory", "4g" }, + /// }, + /// DefaultVersion = "1.2", + /// }, + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// ApplicationEnvironment can be imported using any of these accepted formats: + /// + /// * `projects/{{project}}/locations/{{location}}/serviceInstances/{{serviceinstance}}/applicationEnvironments/{{application_environment_id}}` + /// + /// * `{{project}}/{{location}}/{{serviceinstance}}/{{application_environment_id}}` + /// + /// * `{{location}}/{{serviceinstance}}/{{application_environment_id}}` + /// + /// When using the `pulumi import` command, ApplicationEnvironment can be imported using one of the formats above. For example: + /// + /// ```sh + /// $ pulumi import gcp:dataproc/gdcApplicationEnvironment:GdcApplicationEnvironment default projects/{{project}}/locations/{{location}}/serviceInstances/{{serviceinstance}}/applicationEnvironments/{{application_environment_id}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:dataproc/gdcApplicationEnvironment:GdcApplicationEnvironment default {{project}}/{{location}}/{{serviceinstance}}/{{application_environment_id}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:dataproc/gdcApplicationEnvironment:GdcApplicationEnvironment default {{location}}/{{serviceinstance}}/{{application_environment_id}} + /// ``` + /// + [GcpResourceType("gcp:dataproc/gdcApplicationEnvironment:GdcApplicationEnvironment")] + public partial class GdcApplicationEnvironment : global::Pulumi.CustomResource + { + /// + /// The annotations to associate with this application environment. Annotations may be used to store client information, but are not used by the server. + /// **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + /// Please refer to the field `effective_annotations` for all of the annotations present on the resource. + /// + [Output("annotations")] + public Output?> Annotations { get; private set; } = null!; + + /// + /// The id of the application environment + /// + [Output("applicationEnvironmentId")] + public Output ApplicationEnvironmentId { get; private set; } = null!; + + /// + /// The timestamp when the resource was created. + /// + [Output("createTime")] + public Output CreateTime { get; private set; } = null!; + + /// + /// User-provided human-readable name to be used in user interfaces. + /// + [Output("displayName")] + public Output DisplayName { get; private set; } = null!; + + [Output("effectiveAnnotations")] + public Output> EffectiveAnnotations { get; private set; } = null!; + + /// + /// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + /// + [Output("effectiveLabels")] + public Output> EffectiveLabels { get; private set; } = null!; + + /// + /// The labels to associate with this application environment. Labels may be used for filtering and billing tracking. + /// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + /// Please refer to the field `effective_labels` for all of the labels present on the resource. + /// + [Output("labels")] + public Output?> Labels { get; private set; } = null!; + + /// + /// The location of the application environment + /// + [Output("location")] + public Output Location { get; private set; } = null!; + + /// + /// Identifier. The name of the application environment. Format: projects/{project}/locations/{location}/serviceInstances/{service_instance}/applicationEnvironments/{application_environment_id} + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// The name of the namespace in which to create this ApplicationEnvironment. This namespace must already exist in the cluster + /// + [Output("namespace")] + public Output Namespace { get; private set; } = null!; + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. + /// + [Output("project")] + public Output Project { get; private set; } = null!; + + /// + /// The combination of labels configured directly on the resource + /// and default labels configured on the provider. + /// + [Output("pulumiLabels")] + public Output> PulumiLabels { get; private set; } = null!; + + /// + /// The id of the service instance to which this application environment belongs. + /// + /// + /// - - - + /// + [Output("serviceinstance")] + public Output Serviceinstance { get; private set; } = null!; + + /// + /// Represents the SparkApplicationEnvironmentConfig. + /// Structure is documented below. + /// + [Output("sparkApplicationEnvironmentConfig")] + public Output SparkApplicationEnvironmentConfig { get; private set; } = null!; + + /// + /// System generated unique identifier for this application environment, formatted as UUID4. + /// + [Output("uid")] + public Output Uid { get; private set; } = null!; + + /// + /// The timestamp when the resource was most recently updated. + /// + [Output("updateTime")] + public Output UpdateTime { get; private set; } = null!; + + + /// + /// Create a GdcApplicationEnvironment resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public GdcApplicationEnvironment(string name, GdcApplicationEnvironmentArgs args, CustomResourceOptions? options = null) + : base("gcp:dataproc/gdcApplicationEnvironment:GdcApplicationEnvironment", name, args ?? new GdcApplicationEnvironmentArgs(), MakeResourceOptions(options, "")) + { + } + + private GdcApplicationEnvironment(string name, Input id, GdcApplicationEnvironmentState? state = null, CustomResourceOptions? options = null) + : base("gcp:dataproc/gdcApplicationEnvironment:GdcApplicationEnvironment", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + AdditionalSecretOutputs = + { + "effectiveLabels", + "pulumiLabels", + }, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing GdcApplicationEnvironment resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static GdcApplicationEnvironment Get(string name, Input id, GdcApplicationEnvironmentState? state = null, CustomResourceOptions? options = null) + { + return new GdcApplicationEnvironment(name, id, state, options); + } + } + + public sealed class GdcApplicationEnvironmentArgs : global::Pulumi.ResourceArgs + { + [Input("annotations")] + private InputMap? _annotations; + + /// + /// The annotations to associate with this application environment. Annotations may be used to store client information, but are not used by the server. + /// **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + /// Please refer to the field `effective_annotations` for all of the annotations present on the resource. + /// + public InputMap Annotations + { + get => _annotations ?? (_annotations = new InputMap()); + set => _annotations = value; + } + + /// + /// The id of the application environment + /// + [Input("applicationEnvironmentId")] + public Input? ApplicationEnvironmentId { get; set; } + + /// + /// User-provided human-readable name to be used in user interfaces. + /// + [Input("displayName")] + public Input? DisplayName { get; set; } + + [Input("labels")] + private InputMap? _labels; + + /// + /// The labels to associate with this application environment. Labels may be used for filtering and billing tracking. + /// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + /// Please refer to the field `effective_labels` for all of the labels present on the resource. + /// + public InputMap Labels + { + get => _labels ?? (_labels = new InputMap()); + set => _labels = value; + } + + /// + /// The location of the application environment + /// + [Input("location", required: true)] + public Input Location { get; set; } = null!; + + /// + /// The name of the namespace in which to create this ApplicationEnvironment. This namespace must already exist in the cluster + /// + [Input("namespace")] + public Input? Namespace { get; set; } + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. + /// + [Input("project")] + public Input? Project { get; set; } + + /// + /// The id of the service instance to which this application environment belongs. + /// + /// + /// - - - + /// + [Input("serviceinstance", required: true)] + public Input Serviceinstance { get; set; } = null!; + + /// + /// Represents the SparkApplicationEnvironmentConfig. + /// Structure is documented below. + /// + [Input("sparkApplicationEnvironmentConfig")] + public Input? SparkApplicationEnvironmentConfig { get; set; } + + public GdcApplicationEnvironmentArgs() + { + } + public static new GdcApplicationEnvironmentArgs Empty => new GdcApplicationEnvironmentArgs(); + } + + public sealed class GdcApplicationEnvironmentState : global::Pulumi.ResourceArgs + { + [Input("annotations")] + private InputMap? _annotations; + + /// + /// The annotations to associate with this application environment. Annotations may be used to store client information, but are not used by the server. + /// **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + /// Please refer to the field `effective_annotations` for all of the annotations present on the resource. + /// + public InputMap Annotations + { + get => _annotations ?? (_annotations = new InputMap()); + set => _annotations = value; + } + + /// + /// The id of the application environment + /// + [Input("applicationEnvironmentId")] + public Input? ApplicationEnvironmentId { get; set; } + + /// + /// The timestamp when the resource was created. + /// + [Input("createTime")] + public Input? CreateTime { get; set; } + + /// + /// User-provided human-readable name to be used in user interfaces. + /// + [Input("displayName")] + public Input? DisplayName { get; set; } + + [Input("effectiveAnnotations")] + private InputMap? _effectiveAnnotations; + public InputMap EffectiveAnnotations + { + get => _effectiveAnnotations ?? (_effectiveAnnotations = new InputMap()); + set => _effectiveAnnotations = value; + } + + [Input("effectiveLabels")] + private InputMap? _effectiveLabels; + + /// + /// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + /// + public InputMap EffectiveLabels + { + get => _effectiveLabels ?? (_effectiveLabels = new InputMap()); + set + { + var emptySecret = Output.CreateSecret(ImmutableDictionary.Create()); + _effectiveLabels = Output.All(value, emptySecret).Apply(v => v[0]); + } + } + + [Input("labels")] + private InputMap? _labels; + + /// + /// The labels to associate with this application environment. Labels may be used for filtering and billing tracking. + /// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + /// Please refer to the field `effective_labels` for all of the labels present on the resource. + /// + public InputMap Labels + { + get => _labels ?? (_labels = new InputMap()); + set => _labels = value; + } + + /// + /// The location of the application environment + /// + [Input("location")] + public Input? Location { get; set; } + + /// + /// Identifier. The name of the application environment. Format: projects/{project}/locations/{location}/serviceInstances/{service_instance}/applicationEnvironments/{application_environment_id} + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The name of the namespace in which to create this ApplicationEnvironment. This namespace must already exist in the cluster + /// + [Input("namespace")] + public Input? Namespace { get; set; } + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. + /// + [Input("project")] + public Input? Project { get; set; } + + [Input("pulumiLabels")] + private InputMap? _pulumiLabels; + + /// + /// The combination of labels configured directly on the resource + /// and default labels configured on the provider. + /// + public InputMap PulumiLabels + { + get => _pulumiLabels ?? (_pulumiLabels = new InputMap()); + set + { + var emptySecret = Output.CreateSecret(ImmutableDictionary.Create()); + _pulumiLabels = Output.All(value, emptySecret).Apply(v => v[0]); + } + } + + /// + /// The id of the service instance to which this application environment belongs. + /// + /// + /// - - - + /// + [Input("serviceinstance")] + public Input? Serviceinstance { get; set; } + + /// + /// Represents the SparkApplicationEnvironmentConfig. + /// Structure is documented below. + /// + [Input("sparkApplicationEnvironmentConfig")] + public Input? SparkApplicationEnvironmentConfig { get; set; } + + /// + /// System generated unique identifier for this application environment, formatted as UUID4. + /// + [Input("uid")] + public Input? Uid { get; set; } + + /// + /// The timestamp when the resource was most recently updated. + /// + [Input("updateTime")] + public Input? UpdateTime { get; set; } + + public GdcApplicationEnvironmentState() + { + } + public static new GdcApplicationEnvironmentState Empty => new GdcApplicationEnvironmentState(); + } +} diff --git a/sdk/dotnet/Dataproc/GdcServiceInstance.cs b/sdk/dotnet/Dataproc/GdcServiceInstance.cs new file mode 100644 index 0000000000..76b7508567 --- /dev/null +++ b/sdk/dotnet/Dataproc/GdcServiceInstance.cs @@ -0,0 +1,511 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Dataproc +{ + /// + /// A service instance is an instance of the Dataproc operator running on a GDC cluster. + /// + /// To get more information about ServiceInstance, see: + /// + /// * [API documentation](https://cloud.google.com/dataproc-gdc/docs/reference/rest/v1/projects.locations.serviceInstances) + /// * How-to Guides + /// * [Dataproc Intro](https://cloud.google.com/dataproc/) + /// + /// ## Example Usage + /// + /// ### Dataprocgdc Serviceinstance + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var service_instance = new Gcp.Dataproc.GdcServiceInstance("service-instance", new() + /// { + /// ServiceInstanceId = "tf-e2e-service-instance", + /// Project = "my-project", + /// Location = "us-west2", + /// GdceCluster = new Gcp.Dataproc.Inputs.GdcServiceInstanceGdceClusterArgs + /// { + /// GdceCluster = "projects/gdce-cluster-monitoring/locations/us-west2/clusters/gdce-prism-prober-ord106", + /// }, + /// DisplayName = "A service instance", + /// Labels = + /// { + /// { "test-label", "label-value" }, + /// }, + /// ServiceAccount = "dataprocgdc-cep-workflows@gdce-cluster-monitoring.iam.gserviceaccount.com", + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// ServiceInstance can be imported using any of these accepted formats: + /// + /// * `projects/{{project}}/locations/{{location}}/serviceInstances/{{service_instance_id}}` + /// + /// * `{{project}}/{{location}}/{{service_instance_id}}` + /// + /// * `{{location}}/{{service_instance_id}}` + /// + /// When using the `pulumi import` command, ServiceInstance can be imported using one of the formats above. For example: + /// + /// ```sh + /// $ pulumi import gcp:dataproc/gdcServiceInstance:GdcServiceInstance default projects/{{project}}/locations/{{location}}/serviceInstances/{{service_instance_id}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:dataproc/gdcServiceInstance:GdcServiceInstance default {{project}}/{{location}}/{{service_instance_id}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:dataproc/gdcServiceInstance:GdcServiceInstance default {{location}}/{{service_instance_id}} + /// ``` + /// + [GcpResourceType("gcp:dataproc/gdcServiceInstance:GdcServiceInstance")] + public partial class GdcServiceInstance : global::Pulumi.CustomResource + { + /// + /// The timestamp when the resource was created. + /// + [Output("createTime")] + public Output CreateTime { get; private set; } = null!; + + /// + /// User-provided human-readable name to be used in user interfaces. + /// + [Output("displayName")] + public Output DisplayName { get; private set; } = null!; + + /// + /// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + /// + [Output("effectiveLabels")] + public Output> EffectiveLabels { get; private set; } = null!; + + /// + /// Effective service account associated with ServiceInstance. This will be the service_account if specified. Otherwise, it will be an automatically created per-resource P4SA that also automatically has Fleet Workload. Identity bindings applied. + /// + [Output("effectiveServiceAccount")] + public Output EffectiveServiceAccount { get; private set; } = null!; + + /// + /// Gdce cluster information. + /// Structure is documented below. + /// + [Output("gdceCluster")] + public Output GdceCluster { get; private set; } = null!; + + /// + /// The labels to associate with this service instance. Labels may be used for filtering and billing tracking. + /// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + /// Please refer to the field `effective_labels` for all of the labels present on the resource. + /// + [Output("labels")] + public Output?> Labels { get; private set; } = null!; + + /// + /// Location of the resource. + /// + [Output("location")] + public Output Location { get; private set; } = null!; + + /// + /// Identifier. The name of the service instance. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. + /// + [Output("project")] + public Output Project { get; private set; } = null!; + + /// + /// The combination of labels configured directly on the resource + /// and default labels configured on the provider. + /// + [Output("pulumiLabels")] + public Output> PulumiLabels { get; private set; } = null!; + + /// + /// Whether the service instance is currently reconciling. True if the current state of the resource does not match the intended state, and the system is working to reconcile them, whether or not the change was user initiated. + /// + [Output("reconciling")] + public Output Reconciling { get; private set; } = null!; + + /// + /// The intended state to which the service instance is reconciling. Possible values: + /// * `CREATING` + /// * `ACTIVE` + /// * `DISCONNECTED` + /// * `DELETING` + /// * `STOPPING` + /// * `STOPPED` + /// * `STARTING` + /// * `UPDATING` + /// * `FAILED` + /// + [Output("requestedState")] + public Output RequestedState { get; private set; } = null!; + + /// + /// Requested service account to associate with ServiceInstance. + /// + [Output("serviceAccount")] + public Output ServiceAccount { get; private set; } = null!; + + /// + /// Id of the service instance. + /// + /// + /// - - - + /// + [Output("serviceInstanceId")] + public Output ServiceInstanceId { get; private set; } = null!; + + /// + /// Spark-specific service instance configuration. + /// + [Output("sparkServiceInstanceConfig")] + public Output SparkServiceInstanceConfig { get; private set; } = null!; + + /// + /// The current state. Possible values: + /// * `CREATING` + /// * `ACTIVE` + /// * `DISCONNECTED` + /// * `DELETING` + /// * `STOPPING` + /// * `STOPPED` + /// * `STARTING` + /// * `UPDATING` + /// * `FAILED` + /// + [Output("state")] + public Output State { get; private set; } = null!; + + /// + /// A message explaining the current state. + /// + [Output("stateMessage")] + public Output StateMessage { get; private set; } = null!; + + /// + /// System generated unique identifier for this service instance, formatted as UUID4. + /// + [Output("uid")] + public Output Uid { get; private set; } = null!; + + /// + /// The timestamp when the resource was most recently updated. + /// + [Output("updateTime")] + public Output UpdateTime { get; private set; } = null!; + + + /// + /// Create a GdcServiceInstance resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public GdcServiceInstance(string name, GdcServiceInstanceArgs args, CustomResourceOptions? options = null) + : base("gcp:dataproc/gdcServiceInstance:GdcServiceInstance", name, args ?? new GdcServiceInstanceArgs(), MakeResourceOptions(options, "")) + { + } + + private GdcServiceInstance(string name, Input id, GdcServiceInstanceState? state = null, CustomResourceOptions? options = null) + : base("gcp:dataproc/gdcServiceInstance:GdcServiceInstance", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + AdditionalSecretOutputs = + { + "effectiveLabels", + "pulumiLabels", + }, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing GdcServiceInstance resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static GdcServiceInstance Get(string name, Input id, GdcServiceInstanceState? state = null, CustomResourceOptions? options = null) + { + return new GdcServiceInstance(name, id, state, options); + } + } + + public sealed class GdcServiceInstanceArgs : global::Pulumi.ResourceArgs + { + /// + /// User-provided human-readable name to be used in user interfaces. + /// + [Input("displayName")] + public Input? DisplayName { get; set; } + + /// + /// Gdce cluster information. + /// Structure is documented below. + /// + [Input("gdceCluster")] + public Input? GdceCluster { get; set; } + + [Input("labels")] + private InputMap? _labels; + + /// + /// The labels to associate with this service instance. Labels may be used for filtering and billing tracking. + /// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + /// Please refer to the field `effective_labels` for all of the labels present on the resource. + /// + public InputMap Labels + { + get => _labels ?? (_labels = new InputMap()); + set => _labels = value; + } + + /// + /// Location of the resource. + /// + [Input("location", required: true)] + public Input Location { get; set; } = null!; + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. + /// + [Input("project")] + public Input? Project { get; set; } + + /// + /// Requested service account to associate with ServiceInstance. + /// + [Input("serviceAccount")] + public Input? ServiceAccount { get; set; } + + /// + /// Id of the service instance. + /// + /// + /// - - - + /// + [Input("serviceInstanceId", required: true)] + public Input ServiceInstanceId { get; set; } = null!; + + /// + /// Spark-specific service instance configuration. + /// + [Input("sparkServiceInstanceConfig")] + public Input? SparkServiceInstanceConfig { get; set; } + + public GdcServiceInstanceArgs() + { + } + public static new GdcServiceInstanceArgs Empty => new GdcServiceInstanceArgs(); + } + + public sealed class GdcServiceInstanceState : global::Pulumi.ResourceArgs + { + /// + /// The timestamp when the resource was created. + /// + [Input("createTime")] + public Input? CreateTime { get; set; } + + /// + /// User-provided human-readable name to be used in user interfaces. + /// + [Input("displayName")] + public Input? DisplayName { get; set; } + + [Input("effectiveLabels")] + private InputMap? _effectiveLabels; + + /// + /// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + /// + public InputMap EffectiveLabels + { + get => _effectiveLabels ?? (_effectiveLabels = new InputMap()); + set + { + var emptySecret = Output.CreateSecret(ImmutableDictionary.Create()); + _effectiveLabels = Output.All(value, emptySecret).Apply(v => v[0]); + } + } + + /// + /// Effective service account associated with ServiceInstance. This will be the service_account if specified. Otherwise, it will be an automatically created per-resource P4SA that also automatically has Fleet Workload. Identity bindings applied. + /// + [Input("effectiveServiceAccount")] + public Input? EffectiveServiceAccount { get; set; } + + /// + /// Gdce cluster information. + /// Structure is documented below. + /// + [Input("gdceCluster")] + public Input? GdceCluster { get; set; } + + [Input("labels")] + private InputMap? _labels; + + /// + /// The labels to associate with this service instance. Labels may be used for filtering and billing tracking. + /// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + /// Please refer to the field `effective_labels` for all of the labels present on the resource. + /// + public InputMap Labels + { + get => _labels ?? (_labels = new InputMap()); + set => _labels = value; + } + + /// + /// Location of the resource. + /// + [Input("location")] + public Input? Location { get; set; } + + /// + /// Identifier. The name of the service instance. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. + /// + [Input("project")] + public Input? Project { get; set; } + + [Input("pulumiLabels")] + private InputMap? _pulumiLabels; + + /// + /// The combination of labels configured directly on the resource + /// and default labels configured on the provider. + /// + public InputMap PulumiLabels + { + get => _pulumiLabels ?? (_pulumiLabels = new InputMap()); + set + { + var emptySecret = Output.CreateSecret(ImmutableDictionary.Create()); + _pulumiLabels = Output.All(value, emptySecret).Apply(v => v[0]); + } + } + + /// + /// Whether the service instance is currently reconciling. True if the current state of the resource does not match the intended state, and the system is working to reconcile them, whether or not the change was user initiated. + /// + [Input("reconciling")] + public Input? Reconciling { get; set; } + + /// + /// The intended state to which the service instance is reconciling. Possible values: + /// * `CREATING` + /// * `ACTIVE` + /// * `DISCONNECTED` + /// * `DELETING` + /// * `STOPPING` + /// * `STOPPED` + /// * `STARTING` + /// * `UPDATING` + /// * `FAILED` + /// + [Input("requestedState")] + public Input? RequestedState { get; set; } + + /// + /// Requested service account to associate with ServiceInstance. + /// + [Input("serviceAccount")] + public Input? ServiceAccount { get; set; } + + /// + /// Id of the service instance. + /// + /// + /// - - - + /// + [Input("serviceInstanceId")] + public Input? ServiceInstanceId { get; set; } + + /// + /// Spark-specific service instance configuration. + /// + [Input("sparkServiceInstanceConfig")] + public Input? SparkServiceInstanceConfig { get; set; } + + /// + /// The current state. Possible values: + /// * `CREATING` + /// * `ACTIVE` + /// * `DISCONNECTED` + /// * `DELETING` + /// * `STOPPING` + /// * `STOPPED` + /// * `STARTING` + /// * `UPDATING` + /// * `FAILED` + /// + [Input("state")] + public Input? State { get; set; } + + /// + /// A message explaining the current state. + /// + [Input("stateMessage")] + public Input? StateMessage { get; set; } + + /// + /// System generated unique identifier for this service instance, formatted as UUID4. + /// + [Input("uid")] + public Input? Uid { get; set; } + + /// + /// The timestamp when the resource was most recently updated. + /// + [Input("updateTime")] + public Input? UpdateTime { get; set; } + + public GdcServiceInstanceState() + { + } + public static new GdcServiceInstanceState Empty => new GdcServiceInstanceState(); + } +} diff --git a/sdk/dotnet/Dataproc/Inputs/GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs.cs b/sdk/dotnet/Dataproc/Inputs/GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs.cs new file mode 100644 index 0000000000..48c09ee8d6 --- /dev/null +++ b/sdk/dotnet/Dataproc/Inputs/GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Dataproc.Inputs +{ + + public sealed class GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs : global::Pulumi.ResourceArgs + { + [Input("defaultProperties")] + private InputMap? _defaultProperties; + + /// + /// A map of default Spark properties to apply to workloads in this application environment. These defaults may be overridden by per-application properties. + /// + public InputMap DefaultProperties + { + get => _defaultProperties ?? (_defaultProperties = new InputMap()); + set => _defaultProperties = value; + } + + /// + /// The default Dataproc version to use for applications submitted to this application environment + /// + [Input("defaultVersion")] + public Input? DefaultVersion { get; set; } + + public GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs() + { + } + public static new GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs Empty => new GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs(); + } +} diff --git a/sdk/dotnet/Dataproc/Inputs/GdcApplicationEnvironmentSparkApplicationEnvironmentConfigGetArgs.cs b/sdk/dotnet/Dataproc/Inputs/GdcApplicationEnvironmentSparkApplicationEnvironmentConfigGetArgs.cs new file mode 100644 index 0000000000..ec92f95c25 --- /dev/null +++ b/sdk/dotnet/Dataproc/Inputs/GdcApplicationEnvironmentSparkApplicationEnvironmentConfigGetArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Dataproc.Inputs +{ + + public sealed class GdcApplicationEnvironmentSparkApplicationEnvironmentConfigGetArgs : global::Pulumi.ResourceArgs + { + [Input("defaultProperties")] + private InputMap? _defaultProperties; + + /// + /// A map of default Spark properties to apply to workloads in this application environment. These defaults may be overridden by per-application properties. + /// + public InputMap DefaultProperties + { + get => _defaultProperties ?? (_defaultProperties = new InputMap()); + set => _defaultProperties = value; + } + + /// + /// The default Dataproc version to use for applications submitted to this application environment + /// + [Input("defaultVersion")] + public Input? DefaultVersion { get; set; } + + public GdcApplicationEnvironmentSparkApplicationEnvironmentConfigGetArgs() + { + } + public static new GdcApplicationEnvironmentSparkApplicationEnvironmentConfigGetArgs Empty => new GdcApplicationEnvironmentSparkApplicationEnvironmentConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Dataproc/Inputs/GdcServiceInstanceGdceClusterArgs.cs b/sdk/dotnet/Dataproc/Inputs/GdcServiceInstanceGdceClusterArgs.cs new file mode 100644 index 0000000000..1e155909d9 --- /dev/null +++ b/sdk/dotnet/Dataproc/Inputs/GdcServiceInstanceGdceClusterArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Dataproc.Inputs +{ + + public sealed class GdcServiceInstanceGdceClusterArgs : global::Pulumi.ResourceArgs + { + /// + /// Gdce cluster resource id. + /// + [Input("gdceCluster", required: true)] + public Input GdceCluster { get; set; } = null!; + + public GdcServiceInstanceGdceClusterArgs() + { + } + public static new GdcServiceInstanceGdceClusterArgs Empty => new GdcServiceInstanceGdceClusterArgs(); + } +} diff --git a/sdk/dotnet/Dataproc/Inputs/GdcServiceInstanceGdceClusterGetArgs.cs b/sdk/dotnet/Dataproc/Inputs/GdcServiceInstanceGdceClusterGetArgs.cs new file mode 100644 index 0000000000..1833b3aea6 --- /dev/null +++ b/sdk/dotnet/Dataproc/Inputs/GdcServiceInstanceGdceClusterGetArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Dataproc.Inputs +{ + + public sealed class GdcServiceInstanceGdceClusterGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Gdce cluster resource id. + /// + [Input("gdceCluster", required: true)] + public Input GdceCluster { get; set; } = null!; + + public GdcServiceInstanceGdceClusterGetArgs() + { + } + public static new GdcServiceInstanceGdceClusterGetArgs Empty => new GdcServiceInstanceGdceClusterGetArgs(); + } +} diff --git a/sdk/dotnet/Dataproc/Inputs/GdcServiceInstanceSparkServiceInstanceConfigArgs.cs b/sdk/dotnet/Dataproc/Inputs/GdcServiceInstanceSparkServiceInstanceConfigArgs.cs new file mode 100644 index 0000000000..3167d7edf0 --- /dev/null +++ b/sdk/dotnet/Dataproc/Inputs/GdcServiceInstanceSparkServiceInstanceConfigArgs.cs @@ -0,0 +1,20 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Dataproc.Inputs +{ + + public sealed class GdcServiceInstanceSparkServiceInstanceConfigArgs : global::Pulumi.ResourceArgs + { + public GdcServiceInstanceSparkServiceInstanceConfigArgs() + { + } + public static new GdcServiceInstanceSparkServiceInstanceConfigArgs Empty => new GdcServiceInstanceSparkServiceInstanceConfigArgs(); + } +} diff --git a/sdk/dotnet/Dataproc/Inputs/GdcServiceInstanceSparkServiceInstanceConfigGetArgs.cs b/sdk/dotnet/Dataproc/Inputs/GdcServiceInstanceSparkServiceInstanceConfigGetArgs.cs new file mode 100644 index 0000000000..6406864f8b --- /dev/null +++ b/sdk/dotnet/Dataproc/Inputs/GdcServiceInstanceSparkServiceInstanceConfigGetArgs.cs @@ -0,0 +1,20 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Dataproc.Inputs +{ + + public sealed class GdcServiceInstanceSparkServiceInstanceConfigGetArgs : global::Pulumi.ResourceArgs + { + public GdcServiceInstanceSparkServiceInstanceConfigGetArgs() + { + } + public static new GdcServiceInstanceSparkServiceInstanceConfigGetArgs Empty => new GdcServiceInstanceSparkServiceInstanceConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Dataproc/Outputs/GdcApplicationEnvironmentSparkApplicationEnvironmentConfig.cs b/sdk/dotnet/Dataproc/Outputs/GdcApplicationEnvironmentSparkApplicationEnvironmentConfig.cs new file mode 100644 index 0000000000..ab8b1be93e --- /dev/null +++ b/sdk/dotnet/Dataproc/Outputs/GdcApplicationEnvironmentSparkApplicationEnvironmentConfig.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Dataproc.Outputs +{ + + [OutputType] + public sealed class GdcApplicationEnvironmentSparkApplicationEnvironmentConfig + { + /// + /// A map of default Spark properties to apply to workloads in this application environment. These defaults may be overridden by per-application properties. + /// + public readonly ImmutableDictionary? DefaultProperties; + /// + /// The default Dataproc version to use for applications submitted to this application environment + /// + public readonly string? DefaultVersion; + + [OutputConstructor] + private GdcApplicationEnvironmentSparkApplicationEnvironmentConfig( + ImmutableDictionary? defaultProperties, + + string? defaultVersion) + { + DefaultProperties = defaultProperties; + DefaultVersion = defaultVersion; + } + } +} diff --git a/sdk/dotnet/Dataproc/Outputs/GdcServiceInstanceGdceCluster.cs b/sdk/dotnet/Dataproc/Outputs/GdcServiceInstanceGdceCluster.cs new file mode 100644 index 0000000000..4755e290ca --- /dev/null +++ b/sdk/dotnet/Dataproc/Outputs/GdcServiceInstanceGdceCluster.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Dataproc.Outputs +{ + + [OutputType] + public sealed class GdcServiceInstanceGdceCluster + { + /// + /// Gdce cluster resource id. + /// + public readonly string GdceCluster; + + [OutputConstructor] + private GdcServiceInstanceGdceCluster(string gdceCluster) + { + GdceCluster = gdceCluster; + } + } +} diff --git a/sdk/dotnet/Dataproc/Outputs/GdcServiceInstanceSparkServiceInstanceConfig.cs b/sdk/dotnet/Dataproc/Outputs/GdcServiceInstanceSparkServiceInstanceConfig.cs new file mode 100644 index 0000000000..c9bafd8dd9 --- /dev/null +++ b/sdk/dotnet/Dataproc/Outputs/GdcServiceInstanceSparkServiceInstanceConfig.cs @@ -0,0 +1,21 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Dataproc.Outputs +{ + + [OutputType] + public sealed class GdcServiceInstanceSparkServiceInstanceConfig + { + [OutputConstructor] + private GdcServiceInstanceSparkServiceInstanceConfig() + { + } + } +} diff --git a/sdk/dotnet/EdgeContainer/VpnConnection.cs b/sdk/dotnet/EdgeContainer/VpnConnection.cs index e25d429623..55c793cc04 100644 --- a/sdk/dotnet/EdgeContainer/VpnConnection.cs +++ b/sdk/dotnet/EdgeContainer/VpnConnection.cs @@ -142,7 +142,7 @@ public partial class VpnConnection : global::Pulumi.CustomResource public Output CreateTime { get; private set; } = null!; /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Output("details")] @@ -378,7 +378,7 @@ public sealed class VpnConnectionState : global::Pulumi.ResourceArgs private InputList? _details; /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// public InputList Details diff --git a/sdk/dotnet/Firebase/AndroidApp.cs b/sdk/dotnet/Firebase/AndroidApp.cs index 82bd7e82f9..cf4d741551 100644 --- a/sdk/dotnet/Firebase/AndroidApp.cs +++ b/sdk/dotnet/Firebase/AndroidApp.cs @@ -106,7 +106,7 @@ namespace Pulumi.Gcp.Firebase /// When using the `pulumi import` command, AndroidApp can be imported using one of the formats above. For example: /// /// ```sh - /// $ pulumi import gcp:firebase/androidApp:AndroidApp default {{project}} projects/{{project}}/androidApps/{{app_id}} + /// $ pulumi import gcp:firebase/androidApp:AndroidApp default "{{project}} projects/{{project}}/androidApps/{{app_id}}" /// ``` /// /// ```sh diff --git a/sdk/dotnet/Firebase/AppleApp.cs b/sdk/dotnet/Firebase/AppleApp.cs index 5753483a7e..6086348c58 100644 --- a/sdk/dotnet/Firebase/AppleApp.cs +++ b/sdk/dotnet/Firebase/AppleApp.cs @@ -88,7 +88,7 @@ namespace Pulumi.Gcp.Firebase /// When using the `pulumi import` command, AppleApp can be imported using one of the formats above. For example: /// /// ```sh - /// $ pulumi import gcp:firebase/appleApp:AppleApp default {{project}} projects/{{project}}/iosApps/{{app_id}} + /// $ pulumi import gcp:firebase/appleApp:AppleApp default "{{project}} projects/{{project}}/iosApps/{{app_id}}" /// ``` /// /// ```sh diff --git a/sdk/dotnet/Firebase/WebApp.cs b/sdk/dotnet/Firebase/WebApp.cs index 03ecd94e5f..43de776531 100644 --- a/sdk/dotnet/Firebase/WebApp.cs +++ b/sdk/dotnet/Firebase/WebApp.cs @@ -75,7 +75,7 @@ namespace Pulumi.Gcp.Firebase /// When using the `pulumi import` command, WebApp can be imported using one of the formats above. For example: /// /// ```sh - /// $ pulumi import gcp:firebase/webApp:WebApp default {{project}} projects/{{project}}/webApps/{{app_id}} + /// $ pulumi import gcp:firebase/webApp:WebApp default "{{project}} projects/{{project}}/webApps/{{app_id}}" /// ``` /// /// ```sh diff --git a/sdk/dotnet/Firestore/Index.cs b/sdk/dotnet/Firestore/Index.cs index 03853cb2c8..de477858c7 100644 --- a/sdk/dotnet/Firestore/Index.cs +++ b/sdk/dotnet/Firestore/Index.cs @@ -167,6 +167,43 @@ namespace Pulumi.Gcp.Firestore /// /// }); /// ``` + /// ### Firestore Index Name Descending + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var database = new Gcp.Firestore.Database("database", new() + /// { + /// Project = "my-project-name", + /// Name = "database-id", + /// LocationId = "nam5", + /// Type = "FIRESTORE_NATIVE", + /// DeleteProtectionState = "DELETE_PROTECTION_DISABLED", + /// DeletionPolicy = "DELETE", + /// }); + /// + /// var my_index = new Gcp.Firestore.Index("my-index", new() + /// { + /// Project = "my-project-name", + /// Database = database.Name, + /// Collection = "atestcollection", + /// Fields = new[] + /// { + /// new Gcp.Firestore.Inputs.IndexFieldArgs + /// { + /// FieldPath = "__name__", + /// Order = "DESCENDING", + /// }, + /// }, + /// }); + /// + /// }); + /// ``` /// /// ## Import /// diff --git a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterLoadBalancerArgs.cs b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterLoadBalancerArgs.cs index e5e26af1dc..6628cce878 100644 --- a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterLoadBalancerArgs.cs +++ b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterLoadBalancerArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Gcp.GkeOnPrem.Inputs public sealed class BareMetalAdminClusterLoadBalancerArgs : global::Pulumi.ResourceArgs { /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("manualLbConfig")] diff --git a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterLoadBalancerGetArgs.cs b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterLoadBalancerGetArgs.cs index 0fcb62bb25..e5cdad5aaa 100644 --- a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterLoadBalancerGetArgs.cs +++ b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterLoadBalancerGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Gcp.GkeOnPrem.Inputs public sealed class BareMetalAdminClusterLoadBalancerGetArgs : global::Pulumi.ResourceArgs { /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("manualLbConfig")] diff --git a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterNetworkConfigArgs.cs b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterNetworkConfigArgs.cs index 901a8e9c5d..c9dd8925a2 100644 --- a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterNetworkConfigArgs.cs +++ b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterNetworkConfigArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Gcp.GkeOnPrem.Inputs public sealed class BareMetalAdminClusterNetworkConfigArgs : global::Pulumi.ResourceArgs { /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("islandModeCidr")] diff --git a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterNetworkConfigGetArgs.cs b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterNetworkConfigGetArgs.cs index fe73b94d16..a3b82f2f03 100644 --- a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterNetworkConfigGetArgs.cs +++ b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterNetworkConfigGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Gcp.GkeOnPrem.Inputs public sealed class BareMetalAdminClusterNetworkConfigGetArgs : global::Pulumi.ResourceArgs { /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("islandModeCidr")] diff --git a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerArgs.cs b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerArgs.cs index 09fbcf2c7e..dfbe7c315d 100644 --- a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerArgs.cs +++ b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerArgs.cs @@ -20,14 +20,14 @@ public sealed class BareMetalClusterLoadBalancerArgs : global::Pulumi.ResourceAr public Input? BgpLbConfig { get; set; } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("manualLbConfig")] public Input? ManualLbConfig { get; set; } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("metalLbConfig")] diff --git a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerGetArgs.cs b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerGetArgs.cs index b8b3ce3680..ae573faec2 100644 --- a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerGetArgs.cs +++ b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerGetArgs.cs @@ -20,14 +20,14 @@ public sealed class BareMetalClusterLoadBalancerGetArgs : global::Pulumi.Resourc public Input? BgpLbConfig { get; set; } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("manualLbConfig")] public Input? ManualLbConfig { get; set; } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("metalLbConfig")] diff --git a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterNetworkConfigArgs.cs b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterNetworkConfigArgs.cs index 0b18f57d33..f78d7cd282 100644 --- a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterNetworkConfigArgs.cs +++ b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterNetworkConfigArgs.cs @@ -22,7 +22,7 @@ public sealed class BareMetalClusterNetworkConfigArgs : global::Pulumi.ResourceA public Input? AdvancedNetworking { get; set; } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("islandModeCidr")] diff --git a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterNetworkConfigGetArgs.cs b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterNetworkConfigGetArgs.cs index b6d339e724..06e23f00f4 100644 --- a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterNetworkConfigGetArgs.cs +++ b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterNetworkConfigGetArgs.cs @@ -22,7 +22,7 @@ public sealed class BareMetalClusterNetworkConfigGetArgs : global::Pulumi.Resour public Input? AdvancedNetworking { get; set; } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("islandModeCidr")] diff --git a/sdk/dotnet/GkeOnPrem/Outputs/BareMetalAdminClusterLoadBalancer.cs b/sdk/dotnet/GkeOnPrem/Outputs/BareMetalAdminClusterLoadBalancer.cs index 85519780a2..8a87b6512a 100644 --- a/sdk/dotnet/GkeOnPrem/Outputs/BareMetalAdminClusterLoadBalancer.cs +++ b/sdk/dotnet/GkeOnPrem/Outputs/BareMetalAdminClusterLoadBalancer.cs @@ -14,7 +14,7 @@ namespace Pulumi.Gcp.GkeOnPrem.Outputs public sealed class BareMetalAdminClusterLoadBalancer { /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// public readonly Outputs.BareMetalAdminClusterLoadBalancerManualLbConfig? ManualLbConfig; diff --git a/sdk/dotnet/GkeOnPrem/Outputs/BareMetalAdminClusterNetworkConfig.cs b/sdk/dotnet/GkeOnPrem/Outputs/BareMetalAdminClusterNetworkConfig.cs index 92aaee04d9..00ff3e2ac1 100644 --- a/sdk/dotnet/GkeOnPrem/Outputs/BareMetalAdminClusterNetworkConfig.cs +++ b/sdk/dotnet/GkeOnPrem/Outputs/BareMetalAdminClusterNetworkConfig.cs @@ -14,7 +14,7 @@ namespace Pulumi.Gcp.GkeOnPrem.Outputs public sealed class BareMetalAdminClusterNetworkConfig { /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// public readonly Outputs.BareMetalAdminClusterNetworkConfigIslandModeCidr? IslandModeCidr; diff --git a/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterLoadBalancer.cs b/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterLoadBalancer.cs index be15daa983..7526f29792 100644 --- a/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterLoadBalancer.cs +++ b/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterLoadBalancer.cs @@ -19,12 +19,12 @@ public sealed class BareMetalClusterLoadBalancer /// public readonly Outputs.BareMetalClusterLoadBalancerBgpLbConfig? BgpLbConfig; /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// public readonly Outputs.BareMetalClusterLoadBalancerManualLbConfig? ManualLbConfig; /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// public readonly Outputs.BareMetalClusterLoadBalancerMetalLbConfig? MetalLbConfig; diff --git a/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterNetworkConfig.cs b/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterNetworkConfig.cs index 03a54decec..b7d8af5377 100644 --- a/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterNetworkConfig.cs +++ b/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterNetworkConfig.cs @@ -21,7 +21,7 @@ public sealed class BareMetalClusterNetworkConfig /// public readonly bool? AdvancedNetworking; /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// public readonly Outputs.BareMetalClusterNetworkConfigIslandModeCidr? IslandModeCidr; diff --git a/sdk/dotnet/Healthcare/Dataset.cs b/sdk/dotnet/Healthcare/Dataset.cs index 39ad4bbe97..71438b5737 100644 --- a/sdk/dotnet/Healthcare/Dataset.cs +++ b/sdk/dotnet/Healthcare/Dataset.cs @@ -122,7 +122,7 @@ namespace Pulumi.Gcp.Healthcare public partial class Dataset : global::Pulumi.CustomResource { /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Output("encryptionSpec")] @@ -211,7 +211,7 @@ public static Dataset Get(string name, Input id, DatasetState? state = n public sealed class DatasetArgs : global::Pulumi.ResourceArgs { /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("encryptionSpec")] @@ -256,7 +256,7 @@ public DatasetArgs() public sealed class DatasetState : global::Pulumi.ResourceArgs { /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("encryptionSpec")] diff --git a/sdk/dotnet/Healthcare/DicomStore.cs b/sdk/dotnet/Healthcare/DicomStore.cs index 2c91fd71d8..227a66ebcb 100644 --- a/sdk/dotnet/Healthcare/DicomStore.cs +++ b/sdk/dotnet/Healthcare/DicomStore.cs @@ -190,7 +190,7 @@ public partial class DicomStore : global::Pulumi.CustomResource public Output Name { get; private set; } = null!; /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Output("notificationConfig")] @@ -308,7 +308,7 @@ public InputMap Labels public Input? Name { get; set; } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("notificationConfig")] @@ -392,7 +392,7 @@ public InputMap Labels public Input? Name { get; set; } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("notificationConfig")] diff --git a/sdk/dotnet/Healthcare/FhirStore.cs b/sdk/dotnet/Healthcare/FhirStore.cs index 5d2f96d5eb..84e4623e61 100644 --- a/sdk/dotnet/Healthcare/FhirStore.cs +++ b/sdk/dotnet/Healthcare/FhirStore.cs @@ -319,7 +319,7 @@ public partial class FhirStore : global::Pulumi.CustomResource /// /// (Optional, Deprecated) - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// /// > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. @@ -525,7 +525,7 @@ public InputMap Labels /// /// (Optional, Deprecated) - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// /// > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. @@ -703,7 +703,7 @@ public InputMap Labels /// /// (Optional, Deprecated) - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// /// > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. diff --git a/sdk/dotnet/Healthcare/Hl7Store.cs b/sdk/dotnet/Healthcare/Hl7Store.cs index c835bfb9d6..89d52e721b 100644 --- a/sdk/dotnet/Healthcare/Hl7Store.cs +++ b/sdk/dotnet/Healthcare/Hl7Store.cs @@ -263,7 +263,7 @@ public partial class Hl7Store : global::Pulumi.CustomResource /// /// (Optional, Deprecated) - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// /// > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. @@ -281,7 +281,7 @@ public partial class Hl7Store : global::Pulumi.CustomResource public Output> NotificationConfigs { get; private set; } = null!; /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Output("parserConfig")] @@ -398,7 +398,7 @@ public InputMap Labels /// /// (Optional, Deprecated) - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// /// > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. @@ -422,7 +422,7 @@ public InputList NotificationConfigs } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("parserConfig")] @@ -499,7 +499,7 @@ public InputMap Labels /// /// (Optional, Deprecated) - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// /// > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. @@ -523,7 +523,7 @@ public InputList NotificationConfigs } /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("parserConfig")] diff --git a/sdk/dotnet/Iam/Inputs/PrincipalAccessBoundaryPolicyDetailsArgs.cs b/sdk/dotnet/Iam/Inputs/PrincipalAccessBoundaryPolicyDetailsArgs.cs new file mode 100644 index 0000000000..6efbe52cf5 --- /dev/null +++ b/sdk/dotnet/Iam/Inputs/PrincipalAccessBoundaryPolicyDetailsArgs.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Iam.Inputs +{ + + public sealed class PrincipalAccessBoundaryPolicyDetailsArgs : global::Pulumi.ResourceArgs + { + /// + /// The version number that indicates which Google Cloud services + /// are included in the enforcement (e.g. \"latest\", \"1\", ...). If empty, the + /// PAB policy version will be set to the current latest version, and this version + /// won't get updated when new versions are released. + /// + [Input("enforcementVersion")] + public Input? EnforcementVersion { get; set; } + + [Input("rules", required: true)] + private InputList? _rules; + + /// + /// A list of principal access boundary policy rules. The number of rules in a policy is limited to 500. + /// Structure is documented below. + /// + public InputList Rules + { + get => _rules ?? (_rules = new InputList()); + set => _rules = value; + } + + public PrincipalAccessBoundaryPolicyDetailsArgs() + { + } + public static new PrincipalAccessBoundaryPolicyDetailsArgs Empty => new PrincipalAccessBoundaryPolicyDetailsArgs(); + } +} diff --git a/sdk/dotnet/Iam/Inputs/PrincipalAccessBoundaryPolicyDetailsGetArgs.cs b/sdk/dotnet/Iam/Inputs/PrincipalAccessBoundaryPolicyDetailsGetArgs.cs new file mode 100644 index 0000000000..dc6decb113 --- /dev/null +++ b/sdk/dotnet/Iam/Inputs/PrincipalAccessBoundaryPolicyDetailsGetArgs.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Iam.Inputs +{ + + public sealed class PrincipalAccessBoundaryPolicyDetailsGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The version number that indicates which Google Cloud services + /// are included in the enforcement (e.g. \"latest\", \"1\", ...). If empty, the + /// PAB policy version will be set to the current latest version, and this version + /// won't get updated when new versions are released. + /// + [Input("enforcementVersion")] + public Input? EnforcementVersion { get; set; } + + [Input("rules", required: true)] + private InputList? _rules; + + /// + /// A list of principal access boundary policy rules. The number of rules in a policy is limited to 500. + /// Structure is documented below. + /// + public InputList Rules + { + get => _rules ?? (_rules = new InputList()); + set => _rules = value; + } + + public PrincipalAccessBoundaryPolicyDetailsGetArgs() + { + } + public static new PrincipalAccessBoundaryPolicyDetailsGetArgs Empty => new PrincipalAccessBoundaryPolicyDetailsGetArgs(); + } +} diff --git a/sdk/dotnet/Iam/Inputs/PrincipalAccessBoundaryPolicyDetailsRuleArgs.cs b/sdk/dotnet/Iam/Inputs/PrincipalAccessBoundaryPolicyDetailsRuleArgs.cs new file mode 100644 index 0000000000..c1dcda4da4 --- /dev/null +++ b/sdk/dotnet/Iam/Inputs/PrincipalAccessBoundaryPolicyDetailsRuleArgs.cs @@ -0,0 +1,52 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Iam.Inputs +{ + + public sealed class PrincipalAccessBoundaryPolicyDetailsRuleArgs : global::Pulumi.ResourceArgs + { + /// + /// The description of the principal access boundary policy rule. Must be less than or equal to 256 characters. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// The access relationship of principals to the resources in this rule. + /// Possible values: ALLOW + /// + [Input("effect", required: true)] + public Input Effect { get; set; } = null!; + + [Input("resources", required: true)] + private InputList? _resources; + + /// + /// A list of Cloud Resource Manager resources. The resource + /// and all the descendants are included. The number of resources in a policy + /// is limited to 500 across all rules. + /// The following resource types are supported: + /// * Organizations, such as `//cloudresourcemanager.googleapis.com/organizations/123`. + /// * Folders, such as `//cloudresourcemanager.googleapis.com/folders/123`. + /// * Projects, such as `//cloudresourcemanager.googleapis.com/projects/123` + /// or `//cloudresourcemanager.googleapis.com/projects/my-project-id`. + /// + public InputList Resources + { + get => _resources ?? (_resources = new InputList()); + set => _resources = value; + } + + public PrincipalAccessBoundaryPolicyDetailsRuleArgs() + { + } + public static new PrincipalAccessBoundaryPolicyDetailsRuleArgs Empty => new PrincipalAccessBoundaryPolicyDetailsRuleArgs(); + } +} diff --git a/sdk/dotnet/Iam/Inputs/PrincipalAccessBoundaryPolicyDetailsRuleGetArgs.cs b/sdk/dotnet/Iam/Inputs/PrincipalAccessBoundaryPolicyDetailsRuleGetArgs.cs new file mode 100644 index 0000000000..9b1537ba00 --- /dev/null +++ b/sdk/dotnet/Iam/Inputs/PrincipalAccessBoundaryPolicyDetailsRuleGetArgs.cs @@ -0,0 +1,52 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Iam.Inputs +{ + + public sealed class PrincipalAccessBoundaryPolicyDetailsRuleGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The description of the principal access boundary policy rule. Must be less than or equal to 256 characters. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// The access relationship of principals to the resources in this rule. + /// Possible values: ALLOW + /// + [Input("effect", required: true)] + public Input Effect { get; set; } = null!; + + [Input("resources", required: true)] + private InputList? _resources; + + /// + /// A list of Cloud Resource Manager resources. The resource + /// and all the descendants are included. The number of resources in a policy + /// is limited to 500 across all rules. + /// The following resource types are supported: + /// * Organizations, such as `//cloudresourcemanager.googleapis.com/organizations/123`. + /// * Folders, such as `//cloudresourcemanager.googleapis.com/folders/123`. + /// * Projects, such as `//cloudresourcemanager.googleapis.com/projects/123` + /// or `//cloudresourcemanager.googleapis.com/projects/my-project-id`. + /// + public InputList Resources + { + get => _resources ?? (_resources = new InputList()); + set => _resources = value; + } + + public PrincipalAccessBoundaryPolicyDetailsRuleGetArgs() + { + } + public static new PrincipalAccessBoundaryPolicyDetailsRuleGetArgs Empty => new PrincipalAccessBoundaryPolicyDetailsRuleGetArgs(); + } +} diff --git a/sdk/dotnet/Iam/Outputs/PrincipalAccessBoundaryPolicyDetails.cs b/sdk/dotnet/Iam/Outputs/PrincipalAccessBoundaryPolicyDetails.cs new file mode 100644 index 0000000000..e8dbc1b615 --- /dev/null +++ b/sdk/dotnet/Iam/Outputs/PrincipalAccessBoundaryPolicyDetails.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Iam.Outputs +{ + + [OutputType] + public sealed class PrincipalAccessBoundaryPolicyDetails + { + /// + /// The version number that indicates which Google Cloud services + /// are included in the enforcement (e.g. \"latest\", \"1\", ...). If empty, the + /// PAB policy version will be set to the current latest version, and this version + /// won't get updated when new versions are released. + /// + public readonly string? EnforcementVersion; + /// + /// A list of principal access boundary policy rules. The number of rules in a policy is limited to 500. + /// Structure is documented below. + /// + public readonly ImmutableArray Rules; + + [OutputConstructor] + private PrincipalAccessBoundaryPolicyDetails( + string? enforcementVersion, + + ImmutableArray rules) + { + EnforcementVersion = enforcementVersion; + Rules = rules; + } + } +} diff --git a/sdk/dotnet/Iam/Outputs/PrincipalAccessBoundaryPolicyDetailsRule.cs b/sdk/dotnet/Iam/Outputs/PrincipalAccessBoundaryPolicyDetailsRule.cs new file mode 100644 index 0000000000..36115b7244 --- /dev/null +++ b/sdk/dotnet/Iam/Outputs/PrincipalAccessBoundaryPolicyDetailsRule.cs @@ -0,0 +1,50 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Iam.Outputs +{ + + [OutputType] + public sealed class PrincipalAccessBoundaryPolicyDetailsRule + { + /// + /// The description of the principal access boundary policy rule. Must be less than or equal to 256 characters. + /// + public readonly string? Description; + /// + /// The access relationship of principals to the resources in this rule. + /// Possible values: ALLOW + /// + public readonly string Effect; + /// + /// A list of Cloud Resource Manager resources. The resource + /// and all the descendants are included. The number of resources in a policy + /// is limited to 500 across all rules. + /// The following resource types are supported: + /// * Organizations, such as `//cloudresourcemanager.googleapis.com/organizations/123`. + /// * Folders, such as `//cloudresourcemanager.googleapis.com/folders/123`. + /// * Projects, such as `//cloudresourcemanager.googleapis.com/projects/123` + /// or `//cloudresourcemanager.googleapis.com/projects/my-project-id`. + /// + public readonly ImmutableArray Resources; + + [OutputConstructor] + private PrincipalAccessBoundaryPolicyDetailsRule( + string? description, + + string effect, + + ImmutableArray resources) + { + Description = description; + Effect = effect; + Resources = resources; + } + } +} diff --git a/sdk/dotnet/Iam/PrincipalAccessBoundaryPolicy.cs b/sdk/dotnet/Iam/PrincipalAccessBoundaryPolicy.cs new file mode 100644 index 0000000000..6374949d17 --- /dev/null +++ b/sdk/dotnet/Iam/PrincipalAccessBoundaryPolicy.cs @@ -0,0 +1,336 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Iam +{ + /// + /// ## Example Usage + /// + /// ### Iam Principal Access Boundary Policy + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var my_pab_policy = new Gcp.Iam.PrincipalAccessBoundaryPolicy("my-pab-policy", new() + /// { + /// Organization = "123456789", + /// Location = "global", + /// DisplayName = "test pab policy", + /// PrincipalAccessBoundaryPolicyId = "test-pab-policy", + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// PrincipalAccessBoundaryPolicy can be imported using any of these accepted formats: + /// + /// * `organizations/{{organization}}/locations/{{location}}/principalAccessBoundaryPolicies/{{principal_access_boundary_policy_id}}` + /// + /// * `{{organization}}/{{location}}/{{principal_access_boundary_policy_id}}` + /// + /// When using the `pulumi import` command, PrincipalAccessBoundaryPolicy can be imported using one of the formats above. For example: + /// + /// ```sh + /// $ pulumi import gcp:iam/principalAccessBoundaryPolicy:PrincipalAccessBoundaryPolicy default organizations/{{organization}}/locations/{{location}}/principalAccessBoundaryPolicies/{{principal_access_boundary_policy_id}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:iam/principalAccessBoundaryPolicy:PrincipalAccessBoundaryPolicy default {{organization}}/{{location}}/{{principal_access_boundary_policy_id}} + /// ``` + /// + [GcpResourceType("gcp:iam/principalAccessBoundaryPolicy:PrincipalAccessBoundaryPolicy")] + public partial class PrincipalAccessBoundaryPolicy : global::Pulumi.CustomResource + { + /// + /// User defined annotations. See https://google.aip.dev/148#annotations + /// for more details such as format and size limitations + /// + /// **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + /// Please refer to the field `effective_annotations` for all of the annotations present on the resource. + /// + [Output("annotations")] + public Output?> Annotations { get; private set; } = null!; + + /// + /// Output only. The time when the principal access boundary policy was created. + /// + [Output("createTime")] + public Output CreateTime { get; private set; } = null!; + + /// + /// Principal access boundary policy details + /// Structure is documented below. + /// + [Output("details")] + public Output Details { get; private set; } = null!; + + /// + /// The description of the principal access boundary policy. Must be less than or equal to 63 characters. + /// + [Output("displayName")] + public Output DisplayName { get; private set; } = null!; + + [Output("effectiveAnnotations")] + public Output> EffectiveAnnotations { get; private set; } = null!; + + /// + /// The etag for the principal access boundary. If this is provided on update, it must match the server's etag. + /// + [Output("etag")] + public Output Etag { get; private set; } = null!; + + /// + /// The location the principal access boundary policy is in. + /// + [Output("location")] + public Output Location { get; private set; } = null!; + + /// + /// Identifier. The resource name of the principal access boundary policy. The following format is supported: + /// `organizations/{organization_id}/locations/{location}/principalAccessBoundaryPolicies/{policy_id}` + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// The parent organization of the principal access boundary policy. + /// + [Output("organization")] + public Output Organization { get; private set; } = null!; + + /// + /// The ID to use to create the principal access boundary policy. + /// This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, hyphens, or dots. Pattern, /a-z{2,62}/. + /// + /// + /// - - - + /// + [Output("principalAccessBoundaryPolicyId")] + public Output PrincipalAccessBoundaryPolicyId { get; private set; } = null!; + + /// + /// Output only. The globally unique ID of the principal access boundary policy. + /// + [Output("uid")] + public Output Uid { get; private set; } = null!; + + /// + /// Output only. The time when the principal access boundary policy was most recently updated. + /// + [Output("updateTime")] + public Output UpdateTime { get; private set; } = null!; + + + /// + /// Create a PrincipalAccessBoundaryPolicy resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public PrincipalAccessBoundaryPolicy(string name, PrincipalAccessBoundaryPolicyArgs args, CustomResourceOptions? options = null) + : base("gcp:iam/principalAccessBoundaryPolicy:PrincipalAccessBoundaryPolicy", name, args ?? new PrincipalAccessBoundaryPolicyArgs(), MakeResourceOptions(options, "")) + { + } + + private PrincipalAccessBoundaryPolicy(string name, Input id, PrincipalAccessBoundaryPolicyState? state = null, CustomResourceOptions? options = null) + : base("gcp:iam/principalAccessBoundaryPolicy:PrincipalAccessBoundaryPolicy", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing PrincipalAccessBoundaryPolicy resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static PrincipalAccessBoundaryPolicy Get(string name, Input id, PrincipalAccessBoundaryPolicyState? state = null, CustomResourceOptions? options = null) + { + return new PrincipalAccessBoundaryPolicy(name, id, state, options); + } + } + + public sealed class PrincipalAccessBoundaryPolicyArgs : global::Pulumi.ResourceArgs + { + [Input("annotations")] + private InputMap? _annotations; + + /// + /// User defined annotations. See https://google.aip.dev/148#annotations + /// for more details such as format and size limitations + /// + /// **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + /// Please refer to the field `effective_annotations` for all of the annotations present on the resource. + /// + public InputMap Annotations + { + get => _annotations ?? (_annotations = new InputMap()); + set => _annotations = value; + } + + /// + /// Principal access boundary policy details + /// Structure is documented below. + /// + [Input("details")] + public Input? Details { get; set; } + + /// + /// The description of the principal access boundary policy. Must be less than or equal to 63 characters. + /// + [Input("displayName")] + public Input? DisplayName { get; set; } + + /// + /// The location the principal access boundary policy is in. + /// + [Input("location", required: true)] + public Input Location { get; set; } = null!; + + /// + /// The parent organization of the principal access boundary policy. + /// + [Input("organization", required: true)] + public Input Organization { get; set; } = null!; + + /// + /// The ID to use to create the principal access boundary policy. + /// This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, hyphens, or dots. Pattern, /a-z{2,62}/. + /// + /// + /// - - - + /// + [Input("principalAccessBoundaryPolicyId", required: true)] + public Input PrincipalAccessBoundaryPolicyId { get; set; } = null!; + + public PrincipalAccessBoundaryPolicyArgs() + { + } + public static new PrincipalAccessBoundaryPolicyArgs Empty => new PrincipalAccessBoundaryPolicyArgs(); + } + + public sealed class PrincipalAccessBoundaryPolicyState : global::Pulumi.ResourceArgs + { + [Input("annotations")] + private InputMap? _annotations; + + /// + /// User defined annotations. See https://google.aip.dev/148#annotations + /// for more details such as format and size limitations + /// + /// **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + /// Please refer to the field `effective_annotations` for all of the annotations present on the resource. + /// + public InputMap Annotations + { + get => _annotations ?? (_annotations = new InputMap()); + set => _annotations = value; + } + + /// + /// Output only. The time when the principal access boundary policy was created. + /// + [Input("createTime")] + public Input? CreateTime { get; set; } + + /// + /// Principal access boundary policy details + /// Structure is documented below. + /// + [Input("details")] + public Input? Details { get; set; } + + /// + /// The description of the principal access boundary policy. Must be less than or equal to 63 characters. + /// + [Input("displayName")] + public Input? DisplayName { get; set; } + + [Input("effectiveAnnotations")] + private InputMap? _effectiveAnnotations; + public InputMap EffectiveAnnotations + { + get => _effectiveAnnotations ?? (_effectiveAnnotations = new InputMap()); + set => _effectiveAnnotations = value; + } + + /// + /// The etag for the principal access boundary. If this is provided on update, it must match the server's etag. + /// + [Input("etag")] + public Input? Etag { get; set; } + + /// + /// The location the principal access boundary policy is in. + /// + [Input("location")] + public Input? Location { get; set; } + + /// + /// Identifier. The resource name of the principal access boundary policy. The following format is supported: + /// `organizations/{organization_id}/locations/{location}/principalAccessBoundaryPolicies/{policy_id}` + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The parent organization of the principal access boundary policy. + /// + [Input("organization")] + public Input? Organization { get; set; } + + /// + /// The ID to use to create the principal access boundary policy. + /// This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, hyphens, or dots. Pattern, /a-z{2,62}/. + /// + /// + /// - - - + /// + [Input("principalAccessBoundaryPolicyId")] + public Input? PrincipalAccessBoundaryPolicyId { get; set; } + + /// + /// Output only. The globally unique ID of the principal access boundary policy. + /// + [Input("uid")] + public Input? Uid { get; set; } + + /// + /// Output only. The time when the principal access boundary policy was most recently updated. + /// + [Input("updateTime")] + public Input? UpdateTime { get; set; } + + public PrincipalAccessBoundaryPolicyState() + { + } + public static new PrincipalAccessBoundaryPolicyState Empty => new PrincipalAccessBoundaryPolicyState(); + } +} diff --git a/sdk/dotnet/Logging/Metric.cs b/sdk/dotnet/Logging/Metric.cs index f0feb46a66..20c4313d54 100644 --- a/sdk/dotnet/Logging/Metric.cs +++ b/sdk/dotnet/Logging/Metric.cs @@ -198,7 +198,7 @@ namespace Pulumi.Gcp.Logging /// When using the `pulumi import` command, Metric can be imported using one of the formats above. For example: /// /// ```sh - /// $ pulumi import gcp:logging/metric:Metric default {{project}} {{name}} + /// $ pulumi import gcp:logging/metric:Metric default "{{project}} {{name}}" /// ``` /// /// ```sh diff --git a/sdk/dotnet/Looker/Inputs/InstanceOauthConfigArgs.cs b/sdk/dotnet/Looker/Inputs/InstanceOauthConfigArgs.cs index 9a7fedb717..4dc4818b2a 100644 --- a/sdk/dotnet/Looker/Inputs/InstanceOauthConfigArgs.cs +++ b/sdk/dotnet/Looker/Inputs/InstanceOauthConfigArgs.cs @@ -20,6 +20,8 @@ public sealed class InstanceOauthConfigArgs : global::Pulumi.ResourceArgs /// /// The client secret for the Oauth config. + /// + /// - - - /// [Input("clientSecret", required: true)] public Input ClientSecret { get; set; } = null!; diff --git a/sdk/dotnet/Looker/Inputs/InstanceOauthConfigGetArgs.cs b/sdk/dotnet/Looker/Inputs/InstanceOauthConfigGetArgs.cs index 8ada60f1dc..2b16772c1e 100644 --- a/sdk/dotnet/Looker/Inputs/InstanceOauthConfigGetArgs.cs +++ b/sdk/dotnet/Looker/Inputs/InstanceOauthConfigGetArgs.cs @@ -20,6 +20,8 @@ public sealed class InstanceOauthConfigGetArgs : global::Pulumi.ResourceArgs /// /// The client secret for the Oauth config. + /// + /// - - - /// [Input("clientSecret", required: true)] public Input ClientSecret { get; set; } = null!; diff --git a/sdk/dotnet/Looker/Instance.cs b/sdk/dotnet/Looker/Instance.cs index 281895b54f..e9bdd64968 100644 --- a/sdk/dotnet/Looker/Instance.cs +++ b/sdk/dotnet/Looker/Instance.cs @@ -371,15 +371,13 @@ public partial class Instance : global::Pulumi.CustomResource { /// /// Looker instance Admin settings. - /// Structure is documented below. /// [Output("adminSettings")] public Output AdminSettings { get; private set; } = null!; /// - /// Network name in the consumer project in the format of: projects/{project}/global/networks/{network} - /// Note that the consumer network may be in a different GCP project than the consumer - /// project that is hosting the Looker Instance. + /// Network name in the consumer project in the format of: projects/{project}/global/networks/{network} Note that the + /// consumer network may be in a different GCP project than the consumer project that is hosting the Looker Instance. /// [Output("consumerNetwork")] public Output ConsumerNetwork { get; private set; } = null!; @@ -393,25 +391,21 @@ public partial class Instance : global::Pulumi.CustomResource /// /// Custom domain settings for a Looker instance. - /// Structure is documented below. /// [Output("customDomain")] public Output CustomDomain { get; private set; } = null!; /// - /// Policy to determine if the cluster should be deleted forcefully. - /// If setting deletion_policy = "FORCE", the Looker instance will be deleted regardless - /// of its nested resources. If set to "DEFAULT", Looker instances that still have + /// Policy to determine if the cluster should be deleted forcefully. If setting deletion_policy = "FORCE", the Looker + /// instance will be deleted regardless of its nested resources. If set to "DEFAULT", Looker instances that still have /// nested resources will return an error. Possible values: DEFAULT, FORCE /// [Output("deletionPolicy")] public Output DeletionPolicy { get; private set; } = null!; /// - /// Maintenance denial period for this instance. - /// You must allow at least 14 days of maintenance availability - /// between any two deny maintenance periods. - /// Structure is documented below. + /// Maintenance denial period for this instance. You must allow at least 14 days of maintenance availability between any two + /// deny maintenance periods. /// [Output("denyMaintenancePeriod")] public Output DenyMaintenancePeriod { get; private set; } = null!; @@ -424,7 +418,6 @@ public partial class Instance : global::Pulumi.CustomResource /// /// Looker instance encryption settings. - /// Structure is documented below. /// [Output("encryptionConfig")] public Output EncryptionConfig { get; private set; } = null!; @@ -460,20 +453,14 @@ public partial class Instance : global::Pulumi.CustomResource public Output LookerVersion { get; private set; } = null!; /// - /// Maintenance window for an instance. - /// Maintenance of your instance takes place once a month, and will require - /// your instance to be restarted during updates, which will temporarily - /// disrupt service. - /// Structure is documented below. + /// Maintenance window for an instance. Maintenance of your instance takes place once a month, and will require your + /// instance to be restarted during updates, which will temporarily disrupt service. /// [Output("maintenanceWindow")] public Output MaintenanceWindow { get; private set; } = null!; /// /// The ID of the instance or a fully qualified identifier for the instance. - /// - /// - /// - - - /// [Output("name")] public Output Name { get; private set; } = null!; @@ -483,17 +470,15 @@ public partial class Instance : global::Pulumi.CustomResource /// Structure is documented below. /// [Output("oauthConfig")] - public Output OauthConfig { get; private set; } = null!; + public Output OauthConfig { get; private set; } = null!; /// - /// Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values: - /// - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - /// - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable) - /// - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - /// - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - /// - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance - /// Default value is `LOOKER_CORE_TRIAL`. - /// Possible values are: `LOOKER_CORE_TRIAL`, `LOOKER_CORE_STANDARD`, `LOOKER_CORE_STANDARD_ANNUAL`, `LOOKER_CORE_ENTERPRISE_ANNUAL`, `LOOKER_CORE_EMBED_ANNUAL`. + /// Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of + /// these values: - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - LOOKER_CORE_STANDARD: pay as you go standard + /// instance (Currently Unavailable) - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - + /// LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance + /// Default value: "LOOKER_CORE_TRIAL" Possible values: ["LOOKER_CORE_TRIAL", "LOOKER_CORE_STANDARD", + /// "LOOKER_CORE_STANDARD_ANNUAL", "LOOKER_CORE_ENTERPRISE_ANNUAL", "LOOKER_CORE_EMBED_ANNUAL"] /// [Output("platformEdition")] public Output PlatformEdition { get; private set; } = null!; @@ -504,16 +489,11 @@ public partial class Instance : global::Pulumi.CustomResource [Output("privateIpEnabled")] public Output PrivateIpEnabled { get; private set; } = null!; - /// - /// The ID of the project in which the resource belongs. - /// If it is not provided, the provider project is used. - /// [Output("project")] public Output Project { get; private set; } = null!; /// /// Information for Private Service Connect (PSC) setup for a Looker instance. - /// Structure is documented below. /// [Output("pscConfig")] public Output PscConfig { get; private set; } = null!; @@ -537,8 +517,8 @@ public partial class Instance : global::Pulumi.CustomResource public Output Region { get; private set; } = null!; /// - /// Name of a reserved IP address range within the consumer network, to be used for - /// private service access connection. User may or may not specify this in a request. + /// Name of a reserved IP address range within the consumer network, to be used for private service access connection. User + /// may or may not specify this in a request. /// [Output("reservedRange")] public Output ReservedRange { get; private set; } = null!; @@ -551,14 +531,11 @@ public partial class Instance : global::Pulumi.CustomResource public Output UpdateTime { get; private set; } = null!; /// - /// Metadata about users for a Looker instance. - /// These settings are only available when platform edition LOOKER_CORE_STANDARD is set. - /// There are ten Standard and two Developer users included in the cost of the product. - /// You can allocate additional Standard, Viewer, and Developer users for this instance. - /// It is an optional step and can be modified later. - /// With the Standard edition of Looker (Google Cloud core), you can provision up to 50 - /// total users, distributed across Viewer, Standard, and Developer. - /// Structure is documented below. + /// Metadata about users for a Looker instance. These settings are only available when platform edition LOOKER_CORE_STANDARD + /// is set. There are ten Standard and two Developer users included in the cost of the product. You can allocate additional + /// Standard, Viewer, and Developer users for this instance. It is an optional step and can be modified later. With the + /// Standard edition of Looker (Google Cloud core), you can provision up to 50 total users, distributed across Viewer, + /// Standard, and Developer. /// [Output("userMetadata")] public Output UserMetadata { get; private set; } = null!; @@ -571,7 +548,7 @@ public partial class Instance : global::Pulumi.CustomResource /// The unique name of the resource /// The arguments used to populate this resource's properties /// A bag of options that control this resource's behavior - public Instance(string name, InstanceArgs? args = null, CustomResourceOptions? options = null) + public Instance(string name, InstanceArgs args, CustomResourceOptions? options = null) : base("gcp:looker/instance:Instance", name, args ?? new InstanceArgs(), MakeResourceOptions(options, "")) { } @@ -611,47 +588,40 @@ public sealed class InstanceArgs : global::Pulumi.ResourceArgs { /// /// Looker instance Admin settings. - /// Structure is documented below. /// [Input("adminSettings")] public Input? AdminSettings { get; set; } /// - /// Network name in the consumer project in the format of: projects/{project}/global/networks/{network} - /// Note that the consumer network may be in a different GCP project than the consumer - /// project that is hosting the Looker Instance. + /// Network name in the consumer project in the format of: projects/{project}/global/networks/{network} Note that the + /// consumer network may be in a different GCP project than the consumer project that is hosting the Looker Instance. /// [Input("consumerNetwork")] public Input? ConsumerNetwork { get; set; } /// /// Custom domain settings for a Looker instance. - /// Structure is documented below. /// [Input("customDomain")] public Input? CustomDomain { get; set; } /// - /// Policy to determine if the cluster should be deleted forcefully. - /// If setting deletion_policy = "FORCE", the Looker instance will be deleted regardless - /// of its nested resources. If set to "DEFAULT", Looker instances that still have + /// Policy to determine if the cluster should be deleted forcefully. If setting deletion_policy = "FORCE", the Looker + /// instance will be deleted regardless of its nested resources. If set to "DEFAULT", Looker instances that still have /// nested resources will return an error. Possible values: DEFAULT, FORCE /// [Input("deletionPolicy")] public Input? DeletionPolicy { get; set; } /// - /// Maintenance denial period for this instance. - /// You must allow at least 14 days of maintenance availability - /// between any two deny maintenance periods. - /// Structure is documented below. + /// Maintenance denial period for this instance. You must allow at least 14 days of maintenance availability between any two + /// deny maintenance periods. /// [Input("denyMaintenancePeriod")] public Input? DenyMaintenancePeriod { get; set; } /// /// Looker instance encryption settings. - /// Structure is documented below. /// [Input("encryptionConfig")] public Input? EncryptionConfig { get; set; } @@ -663,20 +633,14 @@ public sealed class InstanceArgs : global::Pulumi.ResourceArgs public Input? FipsEnabled { get; set; } /// - /// Maintenance window for an instance. - /// Maintenance of your instance takes place once a month, and will require - /// your instance to be restarted during updates, which will temporarily - /// disrupt service. - /// Structure is documented below. + /// Maintenance window for an instance. Maintenance of your instance takes place once a month, and will require your + /// instance to be restarted during updates, which will temporarily disrupt service. /// [Input("maintenanceWindow")] public Input? MaintenanceWindow { get; set; } /// /// The ID of the instance or a fully qualified identifier for the instance. - /// - /// - /// - - - /// [Input("name")] public Input? Name { get; set; } @@ -685,18 +649,16 @@ public sealed class InstanceArgs : global::Pulumi.ResourceArgs /// Looker Instance OAuth login settings. /// Structure is documented below. /// - [Input("oauthConfig")] - public Input? OauthConfig { get; set; } + [Input("oauthConfig", required: true)] + public Input OauthConfig { get; set; } = null!; /// - /// Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values: - /// - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - /// - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable) - /// - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - /// - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - /// - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance - /// Default value is `LOOKER_CORE_TRIAL`. - /// Possible values are: `LOOKER_CORE_TRIAL`, `LOOKER_CORE_STANDARD`, `LOOKER_CORE_STANDARD_ANNUAL`, `LOOKER_CORE_ENTERPRISE_ANNUAL`, `LOOKER_CORE_EMBED_ANNUAL`. + /// Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of + /// these values: - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - LOOKER_CORE_STANDARD: pay as you go standard + /// instance (Currently Unavailable) - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - + /// LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance + /// Default value: "LOOKER_CORE_TRIAL" Possible values: ["LOOKER_CORE_TRIAL", "LOOKER_CORE_STANDARD", + /// "LOOKER_CORE_STANDARD_ANNUAL", "LOOKER_CORE_ENTERPRISE_ANNUAL", "LOOKER_CORE_EMBED_ANNUAL"] /// [Input("platformEdition")] public Input? PlatformEdition { get; set; } @@ -707,16 +669,11 @@ public sealed class InstanceArgs : global::Pulumi.ResourceArgs [Input("privateIpEnabled")] public Input? PrivateIpEnabled { get; set; } - /// - /// The ID of the project in which the resource belongs. - /// If it is not provided, the provider project is used. - /// [Input("project")] public Input? Project { get; set; } /// /// Information for Private Service Connect (PSC) setup for a Looker instance. - /// Structure is documented below. /// [Input("pscConfig")] public Input? PscConfig { get; set; } @@ -740,21 +697,18 @@ public sealed class InstanceArgs : global::Pulumi.ResourceArgs public Input? Region { get; set; } /// - /// Name of a reserved IP address range within the consumer network, to be used for - /// private service access connection. User may or may not specify this in a request. + /// Name of a reserved IP address range within the consumer network, to be used for private service access connection. User + /// may or may not specify this in a request. /// [Input("reservedRange")] public Input? ReservedRange { get; set; } /// - /// Metadata about users for a Looker instance. - /// These settings are only available when platform edition LOOKER_CORE_STANDARD is set. - /// There are ten Standard and two Developer users included in the cost of the product. - /// You can allocate additional Standard, Viewer, and Developer users for this instance. - /// It is an optional step and can be modified later. - /// With the Standard edition of Looker (Google Cloud core), you can provision up to 50 - /// total users, distributed across Viewer, Standard, and Developer. - /// Structure is documented below. + /// Metadata about users for a Looker instance. These settings are only available when platform edition LOOKER_CORE_STANDARD + /// is set. There are ten Standard and two Developer users included in the cost of the product. You can allocate additional + /// Standard, Viewer, and Developer users for this instance. It is an optional step and can be modified later. With the + /// Standard edition of Looker (Google Cloud core), you can provision up to 50 total users, distributed across Viewer, + /// Standard, and Developer. /// [Input("userMetadata")] public Input? UserMetadata { get; set; } @@ -769,15 +723,13 @@ public sealed class InstanceState : global::Pulumi.ResourceArgs { /// /// Looker instance Admin settings. - /// Structure is documented below. /// [Input("adminSettings")] public Input? AdminSettings { get; set; } /// - /// Network name in the consumer project in the format of: projects/{project}/global/networks/{network} - /// Note that the consumer network may be in a different GCP project than the consumer - /// project that is hosting the Looker Instance. + /// Network name in the consumer project in the format of: projects/{project}/global/networks/{network} Note that the + /// consumer network may be in a different GCP project than the consumer project that is hosting the Looker Instance. /// [Input("consumerNetwork")] public Input? ConsumerNetwork { get; set; } @@ -791,25 +743,21 @@ public sealed class InstanceState : global::Pulumi.ResourceArgs /// /// Custom domain settings for a Looker instance. - /// Structure is documented below. /// [Input("customDomain")] public Input? CustomDomain { get; set; } /// - /// Policy to determine if the cluster should be deleted forcefully. - /// If setting deletion_policy = "FORCE", the Looker instance will be deleted regardless - /// of its nested resources. If set to "DEFAULT", Looker instances that still have + /// Policy to determine if the cluster should be deleted forcefully. If setting deletion_policy = "FORCE", the Looker + /// instance will be deleted regardless of its nested resources. If set to "DEFAULT", Looker instances that still have /// nested resources will return an error. Possible values: DEFAULT, FORCE /// [Input("deletionPolicy")] public Input? DeletionPolicy { get; set; } /// - /// Maintenance denial period for this instance. - /// You must allow at least 14 days of maintenance availability - /// between any two deny maintenance periods. - /// Structure is documented below. + /// Maintenance denial period for this instance. You must allow at least 14 days of maintenance availability between any two + /// deny maintenance periods. /// [Input("denyMaintenancePeriod")] public Input? DenyMaintenancePeriod { get; set; } @@ -822,7 +770,6 @@ public sealed class InstanceState : global::Pulumi.ResourceArgs /// /// Looker instance encryption settings. - /// Structure is documented below. /// [Input("encryptionConfig")] public Input? EncryptionConfig { get; set; } @@ -858,20 +805,14 @@ public sealed class InstanceState : global::Pulumi.ResourceArgs public Input? LookerVersion { get; set; } /// - /// Maintenance window for an instance. - /// Maintenance of your instance takes place once a month, and will require - /// your instance to be restarted during updates, which will temporarily - /// disrupt service. - /// Structure is documented below. + /// Maintenance window for an instance. Maintenance of your instance takes place once a month, and will require your + /// instance to be restarted during updates, which will temporarily disrupt service. /// [Input("maintenanceWindow")] public Input? MaintenanceWindow { get; set; } /// /// The ID of the instance or a fully qualified identifier for the instance. - /// - /// - /// - - - /// [Input("name")] public Input? Name { get; set; } @@ -884,14 +825,12 @@ public sealed class InstanceState : global::Pulumi.ResourceArgs public Input? OauthConfig { get; set; } /// - /// Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values: - /// - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - /// - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable) - /// - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - /// - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - /// - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance - /// Default value is `LOOKER_CORE_TRIAL`. - /// Possible values are: `LOOKER_CORE_TRIAL`, `LOOKER_CORE_STANDARD`, `LOOKER_CORE_STANDARD_ANNUAL`, `LOOKER_CORE_ENTERPRISE_ANNUAL`, `LOOKER_CORE_EMBED_ANNUAL`. + /// Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of + /// these values: - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - LOOKER_CORE_STANDARD: pay as you go standard + /// instance (Currently Unavailable) - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - + /// LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance + /// Default value: "LOOKER_CORE_TRIAL" Possible values: ["LOOKER_CORE_TRIAL", "LOOKER_CORE_STANDARD", + /// "LOOKER_CORE_STANDARD_ANNUAL", "LOOKER_CORE_ENTERPRISE_ANNUAL", "LOOKER_CORE_EMBED_ANNUAL"] /// [Input("platformEdition")] public Input? PlatformEdition { get; set; } @@ -902,16 +841,11 @@ public sealed class InstanceState : global::Pulumi.ResourceArgs [Input("privateIpEnabled")] public Input? PrivateIpEnabled { get; set; } - /// - /// The ID of the project in which the resource belongs. - /// If it is not provided, the provider project is used. - /// [Input("project")] public Input? Project { get; set; } /// /// Information for Private Service Connect (PSC) setup for a Looker instance. - /// Structure is documented below. /// [Input("pscConfig")] public Input? PscConfig { get; set; } @@ -935,8 +869,8 @@ public sealed class InstanceState : global::Pulumi.ResourceArgs public Input? Region { get; set; } /// - /// Name of a reserved IP address range within the consumer network, to be used for - /// private service access connection. User may or may not specify this in a request. + /// Name of a reserved IP address range within the consumer network, to be used for private service access connection. User + /// may or may not specify this in a request. /// [Input("reservedRange")] public Input? ReservedRange { get; set; } @@ -949,14 +883,11 @@ public sealed class InstanceState : global::Pulumi.ResourceArgs public Input? UpdateTime { get; set; } /// - /// Metadata about users for a Looker instance. - /// These settings are only available when platform edition LOOKER_CORE_STANDARD is set. - /// There are ten Standard and two Developer users included in the cost of the product. - /// You can allocate additional Standard, Viewer, and Developer users for this instance. - /// It is an optional step and can be modified later. - /// With the Standard edition of Looker (Google Cloud core), you can provision up to 50 - /// total users, distributed across Viewer, Standard, and Developer. - /// Structure is documented below. + /// Metadata about users for a Looker instance. These settings are only available when platform edition LOOKER_CORE_STANDARD + /// is set. There are ten Standard and two Developer users included in the cost of the product. You can allocate additional + /// Standard, Viewer, and Developer users for this instance. It is an optional step and can be modified later. With the + /// Standard edition of Looker (Google Cloud core), you can provision up to 50 total users, distributed across Viewer, + /// Standard, and Developer. /// [Input("userMetadata")] public Input? UserMetadata { get; set; } diff --git a/sdk/dotnet/Looker/Outputs/InstanceOauthConfig.cs b/sdk/dotnet/Looker/Outputs/InstanceOauthConfig.cs index 43e633acf9..58ba93b4aa 100644 --- a/sdk/dotnet/Looker/Outputs/InstanceOauthConfig.cs +++ b/sdk/dotnet/Looker/Outputs/InstanceOauthConfig.cs @@ -19,6 +19,8 @@ public sealed class InstanceOauthConfig public readonly string ClientId; /// /// The client secret for the Oauth config. + /// + /// - - - /// public readonly string ClientSecret; diff --git a/sdk/dotnet/MemoryStore/Instance.cs b/sdk/dotnet/MemoryStore/Instance.cs index 253b2b6727..68b77ecdd9 100644 --- a/sdk/dotnet/MemoryStore/Instance.cs +++ b/sdk/dotnet/MemoryStore/Instance.cs @@ -10,6 +10,8 @@ namespace Pulumi.Gcp.MemoryStore { /// + /// A Google Cloud Memorystore instance. + /// /// ## Example Usage /// /// ### Memorystore Instance Basic diff --git a/sdk/dotnet/Monitoring/AlertPolicy.cs b/sdk/dotnet/Monitoring/AlertPolicy.cs index 8e90b90bd9..e5c1565492 100644 --- a/sdk/dotnet/Monitoring/AlertPolicy.cs +++ b/sdk/dotnet/Monitoring/AlertPolicy.cs @@ -198,11 +198,23 @@ namespace Pulumi.Gcp.Monitoring /// /// AlertPolicy can be imported using any of these accepted formats: /// + /// * `{{project}}/{{name}}` + /// + /// * `{{project}} {{name}}` + /// /// * `{{name}}` /// /// When using the `pulumi import` command, AlertPolicy can be imported using one of the formats above. For example: /// /// ```sh + /// $ pulumi import gcp:monitoring/alertPolicy:AlertPolicy default {{project}}/{{name}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:monitoring/alertPolicy:AlertPolicy default "{{project}} {{name}}" + /// ``` + /// + /// ```sh /// $ pulumi import gcp:monitoring/alertPolicy:AlertPolicy default {{name}} /// ``` /// diff --git a/sdk/dotnet/Monitoring/CustomService.cs b/sdk/dotnet/Monitoring/CustomService.cs index d64213b2e0..865d3c904f 100644 --- a/sdk/dotnet/Monitoring/CustomService.cs +++ b/sdk/dotnet/Monitoring/CustomService.cs @@ -57,11 +57,23 @@ namespace Pulumi.Gcp.Monitoring /// /// Service can be imported using any of these accepted formats: /// + /// * `{{project}}/{{name}}` + /// + /// * `{{project}} {{name}}` + /// /// * `{{name}}` /// /// When using the `pulumi import` command, Service can be imported using one of the formats above. For example: /// /// ```sh + /// $ pulumi import gcp:monitoring/customService:CustomService default {{project}}/{{name}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:monitoring/customService:CustomService default "{{project}} {{name}}" + /// ``` + /// + /// ```sh /// $ pulumi import gcp:monitoring/customService:CustomService default {{name}} /// ``` /// diff --git a/sdk/dotnet/Monitoring/Group.cs b/sdk/dotnet/Monitoring/Group.cs index f6a8f6c04b..517580083e 100644 --- a/sdk/dotnet/Monitoring/Group.cs +++ b/sdk/dotnet/Monitoring/Group.cs @@ -71,11 +71,23 @@ namespace Pulumi.Gcp.Monitoring /// /// Group can be imported using any of these accepted formats: /// + /// * `{{project}}/{{name}}` + /// + /// * `{{project}} {{name}}` + /// /// * `{{name}}` /// /// When using the `pulumi import` command, Group can be imported using one of the formats above. For example: /// /// ```sh + /// $ pulumi import gcp:monitoring/group:Group default {{project}}/{{name}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:monitoring/group:Group default "{{project}} {{name}}" + /// ``` + /// + /// ```sh /// $ pulumi import gcp:monitoring/group:Group default {{name}} /// ``` /// diff --git a/sdk/dotnet/Monitoring/MetricDescriptor.cs b/sdk/dotnet/Monitoring/MetricDescriptor.cs index f183694d56..f6365f23fa 100644 --- a/sdk/dotnet/Monitoring/MetricDescriptor.cs +++ b/sdk/dotnet/Monitoring/MetricDescriptor.cs @@ -103,11 +103,23 @@ namespace Pulumi.Gcp.Monitoring /// /// MetricDescriptor can be imported using any of these accepted formats: /// + /// * `{{project}}/{{name}}` + /// + /// * `{{project}} {{name}}` + /// /// * `{{name}}` /// /// When using the `pulumi import` command, MetricDescriptor can be imported using one of the formats above. For example: /// /// ```sh + /// $ pulumi import gcp:monitoring/metricDescriptor:MetricDescriptor default {{project}}/{{name}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:monitoring/metricDescriptor:MetricDescriptor default "{{project}} {{name}}" + /// ``` + /// + /// ```sh /// $ pulumi import gcp:monitoring/metricDescriptor:MetricDescriptor default {{name}} /// ``` /// diff --git a/sdk/dotnet/Monitoring/Slo.cs b/sdk/dotnet/Monitoring/Slo.cs index 9c7e088755..560749b36c 100644 --- a/sdk/dotnet/Monitoring/Slo.cs +++ b/sdk/dotnet/Monitoring/Slo.cs @@ -297,11 +297,23 @@ namespace Pulumi.Gcp.Monitoring /// /// Slo can be imported using any of these accepted formats: /// + /// * `{{project}}/{{name}}` + /// + /// * `{{project}} {{name}}` + /// /// * `{{name}}` /// /// When using the `pulumi import` command, Slo can be imported using one of the formats above. For example: /// /// ```sh + /// $ pulumi import gcp:monitoring/slo:Slo default {{project}}/{{name}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:monitoring/slo:Slo default "{{project}} {{name}}" + /// ``` + /// + /// ```sh /// $ pulumi import gcp:monitoring/slo:Slo default {{name}} /// ``` /// diff --git a/sdk/dotnet/Monitoring/UptimeCheckConfig.cs b/sdk/dotnet/Monitoring/UptimeCheckConfig.cs index 98b965acd5..85fe51eb14 100644 --- a/sdk/dotnet/Monitoring/UptimeCheckConfig.cs +++ b/sdk/dotnet/Monitoring/UptimeCheckConfig.cs @@ -299,11 +299,23 @@ namespace Pulumi.Gcp.Monitoring /// /// UptimeCheckConfig can be imported using any of these accepted formats: /// + /// * `{{project}}/{{name}}` + /// + /// * `{{project}} {{name}}` + /// /// * `{{name}}` /// /// When using the `pulumi import` command, UptimeCheckConfig can be imported using one of the formats above. For example: /// /// ```sh + /// $ pulumi import gcp:monitoring/uptimeCheckConfig:UptimeCheckConfig default {{project}}/{{name}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:monitoring/uptimeCheckConfig:UptimeCheckConfig default "{{project}} {{name}}" + /// ``` + /// + /// ```sh /// $ pulumi import gcp:monitoring/uptimeCheckConfig:UptimeCheckConfig default {{name}} /// ``` /// diff --git a/sdk/dotnet/NetworkManagement/VpcFlowLogsConfig.cs b/sdk/dotnet/NetworkManagement/VpcFlowLogsConfig.cs new file mode 100644 index 0000000000..876b6dc895 --- /dev/null +++ b/sdk/dotnet/NetworkManagement/VpcFlowLogsConfig.cs @@ -0,0 +1,797 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.NetworkManagement +{ + /// + /// ## Example Usage + /// + /// ### Network Management Vpc Flow Logs Config Interconnect Full + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var project = Gcp.Organizations.GetProject.Invoke(); + /// + /// var network = new Gcp.Compute.Network("network", new() + /// { + /// Name = "full-interconnect-test-network", + /// }); + /// + /// var router = new Gcp.Compute.Router("router", new() + /// { + /// Name = "full-interconnect-test-router", + /// Network = network.Name, + /// Bgp = new Gcp.Compute.Inputs.RouterBgpArgs + /// { + /// Asn = 16550, + /// }, + /// }); + /// + /// var attachment = new Gcp.Compute.InterconnectAttachment("attachment", new() + /// { + /// Name = "full-interconnect-test-id", + /// EdgeAvailabilityDomain = "AVAILABILITY_DOMAIN_1", + /// Type = "PARTNER", + /// Router = router.Id, + /// Mtu = "1500", + /// }); + /// + /// var interconnect_test = new Gcp.NetworkManagement.VpcFlowLogsConfig("interconnect-test", new() + /// { + /// VpcFlowLogsConfigId = "full-interconnect-test-id", + /// Location = "global", + /// InterconnectAttachment = Output.Tuple(project, attachment.Name).Apply(values => + /// { + /// var project = values.Item1; + /// var name = values.Item2; + /// return $"projects/{project.Apply(getProjectResult => getProjectResult.Number)}/regions/us-east4/interconnectAttachments/{name}"; + /// }), + /// State = "ENABLED", + /// AggregationInterval = "INTERVAL_5_SEC", + /// Description = "VPC Flow Logs over a VPN Gateway.", + /// FlowSampling = 0.5, + /// Metadata = "INCLUDE_ALL_METADATA", + /// }); + /// + /// }); + /// ``` + /// ### Network Management Vpc Flow Logs Config Interconnect Basic + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var project = Gcp.Organizations.GetProject.Invoke(); + /// + /// var network = new Gcp.Compute.Network("network", new() + /// { + /// Name = "basic-interconnect-test-network", + /// }); + /// + /// var router = new Gcp.Compute.Router("router", new() + /// { + /// Name = "basic-interconnect-test-router", + /// Network = network.Name, + /// Bgp = new Gcp.Compute.Inputs.RouterBgpArgs + /// { + /// Asn = 16550, + /// }, + /// }); + /// + /// var attachment = new Gcp.Compute.InterconnectAttachment("attachment", new() + /// { + /// Name = "basic-interconnect-test-id", + /// EdgeAvailabilityDomain = "AVAILABILITY_DOMAIN_1", + /// Type = "PARTNER", + /// Router = router.Id, + /// Mtu = "1500", + /// }); + /// + /// var interconnect_test = new Gcp.NetworkManagement.VpcFlowLogsConfig("interconnect-test", new() + /// { + /// VpcFlowLogsConfigId = "basic-interconnect-test-id", + /// Location = "global", + /// InterconnectAttachment = Output.Tuple(project, attachment.Name).Apply(values => + /// { + /// var project = values.Item1; + /// var name = values.Item2; + /// return $"projects/{project.Apply(getProjectResult => getProjectResult.Number)}/regions/us-east4/interconnectAttachments/{name}"; + /// }), + /// }); + /// + /// }); + /// ``` + /// ### Network Management Vpc Flow Logs Config Vpn Basic + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var project = Gcp.Organizations.GetProject.Invoke(); + /// + /// var network = new Gcp.Compute.Network("network", new() + /// { + /// Name = "basic-test-network", + /// }); + /// + /// var targetGateway = new Gcp.Compute.VPNGateway("target_gateway", new() + /// { + /// Name = "basic-test-gateway", + /// Network = network.Id, + /// }); + /// + /// var vpnStaticIp = new Gcp.Compute.Address("vpn_static_ip", new() + /// { + /// Name = "basic-test-address", + /// }); + /// + /// var frEsp = new Gcp.Compute.ForwardingRule("fr_esp", new() + /// { + /// Name = "basic-test-fresp", + /// IpProtocol = "ESP", + /// IpAddress = vpnStaticIp.IPAddress, + /// Target = targetGateway.Id, + /// }); + /// + /// var frUdp500 = new Gcp.Compute.ForwardingRule("fr_udp500", new() + /// { + /// Name = "basic-test-fr500", + /// IpProtocol = "UDP", + /// PortRange = "500", + /// IpAddress = vpnStaticIp.IPAddress, + /// Target = targetGateway.Id, + /// }); + /// + /// var frUdp4500 = new Gcp.Compute.ForwardingRule("fr_udp4500", new() + /// { + /// Name = "basic-test-fr4500", + /// IpProtocol = "UDP", + /// PortRange = "4500", + /// IpAddress = vpnStaticIp.IPAddress, + /// Target = targetGateway.Id, + /// }); + /// + /// var tunnel = new Gcp.Compute.VPNTunnel("tunnel", new() + /// { + /// Name = "basic-test-tunnel", + /// PeerIp = "15.0.0.120", + /// SharedSecret = "a secret message", + /// TargetVpnGateway = targetGateway.Id, + /// }, new CustomResourceOptions + /// { + /// DependsOn = + /// { + /// frEsp, + /// frUdp500, + /// frUdp4500, + /// }, + /// }); + /// + /// var vpn_test = new Gcp.NetworkManagement.VpcFlowLogsConfig("vpn-test", new() + /// { + /// VpcFlowLogsConfigId = "basic-test-id", + /// Location = "global", + /// VpnTunnel = Output.Tuple(project, tunnel.Name).Apply(values => + /// { + /// var project = values.Item1; + /// var name = values.Item2; + /// return $"projects/{project.Apply(getProjectResult => getProjectResult.Number)}/regions/us-central1/vpnTunnels/{name}"; + /// }), + /// }); + /// + /// var route = new Gcp.Compute.Route("route", new() + /// { + /// Name = "basic-test-route", + /// Network = network.Name, + /// DestRange = "15.0.0.0/24", + /// Priority = 1000, + /// NextHopVpnTunnel = tunnel.Id, + /// }); + /// + /// }); + /// ``` + /// ### Network Management Vpc Flow Logs Config Vpn Full + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var project = Gcp.Organizations.GetProject.Invoke(); + /// + /// var network = new Gcp.Compute.Network("network", new() + /// { + /// Name = "full-test-network", + /// }); + /// + /// var targetGateway = new Gcp.Compute.VPNGateway("target_gateway", new() + /// { + /// Name = "full-test-gateway", + /// Network = network.Id, + /// }); + /// + /// var vpnStaticIp = new Gcp.Compute.Address("vpn_static_ip", new() + /// { + /// Name = "full-test-address", + /// }); + /// + /// var frEsp = new Gcp.Compute.ForwardingRule("fr_esp", new() + /// { + /// Name = "full-test-fresp", + /// IpProtocol = "ESP", + /// IpAddress = vpnStaticIp.IPAddress, + /// Target = targetGateway.Id, + /// }); + /// + /// var frUdp500 = new Gcp.Compute.ForwardingRule("fr_udp500", new() + /// { + /// Name = "full-test-fr500", + /// IpProtocol = "UDP", + /// PortRange = "500", + /// IpAddress = vpnStaticIp.IPAddress, + /// Target = targetGateway.Id, + /// }); + /// + /// var frUdp4500 = new Gcp.Compute.ForwardingRule("fr_udp4500", new() + /// { + /// Name = "full-test-fr4500", + /// IpProtocol = "UDP", + /// PortRange = "4500", + /// IpAddress = vpnStaticIp.IPAddress, + /// Target = targetGateway.Id, + /// }); + /// + /// var tunnel = new Gcp.Compute.VPNTunnel("tunnel", new() + /// { + /// Name = "full-test-tunnel", + /// PeerIp = "15.0.0.120", + /// SharedSecret = "a secret message", + /// TargetVpnGateway = targetGateway.Id, + /// }, new CustomResourceOptions + /// { + /// DependsOn = + /// { + /// frEsp, + /// frUdp500, + /// frUdp4500, + /// }, + /// }); + /// + /// var vpn_test = new Gcp.NetworkManagement.VpcFlowLogsConfig("vpn-test", new() + /// { + /// VpcFlowLogsConfigId = "full-test-id", + /// Location = "global", + /// VpnTunnel = Output.Tuple(project, tunnel.Name).Apply(values => + /// { + /// var project = values.Item1; + /// var name = values.Item2; + /// return $"projects/{project.Apply(getProjectResult => getProjectResult.Number)}/regions/us-central1/vpnTunnels/{name}"; + /// }), + /// State = "ENABLED", + /// AggregationInterval = "INTERVAL_5_SEC", + /// Description = "VPC Flow Logs over a VPN Gateway.", + /// FlowSampling = 0.5, + /// Metadata = "INCLUDE_ALL_METADATA", + /// }); + /// + /// var route = new Gcp.Compute.Route("route", new() + /// { + /// Name = "full-test-route", + /// Network = network.Name, + /// DestRange = "15.0.0.0/24", + /// Priority = 1000, + /// NextHopVpnTunnel = tunnel.Id, + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// VpcFlowLogsConfig can be imported using any of these accepted formats: + /// + /// * `projects/{{project}}/locations/{{location}}/vpcFlowLogsConfigs/{{vpc_flow_logs_config_id}}` + /// + /// * `{{project}}/{{location}}/{{vpc_flow_logs_config_id}}` + /// + /// * `{{location}}/{{vpc_flow_logs_config_id}}` + /// + /// When using the `pulumi import` command, VpcFlowLogsConfig can be imported using one of the formats above. For example: + /// + /// ```sh + /// $ pulumi import gcp:networkmanagement/vpcFlowLogsConfig:VpcFlowLogsConfig default projects/{{project}}/locations/{{location}}/vpcFlowLogsConfigs/{{vpc_flow_logs_config_id}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:networkmanagement/vpcFlowLogsConfig:VpcFlowLogsConfig default {{project}}/{{location}}/{{vpc_flow_logs_config_id}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:networkmanagement/vpcFlowLogsConfig:VpcFlowLogsConfig default {{location}}/{{vpc_flow_logs_config_id}} + /// ``` + /// + [GcpResourceType("gcp:networkmanagement/vpcFlowLogsConfig:VpcFlowLogsConfig")] + public partial class VpcFlowLogsConfig : global::Pulumi.CustomResource + { + /// + /// Optional. The aggregation interval for the logs. Default value is + /// INTERVAL_5_SEC. Possible values: AGGREGATION_INTERVAL_UNSPECIFIED INTERVAL_5_SEC INTERVAL_30_SEC INTERVAL_1_MIN INTERVAL_5_MIN INTERVAL_10_MIN INTERVAL_15_MIN" + /// + [Output("aggregationInterval")] + public Output AggregationInterval { get; private set; } = null!; + + /// + /// Output only. The time the config was created. + /// + [Output("createTime")] + public Output CreateTime { get; private set; } = null!; + + /// + /// Optional. The user-supplied description of the VPC Flow Logs configuration. Maximum + /// of 512 characters. + /// + [Output("description")] + public Output Description { get; private set; } = null!; + + /// + /// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + /// + [Output("effectiveLabels")] + public Output> EffectiveLabels { get; private set; } = null!; + + /// + /// Optional. Export filter used to define which VPC Flow Logs should be logged. + /// + [Output("filterExpr")] + public Output FilterExpr { get; private set; } = null!; + + /// + /// Optional. The value of the field must be in (0, 1]. The sampling rate + /// of VPC Flow Logs where 1.0 means all collected logs are reported. Setting the + /// sampling rate to 0.0 is not allowed. If you want to disable VPC Flow Logs, use + /// the state field instead. Default value is 1.0. + /// + [Output("flowSampling")] + public Output FlowSampling { get; private set; } = null!; + + /// + /// Traffic will be logged from the Interconnect Attachment. Format: projects/{project_id}/regions/{region}/interconnectAttachments/{name} + /// + [Output("interconnectAttachment")] + public Output InterconnectAttachment { get; private set; } = null!; + + /// + /// Optional. Resource labels to represent user-provided metadata. + /// + /// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + /// Please refer to the field `effective_labels` for all of the labels present on the resource. + /// + [Output("labels")] + public Output?> Labels { get; private set; } = null!; + + /// + /// Resource ID segment making up resource `name`. It identifies the resource + /// within its parent collection as described in https://google.aip.dev/122. See documentation + /// for resource type `networkmanagement.googleapis.com/VpcFlowLogsConfig`. + /// + [Output("location")] + public Output Location { get; private set; } = null!; + + /// + /// Optional. Configures whether all, none or a subset of metadata fields + /// should be added to the reported VPC flow logs. Default value is INCLUDE_ALL_METADATA. + /// Possible values: METADATA_UNSPECIFIED INCLUDE_ALL_METADATA EXCLUDE_ALL_METADATA CUSTOM_METADATA + /// + [Output("metadata")] + public Output Metadata { get; private set; } = null!; + + /// + /// Optional. Custom metadata fields to include in the reported VPC flow + /// logs. Can only be specified if \"metadata\" was set to CUSTOM_METADATA. + /// + [Output("metadataFields")] + public Output> MetadataFields { get; private set; } = null!; + + /// + /// Identifier. Unique name of the configuration using the form: `projects/{project_id}/locations/global/vpcFlowLogsConfigs/{vpc_flow_logs_config_id}` + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. + /// + [Output("project")] + public Output Project { get; private set; } = null!; + + /// + /// The combination of labels configured directly on the resource + /// and default labels configured on the provider. + /// + [Output("pulumiLabels")] + public Output> PulumiLabels { get; private set; } = null!; + + /// + /// Optional. The state of the VPC Flow Log configuration. Default value + /// is ENABLED. When creating a new configuration, it must be enabled. Possible + /// + [Output("state")] + public Output State { get; private set; } = null!; + + /// + /// Output only. The time the config was updated. + /// + [Output("updateTime")] + public Output UpdateTime { get; private set; } = null!; + + /// + /// Required. ID of the `VpcFlowLogsConfig`. + /// + /// + /// - - - + /// + [Output("vpcFlowLogsConfigId")] + public Output VpcFlowLogsConfigId { get; private set; } = null!; + + /// + /// Traffic will be logged from the VPN Tunnel. Format: projects/{project_id}/regions/{region}/vpnTunnels/{name} + /// + [Output("vpnTunnel")] + public Output VpnTunnel { get; private set; } = null!; + + + /// + /// Create a VpcFlowLogsConfig resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public VpcFlowLogsConfig(string name, VpcFlowLogsConfigArgs args, CustomResourceOptions? options = null) + : base("gcp:networkmanagement/vpcFlowLogsConfig:VpcFlowLogsConfig", name, args ?? new VpcFlowLogsConfigArgs(), MakeResourceOptions(options, "")) + { + } + + private VpcFlowLogsConfig(string name, Input id, VpcFlowLogsConfigState? state = null, CustomResourceOptions? options = null) + : base("gcp:networkmanagement/vpcFlowLogsConfig:VpcFlowLogsConfig", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + AdditionalSecretOutputs = + { + "effectiveLabels", + "pulumiLabels", + }, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing VpcFlowLogsConfig resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static VpcFlowLogsConfig Get(string name, Input id, VpcFlowLogsConfigState? state = null, CustomResourceOptions? options = null) + { + return new VpcFlowLogsConfig(name, id, state, options); + } + } + + public sealed class VpcFlowLogsConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// Optional. The aggregation interval for the logs. Default value is + /// INTERVAL_5_SEC. Possible values: AGGREGATION_INTERVAL_UNSPECIFIED INTERVAL_5_SEC INTERVAL_30_SEC INTERVAL_1_MIN INTERVAL_5_MIN INTERVAL_10_MIN INTERVAL_15_MIN" + /// + [Input("aggregationInterval")] + public Input? AggregationInterval { get; set; } + + /// + /// Optional. The user-supplied description of the VPC Flow Logs configuration. Maximum + /// of 512 characters. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// Optional. Export filter used to define which VPC Flow Logs should be logged. + /// + [Input("filterExpr")] + public Input? FilterExpr { get; set; } + + /// + /// Optional. The value of the field must be in (0, 1]. The sampling rate + /// of VPC Flow Logs where 1.0 means all collected logs are reported. Setting the + /// sampling rate to 0.0 is not allowed. If you want to disable VPC Flow Logs, use + /// the state field instead. Default value is 1.0. + /// + [Input("flowSampling")] + public Input? FlowSampling { get; set; } + + /// + /// Traffic will be logged from the Interconnect Attachment. Format: projects/{project_id}/regions/{region}/interconnectAttachments/{name} + /// + [Input("interconnectAttachment")] + public Input? InterconnectAttachment { get; set; } + + [Input("labels")] + private InputMap? _labels; + + /// + /// Optional. Resource labels to represent user-provided metadata. + /// + /// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + /// Please refer to the field `effective_labels` for all of the labels present on the resource. + /// + public InputMap Labels + { + get => _labels ?? (_labels = new InputMap()); + set => _labels = value; + } + + /// + /// Resource ID segment making up resource `name`. It identifies the resource + /// within its parent collection as described in https://google.aip.dev/122. See documentation + /// for resource type `networkmanagement.googleapis.com/VpcFlowLogsConfig`. + /// + [Input("location", required: true)] + public Input Location { get; set; } = null!; + + /// + /// Optional. Configures whether all, none or a subset of metadata fields + /// should be added to the reported VPC flow logs. Default value is INCLUDE_ALL_METADATA. + /// Possible values: METADATA_UNSPECIFIED INCLUDE_ALL_METADATA EXCLUDE_ALL_METADATA CUSTOM_METADATA + /// + [Input("metadata")] + public Input? Metadata { get; set; } + + [Input("metadataFields")] + private InputList? _metadataFields; + + /// + /// Optional. Custom metadata fields to include in the reported VPC flow + /// logs. Can only be specified if \"metadata\" was set to CUSTOM_METADATA. + /// + public InputList MetadataFields + { + get => _metadataFields ?? (_metadataFields = new InputList()); + set => _metadataFields = value; + } + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. + /// + [Input("project")] + public Input? Project { get; set; } + + /// + /// Optional. The state of the VPC Flow Log configuration. Default value + /// is ENABLED. When creating a new configuration, it must be enabled. Possible + /// + [Input("state")] + public Input? State { get; set; } + + /// + /// Required. ID of the `VpcFlowLogsConfig`. + /// + /// + /// - - - + /// + [Input("vpcFlowLogsConfigId", required: true)] + public Input VpcFlowLogsConfigId { get; set; } = null!; + + /// + /// Traffic will be logged from the VPN Tunnel. Format: projects/{project_id}/regions/{region}/vpnTunnels/{name} + /// + [Input("vpnTunnel")] + public Input? VpnTunnel { get; set; } + + public VpcFlowLogsConfigArgs() + { + } + public static new VpcFlowLogsConfigArgs Empty => new VpcFlowLogsConfigArgs(); + } + + public sealed class VpcFlowLogsConfigState : global::Pulumi.ResourceArgs + { + /// + /// Optional. The aggregation interval for the logs. Default value is + /// INTERVAL_5_SEC. Possible values: AGGREGATION_INTERVAL_UNSPECIFIED INTERVAL_5_SEC INTERVAL_30_SEC INTERVAL_1_MIN INTERVAL_5_MIN INTERVAL_10_MIN INTERVAL_15_MIN" + /// + [Input("aggregationInterval")] + public Input? AggregationInterval { get; set; } + + /// + /// Output only. The time the config was created. + /// + [Input("createTime")] + public Input? CreateTime { get; set; } + + /// + /// Optional. The user-supplied description of the VPC Flow Logs configuration. Maximum + /// of 512 characters. + /// + [Input("description")] + public Input? Description { get; set; } + + [Input("effectiveLabels")] + private InputMap? _effectiveLabels; + + /// + /// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + /// + public InputMap EffectiveLabels + { + get => _effectiveLabels ?? (_effectiveLabels = new InputMap()); + set + { + var emptySecret = Output.CreateSecret(ImmutableDictionary.Create()); + _effectiveLabels = Output.All(value, emptySecret).Apply(v => v[0]); + } + } + + /// + /// Optional. Export filter used to define which VPC Flow Logs should be logged. + /// + [Input("filterExpr")] + public Input? FilterExpr { get; set; } + + /// + /// Optional. The value of the field must be in (0, 1]. The sampling rate + /// of VPC Flow Logs where 1.0 means all collected logs are reported. Setting the + /// sampling rate to 0.0 is not allowed. If you want to disable VPC Flow Logs, use + /// the state field instead. Default value is 1.0. + /// + [Input("flowSampling")] + public Input? FlowSampling { get; set; } + + /// + /// Traffic will be logged from the Interconnect Attachment. Format: projects/{project_id}/regions/{region}/interconnectAttachments/{name} + /// + [Input("interconnectAttachment")] + public Input? InterconnectAttachment { get; set; } + + [Input("labels")] + private InputMap? _labels; + + /// + /// Optional. Resource labels to represent user-provided metadata. + /// + /// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + /// Please refer to the field `effective_labels` for all of the labels present on the resource. + /// + public InputMap Labels + { + get => _labels ?? (_labels = new InputMap()); + set => _labels = value; + } + + /// + /// Resource ID segment making up resource `name`. It identifies the resource + /// within its parent collection as described in https://google.aip.dev/122. See documentation + /// for resource type `networkmanagement.googleapis.com/VpcFlowLogsConfig`. + /// + [Input("location")] + public Input? Location { get; set; } + + /// + /// Optional. Configures whether all, none or a subset of metadata fields + /// should be added to the reported VPC flow logs. Default value is INCLUDE_ALL_METADATA. + /// Possible values: METADATA_UNSPECIFIED INCLUDE_ALL_METADATA EXCLUDE_ALL_METADATA CUSTOM_METADATA + /// + [Input("metadata")] + public Input? Metadata { get; set; } + + [Input("metadataFields")] + private InputList? _metadataFields; + + /// + /// Optional. Custom metadata fields to include in the reported VPC flow + /// logs. Can only be specified if \"metadata\" was set to CUSTOM_METADATA. + /// + public InputList MetadataFields + { + get => _metadataFields ?? (_metadataFields = new InputList()); + set => _metadataFields = value; + } + + /// + /// Identifier. Unique name of the configuration using the form: `projects/{project_id}/locations/global/vpcFlowLogsConfigs/{vpc_flow_logs_config_id}` + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. + /// + [Input("project")] + public Input? Project { get; set; } + + [Input("pulumiLabels")] + private InputMap? _pulumiLabels; + + /// + /// The combination of labels configured directly on the resource + /// and default labels configured on the provider. + /// + public InputMap PulumiLabels + { + get => _pulumiLabels ?? (_pulumiLabels = new InputMap()); + set + { + var emptySecret = Output.CreateSecret(ImmutableDictionary.Create()); + _pulumiLabels = Output.All(value, emptySecret).Apply(v => v[0]); + } + } + + /// + /// Optional. The state of the VPC Flow Log configuration. Default value + /// is ENABLED. When creating a new configuration, it must be enabled. Possible + /// + [Input("state")] + public Input? State { get; set; } + + /// + /// Output only. The time the config was updated. + /// + [Input("updateTime")] + public Input? UpdateTime { get; set; } + + /// + /// Required. ID of the `VpcFlowLogsConfig`. + /// + /// + /// - - - + /// + [Input("vpcFlowLogsConfigId")] + public Input? VpcFlowLogsConfigId { get; set; } + + /// + /// Traffic will be logged from the VPN Tunnel. Format: projects/{project_id}/regions/{region}/vpnTunnels/{name} + /// + [Input("vpnTunnel")] + public Input? VpnTunnel { get; set; } + + public VpcFlowLogsConfigState() + { + } + public static new VpcFlowLogsConfigState Empty => new VpcFlowLogsConfigState(); + } +} diff --git a/sdk/dotnet/OsConfig/PatchDeployment.cs b/sdk/dotnet/OsConfig/PatchDeployment.cs index 6c1fb42eca..2a21c96b7b 100644 --- a/sdk/dotnet/OsConfig/PatchDeployment.cs +++ b/sdk/dotnet/OsConfig/PatchDeployment.cs @@ -374,20 +374,20 @@ namespace Pulumi.Gcp.OsConfig /// /// PatchDeployment can be imported using any of these accepted formats: /// - /// * `projects/{{project}}/patchDeployments/{{name}}` - /// /// * `{{project}}/{{name}}` /// + /// * `{{project}} {{name}}` + /// /// * `{{name}}` /// /// When using the `pulumi import` command, PatchDeployment can be imported using one of the formats above. For example: /// /// ```sh - /// $ pulumi import gcp:osconfig/patchDeployment:PatchDeployment default projects/{{project}}/patchDeployments/{{name}} + /// $ pulumi import gcp:osconfig/patchDeployment:PatchDeployment default {{project}}/{{name}} /// ``` /// /// ```sh - /// $ pulumi import gcp:osconfig/patchDeployment:PatchDeployment default {{project}}/{{name}} + /// $ pulumi import gcp:osconfig/patchDeployment:PatchDeployment default "{{project}} {{name}}" /// ``` /// /// ```sh diff --git a/sdk/dotnet/Provider.cs b/sdk/dotnet/Provider.cs index a09e631caa..1d8a8883b2 100644 --- a/sdk/dotnet/Provider.cs +++ b/sdk/dotnet/Provider.cs @@ -204,6 +204,9 @@ public partial class Provider : global::Pulumi.ProviderResource [Output("dataprocCustomEndpoint")] public Output DataprocCustomEndpoint { get; private set; } = null!; + [Output("dataprocGdcCustomEndpoint")] + public Output DataprocGdcCustomEndpoint { get; private set; } = null!; + [Output("dataprocMetastoreCustomEndpoint")] public Output DataprocMetastoreCustomEndpoint { get; private set; } = null!; @@ -297,6 +300,9 @@ public partial class Provider : global::Pulumi.ProviderResource [Output("iam2CustomEndpoint")] public Output Iam2CustomEndpoint { get; private set; } = null!; + [Output("iam3CustomEndpoint")] + public Output Iam3CustomEndpoint { get; private set; } = null!; + [Output("iamBetaCustomEndpoint")] public Output IamBetaCustomEndpoint { get; private set; } = null!; @@ -761,6 +767,9 @@ public Input? AccessToken [Input("dataprocCustomEndpoint")] public Input? DataprocCustomEndpoint { get; set; } + [Input("dataprocGdcCustomEndpoint")] + public Input? DataprocGdcCustomEndpoint { get; set; } + [Input("dataprocMetastoreCustomEndpoint")] public Input? DataprocMetastoreCustomEndpoint { get; set; } @@ -865,6 +874,9 @@ public InputMap DefaultLabels [Input("iam2CustomEndpoint")] public Input? Iam2CustomEndpoint { get; set; } + [Input("iam3CustomEndpoint")] + public Input? Iam3CustomEndpoint { get; set; } + [Input("iamBetaCustomEndpoint")] public Input? IamBetaCustomEndpoint { get; set; } diff --git a/sdk/dotnet/Redis/Inputs/ClusterStateInfoArgs.cs b/sdk/dotnet/Redis/Inputs/ClusterStateInfoArgs.cs index 87f864a060..c2fe5e9eff 100644 --- a/sdk/dotnet/Redis/Inputs/ClusterStateInfoArgs.cs +++ b/sdk/dotnet/Redis/Inputs/ClusterStateInfoArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Gcp.Redis.Inputs public sealed class ClusterStateInfoArgs : global::Pulumi.ResourceArgs { /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("updateInfo")] diff --git a/sdk/dotnet/Redis/Inputs/ClusterStateInfoGetArgs.cs b/sdk/dotnet/Redis/Inputs/ClusterStateInfoGetArgs.cs index c3d6a6ad4c..29cce1eb32 100644 --- a/sdk/dotnet/Redis/Inputs/ClusterStateInfoGetArgs.cs +++ b/sdk/dotnet/Redis/Inputs/ClusterStateInfoGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Gcp.Redis.Inputs public sealed class ClusterStateInfoGetArgs : global::Pulumi.ResourceArgs { /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("updateInfo")] diff --git a/sdk/dotnet/Redis/Outputs/ClusterStateInfo.cs b/sdk/dotnet/Redis/Outputs/ClusterStateInfo.cs index 9c97e1bd7e..fea5cc65ff 100644 --- a/sdk/dotnet/Redis/Outputs/ClusterStateInfo.cs +++ b/sdk/dotnet/Redis/Outputs/ClusterStateInfo.cs @@ -14,7 +14,7 @@ namespace Pulumi.Gcp.Redis.Outputs public sealed class ClusterStateInfo { /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// public readonly Outputs.ClusterStateInfoUpdateInfo? UpdateInfo; diff --git a/sdk/dotnet/SecurityCenter/NotificationConfig.cs b/sdk/dotnet/SecurityCenter/NotificationConfig.cs index 609e24b75f..533da05e7b 100644 --- a/sdk/dotnet/SecurityCenter/NotificationConfig.cs +++ b/sdk/dotnet/SecurityCenter/NotificationConfig.cs @@ -60,18 +60,12 @@ namespace Pulumi.Gcp.SecurityCenter /// /// NotificationConfig can be imported using any of these accepted formats: /// - /// * `organizations/{{organization}}/notificationConfigs/{{name}}` - /// - /// * `{{organization}}/{{name}}` + /// * `{{name}}` /// /// When using the `pulumi import` command, NotificationConfig can be imported using one of the formats above. For example: /// /// ```sh - /// $ pulumi import gcp:securitycenter/notificationConfig:NotificationConfig default organizations/{{organization}}/notificationConfigs/{{name}} - /// ``` - /// - /// ```sh - /// $ pulumi import gcp:securitycenter/notificationConfig:NotificationConfig default {{organization}}/{{name}} + /// $ pulumi import gcp:securitycenter/notificationConfig:NotificationConfig default {{name}} /// ``` /// [GcpResourceType("gcp:securitycenter/notificationConfig:NotificationConfig")] diff --git a/sdk/dotnet/SecurityCenter/ProjectNotificationConfig.cs b/sdk/dotnet/SecurityCenter/ProjectNotificationConfig.cs index df5fa4f068..367bfb7150 100644 --- a/sdk/dotnet/SecurityCenter/ProjectNotificationConfig.cs +++ b/sdk/dotnet/SecurityCenter/ProjectNotificationConfig.cs @@ -60,23 +60,11 @@ namespace Pulumi.Gcp.SecurityCenter /// /// ProjectNotificationConfig can be imported using any of these accepted formats: /// - /// * `projects/{{project}}/notificationConfigs/{{name}}` - /// - /// * `{{project}}/{{name}}` - /// /// * `{{name}}` /// /// When using the `pulumi import` command, ProjectNotificationConfig can be imported using one of the formats above. For example: /// /// ```sh - /// $ pulumi import gcp:securitycenter/projectNotificationConfig:ProjectNotificationConfig default projects/{{project}}/notificationConfigs/{{name}} - /// ``` - /// - /// ```sh - /// $ pulumi import gcp:securitycenter/projectNotificationConfig:ProjectNotificationConfig default {{project}}/{{name}} - /// ``` - /// - /// ```sh /// $ pulumi import gcp:securitycenter/projectNotificationConfig:ProjectNotificationConfig default {{name}} /// ``` /// diff --git a/sdk/dotnet/SecurityCenter/V2OrganizationNotificationConfig.cs b/sdk/dotnet/SecurityCenter/V2OrganizationNotificationConfig.cs index 13da4bd702..9a41b6fc1d 100644 --- a/sdk/dotnet/SecurityCenter/V2OrganizationNotificationConfig.cs +++ b/sdk/dotnet/SecurityCenter/V2OrganizationNotificationConfig.cs @@ -61,18 +61,12 @@ namespace Pulumi.Gcp.SecurityCenter /// /// OrganizationNotificationConfig can be imported using any of these accepted formats: /// - /// * `organizations/{{organization}}/locations/{{location}}/notificationConfigs/{{name}}` - /// - /// * `{{organization}}/{{location}}/{{name}}` + /// * `{{name}}` /// /// When using the `pulumi import` command, OrganizationNotificationConfig can be imported using one of the formats above. For example: /// /// ```sh - /// $ pulumi import gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig default organizations/{{organization}}/locations/{{location}}/notificationConfigs/{{name}} - /// ``` - /// - /// ```sh - /// $ pulumi import gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig default {{organization}}/{{location}}/{{name}} + /// $ pulumi import gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig default {{name}} /// ``` /// [GcpResourceType("gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig")] diff --git a/sdk/dotnet/Spanner/GetDatabase.cs b/sdk/dotnet/Spanner/GetDatabase.cs new file mode 100644 index 0000000000..40398101d8 --- /dev/null +++ b/sdk/dotnet/Spanner/GetDatabase.cs @@ -0,0 +1,180 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Spanner +{ + public static class GetDatabase + { + /// + /// Get a spanner database from Google Cloud by its name and instance name. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var foo = Gcp.Spanner.GetDatabase.Invoke(new() + /// { + /// Name = "foo", + /// Instance = instance.Name, + /// }); + /// + /// }); + /// ``` + /// + public static Task InvokeAsync(GetDatabaseArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("gcp:spanner/getDatabase:getDatabase", args ?? new GetDatabaseArgs(), options.WithDefaults()); + + /// + /// Get a spanner database from Google Cloud by its name and instance name. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var foo = Gcp.Spanner.GetDatabase.Invoke(new() + /// { + /// Name = "foo", + /// Instance = instance.Name, + /// }); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetDatabaseInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("gcp:spanner/getDatabase:getDatabase", args ?? new GetDatabaseInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetDatabaseArgs : global::Pulumi.InvokeArgs + { + /// + /// The name of the database's spanner instance. + /// + /// - - - + /// + [Input("instance", required: true)] + public string Instance { get; set; } = null!; + + /// + /// The name of the spanner database. + /// + [Input("name", required: true)] + public string Name { get; set; } = null!; + + /// + /// The project in which the resource belongs. If it + /// is not provided, the provider project is used. + /// + [Input("project")] + public string? Project { get; set; } + + public GetDatabaseArgs() + { + } + public static new GetDatabaseArgs Empty => new GetDatabaseArgs(); + } + + public sealed class GetDatabaseInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The name of the database's spanner instance. + /// + /// - - - + /// + [Input("instance", required: true)] + public Input Instance { get; set; } = null!; + + /// + /// The name of the spanner database. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + /// + /// The project in which the resource belongs. If it + /// is not provided, the provider project is used. + /// + [Input("project")] + public Input? Project { get; set; } + + public GetDatabaseInvokeArgs() + { + } + public static new GetDatabaseInvokeArgs Empty => new GetDatabaseInvokeArgs(); + } + + + [OutputType] + public sealed class GetDatabaseResult + { + public readonly string DatabaseDialect; + public readonly ImmutableArray Ddls; + public readonly bool DeletionProtection; + public readonly bool EnableDropProtection; + public readonly ImmutableArray EncryptionConfigs; + /// + /// The provider-assigned unique ID for this managed resource. + /// + public readonly string Id; + public readonly string Instance; + public readonly string Name; + public readonly string? Project; + public readonly string State; + public readonly string VersionRetentionPeriod; + + [OutputConstructor] + private GetDatabaseResult( + string databaseDialect, + + ImmutableArray ddls, + + bool deletionProtection, + + bool enableDropProtection, + + ImmutableArray encryptionConfigs, + + string id, + + string instance, + + string name, + + string? project, + + string state, + + string versionRetentionPeriod) + { + DatabaseDialect = databaseDialect; + Ddls = ddls; + DeletionProtection = deletionProtection; + EnableDropProtection = enableDropProtection; + EncryptionConfigs = encryptionConfigs; + Id = id; + Instance = instance; + Name = name; + Project = project; + State = state; + VersionRetentionPeriod = versionRetentionPeriod; + } + } +} diff --git a/sdk/dotnet/Spanner/GetInstance.cs b/sdk/dotnet/Spanner/GetInstance.cs index 505c3f9a2c..603e24495b 100644 --- a/sdk/dotnet/Spanner/GetInstance.cs +++ b/sdk/dotnet/Spanner/GetInstance.cs @@ -125,6 +125,7 @@ public sealed class GetInstanceResult { public readonly ImmutableArray AutoscalingConfigs; public readonly string? Config; + public readonly string DefaultBackupScheduleType; public readonly string? DisplayName; public readonly string Edition; public readonly ImmutableDictionary EffectiveLabels; @@ -147,6 +148,8 @@ private GetInstanceResult( string? config, + string defaultBackupScheduleType, + string? displayName, string edition, @@ -173,6 +176,7 @@ private GetInstanceResult( { AutoscalingConfigs = autoscalingConfigs; Config = config; + DefaultBackupScheduleType = defaultBackupScheduleType; DisplayName = displayName; Edition = edition; EffectiveLabels = effectiveLabels; diff --git a/sdk/dotnet/Spanner/Inputs/InstanceAutoscalingConfigAsymmetricAutoscalingOptionArgs.cs b/sdk/dotnet/Spanner/Inputs/InstanceAutoscalingConfigAsymmetricAutoscalingOptionArgs.cs index ebcafa645e..e04342732d 100644 --- a/sdk/dotnet/Spanner/Inputs/InstanceAutoscalingConfigAsymmetricAutoscalingOptionArgs.cs +++ b/sdk/dotnet/Spanner/Inputs/InstanceAutoscalingConfigAsymmetricAutoscalingOptionArgs.cs @@ -13,14 +13,14 @@ namespace Pulumi.Gcp.Spanner.Inputs public sealed class InstanceAutoscalingConfigAsymmetricAutoscalingOptionArgs : global::Pulumi.ResourceArgs { /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("overrides", required: true)] public Input Overrides { get; set; } = null!; /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("replicaSelection", required: true)] diff --git a/sdk/dotnet/Spanner/Inputs/InstanceAutoscalingConfigAsymmetricAutoscalingOptionGetArgs.cs b/sdk/dotnet/Spanner/Inputs/InstanceAutoscalingConfigAsymmetricAutoscalingOptionGetArgs.cs index 151486d0fb..14ff8207c2 100644 --- a/sdk/dotnet/Spanner/Inputs/InstanceAutoscalingConfigAsymmetricAutoscalingOptionGetArgs.cs +++ b/sdk/dotnet/Spanner/Inputs/InstanceAutoscalingConfigAsymmetricAutoscalingOptionGetArgs.cs @@ -13,14 +13,14 @@ namespace Pulumi.Gcp.Spanner.Inputs public sealed class InstanceAutoscalingConfigAsymmetricAutoscalingOptionGetArgs : global::Pulumi.ResourceArgs { /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("overrides", required: true)] public Input Overrides { get; set; } = null!; /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("replicaSelection", required: true)] diff --git a/sdk/dotnet/Spanner/Inputs/InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesArgs.cs b/sdk/dotnet/Spanner/Inputs/InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesArgs.cs index 1298a2bd05..813b37f07c 100644 --- a/sdk/dotnet/Spanner/Inputs/InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesArgs.cs +++ b/sdk/dotnet/Spanner/Inputs/InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Gcp.Spanner.Inputs public sealed class InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesArgs : global::Pulumi.ResourceArgs { /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("autoscalingLimits", required: true)] diff --git a/sdk/dotnet/Spanner/Inputs/InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesGetArgs.cs b/sdk/dotnet/Spanner/Inputs/InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesGetArgs.cs index 3624e2fac6..e5246f5324 100644 --- a/sdk/dotnet/Spanner/Inputs/InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesGetArgs.cs +++ b/sdk/dotnet/Spanner/Inputs/InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Gcp.Spanner.Inputs public sealed class InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesGetArgs : global::Pulumi.ResourceArgs { /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("autoscalingLimits", required: true)] diff --git a/sdk/dotnet/Spanner/Instance.cs b/sdk/dotnet/Spanner/Instance.cs index cb97b063d4..922291ec87 100644 --- a/sdk/dotnet/Spanner/Instance.cs +++ b/sdk/dotnet/Spanner/Instance.cs @@ -37,6 +37,7 @@ namespace Pulumi.Gcp.Spanner /// DisplayName = "Test Spanner Instance", /// NumNodes = 2, /// Edition = "STANDARD", + /// DefaultBackupScheduleType = "AUTOMATIC", /// Labels = /// { /// { "foo", "bar" }, @@ -175,6 +176,15 @@ public partial class Instance : global::Pulumi.CustomResource [Output("config")] public Output Config { get; private set; } = null!; + /// + /// Controls the default backup behavior for new databases within the instance. + /// Note that `AUTOMATIC` is not permitted for free instances, as backups and backup schedules are not allowed for free instances. + /// if unset or NONE, no default backup schedule will be created for new databases within the instance. + /// Possible values are: `NONE`, `AUTOMATIC`. + /// + [Output("defaultBackupScheduleType")] + public Output DefaultBackupScheduleType { get; private set; } = null!; + /// /// The descriptive name for this instance as it appears in UIs. Must be /// unique per project and between 4 and 30 characters in length. @@ -322,6 +332,15 @@ public sealed class InstanceArgs : global::Pulumi.ResourceArgs [Input("config", required: true)] public Input Config { get; set; } = null!; + /// + /// Controls the default backup behavior for new databases within the instance. + /// Note that `AUTOMATIC` is not permitted for free instances, as backups and backup schedules are not allowed for free instances. + /// if unset or NONE, no default backup schedule will be created for new databases within the instance. + /// Possible values are: `NONE`, `AUTOMATIC`. + /// + [Input("defaultBackupScheduleType")] + public Input? DefaultBackupScheduleType { get; set; } + /// /// The descriptive name for this instance as it appears in UIs. Must be /// unique per project and between 4 and 30 characters in length. @@ -413,6 +432,15 @@ public sealed class InstanceState : global::Pulumi.ResourceArgs [Input("config")] public Input? Config { get; set; } + /// + /// Controls the default backup behavior for new databases within the instance. + /// Note that `AUTOMATIC` is not permitted for free instances, as backups and backup schedules are not allowed for free instances. + /// if unset or NONE, no default backup schedule will be created for new databases within the instance. + /// Possible values are: `NONE`, `AUTOMATIC`. + /// + [Input("defaultBackupScheduleType")] + public Input? DefaultBackupScheduleType { get; set; } + /// /// The descriptive name for this instance as it appears in UIs. Must be /// unique per project and between 4 and 30 characters in length. diff --git a/sdk/dotnet/Spanner/Outputs/GetDatabaseEncryptionConfigResult.cs b/sdk/dotnet/Spanner/Outputs/GetDatabaseEncryptionConfigResult.cs new file mode 100644 index 0000000000..559ad64f19 --- /dev/null +++ b/sdk/dotnet/Spanner/Outputs/GetDatabaseEncryptionConfigResult.cs @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Spanner.Outputs +{ + + [OutputType] + public sealed class GetDatabaseEncryptionConfigResult + { + /// + /// Fully qualified name of the KMS key to use to encrypt this database. This key must exist + /// in the same location as the Spanner Database. + /// + public readonly string KmsKeyName; + /// + /// Fully qualified name of the KMS keys to use to encrypt this database. The keys must exist + /// in the same locations as the Spanner Database. + /// + public readonly ImmutableArray KmsKeyNames; + + [OutputConstructor] + private GetDatabaseEncryptionConfigResult( + string kmsKeyName, + + ImmutableArray kmsKeyNames) + { + KmsKeyName = kmsKeyName; + KmsKeyNames = kmsKeyNames; + } + } +} diff --git a/sdk/dotnet/Spanner/Outputs/GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrideResult.cs b/sdk/dotnet/Spanner/Outputs/GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrideResult.cs index 87c17abbe0..905936d39f 100644 --- a/sdk/dotnet/Spanner/Outputs/GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrideResult.cs +++ b/sdk/dotnet/Spanner/Outputs/GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrideResult.cs @@ -14,7 +14,7 @@ namespace Pulumi.Gcp.Spanner.Outputs public sealed class GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrideResult { /// - /// A nested object resource + /// A nested object resource. /// public readonly ImmutableArray AutoscalingLimits; diff --git a/sdk/dotnet/Spanner/Outputs/GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionResult.cs b/sdk/dotnet/Spanner/Outputs/GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionResult.cs index ee8704dc71..38d91d255c 100644 --- a/sdk/dotnet/Spanner/Outputs/GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionResult.cs +++ b/sdk/dotnet/Spanner/Outputs/GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionResult.cs @@ -14,11 +14,11 @@ namespace Pulumi.Gcp.Spanner.Outputs public sealed class GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionResult { /// - /// A nested object resource + /// A nested object resource. /// public readonly ImmutableArray Overrides; /// - /// A nested object resource + /// A nested object resource. /// public readonly ImmutableArray ReplicaSelections; diff --git a/sdk/dotnet/Spanner/Outputs/InstanceAutoscalingConfigAsymmetricAutoscalingOption.cs b/sdk/dotnet/Spanner/Outputs/InstanceAutoscalingConfigAsymmetricAutoscalingOption.cs index ec9f5bf1de..b78ae5aaad 100644 --- a/sdk/dotnet/Spanner/Outputs/InstanceAutoscalingConfigAsymmetricAutoscalingOption.cs +++ b/sdk/dotnet/Spanner/Outputs/InstanceAutoscalingConfigAsymmetricAutoscalingOption.cs @@ -14,12 +14,12 @@ namespace Pulumi.Gcp.Spanner.Outputs public sealed class InstanceAutoscalingConfigAsymmetricAutoscalingOption { /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// public readonly Outputs.InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrides Overrides; /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// public readonly Outputs.InstanceAutoscalingConfigAsymmetricAutoscalingOptionReplicaSelection ReplicaSelection; diff --git a/sdk/dotnet/Spanner/Outputs/InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrides.cs b/sdk/dotnet/Spanner/Outputs/InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrides.cs index b37b8a2196..2102d2e6fb 100644 --- a/sdk/dotnet/Spanner/Outputs/InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrides.cs +++ b/sdk/dotnet/Spanner/Outputs/InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrides.cs @@ -14,7 +14,7 @@ namespace Pulumi.Gcp.Spanner.Outputs public sealed class InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrides { /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// public readonly Outputs.InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesAutoscalingLimits AutoscalingLimits; diff --git a/sdk/dotnet/Sql/DatabaseInstance.cs b/sdk/dotnet/Sql/DatabaseInstance.cs index fb65f8a4b2..b312098e47 100644 --- a/sdk/dotnet/Sql/DatabaseInstance.cs +++ b/sdk/dotnet/Sql/DatabaseInstance.cs @@ -187,6 +187,39 @@ namespace Pulumi.Gcp.Sql /// }); /// ``` /// + /// ## Switchover (SQL Server Only) + /// + /// Users can perform a switchover on any direct `cascadable` replica by following the steps below. + /// + /// ~>**WARNING:** Failure to follow these steps can lead to data loss (You will be warned during plan stage). To prevent data loss during a switchover, please verify your plan with the checklist below. + /// + /// For a more in-depth walkthrough with example code, see the Switchover Guide + /// + /// ### Steps to Invoke Switchover + /// + /// Create a `cascadable` replica in a different region from the primary (`cascadable_replica` is set to true in `replica_configuration`) + /// + /// #### Invoking switchover in the replica resource: + /// 1. Change instance_type from `READ_REPLICA_INSTANCE` to `CLOUD_SQL_INSTANCE` + /// 2. Remove `master_instance_name` + /// 3. Remove `replica_configuration` + /// 4. Add current primary's name to the replica's `replica_names` list + /// + /// #### Updating the primary resource: + /// 1. Change `instance_type` from `CLOUD_SQL_INSTANCE` to `READ_REPLICA_INSTANCE` + /// 2. Set `master_instance_name` to the original replica (which will be primary after switchover) + /// 3. Set `replica_configuration` and set `cascadable_replica` to `true` + /// 4. Remove original replica from `replica_names` + /// + /// > **NOTE**: Do **not** delete the replica_names field, even if it has no replicas remaining. Set replica_names = [ ] to indicate it having no replicas. + /// + /// #### Plan and verify that: + /// - `pulumi preview` outputs **"0 to add, 0 to destroy"** + /// - `pulumi preview` does not say **"must be replaced"** for any resource + /// - Every resource **"will be updated in-place"** + /// - Only the 2 instances involved in switchover have planned changes + /// - (Recommended) Use `deletion_protection` on instances as a safety measure + /// /// ## Import /// /// Database instances can be imported using one of any of these accepted formats: @@ -263,7 +296,7 @@ public partial class DatabaseInstance : global::Pulumi.CustomResource public Output DeletionProtection { get; private set; } = null!; /// - /// The dns name of the instance. + /// The DNS name of the instance. See [Connect to an instance using Private Service Connect](https://cloud.google.com/sql/docs/mysql/configure-private-service-connect#view-summary-information-cloud-sql-instances-psc-enabled) for more details. /// [Output("dnsName")] public Output DnsName { get; private set; } = null!; @@ -355,11 +388,17 @@ public partial class DatabaseInstance : global::Pulumi.CustomResource /// /// The configuration for replication. The - /// configuration is detailed below. Valid only for MySQL instances. + /// configuration is detailed below. /// [Output("replicaConfiguration")] public Output ReplicaConfiguration { get; private set; } = null!; + /// + /// List of replica names. Can be updated. + /// + [Output("replicaNames")] + public Output> ReplicaNames { get; private set; } = null!; + /// /// The context needed to restore the database to a backup run. This field will /// cause the provider to trigger the database to restore from the backup run indicated. The configuration is detailed below. @@ -542,7 +581,7 @@ public sealed class DatabaseInstanceArgs : global::Pulumi.ResourceArgs /// /// The configuration for replication. The - /// configuration is detailed below. Valid only for MySQL instances. + /// configuration is detailed below. /// public Input? ReplicaConfiguration { @@ -554,6 +593,18 @@ public Input? ReplicaConfigurat } } + [Input("replicaNames")] + private InputList? _replicaNames; + + /// + /// List of replica names. Can be updated. + /// + public InputList ReplicaNames + { + get => _replicaNames ?? (_replicaNames = new InputList()); + set => _replicaNames = value; + } + /// /// The context needed to restore the database to a backup run. This field will /// cause the provider to trigger the database to restore from the backup run indicated. The configuration is detailed below. @@ -643,7 +694,7 @@ public InputList AvailableMaintenanceVersions public Input? DeletionProtection { get; set; } /// - /// The dns name of the instance. + /// The DNS name of the instance. See [Connect to an instance using Private Service Connect](https://cloud.google.com/sql/docs/mysql/configure-private-service-connect#view-summary-information-cloud-sql-instances-psc-enabled) for more details. /// [Input("dnsName")] public Input? DnsName { get; set; } @@ -743,7 +794,7 @@ public InputList IpAddresses /// /// The configuration for replication. The - /// configuration is detailed below. Valid only for MySQL instances. + /// configuration is detailed below. /// public Input? ReplicaConfiguration { @@ -755,6 +806,18 @@ public Input? ReplicaConfigu } } + [Input("replicaNames")] + private InputList? _replicaNames; + + /// + /// List of replica names. Can be updated. + /// + public InputList ReplicaNames + { + get => _replicaNames ?? (_replicaNames = new InputList()); + set => _replicaNames = value; + } + /// /// The context needed to restore the database to a backup run. This field will /// cause the provider to trigger the database to restore from the backup run indicated. The configuration is detailed below. diff --git a/sdk/dotnet/Sql/GetDatabaseInstance.cs b/sdk/dotnet/Sql/GetDatabaseInstance.cs index 07ebd04912..1f4407802a 100644 --- a/sdk/dotnet/Sql/GetDatabaseInstance.cs +++ b/sdk/dotnet/Sql/GetDatabaseInstance.cs @@ -128,6 +128,7 @@ public sealed class GetDatabaseInstanceResult public readonly string PublicIpAddress; public readonly string Region; public readonly ImmutableArray ReplicaConfigurations; + public readonly ImmutableArray ReplicaNames; public readonly ImmutableArray RestoreBackupContexts; public readonly string RootPassword; public readonly string SelfLink; @@ -177,6 +178,8 @@ private GetDatabaseInstanceResult( ImmutableArray replicaConfigurations, + ImmutableArray replicaNames, + ImmutableArray restoreBackupContexts, string rootPassword, @@ -209,6 +212,7 @@ private GetDatabaseInstanceResult( PublicIpAddress = publicIpAddress; Region = region; ReplicaConfigurations = replicaConfigurations; + ReplicaNames = replicaNames; RestoreBackupContexts = restoreBackupContexts; RootPassword = rootPassword; SelfLink = selfLink; diff --git a/sdk/dotnet/Sql/Inputs/DatabaseInstanceReplicaConfigurationArgs.cs b/sdk/dotnet/Sql/Inputs/DatabaseInstanceReplicaConfigurationArgs.cs index e1ca2b2710..017fb10b83 100644 --- a/sdk/dotnet/Sql/Inputs/DatabaseInstanceReplicaConfigurationArgs.cs +++ b/sdk/dotnet/Sql/Inputs/DatabaseInstanceReplicaConfigurationArgs.cs @@ -19,6 +19,14 @@ public sealed class DatabaseInstanceReplicaConfigurationArgs : global::Pulumi.Re [Input("caCertificate")] public Input? CaCertificate { get; set; } + /// + /// Specifies if the replica is a cascadable replica. If true, instance must be in different region from primary. + /// + /// > **NOTE:** Only supported for SQL Server database. + /// + [Input("cascadableReplica")] + public Input? CascadableReplica { get; set; } + /// /// PEM representation of the replica's x509 /// certificate. diff --git a/sdk/dotnet/Sql/Inputs/DatabaseInstanceReplicaConfigurationGetArgs.cs b/sdk/dotnet/Sql/Inputs/DatabaseInstanceReplicaConfigurationGetArgs.cs index accd1ba20d..b443f5c44a 100644 --- a/sdk/dotnet/Sql/Inputs/DatabaseInstanceReplicaConfigurationGetArgs.cs +++ b/sdk/dotnet/Sql/Inputs/DatabaseInstanceReplicaConfigurationGetArgs.cs @@ -19,6 +19,14 @@ public sealed class DatabaseInstanceReplicaConfigurationGetArgs : global::Pulumi [Input("caCertificate")] public Input? CaCertificate { get; set; } + /// + /// Specifies if the replica is a cascadable replica. If true, instance must be in different region from primary. + /// + /// > **NOTE:** Only supported for SQL Server database. + /// + [Input("cascadableReplica")] + public Input? CascadableReplica { get; set; } + /// /// PEM representation of the replica's x509 /// certificate. diff --git a/sdk/dotnet/Sql/Outputs/DatabaseInstanceReplicaConfiguration.cs b/sdk/dotnet/Sql/Outputs/DatabaseInstanceReplicaConfiguration.cs index 17e60eb018..53257e2c2a 100644 --- a/sdk/dotnet/Sql/Outputs/DatabaseInstanceReplicaConfiguration.cs +++ b/sdk/dotnet/Sql/Outputs/DatabaseInstanceReplicaConfiguration.cs @@ -19,6 +19,12 @@ public sealed class DatabaseInstanceReplicaConfiguration /// public readonly string? CaCertificate; /// + /// Specifies if the replica is a cascadable replica. If true, instance must be in different region from primary. + /// + /// > **NOTE:** Only supported for SQL Server database. + /// + public readonly bool? CascadableReplica; + /// /// PEM representation of the replica's x509 /// certificate. /// @@ -74,6 +80,8 @@ public sealed class DatabaseInstanceReplicaConfiguration private DatabaseInstanceReplicaConfiguration( string? caCertificate, + bool? cascadableReplica, + string? clientCertificate, string? clientKey, @@ -95,6 +103,7 @@ private DatabaseInstanceReplicaConfiguration( bool? verifyServerCertificate) { CaCertificate = caCertificate; + CascadableReplica = cascadableReplica; ClientCertificate = clientCertificate; ClientKey = clientKey; ConnectRetryInterval = connectRetryInterval; diff --git a/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceReplicaConfigurationResult.cs b/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceReplicaConfigurationResult.cs index 0ade05edbf..c134678673 100644 --- a/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceReplicaConfigurationResult.cs +++ b/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceReplicaConfigurationResult.cs @@ -18,6 +18,10 @@ public sealed class GetDatabaseInstanceReplicaConfigurationResult /// public readonly string CaCertificate; /// + /// Specifies if a SQL Server replica is a cascadable replica. A cascadable replica is a SQL Server cross region replica that supports replica(s) under it. + /// + public readonly bool CascadableReplica; + /// /// PEM representation of the replica's x509 certificate. /// public readonly string ClientCertificate; @@ -62,6 +66,8 @@ public sealed class GetDatabaseInstanceReplicaConfigurationResult private GetDatabaseInstanceReplicaConfigurationResult( string caCertificate, + bool cascadableReplica, + string clientCertificate, string clientKey, @@ -83,6 +89,7 @@ private GetDatabaseInstanceReplicaConfigurationResult( bool verifyServerCertificate) { CaCertificate = caCertificate; + CascadableReplica = cascadableReplica; ClientCertificate = clientCertificate; ClientKey = clientKey; ConnectRetryInterval = connectRetryInterval; diff --git a/sdk/dotnet/Sql/Outputs/GetDatabaseInstancesInstanceReplicaConfigurationResult.cs b/sdk/dotnet/Sql/Outputs/GetDatabaseInstancesInstanceReplicaConfigurationResult.cs index 4f4d347f41..940a0e0f19 100644 --- a/sdk/dotnet/Sql/Outputs/GetDatabaseInstancesInstanceReplicaConfigurationResult.cs +++ b/sdk/dotnet/Sql/Outputs/GetDatabaseInstancesInstanceReplicaConfigurationResult.cs @@ -18,6 +18,10 @@ public sealed class GetDatabaseInstancesInstanceReplicaConfigurationResult /// public readonly string CaCertificate; /// + /// Specifies if a SQL Server replica is a cascadable replica. A cascadable replica is a SQL Server cross region replica that supports replica(s) under it. + /// + public readonly bool CascadableReplica; + /// /// PEM representation of the replica's x509 certificate. /// public readonly string ClientCertificate; @@ -62,6 +66,8 @@ public sealed class GetDatabaseInstancesInstanceReplicaConfigurationResult private GetDatabaseInstancesInstanceReplicaConfigurationResult( string caCertificate, + bool cascadableReplica, + string clientCertificate, string clientKey, @@ -83,6 +89,7 @@ private GetDatabaseInstancesInstanceReplicaConfigurationResult( bool verifyServerCertificate) { CaCertificate = caCertificate; + CascadableReplica = cascadableReplica; ClientCertificate = clientCertificate; ClientKey = clientKey; ConnectRetryInterval = connectRetryInterval; diff --git a/sdk/dotnet/Sql/Outputs/GetDatabaseInstancesInstanceResult.cs b/sdk/dotnet/Sql/Outputs/GetDatabaseInstancesInstanceResult.cs index 991b782c5a..c86d10f7d9 100644 --- a/sdk/dotnet/Sql/Outputs/GetDatabaseInstancesInstanceResult.cs +++ b/sdk/dotnet/Sql/Outputs/GetDatabaseInstancesInstanceResult.cs @@ -68,6 +68,10 @@ public sealed class GetDatabaseInstancesInstanceResult /// The configuration for replication. /// public readonly ImmutableArray ReplicaConfigurations; + /// + /// The replicas of the instance. + /// + public readonly ImmutableArray ReplicaNames; public readonly ImmutableArray RestoreBackupContexts; /// /// Initial root password. Required for MS SQL Server. @@ -127,6 +131,8 @@ private GetDatabaseInstancesInstanceResult( ImmutableArray replicaConfigurations, + ImmutableArray replicaNames, + ImmutableArray restoreBackupContexts, string rootPassword, @@ -158,6 +164,7 @@ private GetDatabaseInstancesInstanceResult( PublicIpAddress = publicIpAddress; Region = region; ReplicaConfigurations = replicaConfigurations; + ReplicaNames = replicaNames; RestoreBackupContexts = restoreBackupContexts; RootPassword = rootPassword; SelfLink = selfLink; diff --git a/sdk/dotnet/Storage/Inputs/InsightsReportConfigObjectMetadataReportOptionsArgs.cs b/sdk/dotnet/Storage/Inputs/InsightsReportConfigObjectMetadataReportOptionsArgs.cs index 3406a7da39..e5643b5a1c 100644 --- a/sdk/dotnet/Storage/Inputs/InsightsReportConfigObjectMetadataReportOptionsArgs.cs +++ b/sdk/dotnet/Storage/Inputs/InsightsReportConfigObjectMetadataReportOptionsArgs.cs @@ -32,7 +32,7 @@ public InputList MetadataFields public Input StorageDestinationOptions { get; set; } = null!; /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("storageFilters")] diff --git a/sdk/dotnet/Storage/Inputs/InsightsReportConfigObjectMetadataReportOptionsGetArgs.cs b/sdk/dotnet/Storage/Inputs/InsightsReportConfigObjectMetadataReportOptionsGetArgs.cs index 1f6a011dab..437e9ec818 100644 --- a/sdk/dotnet/Storage/Inputs/InsightsReportConfigObjectMetadataReportOptionsGetArgs.cs +++ b/sdk/dotnet/Storage/Inputs/InsightsReportConfigObjectMetadataReportOptionsGetArgs.cs @@ -32,7 +32,7 @@ public InputList MetadataFields public Input StorageDestinationOptions { get; set; } = null!; /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// [Input("storageFilters")] diff --git a/sdk/dotnet/Storage/Outputs/InsightsReportConfigObjectMetadataReportOptions.cs b/sdk/dotnet/Storage/Outputs/InsightsReportConfigObjectMetadataReportOptions.cs index cd21cc9e34..ba6e3d320d 100644 --- a/sdk/dotnet/Storage/Outputs/InsightsReportConfigObjectMetadataReportOptions.cs +++ b/sdk/dotnet/Storage/Outputs/InsightsReportConfigObjectMetadataReportOptions.cs @@ -23,7 +23,7 @@ public sealed class InsightsReportConfigObjectMetadataReportOptions /// public readonly Outputs.InsightsReportConfigObjectMetadataReportOptionsStorageDestinationOptions StorageDestinationOptions; /// - /// A nested object resource + /// A nested object resource. /// Structure is documented below. /// public readonly Outputs.InsightsReportConfigObjectMetadataReportOptionsStorageFilters? StorageFilters; diff --git a/sdk/dotnet/Tags/TagBinding.cs b/sdk/dotnet/Tags/TagBinding.cs index b8ca8845d8..b55662815c 100644 --- a/sdk/dotnet/Tags/TagBinding.cs +++ b/sdk/dotnet/Tags/TagBinding.cs @@ -47,7 +47,7 @@ namespace Pulumi.Gcp.Tags /// /// var @value = new Gcp.Tags.TagValue("value", new() /// { - /// Parent = key.Name.Apply(name => $"tagKeys/{name}"), + /// Parent = key.Id, /// ShortName = "valuename", /// Description = "For valuename resources.", /// }); @@ -55,7 +55,7 @@ namespace Pulumi.Gcp.Tags /// var binding = new Gcp.Tags.TagBinding("binding", new() /// { /// Parent = project.Number.Apply(number => $"//cloudresourcemanager.googleapis.com/projects/{number}"), - /// TagValue = @value.Name.Apply(name => $"tagValues/{name}"), + /// TagValue = @value.Id, /// }); /// /// }); diff --git a/sdk/dotnet/Tags/TagValue.cs b/sdk/dotnet/Tags/TagValue.cs index cb275bad5d..4d290b36ef 100644 --- a/sdk/dotnet/Tags/TagValue.cs +++ b/sdk/dotnet/Tags/TagValue.cs @@ -39,7 +39,7 @@ namespace Pulumi.Gcp.Tags /// /// var @value = new Gcp.Tags.TagValue("value", new() /// { - /// Parent = key.Name.Apply(name => $"tagKeys/{name}"), + /// Parent = key.Id, /// ShortName = "valuename", /// Description = "For valuename resources.", /// }); diff --git a/sdk/dotnet/Transcoder/Job.cs b/sdk/dotnet/Transcoder/Job.cs index 98d2122585..34fd6cf295 100644 --- a/sdk/dotnet/Transcoder/Job.cs +++ b/sdk/dotnet/Transcoder/Job.cs @@ -1088,11 +1088,23 @@ namespace Pulumi.Gcp.Transcoder /// /// Job can be imported using any of these accepted formats: /// + /// * `{{project}}/{{name}}` + /// + /// * `{{project}} {{name}}` + /// /// * `{{name}}` /// /// When using the `pulumi import` command, Job can be imported using one of the formats above. For example: /// /// ```sh + /// $ pulumi import gcp:transcoder/job:Job default {{project}}/{{name}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:transcoder/job:Job default "{{project}} {{name}}" + /// ``` + /// + /// ```sh /// $ pulumi import gcp:transcoder/job:Job default {{name}} /// ``` /// diff --git a/sdk/dotnet/Vertex/AiEndpoint.cs b/sdk/dotnet/Vertex/AiEndpoint.cs index a5a5823a2b..521b66b88c 100644 --- a/sdk/dotnet/Vertex/AiEndpoint.cs +++ b/sdk/dotnet/Vertex/AiEndpoint.cs @@ -25,6 +25,7 @@ namespace Pulumi.Gcp.Vertex /// ```csharp /// using System.Collections.Generic; /// using System.Linq; + /// using System.Text.Json; /// using Pulumi; /// using Gcp = Pulumi.Gcp; /// @@ -54,6 +55,15 @@ namespace Pulumi.Gcp.Vertex /// }, /// }); /// + /// var bqDataset = new Gcp.BigQuery.Dataset("bq_dataset", new() + /// { + /// DatasetId = "some_dataset", + /// FriendlyName = "logging dataset", + /// Description = "This is a dataset that requests are logged to", + /// Location = "US", + /// DeleteContentsOnDestroy = true, + /// }); + /// /// var project = Gcp.Organizations.GetProject.Invoke(); /// /// var endpoint = new Gcp.Vertex.AiEndpoint("endpoint", new() @@ -77,6 +87,24 @@ namespace Pulumi.Gcp.Vertex /// { /// KmsKeyName = "kms-name", /// }, + /// PredictRequestResponseLoggingConfig = new Gcp.Vertex.Inputs.AiEndpointPredictRequestResponseLoggingConfigArgs + /// { + /// BigqueryDestination = new Gcp.Vertex.Inputs.AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs + /// { + /// OutputUri = Output.Tuple(project, bqDataset.DatasetId).Apply(values => + /// { + /// var project = values.Item1; + /// var datasetId = values.Item2; + /// return $"bq://{project.Apply(getProjectResult => getProjectResult.ProjectId)}.{datasetId}.request_response_logging"; + /// }), + /// }, + /// Enabled = true, + /// SamplingRate = 0.1, + /// }, + /// TrafficSplit = JsonSerializer.Serialize(new Dictionary<string, object?> + /// { + /// ["12345"] = 100, + /// }), /// }, new CustomResourceOptions /// { /// DependsOn = @@ -94,6 +122,70 @@ namespace Pulumi.Gcp.Vertex /// /// }); /// ``` + /// ### Vertex Ai Endpoint Private Service Connect + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var project = Gcp.Organizations.GetProject.Invoke(); + /// + /// var endpoint = new Gcp.Vertex.AiEndpoint("endpoint", new() + /// { + /// Name = "endpoint-name_69391", + /// DisplayName = "sample-endpoint", + /// Description = "A sample vertex endpoint", + /// Location = "us-central1", + /// Region = "us-central1", + /// Labels = + /// { + /// { "label-one", "value-one" }, + /// }, + /// PrivateServiceConnectConfig = new Gcp.Vertex.Inputs.AiEndpointPrivateServiceConnectConfigArgs + /// { + /// EnablePrivateServiceConnect = true, + /// ProjectAllowlists = new[] + /// { + /// project.Apply(getProjectResult => getProjectResult.ProjectId), + /// }, + /// EnableSecurePrivateServiceConnect = false, + /// }, + /// }); + /// + /// }); + /// ``` + /// ### Vertex Ai Endpoint Dedicated Endpoint + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var endpoint = new Gcp.Vertex.AiEndpoint("endpoint", new() + /// { + /// Name = "endpoint-name_8270", + /// DisplayName = "sample-endpoint", + /// Description = "A sample vertex endpoint", + /// Location = "us-central1", + /// Region = "us-central1", + /// Labels = + /// { + /// { "label-one", "value-one" }, + /// }, + /// DedicatedEndpointEnabled = true, + /// }); + /// + /// var project = Gcp.Organizations.GetProject.Invoke(); + /// + /// }); + /// ``` /// /// ## Import /// @@ -129,6 +221,18 @@ public partial class AiEndpoint : global::Pulumi.CustomResource [Output("createTime")] public Output CreateTime { get; private set; } = null!; + /// + /// Output only. DNS of the dedicated endpoint. Will only be populated if dedicatedEndpointEnabled is true. Format: `https://{endpointId}.{region}-{projectNumber}.prediction.vertexai.goog`. + /// + [Output("dedicatedEndpointDns")] + public Output DedicatedEndpointDns { get; private set; } = null!; + + /// + /// If true, the endpoint will be exposed through a dedicated DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS will be isolated from other users' traffic and will have better performance and reliability. Note: Once you enabled dedicated endpoint, you won't be able to send request to the shared DNS {region}-aiplatform.googleapis.com. The limitation will be removed soon. + /// + [Output("dedicatedEndpointEnabled")] + public Output DedicatedEndpointEnabled { get; private set; } = null!; + /// /// Output only. The models deployed in this Endpoint. To add or remove DeployedModels use EndpointService.DeployModel and EndpointService.UndeployModel respectively. Models can also be deployed and undeployed using the [Cloud Console](https://console.cloud.google.com/vertex-ai/). /// Structure is documented below. @@ -197,11 +301,25 @@ public partial class AiEndpoint : global::Pulumi.CustomResource public Output Name { get; private set; } = null!; /// - /// The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. + /// The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. Only one of the fields, `network` or `privateServiceConnectConfig`, can be set. /// [Output("network")] public Output Network { get; private set; } = null!; + /// + /// Configures the request-response logging for online prediction. + /// Structure is documented below. + /// + [Output("predictRequestResponseLoggingConfig")] + public Output PredictRequestResponseLoggingConfig { get; private set; } = null!; + + /// + /// Configuration for private service connect. `network` and `privateServiceConnectConfig` are mutually exclusive. + /// Structure is documented below. + /// + [Output("privateServiceConnectConfig")] + public Output PrivateServiceConnectConfig { get; private set; } = null!; + /// /// The ID of the project in which the resource belongs. /// If it is not provided, the provider project is used. @@ -222,6 +340,18 @@ public partial class AiEndpoint : global::Pulumi.CustomResource [Output("region")] public Output Region { get; private set; } = null!; + /// + /// A map from a DeployedModel's id to the percentage of this Endpoint's traffic that should be forwarded to that DeployedModel. + /// If a DeployedModel's id is not listed in this map, then it receives no traffic. + /// The traffic percentage values must add up to 100, or map must be empty if the Endpoint is to not accept any traffic at a moment. + /// > **Note:** The `traffic_split` setting only applies after a model has been deployed to the endpoint. Re-applying a `gcp.vertex.AiEndpoint` + /// resource without updating the `traffic_split` post-deployment may lead to your deployed `traffic_split` being lost; see + /// the `deployModel` [example](https://cloud.google.com/vertex-ai/docs/general/deployment#deploy_a_model_to_an_endpoint) and + /// [documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1beta1/projects.locations.endpoints/deployModel) for details. + /// + [Output("trafficSplit")] + public Output TrafficSplit { get; private set; } = null!; + /// /// Output only. Timestamp when this Endpoint was last updated. /// @@ -279,6 +409,12 @@ public static AiEndpoint Get(string name, Input id, AiEndpointState? sta public sealed class AiEndpointArgs : global::Pulumi.ResourceArgs { + /// + /// If true, the endpoint will be exposed through a dedicated DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS will be isolated from other users' traffic and will have better performance and reliability. Note: Once you enabled dedicated endpoint, you won't be able to send request to the shared DNS {region}-aiplatform.googleapis.com. The limitation will be removed soon. + /// + [Input("dedicatedEndpointEnabled")] + public Input? DedicatedEndpointEnabled { get; set; } + /// /// The description of the Endpoint. /// @@ -328,11 +464,25 @@ public InputMap Labels public Input? Name { get; set; } /// - /// The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. + /// The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. Only one of the fields, `network` or `privateServiceConnectConfig`, can be set. /// [Input("network")] public Input? Network { get; set; } + /// + /// Configures the request-response logging for online prediction. + /// Structure is documented below. + /// + [Input("predictRequestResponseLoggingConfig")] + public Input? PredictRequestResponseLoggingConfig { get; set; } + + /// + /// Configuration for private service connect. `network` and `privateServiceConnectConfig` are mutually exclusive. + /// Structure is documented below. + /// + [Input("privateServiceConnectConfig")] + public Input? PrivateServiceConnectConfig { get; set; } + /// /// The ID of the project in which the resource belongs. /// If it is not provided, the provider project is used. @@ -346,6 +496,18 @@ public InputMap Labels [Input("region")] public Input? Region { get; set; } + /// + /// A map from a DeployedModel's id to the percentage of this Endpoint's traffic that should be forwarded to that DeployedModel. + /// If a DeployedModel's id is not listed in this map, then it receives no traffic. + /// The traffic percentage values must add up to 100, or map must be empty if the Endpoint is to not accept any traffic at a moment. + /// > **Note:** The `traffic_split` setting only applies after a model has been deployed to the endpoint. Re-applying a `gcp.vertex.AiEndpoint` + /// resource without updating the `traffic_split` post-deployment may lead to your deployed `traffic_split` being lost; see + /// the `deployModel` [example](https://cloud.google.com/vertex-ai/docs/general/deployment#deploy_a_model_to_an_endpoint) and + /// [documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1beta1/projects.locations.endpoints/deployModel) for details. + /// + [Input("trafficSplit")] + public Input? TrafficSplit { get; set; } + public AiEndpointArgs() { } @@ -361,6 +523,18 @@ public sealed class AiEndpointState : global::Pulumi.ResourceArgs [Input("createTime")] public Input? CreateTime { get; set; } + /// + /// Output only. DNS of the dedicated endpoint. Will only be populated if dedicatedEndpointEnabled is true. Format: `https://{endpointId}.{region}-{projectNumber}.prediction.vertexai.goog`. + /// + [Input("dedicatedEndpointDns")] + public Input? DedicatedEndpointDns { get; set; } + + /// + /// If true, the endpoint will be exposed through a dedicated DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS will be isolated from other users' traffic and will have better performance and reliability. Note: Once you enabled dedicated endpoint, you won't be able to send request to the shared DNS {region}-aiplatform.googleapis.com. The limitation will be removed soon. + /// + [Input("dedicatedEndpointEnabled")] + public Input? DedicatedEndpointEnabled { get; set; } + [Input("deployedModels")] private InputList? _deployedModels; @@ -451,11 +625,25 @@ public InputMap Labels public Input? Name { get; set; } /// - /// The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. + /// The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. Only one of the fields, `network` or `privateServiceConnectConfig`, can be set. /// [Input("network")] public Input? Network { get; set; } + /// + /// Configures the request-response logging for online prediction. + /// Structure is documented below. + /// + [Input("predictRequestResponseLoggingConfig")] + public Input? PredictRequestResponseLoggingConfig { get; set; } + + /// + /// Configuration for private service connect. `network` and `privateServiceConnectConfig` are mutually exclusive. + /// Structure is documented below. + /// + [Input("privateServiceConnectConfig")] + public Input? PrivateServiceConnectConfig { get; set; } + /// /// The ID of the project in which the resource belongs. /// If it is not provided, the provider project is used. @@ -486,6 +674,18 @@ public InputMap PulumiLabels [Input("region")] public Input? Region { get; set; } + /// + /// A map from a DeployedModel's id to the percentage of this Endpoint's traffic that should be forwarded to that DeployedModel. + /// If a DeployedModel's id is not listed in this map, then it receives no traffic. + /// The traffic percentage values must add up to 100, or map must be empty if the Endpoint is to not accept any traffic at a moment. + /// > **Note:** The `traffic_split` setting only applies after a model has been deployed to the endpoint. Re-applying a `gcp.vertex.AiEndpoint` + /// resource without updating the `traffic_split` post-deployment may lead to your deployed `traffic_split` being lost; see + /// the `deployModel` [example](https://cloud.google.com/vertex-ai/docs/general/deployment#deploy_a_model_to_an_endpoint) and + /// [documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1beta1/projects.locations.endpoints/deployModel) for details. + /// + [Input("trafficSplit")] + public Input? TrafficSplit { get; set; } + /// /// Output only. Timestamp when this Endpoint was last updated. /// diff --git a/sdk/dotnet/Vertex/AiFeatureOnlineStoreFeatureview.cs b/sdk/dotnet/Vertex/AiFeatureOnlineStoreFeatureview.cs index bbc855b456..8d069a180a 100644 --- a/sdk/dotnet/Vertex/AiFeatureOnlineStoreFeatureview.cs +++ b/sdk/dotnet/Vertex/AiFeatureOnlineStoreFeatureview.cs @@ -258,8 +258,8 @@ namespace Pulumi.Gcp.Vertex /// /// var project = new Gcp.Organizations.Project("project", new() /// { - /// ProjectId = "tf-test_69391", - /// Name = "tf-test_8270", + /// ProjectId = "tf-test_41150", + /// Name = "tf-test_89313", /// OrgId = "123456789", /// BillingAccount = "000000-0000000-0000000-000000", /// DeletionPolicy = "DELETE", diff --git a/sdk/dotnet/Vertex/Inputs/AiEndpointPredictRequestResponseLoggingConfigArgs.cs b/sdk/dotnet/Vertex/Inputs/AiEndpointPredictRequestResponseLoggingConfigArgs.cs new file mode 100644 index 0000000000..a5d53d16be --- /dev/null +++ b/sdk/dotnet/Vertex/Inputs/AiEndpointPredictRequestResponseLoggingConfigArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Vertex.Inputs +{ + + public sealed class AiEndpointPredictRequestResponseLoggingConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// BigQuery table for logging. If only given a project, a new dataset will be created with name `logging_<endpoint-display-name>_<endpoint-id>` where will be made BigQuery-dataset-name compatible (e.g. most special characters will become underscores). If no table name is given, a new table will be created with name `request_response_logging` + /// Structure is documented below. + /// + [Input("bigqueryDestination")] + public Input? BigqueryDestination { get; set; } + + /// + /// If logging is enabled or not. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + /// + /// Percentage of requests to be logged, expressed as a fraction in range(0,1] + /// + [Input("samplingRate")] + public Input? SamplingRate { get; set; } + + public AiEndpointPredictRequestResponseLoggingConfigArgs() + { + } + public static new AiEndpointPredictRequestResponseLoggingConfigArgs Empty => new AiEndpointPredictRequestResponseLoggingConfigArgs(); + } +} diff --git a/sdk/dotnet/Vertex/Inputs/AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs.cs b/sdk/dotnet/Vertex/Inputs/AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs.cs new file mode 100644 index 0000000000..021c74ab56 --- /dev/null +++ b/sdk/dotnet/Vertex/Inputs/AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Vertex.Inputs +{ + + public sealed class AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs : global::Pulumi.ResourceArgs + { + /// + /// BigQuery URI to a project or table, up to 2000 characters long. When only the project is specified, the Dataset and Table is created. When the full table reference is specified, the Dataset must exist and table must not exist. Accepted forms: - BigQuery path. For example: `bq://projectId` or `bq://projectId.bqDatasetId` or `bq://projectId.bqDatasetId.bqTableId`. + /// + [Input("outputUri")] + public Input? OutputUri { get; set; } + + public AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs() + { + } + public static new AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs Empty => new AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs(); + } +} diff --git a/sdk/dotnet/Vertex/Inputs/AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationGetArgs.cs b/sdk/dotnet/Vertex/Inputs/AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationGetArgs.cs new file mode 100644 index 0000000000..8708f3b490 --- /dev/null +++ b/sdk/dotnet/Vertex/Inputs/AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationGetArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Vertex.Inputs +{ + + public sealed class AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationGetArgs : global::Pulumi.ResourceArgs + { + /// + /// BigQuery URI to a project or table, up to 2000 characters long. When only the project is specified, the Dataset and Table is created. When the full table reference is specified, the Dataset must exist and table must not exist. Accepted forms: - BigQuery path. For example: `bq://projectId` or `bq://projectId.bqDatasetId` or `bq://projectId.bqDatasetId.bqTableId`. + /// + [Input("outputUri")] + public Input? OutputUri { get; set; } + + public AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationGetArgs() + { + } + public static new AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationGetArgs Empty => new AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationGetArgs(); + } +} diff --git a/sdk/dotnet/Vertex/Inputs/AiEndpointPredictRequestResponseLoggingConfigGetArgs.cs b/sdk/dotnet/Vertex/Inputs/AiEndpointPredictRequestResponseLoggingConfigGetArgs.cs new file mode 100644 index 0000000000..8d2092ad56 --- /dev/null +++ b/sdk/dotnet/Vertex/Inputs/AiEndpointPredictRequestResponseLoggingConfigGetArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Vertex.Inputs +{ + + public sealed class AiEndpointPredictRequestResponseLoggingConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// BigQuery table for logging. If only given a project, a new dataset will be created with name `logging_<endpoint-display-name>_<endpoint-id>` where will be made BigQuery-dataset-name compatible (e.g. most special characters will become underscores). If no table name is given, a new table will be created with name `request_response_logging` + /// Structure is documented below. + /// + [Input("bigqueryDestination")] + public Input? BigqueryDestination { get; set; } + + /// + /// If logging is enabled or not. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + /// + /// Percentage of requests to be logged, expressed as a fraction in range(0,1] + /// + [Input("samplingRate")] + public Input? SamplingRate { get; set; } + + public AiEndpointPredictRequestResponseLoggingConfigGetArgs() + { + } + public static new AiEndpointPredictRequestResponseLoggingConfigGetArgs Empty => new AiEndpointPredictRequestResponseLoggingConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Vertex/Inputs/AiEndpointPrivateServiceConnectConfigArgs.cs b/sdk/dotnet/Vertex/Inputs/AiEndpointPrivateServiceConnectConfigArgs.cs new file mode 100644 index 0000000000..6a450d8e82 --- /dev/null +++ b/sdk/dotnet/Vertex/Inputs/AiEndpointPrivateServiceConnectConfigArgs.cs @@ -0,0 +1,44 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Vertex.Inputs +{ + + public sealed class AiEndpointPrivateServiceConnectConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// Required. If true, expose the IndexEndpoint via private service connect. + /// + [Input("enablePrivateServiceConnect", required: true)] + public Input EnablePrivateServiceConnect { get; set; } = null!; + + /// + /// If set to true, enable secure private service connect with IAM authorization. Otherwise, private service connect will be done without authorization. Note latency will be slightly increased if authorization is enabled. + /// + [Input("enableSecurePrivateServiceConnect")] + public Input? EnableSecurePrivateServiceConnect { get; set; } + + [Input("projectAllowlists")] + private InputList? _projectAllowlists; + + /// + /// A list of Projects from which the forwarding rule will target the service attachment. + /// + public InputList ProjectAllowlists + { + get => _projectAllowlists ?? (_projectAllowlists = new InputList()); + set => _projectAllowlists = value; + } + + public AiEndpointPrivateServiceConnectConfigArgs() + { + } + public static new AiEndpointPrivateServiceConnectConfigArgs Empty => new AiEndpointPrivateServiceConnectConfigArgs(); + } +} diff --git a/sdk/dotnet/Vertex/Inputs/AiEndpointPrivateServiceConnectConfigGetArgs.cs b/sdk/dotnet/Vertex/Inputs/AiEndpointPrivateServiceConnectConfigGetArgs.cs new file mode 100644 index 0000000000..e88cc67177 --- /dev/null +++ b/sdk/dotnet/Vertex/Inputs/AiEndpointPrivateServiceConnectConfigGetArgs.cs @@ -0,0 +1,44 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Vertex.Inputs +{ + + public sealed class AiEndpointPrivateServiceConnectConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Required. If true, expose the IndexEndpoint via private service connect. + /// + [Input("enablePrivateServiceConnect", required: true)] + public Input EnablePrivateServiceConnect { get; set; } = null!; + + /// + /// If set to true, enable secure private service connect with IAM authorization. Otherwise, private service connect will be done without authorization. Note latency will be slightly increased if authorization is enabled. + /// + [Input("enableSecurePrivateServiceConnect")] + public Input? EnableSecurePrivateServiceConnect { get; set; } + + [Input("projectAllowlists")] + private InputList? _projectAllowlists; + + /// + /// A list of Projects from which the forwarding rule will target the service attachment. + /// + public InputList ProjectAllowlists + { + get => _projectAllowlists ?? (_projectAllowlists = new InputList()); + set => _projectAllowlists = value; + } + + public AiEndpointPrivateServiceConnectConfigGetArgs() + { + } + public static new AiEndpointPrivateServiceConnectConfigGetArgs Empty => new AiEndpointPrivateServiceConnectConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Vertex/Outputs/AiEndpointPredictRequestResponseLoggingConfig.cs b/sdk/dotnet/Vertex/Outputs/AiEndpointPredictRequestResponseLoggingConfig.cs new file mode 100644 index 0000000000..b3871243a1 --- /dev/null +++ b/sdk/dotnet/Vertex/Outputs/AiEndpointPredictRequestResponseLoggingConfig.cs @@ -0,0 +1,43 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Vertex.Outputs +{ + + [OutputType] + public sealed class AiEndpointPredictRequestResponseLoggingConfig + { + /// + /// BigQuery table for logging. If only given a project, a new dataset will be created with name `logging_<endpoint-display-name>_<endpoint-id>` where will be made BigQuery-dataset-name compatible (e.g. most special characters will become underscores). If no table name is given, a new table will be created with name `request_response_logging` + /// Structure is documented below. + /// + public readonly Outputs.AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination? BigqueryDestination; + /// + /// If logging is enabled or not. + /// + public readonly bool? Enabled; + /// + /// Percentage of requests to be logged, expressed as a fraction in range(0,1] + /// + public readonly double? SamplingRate; + + [OutputConstructor] + private AiEndpointPredictRequestResponseLoggingConfig( + Outputs.AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination? bigqueryDestination, + + bool? enabled, + + double? samplingRate) + { + BigqueryDestination = bigqueryDestination; + Enabled = enabled; + SamplingRate = samplingRate; + } + } +} diff --git a/sdk/dotnet/Vertex/Outputs/AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination.cs b/sdk/dotnet/Vertex/Outputs/AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination.cs new file mode 100644 index 0000000000..48259d3421 --- /dev/null +++ b/sdk/dotnet/Vertex/Outputs/AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Vertex.Outputs +{ + + [OutputType] + public sealed class AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination + { + /// + /// BigQuery URI to a project or table, up to 2000 characters long. When only the project is specified, the Dataset and Table is created. When the full table reference is specified, the Dataset must exist and table must not exist. Accepted forms: - BigQuery path. For example: `bq://projectId` or `bq://projectId.bqDatasetId` or `bq://projectId.bqDatasetId.bqTableId`. + /// + public readonly string? OutputUri; + + [OutputConstructor] + private AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination(string? outputUri) + { + OutputUri = outputUri; + } + } +} diff --git a/sdk/dotnet/Vertex/Outputs/AiEndpointPrivateServiceConnectConfig.cs b/sdk/dotnet/Vertex/Outputs/AiEndpointPrivateServiceConnectConfig.cs new file mode 100644 index 0000000000..f1a4a47d68 --- /dev/null +++ b/sdk/dotnet/Vertex/Outputs/AiEndpointPrivateServiceConnectConfig.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Vertex.Outputs +{ + + [OutputType] + public sealed class AiEndpointPrivateServiceConnectConfig + { + /// + /// Required. If true, expose the IndexEndpoint via private service connect. + /// + public readonly bool EnablePrivateServiceConnect; + /// + /// If set to true, enable secure private service connect with IAM authorization. Otherwise, private service connect will be done without authorization. Note latency will be slightly increased if authorization is enabled. + /// + public readonly bool? EnableSecurePrivateServiceConnect; + /// + /// A list of Projects from which the forwarding rule will target the service attachment. + /// + public readonly ImmutableArray ProjectAllowlists; + + [OutputConstructor] + private AiEndpointPrivateServiceConnectConfig( + bool enablePrivateServiceConnect, + + bool? enableSecurePrivateServiceConnect, + + ImmutableArray projectAllowlists) + { + EnablePrivateServiceConnect = enablePrivateServiceConnect; + EnableSecurePrivateServiceConnect = enableSecurePrivateServiceConnect; + ProjectAllowlists = projectAllowlists; + } + } +} diff --git a/sdk/dotnet/Workbench/Instance.cs b/sdk/dotnet/Workbench/Instance.cs index 264ebe730e..6ecfc3f3d2 100644 --- a/sdk/dotnet/Workbench/Instance.cs +++ b/sdk/dotnet/Workbench/Instance.cs @@ -349,7 +349,9 @@ public partial class Instance : global::Pulumi.CustomResource /// /// 'Optional. Input only. The owner of this instance after creation. Format: /// `alias@example.com` Currently supports one owner only. If not specified, all of - /// the service account users of your VM instance''s service account can use the instance.' + /// the service account users of your VM instance''s service account can use the instance. + /// If specified, sets the access mode to `Single user`. For more details, see + /// https://cloud.google.com/vertex-ai/docs/workbench/instances/manage-access-jupyterlab' /// [Output("instanceOwners")] public Output> InstanceOwners { get; private set; } = null!; @@ -502,7 +504,9 @@ public sealed class InstanceArgs : global::Pulumi.ResourceArgs /// /// 'Optional. Input only. The owner of this instance after creation. Format: /// `alias@example.com` Currently supports one owner only. If not specified, all of - /// the service account users of your VM instance''s service account can use the instance.' + /// the service account users of your VM instance''s service account can use the instance. + /// If specified, sets the access mode to `Single user`. For more details, see + /// https://cloud.google.com/vertex-ai/docs/workbench/instances/manage-access-jupyterlab' /// public InputList InstanceOwners { @@ -636,7 +640,9 @@ public InputList HealthInfos /// /// 'Optional. Input only. The owner of this instance after creation. Format: /// `alias@example.com` Currently supports one owner only. If not specified, all of - /// the service account users of your VM instance''s service account can use the instance.' + /// the service account users of your VM instance''s service account can use the instance. + /// If specified, sets the access mode to `Single user`. For more details, see + /// https://cloud.google.com/vertex-ai/docs/workbench/instances/manage-access-jupyterlab' /// public InputList InstanceOwners { diff --git a/sdk/dotnet/Workflows/Workflow.cs b/sdk/dotnet/Workflows/Workflow.cs index 39b2327c86..bc350fd704 100644 --- a/sdk/dotnet/Workflows/Workflow.cs +++ b/sdk/dotnet/Workflows/Workflow.cs @@ -51,6 +51,7 @@ namespace Pulumi.Gcp.Workflows /// { /// { "url", "https://timeapi.io/api/Time/current/zone?timeZone=Europe/Amsterdam" }, /// }, + /// DeletionProtection = false, /// SourceContents = @"# This is a sample workflow. You can replace it with your source code. /// # /// # This workflow does the following: @@ -112,6 +113,9 @@ public partial class Workflow : global::Pulumi.CustomResource [Output("cryptoKeyName")] public Output CryptoKeyName { get; private set; } = null!; + [Output("deletionProtection")] + public Output DeletionProtection { get; private set; } = null!; + /// /// Description of the workflow provided by the user. Must be at most 1000 unicode characters long. /// @@ -275,6 +279,9 @@ public sealed class WorkflowArgs : global::Pulumi.ResourceArgs [Input("cryptoKeyName")] public Input? CryptoKeyName { get; set; } + [Input("deletionProtection")] + public Input? DeletionProtection { get; set; } + /// /// Description of the workflow provided by the user. Must be at most 1000 unicode characters long. /// @@ -382,6 +389,9 @@ public sealed class WorkflowState : global::Pulumi.ResourceArgs [Input("cryptoKeyName")] public Input? CryptoKeyName { get; set; } + [Input("deletionProtection")] + public Input? DeletionProtection { get; set; } + /// /// Description of the workflow provided by the user. Must be at most 1000 unicode characters long. /// diff --git a/sdk/dotnet/Workstations/WorkstationConfig.cs b/sdk/dotnet/Workstations/WorkstationConfig.cs index e944abcf92..6bbeb8ade1 100644 --- a/sdk/dotnet/Workstations/WorkstationConfig.cs +++ b/sdk/dotnet/Workstations/WorkstationConfig.cs @@ -30,7 +30,7 @@ namespace Pulumi.Gcp.Workstations /// /// var tagValue1 = new Gcp.Tags.TagValue("tag_value1", new() /// { - /// Parent = tagKey1.Name.Apply(name => $"tagKeys/{name}"), + /// Parent = tagKey1.Id, /// ShortName = "valuename", /// }); /// @@ -93,13 +93,13 @@ namespace Pulumi.Gcp.Workstations /// BootDiskSizeGb = 35, /// DisablePublicIpAddresses = true, /// DisableSsh = false, - /// VmTags = Output.Tuple(tagKey1.Name, tagValue1.Name).Apply(values => + /// VmTags = Output.Tuple(tagKey1.Id, tagValue1.Id).Apply(values => /// { - /// var tagKey1Name = values.Item1; - /// var tagValue1Name = values.Item2; + /// var tagKey1Id = values.Item1; + /// var tagValue1Id = values.Item2; /// return /// { - /// { $"tagKeys/{tagKey1Name}", $"tagValues/{tagValue1Name}" }, + /// { tagKey1Id, tagValue1Id }, /// }; /// }), /// }, diff --git a/sdk/go/gcp/activedirectory/domain.go b/sdk/go/gcp/activedirectory/domain.go index ad4832a4d0..f930f1c930 100644 --- a/sdk/go/gcp/activedirectory/domain.go +++ b/sdk/go/gcp/activedirectory/domain.go @@ -57,11 +57,23 @@ import ( // // Domain can be imported using any of these accepted formats: // +// * `{{project}}/{{name}}` +// +// * `{{project}} {{name}}` +// // * `{{name}}` // // When using the `pulumi import` command, Domain can be imported using one of the formats above. For example: // // ```sh +// $ pulumi import gcp:activedirectory/domain:Domain default {{project}}/{{name}} +// ``` +// +// ```sh +// $ pulumi import gcp:activedirectory/domain:Domain default "{{project}} {{name}}" +// ``` +// +// ```sh // $ pulumi import gcp:activedirectory/domain:Domain default {{name}} // ``` type Domain struct { diff --git a/sdk/go/gcp/apigee/api.go b/sdk/go/gcp/apigee/api.go new file mode 100644 index 0000000000..7fd9b1ed42 --- /dev/null +++ b/sdk/go/gcp/apigee/api.go @@ -0,0 +1,343 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package apigee + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// To get more information about API proxies see, see: +// +// * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.apis) +// * How-to Guides +// - [API proxies](https://cloud.google.com/apigee/docs/resources) +// +// ## Import +// +// An API proxy can be imported using any of these accepted formats: +// +// * `{{org_id}}/apis/{{name}}` +// +// * `{{org_id}}/{{name}}` +// +// When using the `pulumi import` command, API proxy can be imported using one of the formats above. For example: +// +// ```sh +// $ pulumi import gcp:apigee/api:Api default {{org_id}}/apis/{{name}} +// ``` +// +// ```sh +// $ pulumi import gcp:apigee/api:Api default {{org_id}}/{{name}} +// ``` +type Api struct { + pulumi.CustomResourceState + + // Path to the config zip bundle. + // + // *** + ConfigBundle pulumi.StringOutput `pulumi:"configBundle"` + DetectMd5hash pulumi.StringPtrOutput `pulumi:"detectMd5hash"` + // The id of the most recently created revision for this API proxy. + LatestRevisionId pulumi.StringOutput `pulumi:"latestRevisionId"` + // (Computed) Base 64 MD5 hash of the uploaded data. It is speculative as remote does not return hash of the bundle. Remote changes are detected using returned lastModified timestamp. + Md5hash pulumi.StringOutput `pulumi:"md5hash"` + // Metadata describing the API proxy. + // Structure is documented below. + MetaDatas ApiMetaDataArrayOutput `pulumi:"metaDatas"` + // The ID of the API proxy. + Name pulumi.StringOutput `pulumi:"name"` + // The Apigee Organization name associated with the Apigee instance. + OrgId pulumi.StringOutput `pulumi:"orgId"` + // A list of revisions of this API proxy. + Revisions pulumi.StringArrayOutput `pulumi:"revisions"` +} + +// NewApi registers a new resource with the given unique name, arguments, and options. +func NewApi(ctx *pulumi.Context, + name string, args *ApiArgs, opts ...pulumi.ResourceOption) (*Api, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.ConfigBundle == nil { + return nil, errors.New("invalid value for required argument 'ConfigBundle'") + } + if args.OrgId == nil { + return nil, errors.New("invalid value for required argument 'OrgId'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource Api + err := ctx.RegisterResource("gcp:apigee/api:Api", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetApi gets an existing Api resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetApi(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ApiState, opts ...pulumi.ResourceOption) (*Api, error) { + var resource Api + err := ctx.ReadResource("gcp:apigee/api:Api", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Api resources. +type apiState struct { + // Path to the config zip bundle. + // + // *** + ConfigBundle *string `pulumi:"configBundle"` + DetectMd5hash *string `pulumi:"detectMd5hash"` + // The id of the most recently created revision for this API proxy. + LatestRevisionId *string `pulumi:"latestRevisionId"` + // (Computed) Base 64 MD5 hash of the uploaded data. It is speculative as remote does not return hash of the bundle. Remote changes are detected using returned lastModified timestamp. + Md5hash *string `pulumi:"md5hash"` + // Metadata describing the API proxy. + // Structure is documented below. + MetaDatas []ApiMetaData `pulumi:"metaDatas"` + // The ID of the API proxy. + Name *string `pulumi:"name"` + // The Apigee Organization name associated with the Apigee instance. + OrgId *string `pulumi:"orgId"` + // A list of revisions of this API proxy. + Revisions []string `pulumi:"revisions"` +} + +type ApiState struct { + // Path to the config zip bundle. + // + // *** + ConfigBundle pulumi.StringPtrInput + DetectMd5hash pulumi.StringPtrInput + // The id of the most recently created revision for this API proxy. + LatestRevisionId pulumi.StringPtrInput + // (Computed) Base 64 MD5 hash of the uploaded data. It is speculative as remote does not return hash of the bundle. Remote changes are detected using returned lastModified timestamp. + Md5hash pulumi.StringPtrInput + // Metadata describing the API proxy. + // Structure is documented below. + MetaDatas ApiMetaDataArrayInput + // The ID of the API proxy. + Name pulumi.StringPtrInput + // The Apigee Organization name associated with the Apigee instance. + OrgId pulumi.StringPtrInput + // A list of revisions of this API proxy. + Revisions pulumi.StringArrayInput +} + +func (ApiState) ElementType() reflect.Type { + return reflect.TypeOf((*apiState)(nil)).Elem() +} + +type apiArgs struct { + // Path to the config zip bundle. + // + // *** + ConfigBundle string `pulumi:"configBundle"` + DetectMd5hash *string `pulumi:"detectMd5hash"` + // The ID of the API proxy. + Name *string `pulumi:"name"` + // The Apigee Organization name associated with the Apigee instance. + OrgId string `pulumi:"orgId"` +} + +// The set of arguments for constructing a Api resource. +type ApiArgs struct { + // Path to the config zip bundle. + // + // *** + ConfigBundle pulumi.StringInput + DetectMd5hash pulumi.StringPtrInput + // The ID of the API proxy. + Name pulumi.StringPtrInput + // The Apigee Organization name associated with the Apigee instance. + OrgId pulumi.StringInput +} + +func (ApiArgs) ElementType() reflect.Type { + return reflect.TypeOf((*apiArgs)(nil)).Elem() +} + +type ApiInput interface { + pulumi.Input + + ToApiOutput() ApiOutput + ToApiOutputWithContext(ctx context.Context) ApiOutput +} + +func (*Api) ElementType() reflect.Type { + return reflect.TypeOf((**Api)(nil)).Elem() +} + +func (i *Api) ToApiOutput() ApiOutput { + return i.ToApiOutputWithContext(context.Background()) +} + +func (i *Api) ToApiOutputWithContext(ctx context.Context) ApiOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApiOutput) +} + +// ApiArrayInput is an input type that accepts ApiArray and ApiArrayOutput values. +// You can construct a concrete instance of `ApiArrayInput` via: +// +// ApiArray{ ApiArgs{...} } +type ApiArrayInput interface { + pulumi.Input + + ToApiArrayOutput() ApiArrayOutput + ToApiArrayOutputWithContext(context.Context) ApiArrayOutput +} + +type ApiArray []ApiInput + +func (ApiArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Api)(nil)).Elem() +} + +func (i ApiArray) ToApiArrayOutput() ApiArrayOutput { + return i.ToApiArrayOutputWithContext(context.Background()) +} + +func (i ApiArray) ToApiArrayOutputWithContext(ctx context.Context) ApiArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApiArrayOutput) +} + +// ApiMapInput is an input type that accepts ApiMap and ApiMapOutput values. +// You can construct a concrete instance of `ApiMapInput` via: +// +// ApiMap{ "key": ApiArgs{...} } +type ApiMapInput interface { + pulumi.Input + + ToApiMapOutput() ApiMapOutput + ToApiMapOutputWithContext(context.Context) ApiMapOutput +} + +type ApiMap map[string]ApiInput + +func (ApiMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Api)(nil)).Elem() +} + +func (i ApiMap) ToApiMapOutput() ApiMapOutput { + return i.ToApiMapOutputWithContext(context.Background()) +} + +func (i ApiMap) ToApiMapOutputWithContext(ctx context.Context) ApiMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApiMapOutput) +} + +type ApiOutput struct{ *pulumi.OutputState } + +func (ApiOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Api)(nil)).Elem() +} + +func (o ApiOutput) ToApiOutput() ApiOutput { + return o +} + +func (o ApiOutput) ToApiOutputWithContext(ctx context.Context) ApiOutput { + return o +} + +// Path to the config zip bundle. +// +// *** +func (o ApiOutput) ConfigBundle() pulumi.StringOutput { + return o.ApplyT(func(v *Api) pulumi.StringOutput { return v.ConfigBundle }).(pulumi.StringOutput) +} + +func (o ApiOutput) DetectMd5hash() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Api) pulumi.StringPtrOutput { return v.DetectMd5hash }).(pulumi.StringPtrOutput) +} + +// The id of the most recently created revision for this API proxy. +func (o ApiOutput) LatestRevisionId() pulumi.StringOutput { + return o.ApplyT(func(v *Api) pulumi.StringOutput { return v.LatestRevisionId }).(pulumi.StringOutput) +} + +// (Computed) Base 64 MD5 hash of the uploaded data. It is speculative as remote does not return hash of the bundle. Remote changes are detected using returned lastModified timestamp. +func (o ApiOutput) Md5hash() pulumi.StringOutput { + return o.ApplyT(func(v *Api) pulumi.StringOutput { return v.Md5hash }).(pulumi.StringOutput) +} + +// Metadata describing the API proxy. +// Structure is documented below. +func (o ApiOutput) MetaDatas() ApiMetaDataArrayOutput { + return o.ApplyT(func(v *Api) ApiMetaDataArrayOutput { return v.MetaDatas }).(ApiMetaDataArrayOutput) +} + +// The ID of the API proxy. +func (o ApiOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *Api) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The Apigee Organization name associated with the Apigee instance. +func (o ApiOutput) OrgId() pulumi.StringOutput { + return o.ApplyT(func(v *Api) pulumi.StringOutput { return v.OrgId }).(pulumi.StringOutput) +} + +// A list of revisions of this API proxy. +func (o ApiOutput) Revisions() pulumi.StringArrayOutput { + return o.ApplyT(func(v *Api) pulumi.StringArrayOutput { return v.Revisions }).(pulumi.StringArrayOutput) +} + +type ApiArrayOutput struct{ *pulumi.OutputState } + +func (ApiArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Api)(nil)).Elem() +} + +func (o ApiArrayOutput) ToApiArrayOutput() ApiArrayOutput { + return o +} + +func (o ApiArrayOutput) ToApiArrayOutputWithContext(ctx context.Context) ApiArrayOutput { + return o +} + +func (o ApiArrayOutput) Index(i pulumi.IntInput) ApiOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Api { + return vs[0].([]*Api)[vs[1].(int)] + }).(ApiOutput) +} + +type ApiMapOutput struct{ *pulumi.OutputState } + +func (ApiMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Api)(nil)).Elem() +} + +func (o ApiMapOutput) ToApiMapOutput() ApiMapOutput { + return o +} + +func (o ApiMapOutput) ToApiMapOutputWithContext(ctx context.Context) ApiMapOutput { + return o +} + +func (o ApiMapOutput) MapIndex(k pulumi.StringInput) ApiOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Api { + return vs[0].(map[string]*Api)[vs[1].(string)] + }).(ApiOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ApiInput)(nil)).Elem(), &Api{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApiArrayInput)(nil)).Elem(), ApiArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApiMapInput)(nil)).Elem(), ApiMap{}) + pulumi.RegisterOutputType(ApiOutput{}) + pulumi.RegisterOutputType(ApiArrayOutput{}) + pulumi.RegisterOutputType(ApiMapOutput{}) +} diff --git a/sdk/go/gcp/apigee/init.go b/sdk/go/gcp/apigee/init.go index a8ec8bef4f..67d00d5597 100644 --- a/sdk/go/gcp/apigee/init.go +++ b/sdk/go/gcp/apigee/init.go @@ -23,6 +23,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi switch typ { case "gcp:apigee/addonsConfig:AddonsConfig": r = &AddonsConfig{} + case "gcp:apigee/api:Api": + r = &Api{} case "gcp:apigee/appGroup:AppGroup": r = &AppGroup{} case "gcp:apigee/developer:Developer": @@ -91,6 +93,11 @@ func init() { "apigee/addonsConfig", &module{version}, ) + pulumi.RegisterResourceModule( + "gcp", + "apigee/api", + &module{version}, + ) pulumi.RegisterResourceModule( "gcp", "apigee/appGroup", diff --git a/sdk/go/gcp/apigee/pulumiTypes.go b/sdk/go/gcp/apigee/pulumiTypes.go index 2b186f9fc9..c39b0a29ab 100644 --- a/sdk/go/gcp/apigee/pulumiTypes.go +++ b/sdk/go/gcp/apigee/pulumiTypes.go @@ -987,6 +987,121 @@ func (o AddonsConfigAddonsConfigMonetizationConfigPtrOutput) Enabled() pulumi.Bo }).(pulumi.BoolPtrOutput) } +type ApiMetaData struct { + // Time at which the API proxy was created, in milliseconds since epoch. + CreatedAt *string `pulumi:"createdAt"` + // Time at which the API proxy was most recently modified, in milliseconds since epoch. + LastModifiedAt *string `pulumi:"lastModifiedAt"` + // The type of entity described + SubType *string `pulumi:"subType"` +} + +// ApiMetaDataInput is an input type that accepts ApiMetaDataArgs and ApiMetaDataOutput values. +// You can construct a concrete instance of `ApiMetaDataInput` via: +// +// ApiMetaDataArgs{...} +type ApiMetaDataInput interface { + pulumi.Input + + ToApiMetaDataOutput() ApiMetaDataOutput + ToApiMetaDataOutputWithContext(context.Context) ApiMetaDataOutput +} + +type ApiMetaDataArgs struct { + // Time at which the API proxy was created, in milliseconds since epoch. + CreatedAt pulumi.StringPtrInput `pulumi:"createdAt"` + // Time at which the API proxy was most recently modified, in milliseconds since epoch. + LastModifiedAt pulumi.StringPtrInput `pulumi:"lastModifiedAt"` + // The type of entity described + SubType pulumi.StringPtrInput `pulumi:"subType"` +} + +func (ApiMetaDataArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApiMetaData)(nil)).Elem() +} + +func (i ApiMetaDataArgs) ToApiMetaDataOutput() ApiMetaDataOutput { + return i.ToApiMetaDataOutputWithContext(context.Background()) +} + +func (i ApiMetaDataArgs) ToApiMetaDataOutputWithContext(ctx context.Context) ApiMetaDataOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApiMetaDataOutput) +} + +// ApiMetaDataArrayInput is an input type that accepts ApiMetaDataArray and ApiMetaDataArrayOutput values. +// You can construct a concrete instance of `ApiMetaDataArrayInput` via: +// +// ApiMetaDataArray{ ApiMetaDataArgs{...} } +type ApiMetaDataArrayInput interface { + pulumi.Input + + ToApiMetaDataArrayOutput() ApiMetaDataArrayOutput + ToApiMetaDataArrayOutputWithContext(context.Context) ApiMetaDataArrayOutput +} + +type ApiMetaDataArray []ApiMetaDataInput + +func (ApiMetaDataArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApiMetaData)(nil)).Elem() +} + +func (i ApiMetaDataArray) ToApiMetaDataArrayOutput() ApiMetaDataArrayOutput { + return i.ToApiMetaDataArrayOutputWithContext(context.Background()) +} + +func (i ApiMetaDataArray) ToApiMetaDataArrayOutputWithContext(ctx context.Context) ApiMetaDataArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApiMetaDataArrayOutput) +} + +type ApiMetaDataOutput struct{ *pulumi.OutputState } + +func (ApiMetaDataOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApiMetaData)(nil)).Elem() +} + +func (o ApiMetaDataOutput) ToApiMetaDataOutput() ApiMetaDataOutput { + return o +} + +func (o ApiMetaDataOutput) ToApiMetaDataOutputWithContext(ctx context.Context) ApiMetaDataOutput { + return o +} + +// Time at which the API proxy was created, in milliseconds since epoch. +func (o ApiMetaDataOutput) CreatedAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApiMetaData) *string { return v.CreatedAt }).(pulumi.StringPtrOutput) +} + +// Time at which the API proxy was most recently modified, in milliseconds since epoch. +func (o ApiMetaDataOutput) LastModifiedAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApiMetaData) *string { return v.LastModifiedAt }).(pulumi.StringPtrOutput) +} + +// The type of entity described +func (o ApiMetaDataOutput) SubType() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApiMetaData) *string { return v.SubType }).(pulumi.StringPtrOutput) +} + +type ApiMetaDataArrayOutput struct{ *pulumi.OutputState } + +func (ApiMetaDataArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApiMetaData)(nil)).Elem() +} + +func (o ApiMetaDataArrayOutput) ToApiMetaDataArrayOutput() ApiMetaDataArrayOutput { + return o +} + +func (o ApiMetaDataArrayOutput) ToApiMetaDataArrayOutputWithContext(ctx context.Context) ApiMetaDataArrayOutput { + return o +} + +func (o ApiMetaDataArrayOutput) Index(i pulumi.IntInput) ApiMetaDataOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApiMetaData { + return vs[0].([]ApiMetaData)[vs[1].(int)] + }).(ApiMetaDataOutput) +} + type AppGroupAttribute struct { // Key of the attribute Name *string `pulumi:"name"` @@ -3970,6 +4085,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*AddonsConfigAddonsConfigIntegrationConfigPtrInput)(nil)).Elem(), AddonsConfigAddonsConfigIntegrationConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AddonsConfigAddonsConfigMonetizationConfigInput)(nil)).Elem(), AddonsConfigAddonsConfigMonetizationConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AddonsConfigAddonsConfigMonetizationConfigPtrInput)(nil)).Elem(), AddonsConfigAddonsConfigMonetizationConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApiMetaDataInput)(nil)).Elem(), ApiMetaDataArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApiMetaDataArrayInput)(nil)).Elem(), ApiMetaDataArray{}) pulumi.RegisterInputType(reflect.TypeOf((*AppGroupAttributeInput)(nil)).Elem(), AppGroupAttributeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AppGroupAttributeArrayInput)(nil)).Elem(), AppGroupAttributeArray{}) pulumi.RegisterInputType(reflect.TypeOf((*DeveloperAttributeInput)(nil)).Elem(), DeveloperAttributeArgs{}) @@ -4018,6 +4135,8 @@ func init() { pulumi.RegisterOutputType(AddonsConfigAddonsConfigIntegrationConfigPtrOutput{}) pulumi.RegisterOutputType(AddonsConfigAddonsConfigMonetizationConfigOutput{}) pulumi.RegisterOutputType(AddonsConfigAddonsConfigMonetizationConfigPtrOutput{}) + pulumi.RegisterOutputType(ApiMetaDataOutput{}) + pulumi.RegisterOutputType(ApiMetaDataArrayOutput{}) pulumi.RegisterOutputType(AppGroupAttributeOutput{}) pulumi.RegisterOutputType(AppGroupAttributeArrayOutput{}) pulumi.RegisterOutputType(DeveloperAttributeOutput{}) diff --git a/sdk/go/gcp/applicationintegration/authConfig.go b/sdk/go/gcp/applicationintegration/authConfig.go index a85b055191..166c6d4171 100644 --- a/sdk/go/gcp/applicationintegration/authConfig.go +++ b/sdk/go/gcp/applicationintegration/authConfig.go @@ -70,11 +70,23 @@ import ( // // AuthConfig can be imported using any of these accepted formats: // +// * `{{project}}/{{name}}` +// +// * `{{project}} {{name}}` +// // * `{{name}}` // // When using the `pulumi import` command, AuthConfig can be imported using one of the formats above. For example: // // ```sh +// $ pulumi import gcp:applicationintegration/authConfig:AuthConfig default {{project}}/{{name}} +// ``` +// +// ```sh +// $ pulumi import gcp:applicationintegration/authConfig:AuthConfig default "{{project}} {{name}}" +// ``` +// +// ```sh // $ pulumi import gcp:applicationintegration/authConfig:AuthConfig default {{name}} // ``` type AuthConfig struct { diff --git a/sdk/go/gcp/backupdisasterrecovery/backupPlan.go b/sdk/go/gcp/backupdisasterrecovery/backupPlan.go new file mode 100644 index 0000000000..6c50e792c5 --- /dev/null +++ b/sdk/go/gcp/backupdisasterrecovery/backupPlan.go @@ -0,0 +1,441 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package backupdisasterrecovery + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// ## Example Usage +// +// ### Backup Dr Backup Plan Simple +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/backupdisasterrecovery" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// myBackupVault, err := backupdisasterrecovery.NewBackupVault(ctx, "my_backup_vault", &backupdisasterrecovery.BackupVaultArgs{ +// Location: pulumi.String("us-central1"), +// BackupVaultId: pulumi.String("bv-bp-test"), +// BackupMinimumEnforcedRetentionDuration: pulumi.String("100000s"), +// }) +// if err != nil { +// return err +// } +// _, err = backupdisasterrecovery.NewBackupPlan(ctx, "my-backup-plan-1", &backupdisasterrecovery.BackupPlanArgs{ +// Location: pulumi.String("us-central1"), +// BackupPlanId: pulumi.String("backup-plan-simple-test"), +// ResourceType: pulumi.String("compute.googleapis.com/Instance"), +// BackupVault: myBackupVault.ID(), +// BackupRules: backupdisasterrecovery.BackupPlanBackupRuleArray{ +// &backupdisasterrecovery.BackupPlanBackupRuleArgs{ +// RuleId: pulumi.String("rule-1"), +// BackupRetentionDays: pulumi.Int(5), +// StandardSchedule: &backupdisasterrecovery.BackupPlanBackupRuleStandardScheduleArgs{ +// RecurrenceType: pulumi.String("HOURLY"), +// HourlyFrequency: pulumi.Int(6), +// TimeZone: pulumi.String("UTC"), +// BackupWindow: &backupdisasterrecovery.BackupPlanBackupRuleStandardScheduleBackupWindowArgs{ +// StartHourOfDay: pulumi.Int(0), +// EndHourOfDay: pulumi.Int(24), +// }, +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// BackupPlan can be imported using any of these accepted formats: +// +// * `projects/{{project}}/locations/{{location}}/backupPlans/{{backup_plan_id}}` +// +// * `{{project}}/{{location}}/{{backup_plan_id}}` +// +// * `{{location}}/{{backup_plan_id}}` +// +// When using the `pulumi import` command, BackupPlan can be imported using one of the formats above. For example: +// +// ```sh +// $ pulumi import gcp:backupdisasterrecovery/backupPlan:BackupPlan default projects/{{project}}/locations/{{location}}/backupPlans/{{backup_plan_id}} +// ``` +// +// ```sh +// $ pulumi import gcp:backupdisasterrecovery/backupPlan:BackupPlan default {{project}}/{{location}}/{{backup_plan_id}} +// ``` +// +// ```sh +// $ pulumi import gcp:backupdisasterrecovery/backupPlan:BackupPlan default {{location}}/{{backup_plan_id}} +// ``` +type BackupPlan struct { + pulumi.CustomResourceState + + // The ID of the backup plan + BackupPlanId pulumi.StringOutput `pulumi:"backupPlanId"` + // The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message. + // Structure is documented below. + BackupRules BackupPlanBackupRuleArrayOutput `pulumi:"backupRules"` + // Backup vault where the backups gets stored using this Backup plan. + BackupVault pulumi.StringOutput `pulumi:"backupVault"` + // The Google Cloud Platform Service Account to be used by the BackupVault for taking backups. + BackupVaultServiceAccount pulumi.StringOutput `pulumi:"backupVaultServiceAccount"` + // When the `BackupPlan` was created. + CreateTime pulumi.StringOutput `pulumi:"createTime"` + // The description allows for additional details about 'BackupPlan' and its use cases to be provided. + Description pulumi.StringPtrOutput `pulumi:"description"` + // The location for the backup plan + Location pulumi.StringOutput `pulumi:"location"` + // The name of backup plan resource created + Name pulumi.StringOutput `pulumi:"name"` + Project pulumi.StringOutput `pulumi:"project"` + // The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket". + ResourceType pulumi.StringOutput `pulumi:"resourceType"` + // When the `BackupPlan` was last updated. + UpdateTime pulumi.StringOutput `pulumi:"updateTime"` +} + +// NewBackupPlan registers a new resource with the given unique name, arguments, and options. +func NewBackupPlan(ctx *pulumi.Context, + name string, args *BackupPlanArgs, opts ...pulumi.ResourceOption) (*BackupPlan, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.BackupPlanId == nil { + return nil, errors.New("invalid value for required argument 'BackupPlanId'") + } + if args.BackupRules == nil { + return nil, errors.New("invalid value for required argument 'BackupRules'") + } + if args.BackupVault == nil { + return nil, errors.New("invalid value for required argument 'BackupVault'") + } + if args.Location == nil { + return nil, errors.New("invalid value for required argument 'Location'") + } + if args.ResourceType == nil { + return nil, errors.New("invalid value for required argument 'ResourceType'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource BackupPlan + err := ctx.RegisterResource("gcp:backupdisasterrecovery/backupPlan:BackupPlan", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetBackupPlan gets an existing BackupPlan resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetBackupPlan(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *BackupPlanState, opts ...pulumi.ResourceOption) (*BackupPlan, error) { + var resource BackupPlan + err := ctx.ReadResource("gcp:backupdisasterrecovery/backupPlan:BackupPlan", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering BackupPlan resources. +type backupPlanState struct { + // The ID of the backup plan + BackupPlanId *string `pulumi:"backupPlanId"` + // The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message. + // Structure is documented below. + BackupRules []BackupPlanBackupRule `pulumi:"backupRules"` + // Backup vault where the backups gets stored using this Backup plan. + BackupVault *string `pulumi:"backupVault"` + // The Google Cloud Platform Service Account to be used by the BackupVault for taking backups. + BackupVaultServiceAccount *string `pulumi:"backupVaultServiceAccount"` + // When the `BackupPlan` was created. + CreateTime *string `pulumi:"createTime"` + // The description allows for additional details about 'BackupPlan' and its use cases to be provided. + Description *string `pulumi:"description"` + // The location for the backup plan + Location *string `pulumi:"location"` + // The name of backup plan resource created + Name *string `pulumi:"name"` + Project *string `pulumi:"project"` + // The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket". + ResourceType *string `pulumi:"resourceType"` + // When the `BackupPlan` was last updated. + UpdateTime *string `pulumi:"updateTime"` +} + +type BackupPlanState struct { + // The ID of the backup plan + BackupPlanId pulumi.StringPtrInput + // The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message. + // Structure is documented below. + BackupRules BackupPlanBackupRuleArrayInput + // Backup vault where the backups gets stored using this Backup plan. + BackupVault pulumi.StringPtrInput + // The Google Cloud Platform Service Account to be used by the BackupVault for taking backups. + BackupVaultServiceAccount pulumi.StringPtrInput + // When the `BackupPlan` was created. + CreateTime pulumi.StringPtrInput + // The description allows for additional details about 'BackupPlan' and its use cases to be provided. + Description pulumi.StringPtrInput + // The location for the backup plan + Location pulumi.StringPtrInput + // The name of backup plan resource created + Name pulumi.StringPtrInput + Project pulumi.StringPtrInput + // The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket". + ResourceType pulumi.StringPtrInput + // When the `BackupPlan` was last updated. + UpdateTime pulumi.StringPtrInput +} + +func (BackupPlanState) ElementType() reflect.Type { + return reflect.TypeOf((*backupPlanState)(nil)).Elem() +} + +type backupPlanArgs struct { + // The ID of the backup plan + BackupPlanId string `pulumi:"backupPlanId"` + // The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message. + // Structure is documented below. + BackupRules []BackupPlanBackupRule `pulumi:"backupRules"` + // Backup vault where the backups gets stored using this Backup plan. + BackupVault string `pulumi:"backupVault"` + // The description allows for additional details about 'BackupPlan' and its use cases to be provided. + Description *string `pulumi:"description"` + // The location for the backup plan + Location string `pulumi:"location"` + Project *string `pulumi:"project"` + // The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket". + ResourceType string `pulumi:"resourceType"` +} + +// The set of arguments for constructing a BackupPlan resource. +type BackupPlanArgs struct { + // The ID of the backup plan + BackupPlanId pulumi.StringInput + // The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message. + // Structure is documented below. + BackupRules BackupPlanBackupRuleArrayInput + // Backup vault where the backups gets stored using this Backup plan. + BackupVault pulumi.StringInput + // The description allows for additional details about 'BackupPlan' and its use cases to be provided. + Description pulumi.StringPtrInput + // The location for the backup plan + Location pulumi.StringInput + Project pulumi.StringPtrInput + // The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket". + ResourceType pulumi.StringInput +} + +func (BackupPlanArgs) ElementType() reflect.Type { + return reflect.TypeOf((*backupPlanArgs)(nil)).Elem() +} + +type BackupPlanInput interface { + pulumi.Input + + ToBackupPlanOutput() BackupPlanOutput + ToBackupPlanOutputWithContext(ctx context.Context) BackupPlanOutput +} + +func (*BackupPlan) ElementType() reflect.Type { + return reflect.TypeOf((**BackupPlan)(nil)).Elem() +} + +func (i *BackupPlan) ToBackupPlanOutput() BackupPlanOutput { + return i.ToBackupPlanOutputWithContext(context.Background()) +} + +func (i *BackupPlan) ToBackupPlanOutputWithContext(ctx context.Context) BackupPlanOutput { + return pulumi.ToOutputWithContext(ctx, i).(BackupPlanOutput) +} + +// BackupPlanArrayInput is an input type that accepts BackupPlanArray and BackupPlanArrayOutput values. +// You can construct a concrete instance of `BackupPlanArrayInput` via: +// +// BackupPlanArray{ BackupPlanArgs{...} } +type BackupPlanArrayInput interface { + pulumi.Input + + ToBackupPlanArrayOutput() BackupPlanArrayOutput + ToBackupPlanArrayOutputWithContext(context.Context) BackupPlanArrayOutput +} + +type BackupPlanArray []BackupPlanInput + +func (BackupPlanArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BackupPlan)(nil)).Elem() +} + +func (i BackupPlanArray) ToBackupPlanArrayOutput() BackupPlanArrayOutput { + return i.ToBackupPlanArrayOutputWithContext(context.Background()) +} + +func (i BackupPlanArray) ToBackupPlanArrayOutputWithContext(ctx context.Context) BackupPlanArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BackupPlanArrayOutput) +} + +// BackupPlanMapInput is an input type that accepts BackupPlanMap and BackupPlanMapOutput values. +// You can construct a concrete instance of `BackupPlanMapInput` via: +// +// BackupPlanMap{ "key": BackupPlanArgs{...} } +type BackupPlanMapInput interface { + pulumi.Input + + ToBackupPlanMapOutput() BackupPlanMapOutput + ToBackupPlanMapOutputWithContext(context.Context) BackupPlanMapOutput +} + +type BackupPlanMap map[string]BackupPlanInput + +func (BackupPlanMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BackupPlan)(nil)).Elem() +} + +func (i BackupPlanMap) ToBackupPlanMapOutput() BackupPlanMapOutput { + return i.ToBackupPlanMapOutputWithContext(context.Background()) +} + +func (i BackupPlanMap) ToBackupPlanMapOutputWithContext(ctx context.Context) BackupPlanMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(BackupPlanMapOutput) +} + +type BackupPlanOutput struct{ *pulumi.OutputState } + +func (BackupPlanOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BackupPlan)(nil)).Elem() +} + +func (o BackupPlanOutput) ToBackupPlanOutput() BackupPlanOutput { + return o +} + +func (o BackupPlanOutput) ToBackupPlanOutputWithContext(ctx context.Context) BackupPlanOutput { + return o +} + +// The ID of the backup plan +func (o BackupPlanOutput) BackupPlanId() pulumi.StringOutput { + return o.ApplyT(func(v *BackupPlan) pulumi.StringOutput { return v.BackupPlanId }).(pulumi.StringOutput) +} + +// The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message. +// Structure is documented below. +func (o BackupPlanOutput) BackupRules() BackupPlanBackupRuleArrayOutput { + return o.ApplyT(func(v *BackupPlan) BackupPlanBackupRuleArrayOutput { return v.BackupRules }).(BackupPlanBackupRuleArrayOutput) +} + +// Backup vault where the backups gets stored using this Backup plan. +func (o BackupPlanOutput) BackupVault() pulumi.StringOutput { + return o.ApplyT(func(v *BackupPlan) pulumi.StringOutput { return v.BackupVault }).(pulumi.StringOutput) +} + +// The Google Cloud Platform Service Account to be used by the BackupVault for taking backups. +func (o BackupPlanOutput) BackupVaultServiceAccount() pulumi.StringOutput { + return o.ApplyT(func(v *BackupPlan) pulumi.StringOutput { return v.BackupVaultServiceAccount }).(pulumi.StringOutput) +} + +// When the `BackupPlan` was created. +func (o BackupPlanOutput) CreateTime() pulumi.StringOutput { + return o.ApplyT(func(v *BackupPlan) pulumi.StringOutput { return v.CreateTime }).(pulumi.StringOutput) +} + +// The description allows for additional details about 'BackupPlan' and its use cases to be provided. +func (o BackupPlanOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BackupPlan) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// The location for the backup plan +func (o BackupPlanOutput) Location() pulumi.StringOutput { + return o.ApplyT(func(v *BackupPlan) pulumi.StringOutput { return v.Location }).(pulumi.StringOutput) +} + +// The name of backup plan resource created +func (o BackupPlanOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *BackupPlan) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +func (o BackupPlanOutput) Project() pulumi.StringOutput { + return o.ApplyT(func(v *BackupPlan) pulumi.StringOutput { return v.Project }).(pulumi.StringOutput) +} + +// The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket". +func (o BackupPlanOutput) ResourceType() pulumi.StringOutput { + return o.ApplyT(func(v *BackupPlan) pulumi.StringOutput { return v.ResourceType }).(pulumi.StringOutput) +} + +// When the `BackupPlan` was last updated. +func (o BackupPlanOutput) UpdateTime() pulumi.StringOutput { + return o.ApplyT(func(v *BackupPlan) pulumi.StringOutput { return v.UpdateTime }).(pulumi.StringOutput) +} + +type BackupPlanArrayOutput struct{ *pulumi.OutputState } + +func (BackupPlanArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BackupPlan)(nil)).Elem() +} + +func (o BackupPlanArrayOutput) ToBackupPlanArrayOutput() BackupPlanArrayOutput { + return o +} + +func (o BackupPlanArrayOutput) ToBackupPlanArrayOutputWithContext(ctx context.Context) BackupPlanArrayOutput { + return o +} + +func (o BackupPlanArrayOutput) Index(i pulumi.IntInput) BackupPlanOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *BackupPlan { + return vs[0].([]*BackupPlan)[vs[1].(int)] + }).(BackupPlanOutput) +} + +type BackupPlanMapOutput struct{ *pulumi.OutputState } + +func (BackupPlanMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BackupPlan)(nil)).Elem() +} + +func (o BackupPlanMapOutput) ToBackupPlanMapOutput() BackupPlanMapOutput { + return o +} + +func (o BackupPlanMapOutput) ToBackupPlanMapOutputWithContext(ctx context.Context) BackupPlanMapOutput { + return o +} + +func (o BackupPlanMapOutput) MapIndex(k pulumi.StringInput) BackupPlanOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *BackupPlan { + return vs[0].(map[string]*BackupPlan)[vs[1].(string)] + }).(BackupPlanOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*BackupPlanInput)(nil)).Elem(), &BackupPlan{}) + pulumi.RegisterInputType(reflect.TypeOf((*BackupPlanArrayInput)(nil)).Elem(), BackupPlanArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BackupPlanMapInput)(nil)).Elem(), BackupPlanMap{}) + pulumi.RegisterOutputType(BackupPlanOutput{}) + pulumi.RegisterOutputType(BackupPlanArrayOutput{}) + pulumi.RegisterOutputType(BackupPlanMapOutput{}) +} diff --git a/sdk/go/gcp/backupdisasterrecovery/backupPlanAssociation.go b/sdk/go/gcp/backupdisasterrecovery/backupPlanAssociation.go new file mode 100644 index 0000000000..c9a79b980c --- /dev/null +++ b/sdk/go/gcp/backupdisasterrecovery/backupPlanAssociation.go @@ -0,0 +1,527 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package backupdisasterrecovery + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// ## Example Usage +// +// ### Backup Dr Bpa +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/backupdisasterrecovery" +// "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute" +// "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/serviceaccount" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// mySA, err := serviceaccount.NewAccount(ctx, "mySA", &serviceaccount.AccountArgs{ +// AccountId: pulumi.String("my-custom"), +// DisplayName: pulumi.String("Custom SA for VM Instance"), +// }) +// if err != nil { +// return err +// } +// myinstance, err := compute.NewInstance(ctx, "myinstance", &compute.InstanceArgs{ +// NetworkInterfaces: compute.InstanceNetworkInterfaceArray{ +// &compute.InstanceNetworkInterfaceArgs{ +// AccessConfigs: compute.InstanceNetworkInterfaceAccessConfigArray{ +// &compute.InstanceNetworkInterfaceAccessConfigArgs{}, +// }, +// Network: pulumi.String("default"), +// }, +// }, +// Name: pulumi.String("test-instance"), +// MachineType: pulumi.String("n2-standard-2"), +// Zone: pulumi.String("us-central1-a"), +// BootDisk: &compute.InstanceBootDiskArgs{ +// InitializeParams: &compute.InstanceBootDiskInitializeParamsArgs{ +// Image: pulumi.String("debian-cloud/debian-11"), +// Labels: pulumi.StringMap{ +// "my_label": pulumi.String("value"), +// }, +// }, +// }, +// ScratchDisks: compute.InstanceScratchDiskArray{ +// &compute.InstanceScratchDiskArgs{ +// Interface: pulumi.String("NVME"), +// }, +// }, +// ServiceAccount: &compute.InstanceServiceAccountArgs{ +// Email: mySA.Email, +// Scopes: pulumi.StringArray{ +// pulumi.String("cloud-platform"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// bv1, err := backupdisasterrecovery.NewBackupVault(ctx, "bv1", &backupdisasterrecovery.BackupVaultArgs{ +// Location: pulumi.String("us-central1"), +// BackupVaultId: pulumi.String("bv-bpa"), +// BackupMinimumEnforcedRetentionDuration: pulumi.String("100000s"), +// ForceDelete: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// bp1, err := backupdisasterrecovery.NewBackupPlan(ctx, "bp1", &backupdisasterrecovery.BackupPlanArgs{ +// Location: pulumi.String("us-central1"), +// BackupPlanId: pulumi.String("bp-bpa-test"), +// ResourceType: pulumi.String("compute.googleapis.com/Instance"), +// BackupVault: bv1.ID(), +// BackupRules: backupdisasterrecovery.BackupPlanBackupRuleArray{ +// &backupdisasterrecovery.BackupPlanBackupRuleArgs{ +// RuleId: pulumi.String("rule-1"), +// BackupRetentionDays: pulumi.Int(2), +// StandardSchedule: &backupdisasterrecovery.BackupPlanBackupRuleStandardScheduleArgs{ +// RecurrenceType: pulumi.String("HOURLY"), +// HourlyFrequency: pulumi.Int(6), +// TimeZone: pulumi.String("UTC"), +// BackupWindow: &backupdisasterrecovery.BackupPlanBackupRuleStandardScheduleBackupWindowArgs{ +// StartHourOfDay: pulumi.Int(12), +// EndHourOfDay: pulumi.Int(18), +// }, +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// _, err = backupdisasterrecovery.NewBackupPlanAssociation(ctx, "my-backup-plan-association", &backupdisasterrecovery.BackupPlanAssociationArgs{ +// Location: pulumi.String("us-central1"), +// ResourceType: pulumi.String("compute.googleapis.com/Instance"), +// BackupPlanAssociationId: pulumi.String("my-bpa"), +// Resource: myinstance.ID(), +// BackupPlan: bp1.Name, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// BackupPlanAssociation can be imported using any of these accepted formats: +// +// * `projects/{{project}}/locations/{{location}}/backupPlanAssociations/{{backup_plan_association_id}}` +// +// * `{{project}}/{{location}}/{{backup_plan_association_id}}` +// +// * `{{location}}/{{backup_plan_association_id}}` +// +// When using the `pulumi import` command, BackupPlanAssociation can be imported using one of the formats above. For example: +// +// ```sh +// $ pulumi import gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation default projects/{{project}}/locations/{{location}}/backupPlanAssociations/{{backup_plan_association_id}} +// ``` +// +// ```sh +// $ pulumi import gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation default {{project}}/{{location}}/{{backup_plan_association_id}} +// ``` +// +// ```sh +// $ pulumi import gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation default {{location}}/{{backup_plan_association_id}} +// ``` +type BackupPlanAssociation struct { + pulumi.CustomResourceState + + // The BP with which resource needs to be created + BackupPlan pulumi.StringOutput `pulumi:"backupPlan"` + // The id of backupplan association + // + // *** + BackupPlanAssociationId pulumi.StringOutput `pulumi:"backupPlanAssociationId"` + // The time when the instance was created + CreateTime pulumi.StringOutput `pulumi:"createTime"` + // Resource name of data source which will be used as storage location for backups taken + DataSource pulumi.StringOutput `pulumi:"dataSource"` + // The point in time when the last successful backup was captured from the source + LastSuccessfulBackupConsistencyTime pulumi.StringOutput `pulumi:"lastSuccessfulBackupConsistencyTime"` + // The location for the backupplan association + Location pulumi.StringOutput `pulumi:"location"` + // The name of backup plan association resource created + Name pulumi.StringOutput `pulumi:"name"` + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project pulumi.StringOutput `pulumi:"project"` + // The resource for which BPA needs to be created + Resource pulumi.StringOutput `pulumi:"resource"` + // The resource type of workload on which backupplan is applied + ResourceType pulumi.StringOutput `pulumi:"resourceType"` + // Message for rules config info + // Structure is documented below. + RulesConfigInfos BackupPlanAssociationRulesConfigInfoArrayOutput `pulumi:"rulesConfigInfos"` + // The time when the instance was updated. + UpdateTime pulumi.StringOutput `pulumi:"updateTime"` +} + +// NewBackupPlanAssociation registers a new resource with the given unique name, arguments, and options. +func NewBackupPlanAssociation(ctx *pulumi.Context, + name string, args *BackupPlanAssociationArgs, opts ...pulumi.ResourceOption) (*BackupPlanAssociation, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.BackupPlan == nil { + return nil, errors.New("invalid value for required argument 'BackupPlan'") + } + if args.BackupPlanAssociationId == nil { + return nil, errors.New("invalid value for required argument 'BackupPlanAssociationId'") + } + if args.Location == nil { + return nil, errors.New("invalid value for required argument 'Location'") + } + if args.Resource == nil { + return nil, errors.New("invalid value for required argument 'Resource'") + } + if args.ResourceType == nil { + return nil, errors.New("invalid value for required argument 'ResourceType'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource BackupPlanAssociation + err := ctx.RegisterResource("gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetBackupPlanAssociation gets an existing BackupPlanAssociation resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetBackupPlanAssociation(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *BackupPlanAssociationState, opts ...pulumi.ResourceOption) (*BackupPlanAssociation, error) { + var resource BackupPlanAssociation + err := ctx.ReadResource("gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering BackupPlanAssociation resources. +type backupPlanAssociationState struct { + // The BP with which resource needs to be created + BackupPlan *string `pulumi:"backupPlan"` + // The id of backupplan association + // + // *** + BackupPlanAssociationId *string `pulumi:"backupPlanAssociationId"` + // The time when the instance was created + CreateTime *string `pulumi:"createTime"` + // Resource name of data source which will be used as storage location for backups taken + DataSource *string `pulumi:"dataSource"` + // The point in time when the last successful backup was captured from the source + LastSuccessfulBackupConsistencyTime *string `pulumi:"lastSuccessfulBackupConsistencyTime"` + // The location for the backupplan association + Location *string `pulumi:"location"` + // The name of backup plan association resource created + Name *string `pulumi:"name"` + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project *string `pulumi:"project"` + // The resource for which BPA needs to be created + Resource *string `pulumi:"resource"` + // The resource type of workload on which backupplan is applied + ResourceType *string `pulumi:"resourceType"` + // Message for rules config info + // Structure is documented below. + RulesConfigInfos []BackupPlanAssociationRulesConfigInfo `pulumi:"rulesConfigInfos"` + // The time when the instance was updated. + UpdateTime *string `pulumi:"updateTime"` +} + +type BackupPlanAssociationState struct { + // The BP with which resource needs to be created + BackupPlan pulumi.StringPtrInput + // The id of backupplan association + // + // *** + BackupPlanAssociationId pulumi.StringPtrInput + // The time when the instance was created + CreateTime pulumi.StringPtrInput + // Resource name of data source which will be used as storage location for backups taken + DataSource pulumi.StringPtrInput + // The point in time when the last successful backup was captured from the source + LastSuccessfulBackupConsistencyTime pulumi.StringPtrInput + // The location for the backupplan association + Location pulumi.StringPtrInput + // The name of backup plan association resource created + Name pulumi.StringPtrInput + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project pulumi.StringPtrInput + // The resource for which BPA needs to be created + Resource pulumi.StringPtrInput + // The resource type of workload on which backupplan is applied + ResourceType pulumi.StringPtrInput + // Message for rules config info + // Structure is documented below. + RulesConfigInfos BackupPlanAssociationRulesConfigInfoArrayInput + // The time when the instance was updated. + UpdateTime pulumi.StringPtrInput +} + +func (BackupPlanAssociationState) ElementType() reflect.Type { + return reflect.TypeOf((*backupPlanAssociationState)(nil)).Elem() +} + +type backupPlanAssociationArgs struct { + // The BP with which resource needs to be created + BackupPlan string `pulumi:"backupPlan"` + // The id of backupplan association + // + // *** + BackupPlanAssociationId string `pulumi:"backupPlanAssociationId"` + // The location for the backupplan association + Location string `pulumi:"location"` + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project *string `pulumi:"project"` + // The resource for which BPA needs to be created + Resource string `pulumi:"resource"` + // The resource type of workload on which backupplan is applied + ResourceType string `pulumi:"resourceType"` +} + +// The set of arguments for constructing a BackupPlanAssociation resource. +type BackupPlanAssociationArgs struct { + // The BP with which resource needs to be created + BackupPlan pulumi.StringInput + // The id of backupplan association + // + // *** + BackupPlanAssociationId pulumi.StringInput + // The location for the backupplan association + Location pulumi.StringInput + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project pulumi.StringPtrInput + // The resource for which BPA needs to be created + Resource pulumi.StringInput + // The resource type of workload on which backupplan is applied + ResourceType pulumi.StringInput +} + +func (BackupPlanAssociationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*backupPlanAssociationArgs)(nil)).Elem() +} + +type BackupPlanAssociationInput interface { + pulumi.Input + + ToBackupPlanAssociationOutput() BackupPlanAssociationOutput + ToBackupPlanAssociationOutputWithContext(ctx context.Context) BackupPlanAssociationOutput +} + +func (*BackupPlanAssociation) ElementType() reflect.Type { + return reflect.TypeOf((**BackupPlanAssociation)(nil)).Elem() +} + +func (i *BackupPlanAssociation) ToBackupPlanAssociationOutput() BackupPlanAssociationOutput { + return i.ToBackupPlanAssociationOutputWithContext(context.Background()) +} + +func (i *BackupPlanAssociation) ToBackupPlanAssociationOutputWithContext(ctx context.Context) BackupPlanAssociationOutput { + return pulumi.ToOutputWithContext(ctx, i).(BackupPlanAssociationOutput) +} + +// BackupPlanAssociationArrayInput is an input type that accepts BackupPlanAssociationArray and BackupPlanAssociationArrayOutput values. +// You can construct a concrete instance of `BackupPlanAssociationArrayInput` via: +// +// BackupPlanAssociationArray{ BackupPlanAssociationArgs{...} } +type BackupPlanAssociationArrayInput interface { + pulumi.Input + + ToBackupPlanAssociationArrayOutput() BackupPlanAssociationArrayOutput + ToBackupPlanAssociationArrayOutputWithContext(context.Context) BackupPlanAssociationArrayOutput +} + +type BackupPlanAssociationArray []BackupPlanAssociationInput + +func (BackupPlanAssociationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BackupPlanAssociation)(nil)).Elem() +} + +func (i BackupPlanAssociationArray) ToBackupPlanAssociationArrayOutput() BackupPlanAssociationArrayOutput { + return i.ToBackupPlanAssociationArrayOutputWithContext(context.Background()) +} + +func (i BackupPlanAssociationArray) ToBackupPlanAssociationArrayOutputWithContext(ctx context.Context) BackupPlanAssociationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BackupPlanAssociationArrayOutput) +} + +// BackupPlanAssociationMapInput is an input type that accepts BackupPlanAssociationMap and BackupPlanAssociationMapOutput values. +// You can construct a concrete instance of `BackupPlanAssociationMapInput` via: +// +// BackupPlanAssociationMap{ "key": BackupPlanAssociationArgs{...} } +type BackupPlanAssociationMapInput interface { + pulumi.Input + + ToBackupPlanAssociationMapOutput() BackupPlanAssociationMapOutput + ToBackupPlanAssociationMapOutputWithContext(context.Context) BackupPlanAssociationMapOutput +} + +type BackupPlanAssociationMap map[string]BackupPlanAssociationInput + +func (BackupPlanAssociationMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BackupPlanAssociation)(nil)).Elem() +} + +func (i BackupPlanAssociationMap) ToBackupPlanAssociationMapOutput() BackupPlanAssociationMapOutput { + return i.ToBackupPlanAssociationMapOutputWithContext(context.Background()) +} + +func (i BackupPlanAssociationMap) ToBackupPlanAssociationMapOutputWithContext(ctx context.Context) BackupPlanAssociationMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(BackupPlanAssociationMapOutput) +} + +type BackupPlanAssociationOutput struct{ *pulumi.OutputState } + +func (BackupPlanAssociationOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BackupPlanAssociation)(nil)).Elem() +} + +func (o BackupPlanAssociationOutput) ToBackupPlanAssociationOutput() BackupPlanAssociationOutput { + return o +} + +func (o BackupPlanAssociationOutput) ToBackupPlanAssociationOutputWithContext(ctx context.Context) BackupPlanAssociationOutput { + return o +} + +// The BP with which resource needs to be created +func (o BackupPlanAssociationOutput) BackupPlan() pulumi.StringOutput { + return o.ApplyT(func(v *BackupPlanAssociation) pulumi.StringOutput { return v.BackupPlan }).(pulumi.StringOutput) +} + +// The id of backupplan association +// +// *** +func (o BackupPlanAssociationOutput) BackupPlanAssociationId() pulumi.StringOutput { + return o.ApplyT(func(v *BackupPlanAssociation) pulumi.StringOutput { return v.BackupPlanAssociationId }).(pulumi.StringOutput) +} + +// The time when the instance was created +func (o BackupPlanAssociationOutput) CreateTime() pulumi.StringOutput { + return o.ApplyT(func(v *BackupPlanAssociation) pulumi.StringOutput { return v.CreateTime }).(pulumi.StringOutput) +} + +// Resource name of data source which will be used as storage location for backups taken +func (o BackupPlanAssociationOutput) DataSource() pulumi.StringOutput { + return o.ApplyT(func(v *BackupPlanAssociation) pulumi.StringOutput { return v.DataSource }).(pulumi.StringOutput) +} + +// The point in time when the last successful backup was captured from the source +func (o BackupPlanAssociationOutput) LastSuccessfulBackupConsistencyTime() pulumi.StringOutput { + return o.ApplyT(func(v *BackupPlanAssociation) pulumi.StringOutput { return v.LastSuccessfulBackupConsistencyTime }).(pulumi.StringOutput) +} + +// The location for the backupplan association +func (o BackupPlanAssociationOutput) Location() pulumi.StringOutput { + return o.ApplyT(func(v *BackupPlanAssociation) pulumi.StringOutput { return v.Location }).(pulumi.StringOutput) +} + +// The name of backup plan association resource created +func (o BackupPlanAssociationOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *BackupPlanAssociation) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The ID of the project in which the resource belongs. +// If it is not provided, the provider project is used. +func (o BackupPlanAssociationOutput) Project() pulumi.StringOutput { + return o.ApplyT(func(v *BackupPlanAssociation) pulumi.StringOutput { return v.Project }).(pulumi.StringOutput) +} + +// The resource for which BPA needs to be created +func (o BackupPlanAssociationOutput) Resource() pulumi.StringOutput { + return o.ApplyT(func(v *BackupPlanAssociation) pulumi.StringOutput { return v.Resource }).(pulumi.StringOutput) +} + +// The resource type of workload on which backupplan is applied +func (o BackupPlanAssociationOutput) ResourceType() pulumi.StringOutput { + return o.ApplyT(func(v *BackupPlanAssociation) pulumi.StringOutput { return v.ResourceType }).(pulumi.StringOutput) +} + +// Message for rules config info +// Structure is documented below. +func (o BackupPlanAssociationOutput) RulesConfigInfos() BackupPlanAssociationRulesConfigInfoArrayOutput { + return o.ApplyT(func(v *BackupPlanAssociation) BackupPlanAssociationRulesConfigInfoArrayOutput { + return v.RulesConfigInfos + }).(BackupPlanAssociationRulesConfigInfoArrayOutput) +} + +// The time when the instance was updated. +func (o BackupPlanAssociationOutput) UpdateTime() pulumi.StringOutput { + return o.ApplyT(func(v *BackupPlanAssociation) pulumi.StringOutput { return v.UpdateTime }).(pulumi.StringOutput) +} + +type BackupPlanAssociationArrayOutput struct{ *pulumi.OutputState } + +func (BackupPlanAssociationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BackupPlanAssociation)(nil)).Elem() +} + +func (o BackupPlanAssociationArrayOutput) ToBackupPlanAssociationArrayOutput() BackupPlanAssociationArrayOutput { + return o +} + +func (o BackupPlanAssociationArrayOutput) ToBackupPlanAssociationArrayOutputWithContext(ctx context.Context) BackupPlanAssociationArrayOutput { + return o +} + +func (o BackupPlanAssociationArrayOutput) Index(i pulumi.IntInput) BackupPlanAssociationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *BackupPlanAssociation { + return vs[0].([]*BackupPlanAssociation)[vs[1].(int)] + }).(BackupPlanAssociationOutput) +} + +type BackupPlanAssociationMapOutput struct{ *pulumi.OutputState } + +func (BackupPlanAssociationMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BackupPlanAssociation)(nil)).Elem() +} + +func (o BackupPlanAssociationMapOutput) ToBackupPlanAssociationMapOutput() BackupPlanAssociationMapOutput { + return o +} + +func (o BackupPlanAssociationMapOutput) ToBackupPlanAssociationMapOutputWithContext(ctx context.Context) BackupPlanAssociationMapOutput { + return o +} + +func (o BackupPlanAssociationMapOutput) MapIndex(k pulumi.StringInput) BackupPlanAssociationOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *BackupPlanAssociation { + return vs[0].(map[string]*BackupPlanAssociation)[vs[1].(string)] + }).(BackupPlanAssociationOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*BackupPlanAssociationInput)(nil)).Elem(), &BackupPlanAssociation{}) + pulumi.RegisterInputType(reflect.TypeOf((*BackupPlanAssociationArrayInput)(nil)).Elem(), BackupPlanAssociationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BackupPlanAssociationMapInput)(nil)).Elem(), BackupPlanAssociationMap{}) + pulumi.RegisterOutputType(BackupPlanAssociationOutput{}) + pulumi.RegisterOutputType(BackupPlanAssociationArrayOutput{}) + pulumi.RegisterOutputType(BackupPlanAssociationMapOutput{}) +} diff --git a/sdk/go/gcp/backupdisasterrecovery/backupVault.go b/sdk/go/gcp/backupdisasterrecovery/backupVault.go index 3504ffbc77..c0317c51cc 100644 --- a/sdk/go/gcp/backupdisasterrecovery/backupVault.go +++ b/sdk/go/gcp/backupdisasterrecovery/backupVault.go @@ -41,9 +41,10 @@ import ( // "annotations1": pulumi.String("bar1"), // "annotations2": pulumi.String("baz1"), // }, -// ForceUpdate: pulumi.Bool(true), -// ForceDelete: pulumi.Bool(true), -// AllowMissing: pulumi.Bool(true), +// ForceUpdate: pulumi.Bool(true), +// IgnoreInactiveDatasources: pulumi.Bool(true), +// IgnoreBackupPlanReferences: pulumi.Bool(true), +// AllowMissing: pulumi.Bool(true), // }) // if err != nil { // return err @@ -108,15 +109,26 @@ type BackupVault struct { EffectiveTime pulumi.StringPtrOutput `pulumi:"effectiveTime"` // Optional. Server specified ETag for the backup vault resource to prevent simultaneous updates from overwiting each other. Etag pulumi.StringOutput `pulumi:"etag"` + // (Optional, Deprecated) // If set, the following restrictions against deletion of the backup vault instance can be overridden: // * deletion of a backup vault instance containing no backups, but still containing empty datasources. // * deletion of a backup vault instance that is being referenced by an active backup plan. + // + // > **Warning:** `forceDelete` is deprecated and will be removed in a future major release. Use `ignoreInactiveDatasources` instead. + // + // Deprecated: `forceDelete` is deprecated and will be removed in a future major release. Use `ignoreInactiveDatasources` instead. ForceDelete pulumi.BoolPtrOutput `pulumi:"forceDelete"` // If set, allow update to extend the minimum enforced retention for backup vault. This overrides // the restriction against conflicting retention periods. This conflict may occur when the // expiration schedule defined by the associated backup plan is shorter than the minimum // retention set by the backup vault. ForceUpdate pulumi.BoolPtrOutput `pulumi:"forceUpdate"` + // If set, the following restrictions against deletion of the backup vault instance can be overridden: + // * deletion of a backup vault instance that is being referenced by an active backup plan. + IgnoreBackupPlanReferences pulumi.BoolPtrOutput `pulumi:"ignoreBackupPlanReferences"` + // If set, the following restrictions against deletion of the backup vault instance can be overridden: + // * deletion of a backup vault instance containing no backups, but still containing empty datasources. + IgnoreInactiveDatasources pulumi.BoolPtrOutput `pulumi:"ignoreInactiveDatasources"` // Optional. Resource labels to represent user provided metadata. // **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. // Please refer to the field `effectiveLabels` for all of the labels present on the resource. @@ -221,15 +233,26 @@ type backupVaultState struct { EffectiveTime *string `pulumi:"effectiveTime"` // Optional. Server specified ETag for the backup vault resource to prevent simultaneous updates from overwiting each other. Etag *string `pulumi:"etag"` + // (Optional, Deprecated) // If set, the following restrictions against deletion of the backup vault instance can be overridden: // * deletion of a backup vault instance containing no backups, but still containing empty datasources. // * deletion of a backup vault instance that is being referenced by an active backup plan. + // + // > **Warning:** `forceDelete` is deprecated and will be removed in a future major release. Use `ignoreInactiveDatasources` instead. + // + // Deprecated: `forceDelete` is deprecated and will be removed in a future major release. Use `ignoreInactiveDatasources` instead. ForceDelete *bool `pulumi:"forceDelete"` // If set, allow update to extend the minimum enforced retention for backup vault. This overrides // the restriction against conflicting retention periods. This conflict may occur when the // expiration schedule defined by the associated backup plan is shorter than the minimum // retention set by the backup vault. ForceUpdate *bool `pulumi:"forceUpdate"` + // If set, the following restrictions against deletion of the backup vault instance can be overridden: + // * deletion of a backup vault instance that is being referenced by an active backup plan. + IgnoreBackupPlanReferences *bool `pulumi:"ignoreBackupPlanReferences"` + // If set, the following restrictions against deletion of the backup vault instance can be overridden: + // * deletion of a backup vault instance containing no backups, but still containing empty datasources. + IgnoreInactiveDatasources *bool `pulumi:"ignoreInactiveDatasources"` // Optional. Resource labels to represent user provided metadata. // **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. // Please refer to the field `effectiveLabels` for all of the labels present on the resource. @@ -291,15 +314,26 @@ type BackupVaultState struct { EffectiveTime pulumi.StringPtrInput // Optional. Server specified ETag for the backup vault resource to prevent simultaneous updates from overwiting each other. Etag pulumi.StringPtrInput + // (Optional, Deprecated) // If set, the following restrictions against deletion of the backup vault instance can be overridden: // * deletion of a backup vault instance containing no backups, but still containing empty datasources. // * deletion of a backup vault instance that is being referenced by an active backup plan. + // + // > **Warning:** `forceDelete` is deprecated and will be removed in a future major release. Use `ignoreInactiveDatasources` instead. + // + // Deprecated: `forceDelete` is deprecated and will be removed in a future major release. Use `ignoreInactiveDatasources` instead. ForceDelete pulumi.BoolPtrInput // If set, allow update to extend the minimum enforced retention for backup vault. This overrides // the restriction against conflicting retention periods. This conflict may occur when the // expiration schedule defined by the associated backup plan is shorter than the minimum // retention set by the backup vault. ForceUpdate pulumi.BoolPtrInput + // If set, the following restrictions against deletion of the backup vault instance can be overridden: + // * deletion of a backup vault instance that is being referenced by an active backup plan. + IgnoreBackupPlanReferences pulumi.BoolPtrInput + // If set, the following restrictions against deletion of the backup vault instance can be overridden: + // * deletion of a backup vault instance containing no backups, but still containing empty datasources. + IgnoreInactiveDatasources pulumi.BoolPtrInput // Optional. Resource labels to represent user provided metadata. // **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. // Please refer to the field `effectiveLabels` for all of the labels present on the resource. @@ -354,15 +388,26 @@ type backupVaultArgs struct { Description *string `pulumi:"description"` // Optional. Time after which the BackupVault resource is locked. EffectiveTime *string `pulumi:"effectiveTime"` + // (Optional, Deprecated) // If set, the following restrictions against deletion of the backup vault instance can be overridden: // * deletion of a backup vault instance containing no backups, but still containing empty datasources. // * deletion of a backup vault instance that is being referenced by an active backup plan. + // + // > **Warning:** `forceDelete` is deprecated and will be removed in a future major release. Use `ignoreInactiveDatasources` instead. + // + // Deprecated: `forceDelete` is deprecated and will be removed in a future major release. Use `ignoreInactiveDatasources` instead. ForceDelete *bool `pulumi:"forceDelete"` // If set, allow update to extend the minimum enforced retention for backup vault. This overrides // the restriction against conflicting retention periods. This conflict may occur when the // expiration schedule defined by the associated backup plan is shorter than the minimum // retention set by the backup vault. ForceUpdate *bool `pulumi:"forceUpdate"` + // If set, the following restrictions against deletion of the backup vault instance can be overridden: + // * deletion of a backup vault instance that is being referenced by an active backup plan. + IgnoreBackupPlanReferences *bool `pulumi:"ignoreBackupPlanReferences"` + // If set, the following restrictions against deletion of the backup vault instance can be overridden: + // * deletion of a backup vault instance containing no backups, but still containing empty datasources. + IgnoreInactiveDatasources *bool `pulumi:"ignoreInactiveDatasources"` // Optional. Resource labels to represent user provided metadata. // **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. // Please refer to the field `effectiveLabels` for all of the labels present on the resource. @@ -393,15 +438,26 @@ type BackupVaultArgs struct { Description pulumi.StringPtrInput // Optional. Time after which the BackupVault resource is locked. EffectiveTime pulumi.StringPtrInput + // (Optional, Deprecated) // If set, the following restrictions against deletion of the backup vault instance can be overridden: // * deletion of a backup vault instance containing no backups, but still containing empty datasources. // * deletion of a backup vault instance that is being referenced by an active backup plan. + // + // > **Warning:** `forceDelete` is deprecated and will be removed in a future major release. Use `ignoreInactiveDatasources` instead. + // + // Deprecated: `forceDelete` is deprecated and will be removed in a future major release. Use `ignoreInactiveDatasources` instead. ForceDelete pulumi.BoolPtrInput // If set, allow update to extend the minimum enforced retention for backup vault. This overrides // the restriction against conflicting retention periods. This conflict may occur when the // expiration schedule defined by the associated backup plan is shorter than the minimum // retention set by the backup vault. ForceUpdate pulumi.BoolPtrInput + // If set, the following restrictions against deletion of the backup vault instance can be overridden: + // * deletion of a backup vault instance that is being referenced by an active backup plan. + IgnoreBackupPlanReferences pulumi.BoolPtrInput + // If set, the following restrictions against deletion of the backup vault instance can be overridden: + // * deletion of a backup vault instance containing no backups, but still containing empty datasources. + IgnoreInactiveDatasources pulumi.BoolPtrInput // Optional. Resource labels to represent user provided metadata. // **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. // Please refer to the field `effectiveLabels` for all of the labels present on the resource. @@ -564,9 +620,14 @@ func (o BackupVaultOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v *BackupVault) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) } +// (Optional, Deprecated) // If set, the following restrictions against deletion of the backup vault instance can be overridden: // * deletion of a backup vault instance containing no backups, but still containing empty datasources. // * deletion of a backup vault instance that is being referenced by an active backup plan. +// +// > **Warning:** `forceDelete` is deprecated and will be removed in a future major release. Use `ignoreInactiveDatasources` instead. +// +// Deprecated: `forceDelete` is deprecated and will be removed in a future major release. Use `ignoreInactiveDatasources` instead. func (o BackupVaultOutput) ForceDelete() pulumi.BoolPtrOutput { return o.ApplyT(func(v *BackupVault) pulumi.BoolPtrOutput { return v.ForceDelete }).(pulumi.BoolPtrOutput) } @@ -579,6 +640,18 @@ func (o BackupVaultOutput) ForceUpdate() pulumi.BoolPtrOutput { return o.ApplyT(func(v *BackupVault) pulumi.BoolPtrOutput { return v.ForceUpdate }).(pulumi.BoolPtrOutput) } +// If set, the following restrictions against deletion of the backup vault instance can be overridden: +// * deletion of a backup vault instance that is being referenced by an active backup plan. +func (o BackupVaultOutput) IgnoreBackupPlanReferences() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *BackupVault) pulumi.BoolPtrOutput { return v.IgnoreBackupPlanReferences }).(pulumi.BoolPtrOutput) +} + +// If set, the following restrictions against deletion of the backup vault instance can be overridden: +// * deletion of a backup vault instance containing no backups, but still containing empty datasources. +func (o BackupVaultOutput) IgnoreInactiveDatasources() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *BackupVault) pulumi.BoolPtrOutput { return v.IgnoreInactiveDatasources }).(pulumi.BoolPtrOutput) +} + // Optional. Resource labels to represent user provided metadata. // **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. // Please refer to the field `effectiveLabels` for all of the labels present on the resource. diff --git a/sdk/go/gcp/backupdisasterrecovery/getBackupPlan.go b/sdk/go/gcp/backupdisasterrecovery/getBackupPlan.go new file mode 100644 index 0000000000..716c697d7f --- /dev/null +++ b/sdk/go/gcp/backupdisasterrecovery/getBackupPlan.go @@ -0,0 +1,144 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package backupdisasterrecovery + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +func LookupBackupPlan(ctx *pulumi.Context, args *LookupBackupPlanArgs, opts ...pulumi.InvokeOption) (*LookupBackupPlanResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupBackupPlanResult + err := ctx.Invoke("gcp:backupdisasterrecovery/getBackupPlan:getBackupPlan", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getBackupPlan. +type LookupBackupPlanArgs struct { + BackupPlanId string `pulumi:"backupPlanId"` + Location string `pulumi:"location"` + Project *string `pulumi:"project"` +} + +// A collection of values returned by getBackupPlan. +type LookupBackupPlanResult struct { + BackupPlanId string `pulumi:"backupPlanId"` + BackupRules []GetBackupPlanBackupRule `pulumi:"backupRules"` + BackupVault string `pulumi:"backupVault"` + BackupVaultServiceAccount string `pulumi:"backupVaultServiceAccount"` + CreateTime string `pulumi:"createTime"` + Description string `pulumi:"description"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + Location string `pulumi:"location"` + Name string `pulumi:"name"` + Project *string `pulumi:"project"` + ResourceType string `pulumi:"resourceType"` + UpdateTime string `pulumi:"updateTime"` +} + +func LookupBackupPlanOutput(ctx *pulumi.Context, args LookupBackupPlanOutputArgs, opts ...pulumi.InvokeOption) LookupBackupPlanResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupBackupPlanResultOutput, error) { + args := v.(LookupBackupPlanArgs) + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupBackupPlanResult + secret, err := ctx.InvokePackageRaw("gcp:backupdisasterrecovery/getBackupPlan:getBackupPlan", args, &rv, "", opts...) + if err != nil { + return LookupBackupPlanResultOutput{}, err + } + + output := pulumi.ToOutput(rv).(LookupBackupPlanResultOutput) + if secret { + return pulumi.ToSecret(output).(LookupBackupPlanResultOutput), nil + } + return output, nil + }).(LookupBackupPlanResultOutput) +} + +// A collection of arguments for invoking getBackupPlan. +type LookupBackupPlanOutputArgs struct { + BackupPlanId pulumi.StringInput `pulumi:"backupPlanId"` + Location pulumi.StringInput `pulumi:"location"` + Project pulumi.StringPtrInput `pulumi:"project"` +} + +func (LookupBackupPlanOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupBackupPlanArgs)(nil)).Elem() +} + +// A collection of values returned by getBackupPlan. +type LookupBackupPlanResultOutput struct{ *pulumi.OutputState } + +func (LookupBackupPlanResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupBackupPlanResult)(nil)).Elem() +} + +func (o LookupBackupPlanResultOutput) ToLookupBackupPlanResultOutput() LookupBackupPlanResultOutput { + return o +} + +func (o LookupBackupPlanResultOutput) ToLookupBackupPlanResultOutputWithContext(ctx context.Context) LookupBackupPlanResultOutput { + return o +} + +func (o LookupBackupPlanResultOutput) BackupPlanId() pulumi.StringOutput { + return o.ApplyT(func(v LookupBackupPlanResult) string { return v.BackupPlanId }).(pulumi.StringOutput) +} + +func (o LookupBackupPlanResultOutput) BackupRules() GetBackupPlanBackupRuleArrayOutput { + return o.ApplyT(func(v LookupBackupPlanResult) []GetBackupPlanBackupRule { return v.BackupRules }).(GetBackupPlanBackupRuleArrayOutput) +} + +func (o LookupBackupPlanResultOutput) BackupVault() pulumi.StringOutput { + return o.ApplyT(func(v LookupBackupPlanResult) string { return v.BackupVault }).(pulumi.StringOutput) +} + +func (o LookupBackupPlanResultOutput) BackupVaultServiceAccount() pulumi.StringOutput { + return o.ApplyT(func(v LookupBackupPlanResult) string { return v.BackupVaultServiceAccount }).(pulumi.StringOutput) +} + +func (o LookupBackupPlanResultOutput) CreateTime() pulumi.StringOutput { + return o.ApplyT(func(v LookupBackupPlanResult) string { return v.CreateTime }).(pulumi.StringOutput) +} + +func (o LookupBackupPlanResultOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v LookupBackupPlanResult) string { return v.Description }).(pulumi.StringOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupBackupPlanResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupBackupPlanResult) string { return v.Id }).(pulumi.StringOutput) +} + +func (o LookupBackupPlanResultOutput) Location() pulumi.StringOutput { + return o.ApplyT(func(v LookupBackupPlanResult) string { return v.Location }).(pulumi.StringOutput) +} + +func (o LookupBackupPlanResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupBackupPlanResult) string { return v.Name }).(pulumi.StringOutput) +} + +func (o LookupBackupPlanResultOutput) Project() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupBackupPlanResult) *string { return v.Project }).(pulumi.StringPtrOutput) +} + +func (o LookupBackupPlanResultOutput) ResourceType() pulumi.StringOutput { + return o.ApplyT(func(v LookupBackupPlanResult) string { return v.ResourceType }).(pulumi.StringOutput) +} + +func (o LookupBackupPlanResultOutput) UpdateTime() pulumi.StringOutput { + return o.ApplyT(func(v LookupBackupPlanResult) string { return v.UpdateTime }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupBackupPlanResultOutput{}) +} diff --git a/sdk/go/gcp/backupdisasterrecovery/getBackupPlanAssociation.go b/sdk/go/gcp/backupdisasterrecovery/getBackupPlanAssociation.go new file mode 100644 index 0000000000..6c243e8d4e --- /dev/null +++ b/sdk/go/gcp/backupdisasterrecovery/getBackupPlanAssociation.go @@ -0,0 +1,185 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package backupdisasterrecovery + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/backupdisasterrecovery" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := backupdisasterrecovery.LookupBackupPlanAssociation(ctx, &backupdisasterrecovery.LookupBackupPlanAssociationArgs{ +// Location: "us-central1", +// BackupPlanAssociationId: "bpa-id", +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func LookupBackupPlanAssociation(ctx *pulumi.Context, args *LookupBackupPlanAssociationArgs, opts ...pulumi.InvokeOption) (*LookupBackupPlanAssociationResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupBackupPlanAssociationResult + err := ctx.Invoke("gcp:backupdisasterrecovery/getBackupPlanAssociation:getBackupPlanAssociation", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getBackupPlanAssociation. +type LookupBackupPlanAssociationArgs struct { + // The id of Backupplan association resource. + // + // *** + BackupPlanAssociationId string `pulumi:"backupPlanAssociationId"` + // The location in which the Backupplan association resource belongs. + Location string `pulumi:"location"` + Project *string `pulumi:"project"` +} + +// A collection of values returned by getBackupPlanAssociation. +type LookupBackupPlanAssociationResult struct { + BackupPlan string `pulumi:"backupPlan"` + BackupPlanAssociationId string `pulumi:"backupPlanAssociationId"` + CreateTime string `pulumi:"createTime"` + DataSource string `pulumi:"dataSource"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + LastSuccessfulBackupConsistencyTime string `pulumi:"lastSuccessfulBackupConsistencyTime"` + Location string `pulumi:"location"` + Name string `pulumi:"name"` + Project *string `pulumi:"project"` + Resource string `pulumi:"resource"` + ResourceType string `pulumi:"resourceType"` + RulesConfigInfos []GetBackupPlanAssociationRulesConfigInfo `pulumi:"rulesConfigInfos"` + UpdateTime string `pulumi:"updateTime"` +} + +func LookupBackupPlanAssociationOutput(ctx *pulumi.Context, args LookupBackupPlanAssociationOutputArgs, opts ...pulumi.InvokeOption) LookupBackupPlanAssociationResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupBackupPlanAssociationResultOutput, error) { + args := v.(LookupBackupPlanAssociationArgs) + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupBackupPlanAssociationResult + secret, err := ctx.InvokePackageRaw("gcp:backupdisasterrecovery/getBackupPlanAssociation:getBackupPlanAssociation", args, &rv, "", opts...) + if err != nil { + return LookupBackupPlanAssociationResultOutput{}, err + } + + output := pulumi.ToOutput(rv).(LookupBackupPlanAssociationResultOutput) + if secret { + return pulumi.ToSecret(output).(LookupBackupPlanAssociationResultOutput), nil + } + return output, nil + }).(LookupBackupPlanAssociationResultOutput) +} + +// A collection of arguments for invoking getBackupPlanAssociation. +type LookupBackupPlanAssociationOutputArgs struct { + // The id of Backupplan association resource. + // + // *** + BackupPlanAssociationId pulumi.StringInput `pulumi:"backupPlanAssociationId"` + // The location in which the Backupplan association resource belongs. + Location pulumi.StringInput `pulumi:"location"` + Project pulumi.StringPtrInput `pulumi:"project"` +} + +func (LookupBackupPlanAssociationOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupBackupPlanAssociationArgs)(nil)).Elem() +} + +// A collection of values returned by getBackupPlanAssociation. +type LookupBackupPlanAssociationResultOutput struct{ *pulumi.OutputState } + +func (LookupBackupPlanAssociationResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupBackupPlanAssociationResult)(nil)).Elem() +} + +func (o LookupBackupPlanAssociationResultOutput) ToLookupBackupPlanAssociationResultOutput() LookupBackupPlanAssociationResultOutput { + return o +} + +func (o LookupBackupPlanAssociationResultOutput) ToLookupBackupPlanAssociationResultOutputWithContext(ctx context.Context) LookupBackupPlanAssociationResultOutput { + return o +} + +func (o LookupBackupPlanAssociationResultOutput) BackupPlan() pulumi.StringOutput { + return o.ApplyT(func(v LookupBackupPlanAssociationResult) string { return v.BackupPlan }).(pulumi.StringOutput) +} + +func (o LookupBackupPlanAssociationResultOutput) BackupPlanAssociationId() pulumi.StringOutput { + return o.ApplyT(func(v LookupBackupPlanAssociationResult) string { return v.BackupPlanAssociationId }).(pulumi.StringOutput) +} + +func (o LookupBackupPlanAssociationResultOutput) CreateTime() pulumi.StringOutput { + return o.ApplyT(func(v LookupBackupPlanAssociationResult) string { return v.CreateTime }).(pulumi.StringOutput) +} + +func (o LookupBackupPlanAssociationResultOutput) DataSource() pulumi.StringOutput { + return o.ApplyT(func(v LookupBackupPlanAssociationResult) string { return v.DataSource }).(pulumi.StringOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupBackupPlanAssociationResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupBackupPlanAssociationResult) string { return v.Id }).(pulumi.StringOutput) +} + +func (o LookupBackupPlanAssociationResultOutput) LastSuccessfulBackupConsistencyTime() pulumi.StringOutput { + return o.ApplyT(func(v LookupBackupPlanAssociationResult) string { return v.LastSuccessfulBackupConsistencyTime }).(pulumi.StringOutput) +} + +func (o LookupBackupPlanAssociationResultOutput) Location() pulumi.StringOutput { + return o.ApplyT(func(v LookupBackupPlanAssociationResult) string { return v.Location }).(pulumi.StringOutput) +} + +func (o LookupBackupPlanAssociationResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupBackupPlanAssociationResult) string { return v.Name }).(pulumi.StringOutput) +} + +func (o LookupBackupPlanAssociationResultOutput) Project() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupBackupPlanAssociationResult) *string { return v.Project }).(pulumi.StringPtrOutput) +} + +func (o LookupBackupPlanAssociationResultOutput) Resource() pulumi.StringOutput { + return o.ApplyT(func(v LookupBackupPlanAssociationResult) string { return v.Resource }).(pulumi.StringOutput) +} + +func (o LookupBackupPlanAssociationResultOutput) ResourceType() pulumi.StringOutput { + return o.ApplyT(func(v LookupBackupPlanAssociationResult) string { return v.ResourceType }).(pulumi.StringOutput) +} + +func (o LookupBackupPlanAssociationResultOutput) RulesConfigInfos() GetBackupPlanAssociationRulesConfigInfoArrayOutput { + return o.ApplyT(func(v LookupBackupPlanAssociationResult) []GetBackupPlanAssociationRulesConfigInfo { + return v.RulesConfigInfos + }).(GetBackupPlanAssociationRulesConfigInfoArrayOutput) +} + +func (o LookupBackupPlanAssociationResultOutput) UpdateTime() pulumi.StringOutput { + return o.ApplyT(func(v LookupBackupPlanAssociationResult) string { return v.UpdateTime }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupBackupPlanAssociationResultOutput{}) +} diff --git a/sdk/go/gcp/backupdisasterrecovery/init.go b/sdk/go/gcp/backupdisasterrecovery/init.go index 7706381cd0..fc660789db 100644 --- a/sdk/go/gcp/backupdisasterrecovery/init.go +++ b/sdk/go/gcp/backupdisasterrecovery/init.go @@ -21,6 +21,10 @@ func (m *module) Version() semver.Version { func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { switch typ { + case "gcp:backupdisasterrecovery/backupPlan:BackupPlan": + r = &BackupPlan{} + case "gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation": + r = &BackupPlanAssociation{} case "gcp:backupdisasterrecovery/backupVault:BackupVault": r = &BackupVault{} case "gcp:backupdisasterrecovery/managementServer:ManagementServer": @@ -38,6 +42,16 @@ func init() { if err != nil { version = semver.Version{Major: 1} } + pulumi.RegisterResourceModule( + "gcp", + "backupdisasterrecovery/backupPlan", + &module{version}, + ) + pulumi.RegisterResourceModule( + "gcp", + "backupdisasterrecovery/backupPlanAssociation", + &module{version}, + ) pulumi.RegisterResourceModule( "gcp", "backupdisasterrecovery/backupVault", diff --git a/sdk/go/gcp/backupdisasterrecovery/pulumiTypes.go b/sdk/go/gcp/backupdisasterrecovery/pulumiTypes.go index 230c0ec01a..4c8dfc2be6 100644 --- a/sdk/go/gcp/backupdisasterrecovery/pulumiTypes.go +++ b/sdk/go/gcp/backupdisasterrecovery/pulumiTypes.go @@ -13,228 +13,1782 @@ import ( var _ = internal.GetEnvOrDefault -type ManagementServerManagementUri struct { +type BackupPlanAssociationRulesConfigInfo struct { // (Output) - // The management console api endpoint. - Api *string `pulumi:"api"` + // google.rpc.Status object to store the last backup error + // Structure is documented below. + LastBackupErrors []BackupPlanAssociationRulesConfigInfoLastBackupError `pulumi:"lastBackupErrors"` // (Output) - // The management console webUi. - WebUi *string `pulumi:"webUi"` + // State of last backup taken. + LastBackupState *string `pulumi:"lastBackupState"` + // (Output) + // Backup Rule id fetched from backup plan. + RuleId *string `pulumi:"ruleId"` } -// ManagementServerManagementUriInput is an input type that accepts ManagementServerManagementUriArgs and ManagementServerManagementUriOutput values. -// You can construct a concrete instance of `ManagementServerManagementUriInput` via: +// BackupPlanAssociationRulesConfigInfoInput is an input type that accepts BackupPlanAssociationRulesConfigInfoArgs and BackupPlanAssociationRulesConfigInfoOutput values. +// You can construct a concrete instance of `BackupPlanAssociationRulesConfigInfoInput` via: // -// ManagementServerManagementUriArgs{...} -type ManagementServerManagementUriInput interface { +// BackupPlanAssociationRulesConfigInfoArgs{...} +type BackupPlanAssociationRulesConfigInfoInput interface { pulumi.Input - ToManagementServerManagementUriOutput() ManagementServerManagementUriOutput - ToManagementServerManagementUriOutputWithContext(context.Context) ManagementServerManagementUriOutput + ToBackupPlanAssociationRulesConfigInfoOutput() BackupPlanAssociationRulesConfigInfoOutput + ToBackupPlanAssociationRulesConfigInfoOutputWithContext(context.Context) BackupPlanAssociationRulesConfigInfoOutput } -type ManagementServerManagementUriArgs struct { +type BackupPlanAssociationRulesConfigInfoArgs struct { // (Output) - // The management console api endpoint. - Api pulumi.StringPtrInput `pulumi:"api"` + // google.rpc.Status object to store the last backup error + // Structure is documented below. + LastBackupErrors BackupPlanAssociationRulesConfigInfoLastBackupErrorArrayInput `pulumi:"lastBackupErrors"` // (Output) - // The management console webUi. - WebUi pulumi.StringPtrInput `pulumi:"webUi"` + // State of last backup taken. + LastBackupState pulumi.StringPtrInput `pulumi:"lastBackupState"` + // (Output) + // Backup Rule id fetched from backup plan. + RuleId pulumi.StringPtrInput `pulumi:"ruleId"` } -func (ManagementServerManagementUriArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ManagementServerManagementUri)(nil)).Elem() +func (BackupPlanAssociationRulesConfigInfoArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BackupPlanAssociationRulesConfigInfo)(nil)).Elem() } -func (i ManagementServerManagementUriArgs) ToManagementServerManagementUriOutput() ManagementServerManagementUriOutput { - return i.ToManagementServerManagementUriOutputWithContext(context.Background()) +func (i BackupPlanAssociationRulesConfigInfoArgs) ToBackupPlanAssociationRulesConfigInfoOutput() BackupPlanAssociationRulesConfigInfoOutput { + return i.ToBackupPlanAssociationRulesConfigInfoOutputWithContext(context.Background()) } -func (i ManagementServerManagementUriArgs) ToManagementServerManagementUriOutputWithContext(ctx context.Context) ManagementServerManagementUriOutput { - return pulumi.ToOutputWithContext(ctx, i).(ManagementServerManagementUriOutput) +func (i BackupPlanAssociationRulesConfigInfoArgs) ToBackupPlanAssociationRulesConfigInfoOutputWithContext(ctx context.Context) BackupPlanAssociationRulesConfigInfoOutput { + return pulumi.ToOutputWithContext(ctx, i).(BackupPlanAssociationRulesConfigInfoOutput) } -// ManagementServerManagementUriArrayInput is an input type that accepts ManagementServerManagementUriArray and ManagementServerManagementUriArrayOutput values. -// You can construct a concrete instance of `ManagementServerManagementUriArrayInput` via: +// BackupPlanAssociationRulesConfigInfoArrayInput is an input type that accepts BackupPlanAssociationRulesConfigInfoArray and BackupPlanAssociationRulesConfigInfoArrayOutput values. +// You can construct a concrete instance of `BackupPlanAssociationRulesConfigInfoArrayInput` via: // -// ManagementServerManagementUriArray{ ManagementServerManagementUriArgs{...} } -type ManagementServerManagementUriArrayInput interface { +// BackupPlanAssociationRulesConfigInfoArray{ BackupPlanAssociationRulesConfigInfoArgs{...} } +type BackupPlanAssociationRulesConfigInfoArrayInput interface { pulumi.Input - ToManagementServerManagementUriArrayOutput() ManagementServerManagementUriArrayOutput - ToManagementServerManagementUriArrayOutputWithContext(context.Context) ManagementServerManagementUriArrayOutput + ToBackupPlanAssociationRulesConfigInfoArrayOutput() BackupPlanAssociationRulesConfigInfoArrayOutput + ToBackupPlanAssociationRulesConfigInfoArrayOutputWithContext(context.Context) BackupPlanAssociationRulesConfigInfoArrayOutput } -type ManagementServerManagementUriArray []ManagementServerManagementUriInput +type BackupPlanAssociationRulesConfigInfoArray []BackupPlanAssociationRulesConfigInfoInput -func (ManagementServerManagementUriArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ManagementServerManagementUri)(nil)).Elem() +func (BackupPlanAssociationRulesConfigInfoArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BackupPlanAssociationRulesConfigInfo)(nil)).Elem() } -func (i ManagementServerManagementUriArray) ToManagementServerManagementUriArrayOutput() ManagementServerManagementUriArrayOutput { - return i.ToManagementServerManagementUriArrayOutputWithContext(context.Background()) +func (i BackupPlanAssociationRulesConfigInfoArray) ToBackupPlanAssociationRulesConfigInfoArrayOutput() BackupPlanAssociationRulesConfigInfoArrayOutput { + return i.ToBackupPlanAssociationRulesConfigInfoArrayOutputWithContext(context.Background()) } -func (i ManagementServerManagementUriArray) ToManagementServerManagementUriArrayOutputWithContext(ctx context.Context) ManagementServerManagementUriArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ManagementServerManagementUriArrayOutput) +func (i BackupPlanAssociationRulesConfigInfoArray) ToBackupPlanAssociationRulesConfigInfoArrayOutputWithContext(ctx context.Context) BackupPlanAssociationRulesConfigInfoArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BackupPlanAssociationRulesConfigInfoArrayOutput) } -type ManagementServerManagementUriOutput struct{ *pulumi.OutputState } +type BackupPlanAssociationRulesConfigInfoOutput struct{ *pulumi.OutputState } -func (ManagementServerManagementUriOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ManagementServerManagementUri)(nil)).Elem() +func (BackupPlanAssociationRulesConfigInfoOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BackupPlanAssociationRulesConfigInfo)(nil)).Elem() } -func (o ManagementServerManagementUriOutput) ToManagementServerManagementUriOutput() ManagementServerManagementUriOutput { +func (o BackupPlanAssociationRulesConfigInfoOutput) ToBackupPlanAssociationRulesConfigInfoOutput() BackupPlanAssociationRulesConfigInfoOutput { return o } -func (o ManagementServerManagementUriOutput) ToManagementServerManagementUriOutputWithContext(ctx context.Context) ManagementServerManagementUriOutput { +func (o BackupPlanAssociationRulesConfigInfoOutput) ToBackupPlanAssociationRulesConfigInfoOutputWithContext(ctx context.Context) BackupPlanAssociationRulesConfigInfoOutput { return o } // (Output) -// The management console api endpoint. -func (o ManagementServerManagementUriOutput) Api() pulumi.StringPtrOutput { - return o.ApplyT(func(v ManagementServerManagementUri) *string { return v.Api }).(pulumi.StringPtrOutput) +// google.rpc.Status object to store the last backup error +// Structure is documented below. +func (o BackupPlanAssociationRulesConfigInfoOutput) LastBackupErrors() BackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput { + return o.ApplyT(func(v BackupPlanAssociationRulesConfigInfo) []BackupPlanAssociationRulesConfigInfoLastBackupError { + return v.LastBackupErrors + }).(BackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput) } // (Output) -// The management console webUi. -func (o ManagementServerManagementUriOutput) WebUi() pulumi.StringPtrOutput { - return o.ApplyT(func(v ManagementServerManagementUri) *string { return v.WebUi }).(pulumi.StringPtrOutput) +// State of last backup taken. +func (o BackupPlanAssociationRulesConfigInfoOutput) LastBackupState() pulumi.StringPtrOutput { + return o.ApplyT(func(v BackupPlanAssociationRulesConfigInfo) *string { return v.LastBackupState }).(pulumi.StringPtrOutput) } -type ManagementServerManagementUriArrayOutput struct{ *pulumi.OutputState } +// (Output) +// Backup Rule id fetched from backup plan. +func (o BackupPlanAssociationRulesConfigInfoOutput) RuleId() pulumi.StringPtrOutput { + return o.ApplyT(func(v BackupPlanAssociationRulesConfigInfo) *string { return v.RuleId }).(pulumi.StringPtrOutput) +} -func (ManagementServerManagementUriArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ManagementServerManagementUri)(nil)).Elem() +type BackupPlanAssociationRulesConfigInfoArrayOutput struct{ *pulumi.OutputState } + +func (BackupPlanAssociationRulesConfigInfoArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BackupPlanAssociationRulesConfigInfo)(nil)).Elem() } -func (o ManagementServerManagementUriArrayOutput) ToManagementServerManagementUriArrayOutput() ManagementServerManagementUriArrayOutput { +func (o BackupPlanAssociationRulesConfigInfoArrayOutput) ToBackupPlanAssociationRulesConfigInfoArrayOutput() BackupPlanAssociationRulesConfigInfoArrayOutput { return o } -func (o ManagementServerManagementUriArrayOutput) ToManagementServerManagementUriArrayOutputWithContext(ctx context.Context) ManagementServerManagementUriArrayOutput { +func (o BackupPlanAssociationRulesConfigInfoArrayOutput) ToBackupPlanAssociationRulesConfigInfoArrayOutputWithContext(ctx context.Context) BackupPlanAssociationRulesConfigInfoArrayOutput { return o } -func (o ManagementServerManagementUriArrayOutput) Index(i pulumi.IntInput) ManagementServerManagementUriOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ManagementServerManagementUri { - return vs[0].([]ManagementServerManagementUri)[vs[1].(int)] - }).(ManagementServerManagementUriOutput) +func (o BackupPlanAssociationRulesConfigInfoArrayOutput) Index(i pulumi.IntInput) BackupPlanAssociationRulesConfigInfoOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BackupPlanAssociationRulesConfigInfo { + return vs[0].([]BackupPlanAssociationRulesConfigInfo)[vs[1].(int)] + }).(BackupPlanAssociationRulesConfigInfoOutput) } -type ManagementServerNetwork struct { - // Network with format `projects/{{project_id}}/global/networks/{{network_id}}` - Network string `pulumi:"network"` - // Type of Network peeringMode - // Default value is `PRIVATE_SERVICE_ACCESS`. - // Possible values are: `PRIVATE_SERVICE_ACCESS`. - PeeringMode *string `pulumi:"peeringMode"` +type BackupPlanAssociationRulesConfigInfoLastBackupError struct { + // (Output) + // The status code, which should be an enum value of [google.rpc.Code] + Code *float64 `pulumi:"code"` + // (Output) + // A developer-facing error message, which should be in English. + Message *string `pulumi:"message"` } -// ManagementServerNetworkInput is an input type that accepts ManagementServerNetworkArgs and ManagementServerNetworkOutput values. -// You can construct a concrete instance of `ManagementServerNetworkInput` via: +// BackupPlanAssociationRulesConfigInfoLastBackupErrorInput is an input type that accepts BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs and BackupPlanAssociationRulesConfigInfoLastBackupErrorOutput values. +// You can construct a concrete instance of `BackupPlanAssociationRulesConfigInfoLastBackupErrorInput` via: // -// ManagementServerNetworkArgs{...} -type ManagementServerNetworkInput interface { +// BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs{...} +type BackupPlanAssociationRulesConfigInfoLastBackupErrorInput interface { pulumi.Input - ToManagementServerNetworkOutput() ManagementServerNetworkOutput - ToManagementServerNetworkOutputWithContext(context.Context) ManagementServerNetworkOutput + ToBackupPlanAssociationRulesConfigInfoLastBackupErrorOutput() BackupPlanAssociationRulesConfigInfoLastBackupErrorOutput + ToBackupPlanAssociationRulesConfigInfoLastBackupErrorOutputWithContext(context.Context) BackupPlanAssociationRulesConfigInfoLastBackupErrorOutput } -type ManagementServerNetworkArgs struct { - // Network with format `projects/{{project_id}}/global/networks/{{network_id}}` - Network pulumi.StringInput `pulumi:"network"` - // Type of Network peeringMode - // Default value is `PRIVATE_SERVICE_ACCESS`. - // Possible values are: `PRIVATE_SERVICE_ACCESS`. - PeeringMode pulumi.StringPtrInput `pulumi:"peeringMode"` +type BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs struct { + // (Output) + // The status code, which should be an enum value of [google.rpc.Code] + Code pulumi.Float64PtrInput `pulumi:"code"` + // (Output) + // A developer-facing error message, which should be in English. + Message pulumi.StringPtrInput `pulumi:"message"` } -func (ManagementServerNetworkArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ManagementServerNetwork)(nil)).Elem() +func (BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BackupPlanAssociationRulesConfigInfoLastBackupError)(nil)).Elem() } -func (i ManagementServerNetworkArgs) ToManagementServerNetworkOutput() ManagementServerNetworkOutput { - return i.ToManagementServerNetworkOutputWithContext(context.Background()) +func (i BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs) ToBackupPlanAssociationRulesConfigInfoLastBackupErrorOutput() BackupPlanAssociationRulesConfigInfoLastBackupErrorOutput { + return i.ToBackupPlanAssociationRulesConfigInfoLastBackupErrorOutputWithContext(context.Background()) } -func (i ManagementServerNetworkArgs) ToManagementServerNetworkOutputWithContext(ctx context.Context) ManagementServerNetworkOutput { - return pulumi.ToOutputWithContext(ctx, i).(ManagementServerNetworkOutput) +func (i BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs) ToBackupPlanAssociationRulesConfigInfoLastBackupErrorOutputWithContext(ctx context.Context) BackupPlanAssociationRulesConfigInfoLastBackupErrorOutput { + return pulumi.ToOutputWithContext(ctx, i).(BackupPlanAssociationRulesConfigInfoLastBackupErrorOutput) } -// ManagementServerNetworkArrayInput is an input type that accepts ManagementServerNetworkArray and ManagementServerNetworkArrayOutput values. -// You can construct a concrete instance of `ManagementServerNetworkArrayInput` via: +// BackupPlanAssociationRulesConfigInfoLastBackupErrorArrayInput is an input type that accepts BackupPlanAssociationRulesConfigInfoLastBackupErrorArray and BackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput values. +// You can construct a concrete instance of `BackupPlanAssociationRulesConfigInfoLastBackupErrorArrayInput` via: // -// ManagementServerNetworkArray{ ManagementServerNetworkArgs{...} } -type ManagementServerNetworkArrayInput interface { +// BackupPlanAssociationRulesConfigInfoLastBackupErrorArray{ BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs{...} } +type BackupPlanAssociationRulesConfigInfoLastBackupErrorArrayInput interface { pulumi.Input - ToManagementServerNetworkArrayOutput() ManagementServerNetworkArrayOutput - ToManagementServerNetworkArrayOutputWithContext(context.Context) ManagementServerNetworkArrayOutput + ToBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput() BackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput + ToBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutputWithContext(context.Context) BackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput } -type ManagementServerNetworkArray []ManagementServerNetworkInput +type BackupPlanAssociationRulesConfigInfoLastBackupErrorArray []BackupPlanAssociationRulesConfigInfoLastBackupErrorInput -func (ManagementServerNetworkArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ManagementServerNetwork)(nil)).Elem() +func (BackupPlanAssociationRulesConfigInfoLastBackupErrorArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BackupPlanAssociationRulesConfigInfoLastBackupError)(nil)).Elem() } -func (i ManagementServerNetworkArray) ToManagementServerNetworkArrayOutput() ManagementServerNetworkArrayOutput { - return i.ToManagementServerNetworkArrayOutputWithContext(context.Background()) +func (i BackupPlanAssociationRulesConfigInfoLastBackupErrorArray) ToBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput() BackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput { + return i.ToBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutputWithContext(context.Background()) } -func (i ManagementServerNetworkArray) ToManagementServerNetworkArrayOutputWithContext(ctx context.Context) ManagementServerNetworkArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ManagementServerNetworkArrayOutput) +func (i BackupPlanAssociationRulesConfigInfoLastBackupErrorArray) ToBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutputWithContext(ctx context.Context) BackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput) } -type ManagementServerNetworkOutput struct{ *pulumi.OutputState } +type BackupPlanAssociationRulesConfigInfoLastBackupErrorOutput struct{ *pulumi.OutputState } -func (ManagementServerNetworkOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ManagementServerNetwork)(nil)).Elem() +func (BackupPlanAssociationRulesConfigInfoLastBackupErrorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BackupPlanAssociationRulesConfigInfoLastBackupError)(nil)).Elem() } -func (o ManagementServerNetworkOutput) ToManagementServerNetworkOutput() ManagementServerNetworkOutput { +func (o BackupPlanAssociationRulesConfigInfoLastBackupErrorOutput) ToBackupPlanAssociationRulesConfigInfoLastBackupErrorOutput() BackupPlanAssociationRulesConfigInfoLastBackupErrorOutput { return o } -func (o ManagementServerNetworkOutput) ToManagementServerNetworkOutputWithContext(ctx context.Context) ManagementServerNetworkOutput { +func (o BackupPlanAssociationRulesConfigInfoLastBackupErrorOutput) ToBackupPlanAssociationRulesConfigInfoLastBackupErrorOutputWithContext(ctx context.Context) BackupPlanAssociationRulesConfigInfoLastBackupErrorOutput { return o } -// Network with format `projects/{{project_id}}/global/networks/{{network_id}}` -func (o ManagementServerNetworkOutput) Network() pulumi.StringOutput { - return o.ApplyT(func(v ManagementServerNetwork) string { return v.Network }).(pulumi.StringOutput) +// (Output) +// The status code, which should be an enum value of [google.rpc.Code] +func (o BackupPlanAssociationRulesConfigInfoLastBackupErrorOutput) Code() pulumi.Float64PtrOutput { + return o.ApplyT(func(v BackupPlanAssociationRulesConfigInfoLastBackupError) *float64 { return v.Code }).(pulumi.Float64PtrOutput) } -// Type of Network peeringMode -// Default value is `PRIVATE_SERVICE_ACCESS`. -// Possible values are: `PRIVATE_SERVICE_ACCESS`. -func (o ManagementServerNetworkOutput) PeeringMode() pulumi.StringPtrOutput { - return o.ApplyT(func(v ManagementServerNetwork) *string { return v.PeeringMode }).(pulumi.StringPtrOutput) +// (Output) +// A developer-facing error message, which should be in English. +func (o BackupPlanAssociationRulesConfigInfoLastBackupErrorOutput) Message() pulumi.StringPtrOutput { + return o.ApplyT(func(v BackupPlanAssociationRulesConfigInfoLastBackupError) *string { return v.Message }).(pulumi.StringPtrOutput) } -type ManagementServerNetworkArrayOutput struct{ *pulumi.OutputState } +type BackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput struct{ *pulumi.OutputState } -func (ManagementServerNetworkArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ManagementServerNetwork)(nil)).Elem() +func (BackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BackupPlanAssociationRulesConfigInfoLastBackupError)(nil)).Elem() } -func (o ManagementServerNetworkArrayOutput) ToManagementServerNetworkArrayOutput() ManagementServerNetworkArrayOutput { +func (o BackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput) ToBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput() BackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput { return o } -func (o ManagementServerNetworkArrayOutput) ToManagementServerNetworkArrayOutputWithContext(ctx context.Context) ManagementServerNetworkArrayOutput { +func (o BackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput) ToBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutputWithContext(ctx context.Context) BackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput { return o } -func (o ManagementServerNetworkArrayOutput) Index(i pulumi.IntInput) ManagementServerNetworkOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ManagementServerNetwork { - return vs[0].([]ManagementServerNetwork)[vs[1].(int)] - }).(ManagementServerNetworkOutput) +func (o BackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput) Index(i pulumi.IntInput) BackupPlanAssociationRulesConfigInfoLastBackupErrorOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BackupPlanAssociationRulesConfigInfoLastBackupError { + return vs[0].([]BackupPlanAssociationRulesConfigInfoLastBackupError)[vs[1].(int)] + }).(BackupPlanAssociationRulesConfigInfoLastBackupErrorOutput) +} + +type BackupPlanBackupRule struct { + // Configures the duration for which backup data will be kept. The value should be greater than or equal to minimum enforced retention of the backup vault. + BackupRetentionDays int `pulumi:"backupRetentionDays"` + // The unique ID of this `BackupRule`. The `ruleId` is unique per `BackupPlan`. + RuleId string `pulumi:"ruleId"` + // StandardSchedule defines a schedule that runs within the confines of a defined window of days. + // Structure is documented below. + StandardSchedule BackupPlanBackupRuleStandardSchedule `pulumi:"standardSchedule"` +} + +// BackupPlanBackupRuleInput is an input type that accepts BackupPlanBackupRuleArgs and BackupPlanBackupRuleOutput values. +// You can construct a concrete instance of `BackupPlanBackupRuleInput` via: +// +// BackupPlanBackupRuleArgs{...} +type BackupPlanBackupRuleInput interface { + pulumi.Input + + ToBackupPlanBackupRuleOutput() BackupPlanBackupRuleOutput + ToBackupPlanBackupRuleOutputWithContext(context.Context) BackupPlanBackupRuleOutput +} + +type BackupPlanBackupRuleArgs struct { + // Configures the duration for which backup data will be kept. The value should be greater than or equal to minimum enforced retention of the backup vault. + BackupRetentionDays pulumi.IntInput `pulumi:"backupRetentionDays"` + // The unique ID of this `BackupRule`. The `ruleId` is unique per `BackupPlan`. + RuleId pulumi.StringInput `pulumi:"ruleId"` + // StandardSchedule defines a schedule that runs within the confines of a defined window of days. + // Structure is documented below. + StandardSchedule BackupPlanBackupRuleStandardScheduleInput `pulumi:"standardSchedule"` +} + +func (BackupPlanBackupRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BackupPlanBackupRule)(nil)).Elem() +} + +func (i BackupPlanBackupRuleArgs) ToBackupPlanBackupRuleOutput() BackupPlanBackupRuleOutput { + return i.ToBackupPlanBackupRuleOutputWithContext(context.Background()) +} + +func (i BackupPlanBackupRuleArgs) ToBackupPlanBackupRuleOutputWithContext(ctx context.Context) BackupPlanBackupRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(BackupPlanBackupRuleOutput) +} + +// BackupPlanBackupRuleArrayInput is an input type that accepts BackupPlanBackupRuleArray and BackupPlanBackupRuleArrayOutput values. +// You can construct a concrete instance of `BackupPlanBackupRuleArrayInput` via: +// +// BackupPlanBackupRuleArray{ BackupPlanBackupRuleArgs{...} } +type BackupPlanBackupRuleArrayInput interface { + pulumi.Input + + ToBackupPlanBackupRuleArrayOutput() BackupPlanBackupRuleArrayOutput + ToBackupPlanBackupRuleArrayOutputWithContext(context.Context) BackupPlanBackupRuleArrayOutput +} + +type BackupPlanBackupRuleArray []BackupPlanBackupRuleInput + +func (BackupPlanBackupRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BackupPlanBackupRule)(nil)).Elem() +} + +func (i BackupPlanBackupRuleArray) ToBackupPlanBackupRuleArrayOutput() BackupPlanBackupRuleArrayOutput { + return i.ToBackupPlanBackupRuleArrayOutputWithContext(context.Background()) +} + +func (i BackupPlanBackupRuleArray) ToBackupPlanBackupRuleArrayOutputWithContext(ctx context.Context) BackupPlanBackupRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BackupPlanBackupRuleArrayOutput) +} + +type BackupPlanBackupRuleOutput struct{ *pulumi.OutputState } + +func (BackupPlanBackupRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BackupPlanBackupRule)(nil)).Elem() +} + +func (o BackupPlanBackupRuleOutput) ToBackupPlanBackupRuleOutput() BackupPlanBackupRuleOutput { + return o +} + +func (o BackupPlanBackupRuleOutput) ToBackupPlanBackupRuleOutputWithContext(ctx context.Context) BackupPlanBackupRuleOutput { + return o +} + +// Configures the duration for which backup data will be kept. The value should be greater than or equal to minimum enforced retention of the backup vault. +func (o BackupPlanBackupRuleOutput) BackupRetentionDays() pulumi.IntOutput { + return o.ApplyT(func(v BackupPlanBackupRule) int { return v.BackupRetentionDays }).(pulumi.IntOutput) +} + +// The unique ID of this `BackupRule`. The `ruleId` is unique per `BackupPlan`. +func (o BackupPlanBackupRuleOutput) RuleId() pulumi.StringOutput { + return o.ApplyT(func(v BackupPlanBackupRule) string { return v.RuleId }).(pulumi.StringOutput) +} + +// StandardSchedule defines a schedule that runs within the confines of a defined window of days. +// Structure is documented below. +func (o BackupPlanBackupRuleOutput) StandardSchedule() BackupPlanBackupRuleStandardScheduleOutput { + return o.ApplyT(func(v BackupPlanBackupRule) BackupPlanBackupRuleStandardSchedule { return v.StandardSchedule }).(BackupPlanBackupRuleStandardScheduleOutput) +} + +type BackupPlanBackupRuleArrayOutput struct{ *pulumi.OutputState } + +func (BackupPlanBackupRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BackupPlanBackupRule)(nil)).Elem() +} + +func (o BackupPlanBackupRuleArrayOutput) ToBackupPlanBackupRuleArrayOutput() BackupPlanBackupRuleArrayOutput { + return o +} + +func (o BackupPlanBackupRuleArrayOutput) ToBackupPlanBackupRuleArrayOutputWithContext(ctx context.Context) BackupPlanBackupRuleArrayOutput { + return o +} + +func (o BackupPlanBackupRuleArrayOutput) Index(i pulumi.IntInput) BackupPlanBackupRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BackupPlanBackupRule { + return vs[0].([]BackupPlanBackupRule)[vs[1].(int)] + }).(BackupPlanBackupRuleOutput) +} + +type BackupPlanBackupRuleStandardSchedule struct { + // A BackupWindow defines the window of the day during which backup jobs will run. Jobs are queued at the beginning of the window and will be marked as + // `NOT_RUN` if they do not start by the end of the window. + // Structure is documented below. + BackupWindow *BackupPlanBackupRuleStandardScheduleBackupWindow `pulumi:"backupWindow"` + // Specifies days of months like 1, 5, or 14 on which jobs will run. + DaysOfMonths []int `pulumi:"daysOfMonths"` + // Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for `recurrenceType`, `WEEKLY` and is not applicable otherwise. + // Each value may be one of: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`. + DaysOfWeeks []string `pulumi:"daysOfWeeks"` + // Specifies frequency for hourly backups. An hourly frequency of 2 means jobs will run every 2 hours from start time till end time defined. + // This is required for `recurrenceType`, `HOURLY` and is not applicable otherwise. + HourlyFrequency *int `pulumi:"hourlyFrequency"` + // Specifies values of months + // Each value may be one of: `MONTH_UNSPECIFIED`, `JANUARY`, `FEBRUARY`, `MARCH`, `APRIL`, `MAY`, `JUNE`, `JULY`, `AUGUST`, `SEPTEMBER`, `OCTOBER`, `NOVEMBER`, `DECEMBER`. + Months []string `pulumi:"months"` + // RecurrenceType enumerates the applicable periodicity for the schedule. + // Possible values are: `HOURLY`, `DAILY`, `WEEKLY`, `MONTHLY`, `YEARLY`. + RecurrenceType string `pulumi:"recurrenceType"` + // The time zone to be used when interpreting the schedule. + TimeZone string `pulumi:"timeZone"` + // Specifies a week day of the month like FIRST SUNDAY or LAST MONDAY, on which jobs will run. + // Structure is documented below. + WeekDayOfMonth *BackupPlanBackupRuleStandardScheduleWeekDayOfMonth `pulumi:"weekDayOfMonth"` +} + +// BackupPlanBackupRuleStandardScheduleInput is an input type that accepts BackupPlanBackupRuleStandardScheduleArgs and BackupPlanBackupRuleStandardScheduleOutput values. +// You can construct a concrete instance of `BackupPlanBackupRuleStandardScheduleInput` via: +// +// BackupPlanBackupRuleStandardScheduleArgs{...} +type BackupPlanBackupRuleStandardScheduleInput interface { + pulumi.Input + + ToBackupPlanBackupRuleStandardScheduleOutput() BackupPlanBackupRuleStandardScheduleOutput + ToBackupPlanBackupRuleStandardScheduleOutputWithContext(context.Context) BackupPlanBackupRuleStandardScheduleOutput +} + +type BackupPlanBackupRuleStandardScheduleArgs struct { + // A BackupWindow defines the window of the day during which backup jobs will run. Jobs are queued at the beginning of the window and will be marked as + // `NOT_RUN` if they do not start by the end of the window. + // Structure is documented below. + BackupWindow BackupPlanBackupRuleStandardScheduleBackupWindowPtrInput `pulumi:"backupWindow"` + // Specifies days of months like 1, 5, or 14 on which jobs will run. + DaysOfMonths pulumi.IntArrayInput `pulumi:"daysOfMonths"` + // Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for `recurrenceType`, `WEEKLY` and is not applicable otherwise. + // Each value may be one of: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`. + DaysOfWeeks pulumi.StringArrayInput `pulumi:"daysOfWeeks"` + // Specifies frequency for hourly backups. An hourly frequency of 2 means jobs will run every 2 hours from start time till end time defined. + // This is required for `recurrenceType`, `HOURLY` and is not applicable otherwise. + HourlyFrequency pulumi.IntPtrInput `pulumi:"hourlyFrequency"` + // Specifies values of months + // Each value may be one of: `MONTH_UNSPECIFIED`, `JANUARY`, `FEBRUARY`, `MARCH`, `APRIL`, `MAY`, `JUNE`, `JULY`, `AUGUST`, `SEPTEMBER`, `OCTOBER`, `NOVEMBER`, `DECEMBER`. + Months pulumi.StringArrayInput `pulumi:"months"` + // RecurrenceType enumerates the applicable periodicity for the schedule. + // Possible values are: `HOURLY`, `DAILY`, `WEEKLY`, `MONTHLY`, `YEARLY`. + RecurrenceType pulumi.StringInput `pulumi:"recurrenceType"` + // The time zone to be used when interpreting the schedule. + TimeZone pulumi.StringInput `pulumi:"timeZone"` + // Specifies a week day of the month like FIRST SUNDAY or LAST MONDAY, on which jobs will run. + // Structure is documented below. + WeekDayOfMonth BackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrInput `pulumi:"weekDayOfMonth"` +} + +func (BackupPlanBackupRuleStandardScheduleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BackupPlanBackupRuleStandardSchedule)(nil)).Elem() +} + +func (i BackupPlanBackupRuleStandardScheduleArgs) ToBackupPlanBackupRuleStandardScheduleOutput() BackupPlanBackupRuleStandardScheduleOutput { + return i.ToBackupPlanBackupRuleStandardScheduleOutputWithContext(context.Background()) +} + +func (i BackupPlanBackupRuleStandardScheduleArgs) ToBackupPlanBackupRuleStandardScheduleOutputWithContext(ctx context.Context) BackupPlanBackupRuleStandardScheduleOutput { + return pulumi.ToOutputWithContext(ctx, i).(BackupPlanBackupRuleStandardScheduleOutput) +} + +type BackupPlanBackupRuleStandardScheduleOutput struct{ *pulumi.OutputState } + +func (BackupPlanBackupRuleStandardScheduleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BackupPlanBackupRuleStandardSchedule)(nil)).Elem() +} + +func (o BackupPlanBackupRuleStandardScheduleOutput) ToBackupPlanBackupRuleStandardScheduleOutput() BackupPlanBackupRuleStandardScheduleOutput { + return o +} + +func (o BackupPlanBackupRuleStandardScheduleOutput) ToBackupPlanBackupRuleStandardScheduleOutputWithContext(ctx context.Context) BackupPlanBackupRuleStandardScheduleOutput { + return o +} + +// A BackupWindow defines the window of the day during which backup jobs will run. Jobs are queued at the beginning of the window and will be marked as +// `NOT_RUN` if they do not start by the end of the window. +// Structure is documented below. +func (o BackupPlanBackupRuleStandardScheduleOutput) BackupWindow() BackupPlanBackupRuleStandardScheduleBackupWindowPtrOutput { + return o.ApplyT(func(v BackupPlanBackupRuleStandardSchedule) *BackupPlanBackupRuleStandardScheduleBackupWindow { + return v.BackupWindow + }).(BackupPlanBackupRuleStandardScheduleBackupWindowPtrOutput) +} + +// Specifies days of months like 1, 5, or 14 on which jobs will run. +func (o BackupPlanBackupRuleStandardScheduleOutput) DaysOfMonths() pulumi.IntArrayOutput { + return o.ApplyT(func(v BackupPlanBackupRuleStandardSchedule) []int { return v.DaysOfMonths }).(pulumi.IntArrayOutput) +} + +// Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for `recurrenceType`, `WEEKLY` and is not applicable otherwise. +// Each value may be one of: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`. +func (o BackupPlanBackupRuleStandardScheduleOutput) DaysOfWeeks() pulumi.StringArrayOutput { + return o.ApplyT(func(v BackupPlanBackupRuleStandardSchedule) []string { return v.DaysOfWeeks }).(pulumi.StringArrayOutput) +} + +// Specifies frequency for hourly backups. An hourly frequency of 2 means jobs will run every 2 hours from start time till end time defined. +// This is required for `recurrenceType`, `HOURLY` and is not applicable otherwise. +func (o BackupPlanBackupRuleStandardScheduleOutput) HourlyFrequency() pulumi.IntPtrOutput { + return o.ApplyT(func(v BackupPlanBackupRuleStandardSchedule) *int { return v.HourlyFrequency }).(pulumi.IntPtrOutput) +} + +// Specifies values of months +// Each value may be one of: `MONTH_UNSPECIFIED`, `JANUARY`, `FEBRUARY`, `MARCH`, `APRIL`, `MAY`, `JUNE`, `JULY`, `AUGUST`, `SEPTEMBER`, `OCTOBER`, `NOVEMBER`, `DECEMBER`. +func (o BackupPlanBackupRuleStandardScheduleOutput) Months() pulumi.StringArrayOutput { + return o.ApplyT(func(v BackupPlanBackupRuleStandardSchedule) []string { return v.Months }).(pulumi.StringArrayOutput) +} + +// RecurrenceType enumerates the applicable periodicity for the schedule. +// Possible values are: `HOURLY`, `DAILY`, `WEEKLY`, `MONTHLY`, `YEARLY`. +func (o BackupPlanBackupRuleStandardScheduleOutput) RecurrenceType() pulumi.StringOutput { + return o.ApplyT(func(v BackupPlanBackupRuleStandardSchedule) string { return v.RecurrenceType }).(pulumi.StringOutput) +} + +// The time zone to be used when interpreting the schedule. +func (o BackupPlanBackupRuleStandardScheduleOutput) TimeZone() pulumi.StringOutput { + return o.ApplyT(func(v BackupPlanBackupRuleStandardSchedule) string { return v.TimeZone }).(pulumi.StringOutput) +} + +// Specifies a week day of the month like FIRST SUNDAY or LAST MONDAY, on which jobs will run. +// Structure is documented below. +func (o BackupPlanBackupRuleStandardScheduleOutput) WeekDayOfMonth() BackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutput { + return o.ApplyT(func(v BackupPlanBackupRuleStandardSchedule) *BackupPlanBackupRuleStandardScheduleWeekDayOfMonth { + return v.WeekDayOfMonth + }).(BackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutput) +} + +type BackupPlanBackupRuleStandardScheduleBackupWindow struct { + // The hour of the day (1-24) when the window ends, for example, if the value of end hour of the day is 10, that means the backup window end time is 10:00. + // The end hour of the day should be greater than the start + // + // *** + EndHourOfDay *int `pulumi:"endHourOfDay"` + // The hour of the day (0-23) when the window starts, for example, if the value of the start hour of the day is 6, that means the backup window starts at 6:00. + StartHourOfDay int `pulumi:"startHourOfDay"` +} + +// BackupPlanBackupRuleStandardScheduleBackupWindowInput is an input type that accepts BackupPlanBackupRuleStandardScheduleBackupWindowArgs and BackupPlanBackupRuleStandardScheduleBackupWindowOutput values. +// You can construct a concrete instance of `BackupPlanBackupRuleStandardScheduleBackupWindowInput` via: +// +// BackupPlanBackupRuleStandardScheduleBackupWindowArgs{...} +type BackupPlanBackupRuleStandardScheduleBackupWindowInput interface { + pulumi.Input + + ToBackupPlanBackupRuleStandardScheduleBackupWindowOutput() BackupPlanBackupRuleStandardScheduleBackupWindowOutput + ToBackupPlanBackupRuleStandardScheduleBackupWindowOutputWithContext(context.Context) BackupPlanBackupRuleStandardScheduleBackupWindowOutput +} + +type BackupPlanBackupRuleStandardScheduleBackupWindowArgs struct { + // The hour of the day (1-24) when the window ends, for example, if the value of end hour of the day is 10, that means the backup window end time is 10:00. + // The end hour of the day should be greater than the start + // + // *** + EndHourOfDay pulumi.IntPtrInput `pulumi:"endHourOfDay"` + // The hour of the day (0-23) when the window starts, for example, if the value of the start hour of the day is 6, that means the backup window starts at 6:00. + StartHourOfDay pulumi.IntInput `pulumi:"startHourOfDay"` +} + +func (BackupPlanBackupRuleStandardScheduleBackupWindowArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BackupPlanBackupRuleStandardScheduleBackupWindow)(nil)).Elem() +} + +func (i BackupPlanBackupRuleStandardScheduleBackupWindowArgs) ToBackupPlanBackupRuleStandardScheduleBackupWindowOutput() BackupPlanBackupRuleStandardScheduleBackupWindowOutput { + return i.ToBackupPlanBackupRuleStandardScheduleBackupWindowOutputWithContext(context.Background()) +} + +func (i BackupPlanBackupRuleStandardScheduleBackupWindowArgs) ToBackupPlanBackupRuleStandardScheduleBackupWindowOutputWithContext(ctx context.Context) BackupPlanBackupRuleStandardScheduleBackupWindowOutput { + return pulumi.ToOutputWithContext(ctx, i).(BackupPlanBackupRuleStandardScheduleBackupWindowOutput) +} + +func (i BackupPlanBackupRuleStandardScheduleBackupWindowArgs) ToBackupPlanBackupRuleStandardScheduleBackupWindowPtrOutput() BackupPlanBackupRuleStandardScheduleBackupWindowPtrOutput { + return i.ToBackupPlanBackupRuleStandardScheduleBackupWindowPtrOutputWithContext(context.Background()) +} + +func (i BackupPlanBackupRuleStandardScheduleBackupWindowArgs) ToBackupPlanBackupRuleStandardScheduleBackupWindowPtrOutputWithContext(ctx context.Context) BackupPlanBackupRuleStandardScheduleBackupWindowPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BackupPlanBackupRuleStandardScheduleBackupWindowOutput).ToBackupPlanBackupRuleStandardScheduleBackupWindowPtrOutputWithContext(ctx) +} + +// BackupPlanBackupRuleStandardScheduleBackupWindowPtrInput is an input type that accepts BackupPlanBackupRuleStandardScheduleBackupWindowArgs, BackupPlanBackupRuleStandardScheduleBackupWindowPtr and BackupPlanBackupRuleStandardScheduleBackupWindowPtrOutput values. +// You can construct a concrete instance of `BackupPlanBackupRuleStandardScheduleBackupWindowPtrInput` via: +// +// BackupPlanBackupRuleStandardScheduleBackupWindowArgs{...} +// +// or: +// +// nil +type BackupPlanBackupRuleStandardScheduleBackupWindowPtrInput interface { + pulumi.Input + + ToBackupPlanBackupRuleStandardScheduleBackupWindowPtrOutput() BackupPlanBackupRuleStandardScheduleBackupWindowPtrOutput + ToBackupPlanBackupRuleStandardScheduleBackupWindowPtrOutputWithContext(context.Context) BackupPlanBackupRuleStandardScheduleBackupWindowPtrOutput +} + +type backupPlanBackupRuleStandardScheduleBackupWindowPtrType BackupPlanBackupRuleStandardScheduleBackupWindowArgs + +func BackupPlanBackupRuleStandardScheduleBackupWindowPtr(v *BackupPlanBackupRuleStandardScheduleBackupWindowArgs) BackupPlanBackupRuleStandardScheduleBackupWindowPtrInput { + return (*backupPlanBackupRuleStandardScheduleBackupWindowPtrType)(v) +} + +func (*backupPlanBackupRuleStandardScheduleBackupWindowPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BackupPlanBackupRuleStandardScheduleBackupWindow)(nil)).Elem() +} + +func (i *backupPlanBackupRuleStandardScheduleBackupWindowPtrType) ToBackupPlanBackupRuleStandardScheduleBackupWindowPtrOutput() BackupPlanBackupRuleStandardScheduleBackupWindowPtrOutput { + return i.ToBackupPlanBackupRuleStandardScheduleBackupWindowPtrOutputWithContext(context.Background()) +} + +func (i *backupPlanBackupRuleStandardScheduleBackupWindowPtrType) ToBackupPlanBackupRuleStandardScheduleBackupWindowPtrOutputWithContext(ctx context.Context) BackupPlanBackupRuleStandardScheduleBackupWindowPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BackupPlanBackupRuleStandardScheduleBackupWindowPtrOutput) +} + +type BackupPlanBackupRuleStandardScheduleBackupWindowOutput struct{ *pulumi.OutputState } + +func (BackupPlanBackupRuleStandardScheduleBackupWindowOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BackupPlanBackupRuleStandardScheduleBackupWindow)(nil)).Elem() +} + +func (o BackupPlanBackupRuleStandardScheduleBackupWindowOutput) ToBackupPlanBackupRuleStandardScheduleBackupWindowOutput() BackupPlanBackupRuleStandardScheduleBackupWindowOutput { + return o +} + +func (o BackupPlanBackupRuleStandardScheduleBackupWindowOutput) ToBackupPlanBackupRuleStandardScheduleBackupWindowOutputWithContext(ctx context.Context) BackupPlanBackupRuleStandardScheduleBackupWindowOutput { + return o +} + +func (o BackupPlanBackupRuleStandardScheduleBackupWindowOutput) ToBackupPlanBackupRuleStandardScheduleBackupWindowPtrOutput() BackupPlanBackupRuleStandardScheduleBackupWindowPtrOutput { + return o.ToBackupPlanBackupRuleStandardScheduleBackupWindowPtrOutputWithContext(context.Background()) +} + +func (o BackupPlanBackupRuleStandardScheduleBackupWindowOutput) ToBackupPlanBackupRuleStandardScheduleBackupWindowPtrOutputWithContext(ctx context.Context) BackupPlanBackupRuleStandardScheduleBackupWindowPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BackupPlanBackupRuleStandardScheduleBackupWindow) *BackupPlanBackupRuleStandardScheduleBackupWindow { + return &v + }).(BackupPlanBackupRuleStandardScheduleBackupWindowPtrOutput) +} + +// The hour of the day (1-24) when the window ends, for example, if the value of end hour of the day is 10, that means the backup window end time is 10:00. +// The end hour of the day should be greater than the start +// +// *** +func (o BackupPlanBackupRuleStandardScheduleBackupWindowOutput) EndHourOfDay() pulumi.IntPtrOutput { + return o.ApplyT(func(v BackupPlanBackupRuleStandardScheduleBackupWindow) *int { return v.EndHourOfDay }).(pulumi.IntPtrOutput) +} + +// The hour of the day (0-23) when the window starts, for example, if the value of the start hour of the day is 6, that means the backup window starts at 6:00. +func (o BackupPlanBackupRuleStandardScheduleBackupWindowOutput) StartHourOfDay() pulumi.IntOutput { + return o.ApplyT(func(v BackupPlanBackupRuleStandardScheduleBackupWindow) int { return v.StartHourOfDay }).(pulumi.IntOutput) +} + +type BackupPlanBackupRuleStandardScheduleBackupWindowPtrOutput struct{ *pulumi.OutputState } + +func (BackupPlanBackupRuleStandardScheduleBackupWindowPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BackupPlanBackupRuleStandardScheduleBackupWindow)(nil)).Elem() +} + +func (o BackupPlanBackupRuleStandardScheduleBackupWindowPtrOutput) ToBackupPlanBackupRuleStandardScheduleBackupWindowPtrOutput() BackupPlanBackupRuleStandardScheduleBackupWindowPtrOutput { + return o +} + +func (o BackupPlanBackupRuleStandardScheduleBackupWindowPtrOutput) ToBackupPlanBackupRuleStandardScheduleBackupWindowPtrOutputWithContext(ctx context.Context) BackupPlanBackupRuleStandardScheduleBackupWindowPtrOutput { + return o +} + +func (o BackupPlanBackupRuleStandardScheduleBackupWindowPtrOutput) Elem() BackupPlanBackupRuleStandardScheduleBackupWindowOutput { + return o.ApplyT(func(v *BackupPlanBackupRuleStandardScheduleBackupWindow) BackupPlanBackupRuleStandardScheduleBackupWindow { + if v != nil { + return *v + } + var ret BackupPlanBackupRuleStandardScheduleBackupWindow + return ret + }).(BackupPlanBackupRuleStandardScheduleBackupWindowOutput) +} + +// The hour of the day (1-24) when the window ends, for example, if the value of end hour of the day is 10, that means the backup window end time is 10:00. +// The end hour of the day should be greater than the start +// +// *** +func (o BackupPlanBackupRuleStandardScheduleBackupWindowPtrOutput) EndHourOfDay() pulumi.IntPtrOutput { + return o.ApplyT(func(v *BackupPlanBackupRuleStandardScheduleBackupWindow) *int { + if v == nil { + return nil + } + return v.EndHourOfDay + }).(pulumi.IntPtrOutput) +} + +// The hour of the day (0-23) when the window starts, for example, if the value of the start hour of the day is 6, that means the backup window starts at 6:00. +func (o BackupPlanBackupRuleStandardScheduleBackupWindowPtrOutput) StartHourOfDay() pulumi.IntPtrOutput { + return o.ApplyT(func(v *BackupPlanBackupRuleStandardScheduleBackupWindow) *int { + if v == nil { + return nil + } + return &v.StartHourOfDay + }).(pulumi.IntPtrOutput) +} + +type BackupPlanBackupRuleStandardScheduleWeekDayOfMonth struct { + // Specifies the day of the week. + // Possible values are: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`. + DayOfWeek string `pulumi:"dayOfWeek"` + // WeekOfMonth enumerates possible weeks in the month, e.g. the first, third, or last week of the month. + // Possible values are: `WEEK_OF_MONTH_UNSPECIFIED`, `FIRST`, `SECOND`, `THIRD`, `FOURTH`, `LAST`. + WeekOfMonth string `pulumi:"weekOfMonth"` +} + +// BackupPlanBackupRuleStandardScheduleWeekDayOfMonthInput is an input type that accepts BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs and BackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput values. +// You can construct a concrete instance of `BackupPlanBackupRuleStandardScheduleWeekDayOfMonthInput` via: +// +// BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs{...} +type BackupPlanBackupRuleStandardScheduleWeekDayOfMonthInput interface { + pulumi.Input + + ToBackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput() BackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput + ToBackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutputWithContext(context.Context) BackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput +} + +type BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs struct { + // Specifies the day of the week. + // Possible values are: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`. + DayOfWeek pulumi.StringInput `pulumi:"dayOfWeek"` + // WeekOfMonth enumerates possible weeks in the month, e.g. the first, third, or last week of the month. + // Possible values are: `WEEK_OF_MONTH_UNSPECIFIED`, `FIRST`, `SECOND`, `THIRD`, `FOURTH`, `LAST`. + WeekOfMonth pulumi.StringInput `pulumi:"weekOfMonth"` +} + +func (BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BackupPlanBackupRuleStandardScheduleWeekDayOfMonth)(nil)).Elem() +} + +func (i BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs) ToBackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput() BackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput { + return i.ToBackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutputWithContext(context.Background()) +} + +func (i BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs) ToBackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutputWithContext(ctx context.Context) BackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput { + return pulumi.ToOutputWithContext(ctx, i).(BackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput) +} + +func (i BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs) ToBackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutput() BackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutput { + return i.ToBackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutputWithContext(context.Background()) +} + +func (i BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs) ToBackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutputWithContext(ctx context.Context) BackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput).ToBackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutputWithContext(ctx) +} + +// BackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrInput is an input type that accepts BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs, BackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtr and BackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutput values. +// You can construct a concrete instance of `BackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrInput` via: +// +// BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs{...} +// +// or: +// +// nil +type BackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrInput interface { + pulumi.Input + + ToBackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutput() BackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutput + ToBackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutputWithContext(context.Context) BackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutput +} + +type backupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrType BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs + +func BackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtr(v *BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs) BackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrInput { + return (*backupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrType)(v) +} + +func (*backupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BackupPlanBackupRuleStandardScheduleWeekDayOfMonth)(nil)).Elem() +} + +func (i *backupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrType) ToBackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutput() BackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutput { + return i.ToBackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutputWithContext(context.Background()) +} + +func (i *backupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrType) ToBackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutputWithContext(ctx context.Context) BackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutput) +} + +type BackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput struct{ *pulumi.OutputState } + +func (BackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BackupPlanBackupRuleStandardScheduleWeekDayOfMonth)(nil)).Elem() +} + +func (o BackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput) ToBackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput() BackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput { + return o +} + +func (o BackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput) ToBackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutputWithContext(ctx context.Context) BackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput { + return o +} + +func (o BackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput) ToBackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutput() BackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutput { + return o.ToBackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutputWithContext(context.Background()) +} + +func (o BackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput) ToBackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutputWithContext(ctx context.Context) BackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BackupPlanBackupRuleStandardScheduleWeekDayOfMonth) *BackupPlanBackupRuleStandardScheduleWeekDayOfMonth { + return &v + }).(BackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutput) +} + +// Specifies the day of the week. +// Possible values are: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`. +func (o BackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput) DayOfWeek() pulumi.StringOutput { + return o.ApplyT(func(v BackupPlanBackupRuleStandardScheduleWeekDayOfMonth) string { return v.DayOfWeek }).(pulumi.StringOutput) +} + +// WeekOfMonth enumerates possible weeks in the month, e.g. the first, third, or last week of the month. +// Possible values are: `WEEK_OF_MONTH_UNSPECIFIED`, `FIRST`, `SECOND`, `THIRD`, `FOURTH`, `LAST`. +func (o BackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput) WeekOfMonth() pulumi.StringOutput { + return o.ApplyT(func(v BackupPlanBackupRuleStandardScheduleWeekDayOfMonth) string { return v.WeekOfMonth }).(pulumi.StringOutput) +} + +type BackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutput struct{ *pulumi.OutputState } + +func (BackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BackupPlanBackupRuleStandardScheduleWeekDayOfMonth)(nil)).Elem() +} + +func (o BackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutput) ToBackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutput() BackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutput { + return o +} + +func (o BackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutput) ToBackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutputWithContext(ctx context.Context) BackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutput { + return o +} + +func (o BackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutput) Elem() BackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput { + return o.ApplyT(func(v *BackupPlanBackupRuleStandardScheduleWeekDayOfMonth) BackupPlanBackupRuleStandardScheduleWeekDayOfMonth { + if v != nil { + return *v + } + var ret BackupPlanBackupRuleStandardScheduleWeekDayOfMonth + return ret + }).(BackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput) +} + +// Specifies the day of the week. +// Possible values are: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`. +func (o BackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutput) DayOfWeek() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BackupPlanBackupRuleStandardScheduleWeekDayOfMonth) *string { + if v == nil { + return nil + } + return &v.DayOfWeek + }).(pulumi.StringPtrOutput) +} + +// WeekOfMonth enumerates possible weeks in the month, e.g. the first, third, or last week of the month. +// Possible values are: `WEEK_OF_MONTH_UNSPECIFIED`, `FIRST`, `SECOND`, `THIRD`, `FOURTH`, `LAST`. +func (o BackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutput) WeekOfMonth() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BackupPlanBackupRuleStandardScheduleWeekDayOfMonth) *string { + if v == nil { + return nil + } + return &v.WeekOfMonth + }).(pulumi.StringPtrOutput) +} + +type ManagementServerManagementUri struct { + // (Output) + // The management console api endpoint. + Api *string `pulumi:"api"` + // (Output) + // The management console webUi. + WebUi *string `pulumi:"webUi"` +} + +// ManagementServerManagementUriInput is an input type that accepts ManagementServerManagementUriArgs and ManagementServerManagementUriOutput values. +// You can construct a concrete instance of `ManagementServerManagementUriInput` via: +// +// ManagementServerManagementUriArgs{...} +type ManagementServerManagementUriInput interface { + pulumi.Input + + ToManagementServerManagementUriOutput() ManagementServerManagementUriOutput + ToManagementServerManagementUriOutputWithContext(context.Context) ManagementServerManagementUriOutput +} + +type ManagementServerManagementUriArgs struct { + // (Output) + // The management console api endpoint. + Api pulumi.StringPtrInput `pulumi:"api"` + // (Output) + // The management console webUi. + WebUi pulumi.StringPtrInput `pulumi:"webUi"` +} + +func (ManagementServerManagementUriArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ManagementServerManagementUri)(nil)).Elem() +} + +func (i ManagementServerManagementUriArgs) ToManagementServerManagementUriOutput() ManagementServerManagementUriOutput { + return i.ToManagementServerManagementUriOutputWithContext(context.Background()) +} + +func (i ManagementServerManagementUriArgs) ToManagementServerManagementUriOutputWithContext(ctx context.Context) ManagementServerManagementUriOutput { + return pulumi.ToOutputWithContext(ctx, i).(ManagementServerManagementUriOutput) +} + +// ManagementServerManagementUriArrayInput is an input type that accepts ManagementServerManagementUriArray and ManagementServerManagementUriArrayOutput values. +// You can construct a concrete instance of `ManagementServerManagementUriArrayInput` via: +// +// ManagementServerManagementUriArray{ ManagementServerManagementUriArgs{...} } +type ManagementServerManagementUriArrayInput interface { + pulumi.Input + + ToManagementServerManagementUriArrayOutput() ManagementServerManagementUriArrayOutput + ToManagementServerManagementUriArrayOutputWithContext(context.Context) ManagementServerManagementUriArrayOutput +} + +type ManagementServerManagementUriArray []ManagementServerManagementUriInput + +func (ManagementServerManagementUriArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ManagementServerManagementUri)(nil)).Elem() +} + +func (i ManagementServerManagementUriArray) ToManagementServerManagementUriArrayOutput() ManagementServerManagementUriArrayOutput { + return i.ToManagementServerManagementUriArrayOutputWithContext(context.Background()) +} + +func (i ManagementServerManagementUriArray) ToManagementServerManagementUriArrayOutputWithContext(ctx context.Context) ManagementServerManagementUriArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ManagementServerManagementUriArrayOutput) +} + +type ManagementServerManagementUriOutput struct{ *pulumi.OutputState } + +func (ManagementServerManagementUriOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ManagementServerManagementUri)(nil)).Elem() +} + +func (o ManagementServerManagementUriOutput) ToManagementServerManagementUriOutput() ManagementServerManagementUriOutput { + return o +} + +func (o ManagementServerManagementUriOutput) ToManagementServerManagementUriOutputWithContext(ctx context.Context) ManagementServerManagementUriOutput { + return o +} + +// (Output) +// The management console api endpoint. +func (o ManagementServerManagementUriOutput) Api() pulumi.StringPtrOutput { + return o.ApplyT(func(v ManagementServerManagementUri) *string { return v.Api }).(pulumi.StringPtrOutput) +} + +// (Output) +// The management console webUi. +func (o ManagementServerManagementUriOutput) WebUi() pulumi.StringPtrOutput { + return o.ApplyT(func(v ManagementServerManagementUri) *string { return v.WebUi }).(pulumi.StringPtrOutput) +} + +type ManagementServerManagementUriArrayOutput struct{ *pulumi.OutputState } + +func (ManagementServerManagementUriArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ManagementServerManagementUri)(nil)).Elem() +} + +func (o ManagementServerManagementUriArrayOutput) ToManagementServerManagementUriArrayOutput() ManagementServerManagementUriArrayOutput { + return o +} + +func (o ManagementServerManagementUriArrayOutput) ToManagementServerManagementUriArrayOutputWithContext(ctx context.Context) ManagementServerManagementUriArrayOutput { + return o +} + +func (o ManagementServerManagementUriArrayOutput) Index(i pulumi.IntInput) ManagementServerManagementUriOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ManagementServerManagementUri { + return vs[0].([]ManagementServerManagementUri)[vs[1].(int)] + }).(ManagementServerManagementUriOutput) +} + +type ManagementServerNetwork struct { + // Network with format `projects/{{project_id}}/global/networks/{{network_id}}` + Network string `pulumi:"network"` + // Type of Network peeringMode + // Default value is `PRIVATE_SERVICE_ACCESS`. + // Possible values are: `PRIVATE_SERVICE_ACCESS`. + PeeringMode *string `pulumi:"peeringMode"` +} + +// ManagementServerNetworkInput is an input type that accepts ManagementServerNetworkArgs and ManagementServerNetworkOutput values. +// You can construct a concrete instance of `ManagementServerNetworkInput` via: +// +// ManagementServerNetworkArgs{...} +type ManagementServerNetworkInput interface { + pulumi.Input + + ToManagementServerNetworkOutput() ManagementServerNetworkOutput + ToManagementServerNetworkOutputWithContext(context.Context) ManagementServerNetworkOutput +} + +type ManagementServerNetworkArgs struct { + // Network with format `projects/{{project_id}}/global/networks/{{network_id}}` + Network pulumi.StringInput `pulumi:"network"` + // Type of Network peeringMode + // Default value is `PRIVATE_SERVICE_ACCESS`. + // Possible values are: `PRIVATE_SERVICE_ACCESS`. + PeeringMode pulumi.StringPtrInput `pulumi:"peeringMode"` +} + +func (ManagementServerNetworkArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ManagementServerNetwork)(nil)).Elem() +} + +func (i ManagementServerNetworkArgs) ToManagementServerNetworkOutput() ManagementServerNetworkOutput { + return i.ToManagementServerNetworkOutputWithContext(context.Background()) +} + +func (i ManagementServerNetworkArgs) ToManagementServerNetworkOutputWithContext(ctx context.Context) ManagementServerNetworkOutput { + return pulumi.ToOutputWithContext(ctx, i).(ManagementServerNetworkOutput) +} + +// ManagementServerNetworkArrayInput is an input type that accepts ManagementServerNetworkArray and ManagementServerNetworkArrayOutput values. +// You can construct a concrete instance of `ManagementServerNetworkArrayInput` via: +// +// ManagementServerNetworkArray{ ManagementServerNetworkArgs{...} } +type ManagementServerNetworkArrayInput interface { + pulumi.Input + + ToManagementServerNetworkArrayOutput() ManagementServerNetworkArrayOutput + ToManagementServerNetworkArrayOutputWithContext(context.Context) ManagementServerNetworkArrayOutput +} + +type ManagementServerNetworkArray []ManagementServerNetworkInput + +func (ManagementServerNetworkArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ManagementServerNetwork)(nil)).Elem() +} + +func (i ManagementServerNetworkArray) ToManagementServerNetworkArrayOutput() ManagementServerNetworkArrayOutput { + return i.ToManagementServerNetworkArrayOutputWithContext(context.Background()) +} + +func (i ManagementServerNetworkArray) ToManagementServerNetworkArrayOutputWithContext(ctx context.Context) ManagementServerNetworkArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ManagementServerNetworkArrayOutput) +} + +type ManagementServerNetworkOutput struct{ *pulumi.OutputState } + +func (ManagementServerNetworkOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ManagementServerNetwork)(nil)).Elem() +} + +func (o ManagementServerNetworkOutput) ToManagementServerNetworkOutput() ManagementServerNetworkOutput { + return o +} + +func (o ManagementServerNetworkOutput) ToManagementServerNetworkOutputWithContext(ctx context.Context) ManagementServerNetworkOutput { + return o +} + +// Network with format `projects/{{project_id}}/global/networks/{{network_id}}` +func (o ManagementServerNetworkOutput) Network() pulumi.StringOutput { + return o.ApplyT(func(v ManagementServerNetwork) string { return v.Network }).(pulumi.StringOutput) +} + +// Type of Network peeringMode +// Default value is `PRIVATE_SERVICE_ACCESS`. +// Possible values are: `PRIVATE_SERVICE_ACCESS`. +func (o ManagementServerNetworkOutput) PeeringMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v ManagementServerNetwork) *string { return v.PeeringMode }).(pulumi.StringPtrOutput) +} + +type ManagementServerNetworkArrayOutput struct{ *pulumi.OutputState } + +func (ManagementServerNetworkArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ManagementServerNetwork)(nil)).Elem() +} + +func (o ManagementServerNetworkArrayOutput) ToManagementServerNetworkArrayOutput() ManagementServerNetworkArrayOutput { + return o +} + +func (o ManagementServerNetworkArrayOutput) ToManagementServerNetworkArrayOutputWithContext(ctx context.Context) ManagementServerNetworkArrayOutput { + return o +} + +func (o ManagementServerNetworkArrayOutput) Index(i pulumi.IntInput) ManagementServerNetworkOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ManagementServerNetwork { + return vs[0].([]ManagementServerNetwork)[vs[1].(int)] + }).(ManagementServerNetworkOutput) +} + +type GetBackupPlanAssociationRulesConfigInfo struct { + // google.rpc.Status object to store the last backup error + LastBackupErrors []GetBackupPlanAssociationRulesConfigInfoLastBackupError `pulumi:"lastBackupErrors"` + // State of last backup taken. + LastBackupState string `pulumi:"lastBackupState"` + // Backup Rule id fetched from backup plan. + RuleId string `pulumi:"ruleId"` +} + +// GetBackupPlanAssociationRulesConfigInfoInput is an input type that accepts GetBackupPlanAssociationRulesConfigInfoArgs and GetBackupPlanAssociationRulesConfigInfoOutput values. +// You can construct a concrete instance of `GetBackupPlanAssociationRulesConfigInfoInput` via: +// +// GetBackupPlanAssociationRulesConfigInfoArgs{...} +type GetBackupPlanAssociationRulesConfigInfoInput interface { + pulumi.Input + + ToGetBackupPlanAssociationRulesConfigInfoOutput() GetBackupPlanAssociationRulesConfigInfoOutput + ToGetBackupPlanAssociationRulesConfigInfoOutputWithContext(context.Context) GetBackupPlanAssociationRulesConfigInfoOutput +} + +type GetBackupPlanAssociationRulesConfigInfoArgs struct { + // google.rpc.Status object to store the last backup error + LastBackupErrors GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayInput `pulumi:"lastBackupErrors"` + // State of last backup taken. + LastBackupState pulumi.StringInput `pulumi:"lastBackupState"` + // Backup Rule id fetched from backup plan. + RuleId pulumi.StringInput `pulumi:"ruleId"` +} + +func (GetBackupPlanAssociationRulesConfigInfoArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetBackupPlanAssociationRulesConfigInfo)(nil)).Elem() +} + +func (i GetBackupPlanAssociationRulesConfigInfoArgs) ToGetBackupPlanAssociationRulesConfigInfoOutput() GetBackupPlanAssociationRulesConfigInfoOutput { + return i.ToGetBackupPlanAssociationRulesConfigInfoOutputWithContext(context.Background()) +} + +func (i GetBackupPlanAssociationRulesConfigInfoArgs) ToGetBackupPlanAssociationRulesConfigInfoOutputWithContext(ctx context.Context) GetBackupPlanAssociationRulesConfigInfoOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetBackupPlanAssociationRulesConfigInfoOutput) +} + +// GetBackupPlanAssociationRulesConfigInfoArrayInput is an input type that accepts GetBackupPlanAssociationRulesConfigInfoArray and GetBackupPlanAssociationRulesConfigInfoArrayOutput values. +// You can construct a concrete instance of `GetBackupPlanAssociationRulesConfigInfoArrayInput` via: +// +// GetBackupPlanAssociationRulesConfigInfoArray{ GetBackupPlanAssociationRulesConfigInfoArgs{...} } +type GetBackupPlanAssociationRulesConfigInfoArrayInput interface { + pulumi.Input + + ToGetBackupPlanAssociationRulesConfigInfoArrayOutput() GetBackupPlanAssociationRulesConfigInfoArrayOutput + ToGetBackupPlanAssociationRulesConfigInfoArrayOutputWithContext(context.Context) GetBackupPlanAssociationRulesConfigInfoArrayOutput +} + +type GetBackupPlanAssociationRulesConfigInfoArray []GetBackupPlanAssociationRulesConfigInfoInput + +func (GetBackupPlanAssociationRulesConfigInfoArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetBackupPlanAssociationRulesConfigInfo)(nil)).Elem() +} + +func (i GetBackupPlanAssociationRulesConfigInfoArray) ToGetBackupPlanAssociationRulesConfigInfoArrayOutput() GetBackupPlanAssociationRulesConfigInfoArrayOutput { + return i.ToGetBackupPlanAssociationRulesConfigInfoArrayOutputWithContext(context.Background()) +} + +func (i GetBackupPlanAssociationRulesConfigInfoArray) ToGetBackupPlanAssociationRulesConfigInfoArrayOutputWithContext(ctx context.Context) GetBackupPlanAssociationRulesConfigInfoArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetBackupPlanAssociationRulesConfigInfoArrayOutput) +} + +type GetBackupPlanAssociationRulesConfigInfoOutput struct{ *pulumi.OutputState } + +func (GetBackupPlanAssociationRulesConfigInfoOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetBackupPlanAssociationRulesConfigInfo)(nil)).Elem() +} + +func (o GetBackupPlanAssociationRulesConfigInfoOutput) ToGetBackupPlanAssociationRulesConfigInfoOutput() GetBackupPlanAssociationRulesConfigInfoOutput { + return o +} + +func (o GetBackupPlanAssociationRulesConfigInfoOutput) ToGetBackupPlanAssociationRulesConfigInfoOutputWithContext(ctx context.Context) GetBackupPlanAssociationRulesConfigInfoOutput { + return o +} + +// google.rpc.Status object to store the last backup error +func (o GetBackupPlanAssociationRulesConfigInfoOutput) LastBackupErrors() GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput { + return o.ApplyT(func(v GetBackupPlanAssociationRulesConfigInfo) []GetBackupPlanAssociationRulesConfigInfoLastBackupError { + return v.LastBackupErrors + }).(GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput) +} + +// State of last backup taken. +func (o GetBackupPlanAssociationRulesConfigInfoOutput) LastBackupState() pulumi.StringOutput { + return o.ApplyT(func(v GetBackupPlanAssociationRulesConfigInfo) string { return v.LastBackupState }).(pulumi.StringOutput) +} + +// Backup Rule id fetched from backup plan. +func (o GetBackupPlanAssociationRulesConfigInfoOutput) RuleId() pulumi.StringOutput { + return o.ApplyT(func(v GetBackupPlanAssociationRulesConfigInfo) string { return v.RuleId }).(pulumi.StringOutput) +} + +type GetBackupPlanAssociationRulesConfigInfoArrayOutput struct{ *pulumi.OutputState } + +func (GetBackupPlanAssociationRulesConfigInfoArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetBackupPlanAssociationRulesConfigInfo)(nil)).Elem() +} + +func (o GetBackupPlanAssociationRulesConfigInfoArrayOutput) ToGetBackupPlanAssociationRulesConfigInfoArrayOutput() GetBackupPlanAssociationRulesConfigInfoArrayOutput { + return o +} + +func (o GetBackupPlanAssociationRulesConfigInfoArrayOutput) ToGetBackupPlanAssociationRulesConfigInfoArrayOutputWithContext(ctx context.Context) GetBackupPlanAssociationRulesConfigInfoArrayOutput { + return o +} + +func (o GetBackupPlanAssociationRulesConfigInfoArrayOutput) Index(i pulumi.IntInput) GetBackupPlanAssociationRulesConfigInfoOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetBackupPlanAssociationRulesConfigInfo { + return vs[0].([]GetBackupPlanAssociationRulesConfigInfo)[vs[1].(int)] + }).(GetBackupPlanAssociationRulesConfigInfoOutput) +} + +type GetBackupPlanAssociationRulesConfigInfoLastBackupError struct { + // The status code, which should be an enum value of [google.rpc.Code] + Code float64 `pulumi:"code"` + // A developer-facing error message, which should be in English. + Message string `pulumi:"message"` +} + +// GetBackupPlanAssociationRulesConfigInfoLastBackupErrorInput is an input type that accepts GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArgs and GetBackupPlanAssociationRulesConfigInfoLastBackupErrorOutput values. +// You can construct a concrete instance of `GetBackupPlanAssociationRulesConfigInfoLastBackupErrorInput` via: +// +// GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArgs{...} +type GetBackupPlanAssociationRulesConfigInfoLastBackupErrorInput interface { + pulumi.Input + + ToGetBackupPlanAssociationRulesConfigInfoLastBackupErrorOutput() GetBackupPlanAssociationRulesConfigInfoLastBackupErrorOutput + ToGetBackupPlanAssociationRulesConfigInfoLastBackupErrorOutputWithContext(context.Context) GetBackupPlanAssociationRulesConfigInfoLastBackupErrorOutput +} + +type GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArgs struct { + // The status code, which should be an enum value of [google.rpc.Code] + Code pulumi.Float64Input `pulumi:"code"` + // A developer-facing error message, which should be in English. + Message pulumi.StringInput `pulumi:"message"` +} + +func (GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetBackupPlanAssociationRulesConfigInfoLastBackupError)(nil)).Elem() +} + +func (i GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArgs) ToGetBackupPlanAssociationRulesConfigInfoLastBackupErrorOutput() GetBackupPlanAssociationRulesConfigInfoLastBackupErrorOutput { + return i.ToGetBackupPlanAssociationRulesConfigInfoLastBackupErrorOutputWithContext(context.Background()) +} + +func (i GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArgs) ToGetBackupPlanAssociationRulesConfigInfoLastBackupErrorOutputWithContext(ctx context.Context) GetBackupPlanAssociationRulesConfigInfoLastBackupErrorOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetBackupPlanAssociationRulesConfigInfoLastBackupErrorOutput) +} + +// GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayInput is an input type that accepts GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArray and GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput values. +// You can construct a concrete instance of `GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayInput` via: +// +// GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArray{ GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArgs{...} } +type GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayInput interface { + pulumi.Input + + ToGetBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput() GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput + ToGetBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutputWithContext(context.Context) GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput +} + +type GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArray []GetBackupPlanAssociationRulesConfigInfoLastBackupErrorInput + +func (GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetBackupPlanAssociationRulesConfigInfoLastBackupError)(nil)).Elem() +} + +func (i GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArray) ToGetBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput() GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput { + return i.ToGetBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutputWithContext(context.Background()) +} + +func (i GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArray) ToGetBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutputWithContext(ctx context.Context) GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput) +} + +type GetBackupPlanAssociationRulesConfigInfoLastBackupErrorOutput struct{ *pulumi.OutputState } + +func (GetBackupPlanAssociationRulesConfigInfoLastBackupErrorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetBackupPlanAssociationRulesConfigInfoLastBackupError)(nil)).Elem() +} + +func (o GetBackupPlanAssociationRulesConfigInfoLastBackupErrorOutput) ToGetBackupPlanAssociationRulesConfigInfoLastBackupErrorOutput() GetBackupPlanAssociationRulesConfigInfoLastBackupErrorOutput { + return o +} + +func (o GetBackupPlanAssociationRulesConfigInfoLastBackupErrorOutput) ToGetBackupPlanAssociationRulesConfigInfoLastBackupErrorOutputWithContext(ctx context.Context) GetBackupPlanAssociationRulesConfigInfoLastBackupErrorOutput { + return o +} + +// The status code, which should be an enum value of [google.rpc.Code] +func (o GetBackupPlanAssociationRulesConfigInfoLastBackupErrorOutput) Code() pulumi.Float64Output { + return o.ApplyT(func(v GetBackupPlanAssociationRulesConfigInfoLastBackupError) float64 { return v.Code }).(pulumi.Float64Output) +} + +// A developer-facing error message, which should be in English. +func (o GetBackupPlanAssociationRulesConfigInfoLastBackupErrorOutput) Message() pulumi.StringOutput { + return o.ApplyT(func(v GetBackupPlanAssociationRulesConfigInfoLastBackupError) string { return v.Message }).(pulumi.StringOutput) +} + +type GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput struct{ *pulumi.OutputState } + +func (GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetBackupPlanAssociationRulesConfigInfoLastBackupError)(nil)).Elem() +} + +func (o GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput) ToGetBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput() GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput { + return o +} + +func (o GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput) ToGetBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutputWithContext(ctx context.Context) GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput { + return o +} + +func (o GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput) Index(i pulumi.IntInput) GetBackupPlanAssociationRulesConfigInfoLastBackupErrorOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetBackupPlanAssociationRulesConfigInfoLastBackupError { + return vs[0].([]GetBackupPlanAssociationRulesConfigInfoLastBackupError)[vs[1].(int)] + }).(GetBackupPlanAssociationRulesConfigInfoLastBackupErrorOutput) +} + +type GetBackupPlanBackupRule struct { + // Configures the duration for which backup data will be kept. The value should be greater than or equal to minimum enforced retention of the backup vault. + BackupRetentionDays int `pulumi:"backupRetentionDays"` + // The unique ID of this 'BackupRule'. The 'rule_id' is unique per 'BackupPlan'. + RuleId string `pulumi:"ruleId"` + // StandardSchedule defines a schedule that runs within the confines of a defined window of days. + StandardSchedules []GetBackupPlanBackupRuleStandardSchedule `pulumi:"standardSchedules"` +} + +// GetBackupPlanBackupRuleInput is an input type that accepts GetBackupPlanBackupRuleArgs and GetBackupPlanBackupRuleOutput values. +// You can construct a concrete instance of `GetBackupPlanBackupRuleInput` via: +// +// GetBackupPlanBackupRuleArgs{...} +type GetBackupPlanBackupRuleInput interface { + pulumi.Input + + ToGetBackupPlanBackupRuleOutput() GetBackupPlanBackupRuleOutput + ToGetBackupPlanBackupRuleOutputWithContext(context.Context) GetBackupPlanBackupRuleOutput +} + +type GetBackupPlanBackupRuleArgs struct { + // Configures the duration for which backup data will be kept. The value should be greater than or equal to minimum enforced retention of the backup vault. + BackupRetentionDays pulumi.IntInput `pulumi:"backupRetentionDays"` + // The unique ID of this 'BackupRule'. The 'rule_id' is unique per 'BackupPlan'. + RuleId pulumi.StringInput `pulumi:"ruleId"` + // StandardSchedule defines a schedule that runs within the confines of a defined window of days. + StandardSchedules GetBackupPlanBackupRuleStandardScheduleArrayInput `pulumi:"standardSchedules"` +} + +func (GetBackupPlanBackupRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetBackupPlanBackupRule)(nil)).Elem() +} + +func (i GetBackupPlanBackupRuleArgs) ToGetBackupPlanBackupRuleOutput() GetBackupPlanBackupRuleOutput { + return i.ToGetBackupPlanBackupRuleOutputWithContext(context.Background()) +} + +func (i GetBackupPlanBackupRuleArgs) ToGetBackupPlanBackupRuleOutputWithContext(ctx context.Context) GetBackupPlanBackupRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetBackupPlanBackupRuleOutput) +} + +// GetBackupPlanBackupRuleArrayInput is an input type that accepts GetBackupPlanBackupRuleArray and GetBackupPlanBackupRuleArrayOutput values. +// You can construct a concrete instance of `GetBackupPlanBackupRuleArrayInput` via: +// +// GetBackupPlanBackupRuleArray{ GetBackupPlanBackupRuleArgs{...} } +type GetBackupPlanBackupRuleArrayInput interface { + pulumi.Input + + ToGetBackupPlanBackupRuleArrayOutput() GetBackupPlanBackupRuleArrayOutput + ToGetBackupPlanBackupRuleArrayOutputWithContext(context.Context) GetBackupPlanBackupRuleArrayOutput +} + +type GetBackupPlanBackupRuleArray []GetBackupPlanBackupRuleInput + +func (GetBackupPlanBackupRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetBackupPlanBackupRule)(nil)).Elem() +} + +func (i GetBackupPlanBackupRuleArray) ToGetBackupPlanBackupRuleArrayOutput() GetBackupPlanBackupRuleArrayOutput { + return i.ToGetBackupPlanBackupRuleArrayOutputWithContext(context.Background()) +} + +func (i GetBackupPlanBackupRuleArray) ToGetBackupPlanBackupRuleArrayOutputWithContext(ctx context.Context) GetBackupPlanBackupRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetBackupPlanBackupRuleArrayOutput) +} + +type GetBackupPlanBackupRuleOutput struct{ *pulumi.OutputState } + +func (GetBackupPlanBackupRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetBackupPlanBackupRule)(nil)).Elem() +} + +func (o GetBackupPlanBackupRuleOutput) ToGetBackupPlanBackupRuleOutput() GetBackupPlanBackupRuleOutput { + return o +} + +func (o GetBackupPlanBackupRuleOutput) ToGetBackupPlanBackupRuleOutputWithContext(ctx context.Context) GetBackupPlanBackupRuleOutput { + return o +} + +// Configures the duration for which backup data will be kept. The value should be greater than or equal to minimum enforced retention of the backup vault. +func (o GetBackupPlanBackupRuleOutput) BackupRetentionDays() pulumi.IntOutput { + return o.ApplyT(func(v GetBackupPlanBackupRule) int { return v.BackupRetentionDays }).(pulumi.IntOutput) +} + +// The unique ID of this 'BackupRule'. The 'rule_id' is unique per 'BackupPlan'. +func (o GetBackupPlanBackupRuleOutput) RuleId() pulumi.StringOutput { + return o.ApplyT(func(v GetBackupPlanBackupRule) string { return v.RuleId }).(pulumi.StringOutput) +} + +// StandardSchedule defines a schedule that runs within the confines of a defined window of days. +func (o GetBackupPlanBackupRuleOutput) StandardSchedules() GetBackupPlanBackupRuleStandardScheduleArrayOutput { + return o.ApplyT(func(v GetBackupPlanBackupRule) []GetBackupPlanBackupRuleStandardSchedule { return v.StandardSchedules }).(GetBackupPlanBackupRuleStandardScheduleArrayOutput) +} + +type GetBackupPlanBackupRuleArrayOutput struct{ *pulumi.OutputState } + +func (GetBackupPlanBackupRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetBackupPlanBackupRule)(nil)).Elem() +} + +func (o GetBackupPlanBackupRuleArrayOutput) ToGetBackupPlanBackupRuleArrayOutput() GetBackupPlanBackupRuleArrayOutput { + return o +} + +func (o GetBackupPlanBackupRuleArrayOutput) ToGetBackupPlanBackupRuleArrayOutputWithContext(ctx context.Context) GetBackupPlanBackupRuleArrayOutput { + return o +} + +func (o GetBackupPlanBackupRuleArrayOutput) Index(i pulumi.IntInput) GetBackupPlanBackupRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetBackupPlanBackupRule { + return vs[0].([]GetBackupPlanBackupRule)[vs[1].(int)] + }).(GetBackupPlanBackupRuleOutput) +} + +type GetBackupPlanBackupRuleStandardSchedule struct { + // A BackupWindow defines the window of the day during which backup jobs will run. Jobs are queued at the beginning of the window and will be marked as + // 'NOT_RUN' if they do not start by the end of the window. + BackupWindows []GetBackupPlanBackupRuleStandardScheduleBackupWindow `pulumi:"backupWindows"` + // Specifies days of months like 1, 5, or 14 on which jobs will run. + DaysOfMonths []int `pulumi:"daysOfMonths"` + // Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for 'recurrence_type', 'WEEKLY' and is not applicable otherwise. Possible values: ["DAY_OF_WEEK_UNSPECIFIED", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY"] + DaysOfWeeks []string `pulumi:"daysOfWeeks"` + // Specifies frequency for hourly backups. An hourly frequency of 2 means jobs will run every 2 hours from start time till end time defined. + // This is required for 'recurrence_type', 'HOURLY' and is not applicable otherwise. + HourlyFrequency int `pulumi:"hourlyFrequency"` + // Specifies values of months Possible values: ["MONTH_UNSPECIFIED", "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER"] + Months []string `pulumi:"months"` + // RecurrenceType enumerates the applicable periodicity for the schedule. Possible values: ["HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY"] + RecurrenceType string `pulumi:"recurrenceType"` + // The time zone to be used when interpreting the schedule. + TimeZone string `pulumi:"timeZone"` + // Specifies a week day of the month like FIRST SUNDAY or LAST MONDAY, on which jobs will run. + WeekDayOfMonths []GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonth `pulumi:"weekDayOfMonths"` +} + +// GetBackupPlanBackupRuleStandardScheduleInput is an input type that accepts GetBackupPlanBackupRuleStandardScheduleArgs and GetBackupPlanBackupRuleStandardScheduleOutput values. +// You can construct a concrete instance of `GetBackupPlanBackupRuleStandardScheduleInput` via: +// +// GetBackupPlanBackupRuleStandardScheduleArgs{...} +type GetBackupPlanBackupRuleStandardScheduleInput interface { + pulumi.Input + + ToGetBackupPlanBackupRuleStandardScheduleOutput() GetBackupPlanBackupRuleStandardScheduleOutput + ToGetBackupPlanBackupRuleStandardScheduleOutputWithContext(context.Context) GetBackupPlanBackupRuleStandardScheduleOutput +} + +type GetBackupPlanBackupRuleStandardScheduleArgs struct { + // A BackupWindow defines the window of the day during which backup jobs will run. Jobs are queued at the beginning of the window and will be marked as + // 'NOT_RUN' if they do not start by the end of the window. + BackupWindows GetBackupPlanBackupRuleStandardScheduleBackupWindowArrayInput `pulumi:"backupWindows"` + // Specifies days of months like 1, 5, or 14 on which jobs will run. + DaysOfMonths pulumi.IntArrayInput `pulumi:"daysOfMonths"` + // Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for 'recurrence_type', 'WEEKLY' and is not applicable otherwise. Possible values: ["DAY_OF_WEEK_UNSPECIFIED", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY"] + DaysOfWeeks pulumi.StringArrayInput `pulumi:"daysOfWeeks"` + // Specifies frequency for hourly backups. An hourly frequency of 2 means jobs will run every 2 hours from start time till end time defined. + // This is required for 'recurrence_type', 'HOURLY' and is not applicable otherwise. + HourlyFrequency pulumi.IntInput `pulumi:"hourlyFrequency"` + // Specifies values of months Possible values: ["MONTH_UNSPECIFIED", "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER"] + Months pulumi.StringArrayInput `pulumi:"months"` + // RecurrenceType enumerates the applicable periodicity for the schedule. Possible values: ["HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY"] + RecurrenceType pulumi.StringInput `pulumi:"recurrenceType"` + // The time zone to be used when interpreting the schedule. + TimeZone pulumi.StringInput `pulumi:"timeZone"` + // Specifies a week day of the month like FIRST SUNDAY or LAST MONDAY, on which jobs will run. + WeekDayOfMonths GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArrayInput `pulumi:"weekDayOfMonths"` +} + +func (GetBackupPlanBackupRuleStandardScheduleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetBackupPlanBackupRuleStandardSchedule)(nil)).Elem() +} + +func (i GetBackupPlanBackupRuleStandardScheduleArgs) ToGetBackupPlanBackupRuleStandardScheduleOutput() GetBackupPlanBackupRuleStandardScheduleOutput { + return i.ToGetBackupPlanBackupRuleStandardScheduleOutputWithContext(context.Background()) +} + +func (i GetBackupPlanBackupRuleStandardScheduleArgs) ToGetBackupPlanBackupRuleStandardScheduleOutputWithContext(ctx context.Context) GetBackupPlanBackupRuleStandardScheduleOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetBackupPlanBackupRuleStandardScheduleOutput) +} + +// GetBackupPlanBackupRuleStandardScheduleArrayInput is an input type that accepts GetBackupPlanBackupRuleStandardScheduleArray and GetBackupPlanBackupRuleStandardScheduleArrayOutput values. +// You can construct a concrete instance of `GetBackupPlanBackupRuleStandardScheduleArrayInput` via: +// +// GetBackupPlanBackupRuleStandardScheduleArray{ GetBackupPlanBackupRuleStandardScheduleArgs{...} } +type GetBackupPlanBackupRuleStandardScheduleArrayInput interface { + pulumi.Input + + ToGetBackupPlanBackupRuleStandardScheduleArrayOutput() GetBackupPlanBackupRuleStandardScheduleArrayOutput + ToGetBackupPlanBackupRuleStandardScheduleArrayOutputWithContext(context.Context) GetBackupPlanBackupRuleStandardScheduleArrayOutput +} + +type GetBackupPlanBackupRuleStandardScheduleArray []GetBackupPlanBackupRuleStandardScheduleInput + +func (GetBackupPlanBackupRuleStandardScheduleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetBackupPlanBackupRuleStandardSchedule)(nil)).Elem() +} + +func (i GetBackupPlanBackupRuleStandardScheduleArray) ToGetBackupPlanBackupRuleStandardScheduleArrayOutput() GetBackupPlanBackupRuleStandardScheduleArrayOutput { + return i.ToGetBackupPlanBackupRuleStandardScheduleArrayOutputWithContext(context.Background()) +} + +func (i GetBackupPlanBackupRuleStandardScheduleArray) ToGetBackupPlanBackupRuleStandardScheduleArrayOutputWithContext(ctx context.Context) GetBackupPlanBackupRuleStandardScheduleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetBackupPlanBackupRuleStandardScheduleArrayOutput) +} + +type GetBackupPlanBackupRuleStandardScheduleOutput struct{ *pulumi.OutputState } + +func (GetBackupPlanBackupRuleStandardScheduleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetBackupPlanBackupRuleStandardSchedule)(nil)).Elem() +} + +func (o GetBackupPlanBackupRuleStandardScheduleOutput) ToGetBackupPlanBackupRuleStandardScheduleOutput() GetBackupPlanBackupRuleStandardScheduleOutput { + return o +} + +func (o GetBackupPlanBackupRuleStandardScheduleOutput) ToGetBackupPlanBackupRuleStandardScheduleOutputWithContext(ctx context.Context) GetBackupPlanBackupRuleStandardScheduleOutput { + return o +} + +// A BackupWindow defines the window of the day during which backup jobs will run. Jobs are queued at the beginning of the window and will be marked as +// 'NOT_RUN' if they do not start by the end of the window. +func (o GetBackupPlanBackupRuleStandardScheduleOutput) BackupWindows() GetBackupPlanBackupRuleStandardScheduleBackupWindowArrayOutput { + return o.ApplyT(func(v GetBackupPlanBackupRuleStandardSchedule) []GetBackupPlanBackupRuleStandardScheduleBackupWindow { + return v.BackupWindows + }).(GetBackupPlanBackupRuleStandardScheduleBackupWindowArrayOutput) +} + +// Specifies days of months like 1, 5, or 14 on which jobs will run. +func (o GetBackupPlanBackupRuleStandardScheduleOutput) DaysOfMonths() pulumi.IntArrayOutput { + return o.ApplyT(func(v GetBackupPlanBackupRuleStandardSchedule) []int { return v.DaysOfMonths }).(pulumi.IntArrayOutput) +} + +// Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for 'recurrence_type', 'WEEKLY' and is not applicable otherwise. Possible values: ["DAY_OF_WEEK_UNSPECIFIED", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY"] +func (o GetBackupPlanBackupRuleStandardScheduleOutput) DaysOfWeeks() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetBackupPlanBackupRuleStandardSchedule) []string { return v.DaysOfWeeks }).(pulumi.StringArrayOutput) +} + +// Specifies frequency for hourly backups. An hourly frequency of 2 means jobs will run every 2 hours from start time till end time defined. +// This is required for 'recurrence_type', 'HOURLY' and is not applicable otherwise. +func (o GetBackupPlanBackupRuleStandardScheduleOutput) HourlyFrequency() pulumi.IntOutput { + return o.ApplyT(func(v GetBackupPlanBackupRuleStandardSchedule) int { return v.HourlyFrequency }).(pulumi.IntOutput) +} + +// Specifies values of months Possible values: ["MONTH_UNSPECIFIED", "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER"] +func (o GetBackupPlanBackupRuleStandardScheduleOutput) Months() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetBackupPlanBackupRuleStandardSchedule) []string { return v.Months }).(pulumi.StringArrayOutput) +} + +// RecurrenceType enumerates the applicable periodicity for the schedule. Possible values: ["HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY"] +func (o GetBackupPlanBackupRuleStandardScheduleOutput) RecurrenceType() pulumi.StringOutput { + return o.ApplyT(func(v GetBackupPlanBackupRuleStandardSchedule) string { return v.RecurrenceType }).(pulumi.StringOutput) +} + +// The time zone to be used when interpreting the schedule. +func (o GetBackupPlanBackupRuleStandardScheduleOutput) TimeZone() pulumi.StringOutput { + return o.ApplyT(func(v GetBackupPlanBackupRuleStandardSchedule) string { return v.TimeZone }).(pulumi.StringOutput) +} + +// Specifies a week day of the month like FIRST SUNDAY or LAST MONDAY, on which jobs will run. +func (o GetBackupPlanBackupRuleStandardScheduleOutput) WeekDayOfMonths() GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArrayOutput { + return o.ApplyT(func(v GetBackupPlanBackupRuleStandardSchedule) []GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonth { + return v.WeekDayOfMonths + }).(GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArrayOutput) +} + +type GetBackupPlanBackupRuleStandardScheduleArrayOutput struct{ *pulumi.OutputState } + +func (GetBackupPlanBackupRuleStandardScheduleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetBackupPlanBackupRuleStandardSchedule)(nil)).Elem() +} + +func (o GetBackupPlanBackupRuleStandardScheduleArrayOutput) ToGetBackupPlanBackupRuleStandardScheduleArrayOutput() GetBackupPlanBackupRuleStandardScheduleArrayOutput { + return o +} + +func (o GetBackupPlanBackupRuleStandardScheduleArrayOutput) ToGetBackupPlanBackupRuleStandardScheduleArrayOutputWithContext(ctx context.Context) GetBackupPlanBackupRuleStandardScheduleArrayOutput { + return o +} + +func (o GetBackupPlanBackupRuleStandardScheduleArrayOutput) Index(i pulumi.IntInput) GetBackupPlanBackupRuleStandardScheduleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetBackupPlanBackupRuleStandardSchedule { + return vs[0].([]GetBackupPlanBackupRuleStandardSchedule)[vs[1].(int)] + }).(GetBackupPlanBackupRuleStandardScheduleOutput) +} + +type GetBackupPlanBackupRuleStandardScheduleBackupWindow struct { + // The hour of the day (1-24) when the window ends, for example, if the value of end hour of the day is 10, that means the backup window end time is 10:00. + // The end hour of the day should be greater than the start + EndHourOfDay int `pulumi:"endHourOfDay"` + // The hour of the day (0-23) when the window starts, for example, if the value of the start hour of the day is 6, that means the backup window starts at 6:00. + StartHourOfDay int `pulumi:"startHourOfDay"` +} + +// GetBackupPlanBackupRuleStandardScheduleBackupWindowInput is an input type that accepts GetBackupPlanBackupRuleStandardScheduleBackupWindowArgs and GetBackupPlanBackupRuleStandardScheduleBackupWindowOutput values. +// You can construct a concrete instance of `GetBackupPlanBackupRuleStandardScheduleBackupWindowInput` via: +// +// GetBackupPlanBackupRuleStandardScheduleBackupWindowArgs{...} +type GetBackupPlanBackupRuleStandardScheduleBackupWindowInput interface { + pulumi.Input + + ToGetBackupPlanBackupRuleStandardScheduleBackupWindowOutput() GetBackupPlanBackupRuleStandardScheduleBackupWindowOutput + ToGetBackupPlanBackupRuleStandardScheduleBackupWindowOutputWithContext(context.Context) GetBackupPlanBackupRuleStandardScheduleBackupWindowOutput +} + +type GetBackupPlanBackupRuleStandardScheduleBackupWindowArgs struct { + // The hour of the day (1-24) when the window ends, for example, if the value of end hour of the day is 10, that means the backup window end time is 10:00. + // The end hour of the day should be greater than the start + EndHourOfDay pulumi.IntInput `pulumi:"endHourOfDay"` + // The hour of the day (0-23) when the window starts, for example, if the value of the start hour of the day is 6, that means the backup window starts at 6:00. + StartHourOfDay pulumi.IntInput `pulumi:"startHourOfDay"` +} + +func (GetBackupPlanBackupRuleStandardScheduleBackupWindowArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetBackupPlanBackupRuleStandardScheduleBackupWindow)(nil)).Elem() +} + +func (i GetBackupPlanBackupRuleStandardScheduleBackupWindowArgs) ToGetBackupPlanBackupRuleStandardScheduleBackupWindowOutput() GetBackupPlanBackupRuleStandardScheduleBackupWindowOutput { + return i.ToGetBackupPlanBackupRuleStandardScheduleBackupWindowOutputWithContext(context.Background()) +} + +func (i GetBackupPlanBackupRuleStandardScheduleBackupWindowArgs) ToGetBackupPlanBackupRuleStandardScheduleBackupWindowOutputWithContext(ctx context.Context) GetBackupPlanBackupRuleStandardScheduleBackupWindowOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetBackupPlanBackupRuleStandardScheduleBackupWindowOutput) +} + +// GetBackupPlanBackupRuleStandardScheduleBackupWindowArrayInput is an input type that accepts GetBackupPlanBackupRuleStandardScheduleBackupWindowArray and GetBackupPlanBackupRuleStandardScheduleBackupWindowArrayOutput values. +// You can construct a concrete instance of `GetBackupPlanBackupRuleStandardScheduleBackupWindowArrayInput` via: +// +// GetBackupPlanBackupRuleStandardScheduleBackupWindowArray{ GetBackupPlanBackupRuleStandardScheduleBackupWindowArgs{...} } +type GetBackupPlanBackupRuleStandardScheduleBackupWindowArrayInput interface { + pulumi.Input + + ToGetBackupPlanBackupRuleStandardScheduleBackupWindowArrayOutput() GetBackupPlanBackupRuleStandardScheduleBackupWindowArrayOutput + ToGetBackupPlanBackupRuleStandardScheduleBackupWindowArrayOutputWithContext(context.Context) GetBackupPlanBackupRuleStandardScheduleBackupWindowArrayOutput +} + +type GetBackupPlanBackupRuleStandardScheduleBackupWindowArray []GetBackupPlanBackupRuleStandardScheduleBackupWindowInput + +func (GetBackupPlanBackupRuleStandardScheduleBackupWindowArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetBackupPlanBackupRuleStandardScheduleBackupWindow)(nil)).Elem() +} + +func (i GetBackupPlanBackupRuleStandardScheduleBackupWindowArray) ToGetBackupPlanBackupRuleStandardScheduleBackupWindowArrayOutput() GetBackupPlanBackupRuleStandardScheduleBackupWindowArrayOutput { + return i.ToGetBackupPlanBackupRuleStandardScheduleBackupWindowArrayOutputWithContext(context.Background()) +} + +func (i GetBackupPlanBackupRuleStandardScheduleBackupWindowArray) ToGetBackupPlanBackupRuleStandardScheduleBackupWindowArrayOutputWithContext(ctx context.Context) GetBackupPlanBackupRuleStandardScheduleBackupWindowArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetBackupPlanBackupRuleStandardScheduleBackupWindowArrayOutput) +} + +type GetBackupPlanBackupRuleStandardScheduleBackupWindowOutput struct{ *pulumi.OutputState } + +func (GetBackupPlanBackupRuleStandardScheduleBackupWindowOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetBackupPlanBackupRuleStandardScheduleBackupWindow)(nil)).Elem() +} + +func (o GetBackupPlanBackupRuleStandardScheduleBackupWindowOutput) ToGetBackupPlanBackupRuleStandardScheduleBackupWindowOutput() GetBackupPlanBackupRuleStandardScheduleBackupWindowOutput { + return o +} + +func (o GetBackupPlanBackupRuleStandardScheduleBackupWindowOutput) ToGetBackupPlanBackupRuleStandardScheduleBackupWindowOutputWithContext(ctx context.Context) GetBackupPlanBackupRuleStandardScheduleBackupWindowOutput { + return o +} + +// The hour of the day (1-24) when the window ends, for example, if the value of end hour of the day is 10, that means the backup window end time is 10:00. +// The end hour of the day should be greater than the start +func (o GetBackupPlanBackupRuleStandardScheduleBackupWindowOutput) EndHourOfDay() pulumi.IntOutput { + return o.ApplyT(func(v GetBackupPlanBackupRuleStandardScheduleBackupWindow) int { return v.EndHourOfDay }).(pulumi.IntOutput) +} + +// The hour of the day (0-23) when the window starts, for example, if the value of the start hour of the day is 6, that means the backup window starts at 6:00. +func (o GetBackupPlanBackupRuleStandardScheduleBackupWindowOutput) StartHourOfDay() pulumi.IntOutput { + return o.ApplyT(func(v GetBackupPlanBackupRuleStandardScheduleBackupWindow) int { return v.StartHourOfDay }).(pulumi.IntOutput) +} + +type GetBackupPlanBackupRuleStandardScheduleBackupWindowArrayOutput struct{ *pulumi.OutputState } + +func (GetBackupPlanBackupRuleStandardScheduleBackupWindowArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetBackupPlanBackupRuleStandardScheduleBackupWindow)(nil)).Elem() +} + +func (o GetBackupPlanBackupRuleStandardScheduleBackupWindowArrayOutput) ToGetBackupPlanBackupRuleStandardScheduleBackupWindowArrayOutput() GetBackupPlanBackupRuleStandardScheduleBackupWindowArrayOutput { + return o +} + +func (o GetBackupPlanBackupRuleStandardScheduleBackupWindowArrayOutput) ToGetBackupPlanBackupRuleStandardScheduleBackupWindowArrayOutputWithContext(ctx context.Context) GetBackupPlanBackupRuleStandardScheduleBackupWindowArrayOutput { + return o +} + +func (o GetBackupPlanBackupRuleStandardScheduleBackupWindowArrayOutput) Index(i pulumi.IntInput) GetBackupPlanBackupRuleStandardScheduleBackupWindowOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetBackupPlanBackupRuleStandardScheduleBackupWindow { + return vs[0].([]GetBackupPlanBackupRuleStandardScheduleBackupWindow)[vs[1].(int)] + }).(GetBackupPlanBackupRuleStandardScheduleBackupWindowOutput) +} + +type GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonth struct { + // Specifies the day of the week. Possible values: ["DAY_OF_WEEK_UNSPECIFIED", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"] + DayOfWeek string `pulumi:"dayOfWeek"` + // WeekOfMonth enumerates possible weeks in the month, e.g. the first, third, or last week of the month. Possible values: ["WEEK_OF_MONTH_UNSPECIFIED", "FIRST", "SECOND", "THIRD", "FOURTH", "LAST"] + WeekOfMonth string `pulumi:"weekOfMonth"` +} + +// GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthInput is an input type that accepts GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs and GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput values. +// You can construct a concrete instance of `GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthInput` via: +// +// GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs{...} +type GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthInput interface { + pulumi.Input + + ToGetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput() GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput + ToGetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutputWithContext(context.Context) GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput +} + +type GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs struct { + // Specifies the day of the week. Possible values: ["DAY_OF_WEEK_UNSPECIFIED", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"] + DayOfWeek pulumi.StringInput `pulumi:"dayOfWeek"` + // WeekOfMonth enumerates possible weeks in the month, e.g. the first, third, or last week of the month. Possible values: ["WEEK_OF_MONTH_UNSPECIFIED", "FIRST", "SECOND", "THIRD", "FOURTH", "LAST"] + WeekOfMonth pulumi.StringInput `pulumi:"weekOfMonth"` +} + +func (GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonth)(nil)).Elem() +} + +func (i GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs) ToGetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput() GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput { + return i.ToGetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutputWithContext(context.Background()) +} + +func (i GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs) ToGetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutputWithContext(ctx context.Context) GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput) +} + +// GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArrayInput is an input type that accepts GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArray and GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArrayOutput values. +// You can construct a concrete instance of `GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArrayInput` via: +// +// GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArray{ GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs{...} } +type GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArrayInput interface { + pulumi.Input + + ToGetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArrayOutput() GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArrayOutput + ToGetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArrayOutputWithContext(context.Context) GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArrayOutput +} + +type GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArray []GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthInput + +func (GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonth)(nil)).Elem() +} + +func (i GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArray) ToGetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArrayOutput() GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArrayOutput { + return i.ToGetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArrayOutputWithContext(context.Background()) +} + +func (i GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArray) ToGetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArrayOutputWithContext(ctx context.Context) GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArrayOutput) +} + +type GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput struct{ *pulumi.OutputState } + +func (GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonth)(nil)).Elem() +} + +func (o GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput) ToGetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput() GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput { + return o +} + +func (o GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput) ToGetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutputWithContext(ctx context.Context) GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput { + return o +} + +// Specifies the day of the week. Possible values: ["DAY_OF_WEEK_UNSPECIFIED", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"] +func (o GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput) DayOfWeek() pulumi.StringOutput { + return o.ApplyT(func(v GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonth) string { return v.DayOfWeek }).(pulumi.StringOutput) +} + +// WeekOfMonth enumerates possible weeks in the month, e.g. the first, third, or last week of the month. Possible values: ["WEEK_OF_MONTH_UNSPECIFIED", "FIRST", "SECOND", "THIRD", "FOURTH", "LAST"] +func (o GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput) WeekOfMonth() pulumi.StringOutput { + return o.ApplyT(func(v GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonth) string { return v.WeekOfMonth }).(pulumi.StringOutput) +} + +type GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArrayOutput struct{ *pulumi.OutputState } + +func (GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonth)(nil)).Elem() +} + +func (o GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArrayOutput) ToGetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArrayOutput() GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArrayOutput { + return o +} + +func (o GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArrayOutput) ToGetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArrayOutputWithContext(ctx context.Context) GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArrayOutput { + return o +} + +func (o GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArrayOutput) Index(i pulumi.IntInput) GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonth { + return vs[0].([]GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonth)[vs[1].(int)] + }).(GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput) } type GetManagementServerManagementUri struct { @@ -450,18 +2004,64 @@ func (o GetManagementServerNetworkArrayOutput) Index(i pulumi.IntInput) GetManag } func init() { + pulumi.RegisterInputType(reflect.TypeOf((*BackupPlanAssociationRulesConfigInfoInput)(nil)).Elem(), BackupPlanAssociationRulesConfigInfoArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BackupPlanAssociationRulesConfigInfoArrayInput)(nil)).Elem(), BackupPlanAssociationRulesConfigInfoArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BackupPlanAssociationRulesConfigInfoLastBackupErrorInput)(nil)).Elem(), BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BackupPlanAssociationRulesConfigInfoLastBackupErrorArrayInput)(nil)).Elem(), BackupPlanAssociationRulesConfigInfoLastBackupErrorArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BackupPlanBackupRuleInput)(nil)).Elem(), BackupPlanBackupRuleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BackupPlanBackupRuleArrayInput)(nil)).Elem(), BackupPlanBackupRuleArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BackupPlanBackupRuleStandardScheduleInput)(nil)).Elem(), BackupPlanBackupRuleStandardScheduleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BackupPlanBackupRuleStandardScheduleBackupWindowInput)(nil)).Elem(), BackupPlanBackupRuleStandardScheduleBackupWindowArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BackupPlanBackupRuleStandardScheduleBackupWindowPtrInput)(nil)).Elem(), BackupPlanBackupRuleStandardScheduleBackupWindowArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BackupPlanBackupRuleStandardScheduleWeekDayOfMonthInput)(nil)).Elem(), BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrInput)(nil)).Elem(), BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ManagementServerManagementUriInput)(nil)).Elem(), ManagementServerManagementUriArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ManagementServerManagementUriArrayInput)(nil)).Elem(), ManagementServerManagementUriArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ManagementServerNetworkInput)(nil)).Elem(), ManagementServerNetworkArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ManagementServerNetworkArrayInput)(nil)).Elem(), ManagementServerNetworkArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetBackupPlanAssociationRulesConfigInfoInput)(nil)).Elem(), GetBackupPlanAssociationRulesConfigInfoArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetBackupPlanAssociationRulesConfigInfoArrayInput)(nil)).Elem(), GetBackupPlanAssociationRulesConfigInfoArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetBackupPlanAssociationRulesConfigInfoLastBackupErrorInput)(nil)).Elem(), GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayInput)(nil)).Elem(), GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetBackupPlanBackupRuleInput)(nil)).Elem(), GetBackupPlanBackupRuleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetBackupPlanBackupRuleArrayInput)(nil)).Elem(), GetBackupPlanBackupRuleArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetBackupPlanBackupRuleStandardScheduleInput)(nil)).Elem(), GetBackupPlanBackupRuleStandardScheduleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetBackupPlanBackupRuleStandardScheduleArrayInput)(nil)).Elem(), GetBackupPlanBackupRuleStandardScheduleArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetBackupPlanBackupRuleStandardScheduleBackupWindowInput)(nil)).Elem(), GetBackupPlanBackupRuleStandardScheduleBackupWindowArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetBackupPlanBackupRuleStandardScheduleBackupWindowArrayInput)(nil)).Elem(), GetBackupPlanBackupRuleStandardScheduleBackupWindowArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthInput)(nil)).Elem(), GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArrayInput)(nil)).Elem(), GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetManagementServerManagementUriInput)(nil)).Elem(), GetManagementServerManagementUriArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetManagementServerManagementUriArrayInput)(nil)).Elem(), GetManagementServerManagementUriArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetManagementServerNetworkInput)(nil)).Elem(), GetManagementServerNetworkArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetManagementServerNetworkArrayInput)(nil)).Elem(), GetManagementServerNetworkArray{}) + pulumi.RegisterOutputType(BackupPlanAssociationRulesConfigInfoOutput{}) + pulumi.RegisterOutputType(BackupPlanAssociationRulesConfigInfoArrayOutput{}) + pulumi.RegisterOutputType(BackupPlanAssociationRulesConfigInfoLastBackupErrorOutput{}) + pulumi.RegisterOutputType(BackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput{}) + pulumi.RegisterOutputType(BackupPlanBackupRuleOutput{}) + pulumi.RegisterOutputType(BackupPlanBackupRuleArrayOutput{}) + pulumi.RegisterOutputType(BackupPlanBackupRuleStandardScheduleOutput{}) + pulumi.RegisterOutputType(BackupPlanBackupRuleStandardScheduleBackupWindowOutput{}) + pulumi.RegisterOutputType(BackupPlanBackupRuleStandardScheduleBackupWindowPtrOutput{}) + pulumi.RegisterOutputType(BackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput{}) + pulumi.RegisterOutputType(BackupPlanBackupRuleStandardScheduleWeekDayOfMonthPtrOutput{}) pulumi.RegisterOutputType(ManagementServerManagementUriOutput{}) pulumi.RegisterOutputType(ManagementServerManagementUriArrayOutput{}) pulumi.RegisterOutputType(ManagementServerNetworkOutput{}) pulumi.RegisterOutputType(ManagementServerNetworkArrayOutput{}) + pulumi.RegisterOutputType(GetBackupPlanAssociationRulesConfigInfoOutput{}) + pulumi.RegisterOutputType(GetBackupPlanAssociationRulesConfigInfoArrayOutput{}) + pulumi.RegisterOutputType(GetBackupPlanAssociationRulesConfigInfoLastBackupErrorOutput{}) + pulumi.RegisterOutputType(GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArrayOutput{}) + pulumi.RegisterOutputType(GetBackupPlanBackupRuleOutput{}) + pulumi.RegisterOutputType(GetBackupPlanBackupRuleArrayOutput{}) + pulumi.RegisterOutputType(GetBackupPlanBackupRuleStandardScheduleOutput{}) + pulumi.RegisterOutputType(GetBackupPlanBackupRuleStandardScheduleArrayOutput{}) + pulumi.RegisterOutputType(GetBackupPlanBackupRuleStandardScheduleBackupWindowOutput{}) + pulumi.RegisterOutputType(GetBackupPlanBackupRuleStandardScheduleBackupWindowArrayOutput{}) + pulumi.RegisterOutputType(GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthOutput{}) + pulumi.RegisterOutputType(GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArrayOutput{}) pulumi.RegisterOutputType(GetManagementServerManagementUriOutput{}) pulumi.RegisterOutputType(GetManagementServerManagementUriArrayOutput{}) pulumi.RegisterOutputType(GetManagementServerNetworkOutput{}) diff --git a/sdk/go/gcp/bigquery/dataTransferConfig.go b/sdk/go/gcp/bigquery/dataTransferConfig.go index 3255606ab8..c4f9b3dfad 100644 --- a/sdk/go/gcp/bigquery/dataTransferConfig.go +++ b/sdk/go/gcp/bigquery/dataTransferConfig.go @@ -220,11 +220,23 @@ import ( // // Config can be imported using any of these accepted formats: // +// * `{{project}}/{{name}}` +// +// * `{{project}} {{name}}` +// // * `{{name}}` // // When using the `pulumi import` command, Config can be imported using one of the formats above. For example: // // ```sh +// $ pulumi import gcp:bigquery/dataTransferConfig:DataTransferConfig default {{project}}/{{name}} +// ``` +// +// ```sh +// $ pulumi import gcp:bigquery/dataTransferConfig:DataTransferConfig default "{{project}} {{name}}" +// ``` +// +// ```sh // $ pulumi import gcp:bigquery/dataTransferConfig:DataTransferConfig default {{name}} // ``` type DataTransferConfig struct { diff --git a/sdk/go/gcp/cloudrunv2/job.go b/sdk/go/gcp/cloudrunv2/job.go index df12e87f97..e0e64968c9 100644 --- a/sdk/go/gcp/cloudrunv2/job.go +++ b/sdk/go/gcp/cloudrunv2/job.go @@ -448,7 +448,6 @@ import ( // Name: pulumi.String("cloudrun-job"), // Location: pulumi.String("us-central1"), // DeletionProtection: pulumi.Bool(false), -// LaunchStage: pulumi.String("BETA"), // Template: &cloudrunv2.JobTemplateArgs{ // Template: &cloudrunv2.JobTemplateTemplateArgs{ // Containers: cloudrunv2.JobTemplateTemplateContainerArray{ diff --git a/sdk/go/gcp/cloudrunv2/pulumiTypes.go b/sdk/go/gcp/cloudrunv2/pulumiTypes.go index fb475d6d12..2e01dd6d95 100644 --- a/sdk/go/gcp/cloudrunv2/pulumiTypes.go +++ b/sdk/go/gcp/cloudrunv2/pulumiTypes.go @@ -2778,6 +2778,9 @@ func (o JobTemplateTemplateVolumeEmptyDirPtrOutput) SizeLimit() pulumi.StringPtr type JobTemplateTemplateVolumeGcs struct { // Name of the cloud storage bucket to back the volume. The resource service account must have permission to access the bucket. Bucket string `pulumi:"bucket"` + // A list of flags to pass to the gcsfuse command for configuring this volume. + // Flags should be passed without leading dashes. + MountOptions []string `pulumi:"mountOptions"` // If true, mount this volume as read-only in all mounts. If false, mount this volume as read-write. ReadOnly *bool `pulumi:"readOnly"` } @@ -2796,6 +2799,9 @@ type JobTemplateTemplateVolumeGcsInput interface { type JobTemplateTemplateVolumeGcsArgs struct { // Name of the cloud storage bucket to back the volume. The resource service account must have permission to access the bucket. Bucket pulumi.StringInput `pulumi:"bucket"` + // A list of flags to pass to the gcsfuse command for configuring this volume. + // Flags should be passed without leading dashes. + MountOptions pulumi.StringArrayInput `pulumi:"mountOptions"` // If true, mount this volume as read-only in all mounts. If false, mount this volume as read-write. ReadOnly pulumi.BoolPtrInput `pulumi:"readOnly"` } @@ -2882,6 +2888,12 @@ func (o JobTemplateTemplateVolumeGcsOutput) Bucket() pulumi.StringOutput { return o.ApplyT(func(v JobTemplateTemplateVolumeGcs) string { return v.Bucket }).(pulumi.StringOutput) } +// A list of flags to pass to the gcsfuse command for configuring this volume. +// Flags should be passed without leading dashes. +func (o JobTemplateTemplateVolumeGcsOutput) MountOptions() pulumi.StringArrayOutput { + return o.ApplyT(func(v JobTemplateTemplateVolumeGcs) []string { return v.MountOptions }).(pulumi.StringArrayOutput) +} + // If true, mount this volume as read-only in all mounts. If false, mount this volume as read-write. func (o JobTemplateTemplateVolumeGcsOutput) ReadOnly() pulumi.BoolPtrOutput { return o.ApplyT(func(v JobTemplateTemplateVolumeGcs) *bool { return v.ReadOnly }).(pulumi.BoolPtrOutput) @@ -2921,6 +2933,17 @@ func (o JobTemplateTemplateVolumeGcsPtrOutput) Bucket() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// A list of flags to pass to the gcsfuse command for configuring this volume. +// Flags should be passed without leading dashes. +func (o JobTemplateTemplateVolumeGcsPtrOutput) MountOptions() pulumi.StringArrayOutput { + return o.ApplyT(func(v *JobTemplateTemplateVolumeGcs) []string { + if v == nil { + return nil + } + return v.MountOptions + }).(pulumi.StringArrayOutput) +} + // If true, mount this volume as read-only in all mounts. If false, mount this volume as read-write. func (o JobTemplateTemplateVolumeGcsPtrOutput) ReadOnly() pulumi.BoolPtrOutput { return o.ApplyT(func(v *JobTemplateTemplateVolumeGcs) *bool { @@ -8903,6 +8926,9 @@ func (o ServiceTemplateVolumeEmptyDirPtrOutput) SizeLimit() pulumi.StringPtrOutp type ServiceTemplateVolumeGcs struct { // GCS Bucket name Bucket string `pulumi:"bucket"` + // A list of flags to pass to the gcsfuse command for configuring this volume. + // Flags should be passed without leading dashes. + MountOptions []string `pulumi:"mountOptions"` // If true, mount the GCS bucket as read-only ReadOnly *bool `pulumi:"readOnly"` } @@ -8921,6 +8947,9 @@ type ServiceTemplateVolumeGcsInput interface { type ServiceTemplateVolumeGcsArgs struct { // GCS Bucket name Bucket pulumi.StringInput `pulumi:"bucket"` + // A list of flags to pass to the gcsfuse command for configuring this volume. + // Flags should be passed without leading dashes. + MountOptions pulumi.StringArrayInput `pulumi:"mountOptions"` // If true, mount the GCS bucket as read-only ReadOnly pulumi.BoolPtrInput `pulumi:"readOnly"` } @@ -9007,6 +9036,12 @@ func (o ServiceTemplateVolumeGcsOutput) Bucket() pulumi.StringOutput { return o.ApplyT(func(v ServiceTemplateVolumeGcs) string { return v.Bucket }).(pulumi.StringOutput) } +// A list of flags to pass to the gcsfuse command for configuring this volume. +// Flags should be passed without leading dashes. +func (o ServiceTemplateVolumeGcsOutput) MountOptions() pulumi.StringArrayOutput { + return o.ApplyT(func(v ServiceTemplateVolumeGcs) []string { return v.MountOptions }).(pulumi.StringArrayOutput) +} + // If true, mount the GCS bucket as read-only func (o ServiceTemplateVolumeGcsOutput) ReadOnly() pulumi.BoolPtrOutput { return o.ApplyT(func(v ServiceTemplateVolumeGcs) *bool { return v.ReadOnly }).(pulumi.BoolPtrOutput) @@ -9046,6 +9081,17 @@ func (o ServiceTemplateVolumeGcsPtrOutput) Bucket() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// A list of flags to pass to the gcsfuse command for configuring this volume. +// Flags should be passed without leading dashes. +func (o ServiceTemplateVolumeGcsPtrOutput) MountOptions() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ServiceTemplateVolumeGcs) []string { + if v == nil { + return nil + } + return v.MountOptions + }).(pulumi.StringArrayOutput) +} + // If true, mount the GCS bucket as read-only func (o ServiceTemplateVolumeGcsPtrOutput) ReadOnly() pulumi.BoolPtrOutput { return o.ApplyT(func(v *ServiceTemplateVolumeGcs) *bool { @@ -12194,6 +12240,9 @@ func (o GetJobTemplateTemplateVolumeEmptyDirArrayOutput) Index(i pulumi.IntInput type GetJobTemplateTemplateVolumeGc struct { // Name of the cloud storage bucket to back the volume. The resource service account must have permission to access the bucket. Bucket string `pulumi:"bucket"` + // A list of flags to pass to the gcsfuse command for configuring this volume. + // Flags should be passed without leading dashes. + MountOptions []string `pulumi:"mountOptions"` // If true, mount this volume as read-only in all mounts. If false, mount this volume as read-write. ReadOnly bool `pulumi:"readOnly"` } @@ -12212,6 +12261,9 @@ type GetJobTemplateTemplateVolumeGcInput interface { type GetJobTemplateTemplateVolumeGcArgs struct { // Name of the cloud storage bucket to back the volume. The resource service account must have permission to access the bucket. Bucket pulumi.StringInput `pulumi:"bucket"` + // A list of flags to pass to the gcsfuse command for configuring this volume. + // Flags should be passed without leading dashes. + MountOptions pulumi.StringArrayInput `pulumi:"mountOptions"` // If true, mount this volume as read-only in all mounts. If false, mount this volume as read-write. ReadOnly pulumi.BoolInput `pulumi:"readOnly"` } @@ -12272,6 +12324,12 @@ func (o GetJobTemplateTemplateVolumeGcOutput) Bucket() pulumi.StringOutput { return o.ApplyT(func(v GetJobTemplateTemplateVolumeGc) string { return v.Bucket }).(pulumi.StringOutput) } +// A list of flags to pass to the gcsfuse command for configuring this volume. +// Flags should be passed without leading dashes. +func (o GetJobTemplateTemplateVolumeGcOutput) MountOptions() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetJobTemplateTemplateVolumeGc) []string { return v.MountOptions }).(pulumi.StringArrayOutput) +} + // If true, mount this volume as read-only in all mounts. If false, mount this volume as read-write. func (o GetJobTemplateTemplateVolumeGcOutput) ReadOnly() pulumi.BoolOutput { return o.ApplyT(func(v GetJobTemplateTemplateVolumeGc) bool { return v.ReadOnly }).(pulumi.BoolOutput) @@ -16394,6 +16452,9 @@ func (o GetServiceTemplateVolumeEmptyDirArrayOutput) Index(i pulumi.IntInput) Ge type GetServiceTemplateVolumeGc struct { // GCS Bucket name Bucket string `pulumi:"bucket"` + // A list of flags to pass to the gcsfuse command for configuring this volume. + // Flags should be passed without leading dashes. + MountOptions []string `pulumi:"mountOptions"` // If true, mount the GCS bucket as read-only ReadOnly bool `pulumi:"readOnly"` } @@ -16412,6 +16473,9 @@ type GetServiceTemplateVolumeGcInput interface { type GetServiceTemplateVolumeGcArgs struct { // GCS Bucket name Bucket pulumi.StringInput `pulumi:"bucket"` + // A list of flags to pass to the gcsfuse command for configuring this volume. + // Flags should be passed without leading dashes. + MountOptions pulumi.StringArrayInput `pulumi:"mountOptions"` // If true, mount the GCS bucket as read-only ReadOnly pulumi.BoolInput `pulumi:"readOnly"` } @@ -16472,6 +16536,12 @@ func (o GetServiceTemplateVolumeGcOutput) Bucket() pulumi.StringOutput { return o.ApplyT(func(v GetServiceTemplateVolumeGc) string { return v.Bucket }).(pulumi.StringOutput) } +// A list of flags to pass to the gcsfuse command for configuring this volume. +// Flags should be passed without leading dashes. +func (o GetServiceTemplateVolumeGcOutput) MountOptions() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetServiceTemplateVolumeGc) []string { return v.MountOptions }).(pulumi.StringArrayOutput) +} + // If true, mount the GCS bucket as read-only func (o GetServiceTemplateVolumeGcOutput) ReadOnly() pulumi.BoolOutput { return o.ApplyT(func(v GetServiceTemplateVolumeGc) bool { return v.ReadOnly }).(pulumi.BoolOutput) diff --git a/sdk/go/gcp/cloudrunv2/service.go b/sdk/go/gcp/cloudrunv2/service.go index a7e9e672da..06d871db92 100644 --- a/sdk/go/gcp/cloudrunv2/service.go +++ b/sdk/go/gcp/cloudrunv2/service.go @@ -547,7 +547,6 @@ import ( // Name: pulumi.String("cloudrun-service"), // Location: pulumi.String("us-central1"), // DeletionProtection: pulumi.Bool(false), -// LaunchStage: pulumi.String("BETA"), // Ingress: pulumi.String("INGRESS_TRAFFIC_ALL"), // Template: &cloudrunv2.ServiceTemplateArgs{ // Containers: cloudrunv2.ServiceTemplateContainerArray{ diff --git a/sdk/go/gcp/compute/disk.go b/sdk/go/gcp/compute/disk.go index 0655aaedc6..9f4871e3ce 100644 --- a/sdk/go/gcp/compute/disk.go +++ b/sdk/go/gcp/compute/disk.go @@ -191,7 +191,7 @@ type Disk struct { // * READ_WRITE_MANY // * READ_ONLY_SINGLE AccessMode pulumi.StringOutput `pulumi:"accessMode"` - // A nested object resource + // A nested object resource. // Structure is documented below. AsyncPrimaryDisk DiskAsyncPrimaryDiskPtrOutput `pulumi:"asyncPrimaryDisk"` // Creation timestamp in RFC3339 text format. @@ -403,7 +403,7 @@ type diskState struct { // * READ_WRITE_MANY // * READ_ONLY_SINGLE AccessMode *string `pulumi:"accessMode"` - // A nested object resource + // A nested object resource. // Structure is documented below. AsyncPrimaryDisk *DiskAsyncPrimaryDisk `pulumi:"asyncPrimaryDisk"` // Creation timestamp in RFC3339 text format. @@ -581,7 +581,7 @@ type DiskState struct { // * READ_WRITE_MANY // * READ_ONLY_SINGLE AccessMode pulumi.StringPtrInput - // A nested object resource + // A nested object resource. // Structure is documented below. AsyncPrimaryDisk DiskAsyncPrimaryDiskPtrInput // Creation timestamp in RFC3339 text format. @@ -763,7 +763,7 @@ type diskArgs struct { // * READ_WRITE_MANY // * READ_ONLY_SINGLE AccessMode *string `pulumi:"accessMode"` - // A nested object resource + // A nested object resource. // Structure is documented below. AsyncPrimaryDisk *DiskAsyncPrimaryDisk `pulumi:"asyncPrimaryDisk"` // An optional description of this resource. Provide this property when @@ -904,7 +904,7 @@ type DiskArgs struct { // * READ_WRITE_MANY // * READ_ONLY_SINGLE AccessMode pulumi.StringPtrInput - // A nested object resource + // A nested object resource. // Structure is documented below. AsyncPrimaryDisk DiskAsyncPrimaryDiskPtrInput // An optional description of this resource. Provide this property when @@ -1133,7 +1133,7 @@ func (o DiskOutput) AccessMode() pulumi.StringOutput { return o.ApplyT(func(v *Disk) pulumi.StringOutput { return v.AccessMode }).(pulumi.StringOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o DiskOutput) AsyncPrimaryDisk() DiskAsyncPrimaryDiskPtrOutput { return o.ApplyT(func(v *Disk) DiskAsyncPrimaryDiskPtrOutput { return v.AsyncPrimaryDisk }).(DiskAsyncPrimaryDiskPtrOutput) diff --git a/sdk/go/gcp/compute/firewallPolicyRule.go b/sdk/go/gcp/compute/firewallPolicyRule.go index 5295f3a862..4ae6a0ab4a 100644 --- a/sdk/go/gcp/compute/firewallPolicyRule.go +++ b/sdk/go/gcp/compute/firewallPolicyRule.go @@ -12,11 +12,10 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// The Compute FirewallPolicyRule resource -// // ## Example Usage // -// ### Basic_fir_sec_rule +// ### Firewall Policy Rule +// // ```go // package main // @@ -32,7 +31,7 @@ import ( // func main() { // pulumi.Run(func(ctx *pulumi.Context) error { // basicGlobalNetworksecurityAddressGroup, err := networksecurity.NewAddressGroup(ctx, "basic_global_networksecurity_address_group", &networksecurity.AddressGroupArgs{ -// Name: pulumi.String("policy"), +// Name: pulumi.String("address"), // Parent: pulumi.String("organizations/123456789"), // Description: pulumi.String("Sample global networksecurity_address_group"), // Location: pulumi.String("global"), @@ -46,7 +45,7 @@ import ( // return err // } // folder, err := organizations.NewFolder(ctx, "folder", &organizations.FolderArgs{ -// DisplayName: pulumi.String("policy"), +// DisplayName: pulumi.String("folder"), // Parent: pulumi.String("organizations/123456789"), // DeletionProtection: pulumi.Bool(false), // }) @@ -61,7 +60,7 @@ import ( // if err != nil { // return err // } -// _, err = compute.NewFirewallPolicyRule(ctx, "primary", &compute.FirewallPolicyRuleArgs{ +// _, err = compute.NewFirewallPolicyRule(ctx, "policy_rule", &compute.FirewallPolicyRuleArgs{ // FirewallPolicy: _default.Name, // Description: pulumi.String("Resource created for Terraform acceptance testing"), // Priority: pulumi.Int(9000), @@ -134,9 +133,12 @@ type FirewallPolicyRule struct { // The Action to perform when the client connection triggers the rule. Valid actions are "allow", "deny", "gotoNext" and "applySecurityProfileGroup". Action pulumi.StringOutput `pulumi:"action"` + // Creation timestamp in RFC3339 text format. + CreationTimestamp pulumi.StringOutput `pulumi:"creationTimestamp"` // An optional description for this resource. Description pulumi.StringPtrOutput `pulumi:"description"` - // The direction in which this rule applies. Possible values: INGRESS, EGRESS + // The direction in which this rule applies. + // Possible values are: `INGRESS`, `EGRESS`. Direction pulumi.StringOutput `pulumi:"direction"` // Denotes whether the firewall policy rule is disabled. When set to true, the firewall policy rule is not enforced and // traffic behaves as if it did not exist. If this is unspecified, the firewall policy rule will be enabled. @@ -150,21 +152,24 @@ type FirewallPolicyRule struct { // Type of the resource. Always `compute#firewallPolicyRule` for firewall policy rules Kind pulumi.StringOutput `pulumi:"kind"` // A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. + // Structure is documented below. Match FirewallPolicyRuleMatchOutput `pulumi:"match"` - // An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. + // An integer indicating the priority of a rule in the list. + // The priority must be a positive value between 0 and 2147483647. + // Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. Priority pulumi.IntOutput `pulumi:"priority"` // Calculation of the complexity of a single firewall policy rule. RuleTupleCount pulumi.IntOutput `pulumi:"ruleTupleCount"` - // A fully-qualified URL of a SecurityProfileGroup resource. Example: - // https://networksecurity.googleapis.com/v1/organizations/{organizationId}/locations/global/securityProfileGroups/my-security-profile-group. - // It must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. + // A fully-qualified URL of a SecurityProfile resource instance. Example: + // https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group + // Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. SecurityProfileGroup pulumi.StringPtrOutput `pulumi:"securityProfileGroup"` // A list of network resource URLs to which this rule applies. This field allows you to control which network's VMs get // this rule. If this field is left blank, all VMs within the organization will receive the rule. TargetResources pulumi.StringArrayOutput `pulumi:"targetResources"` // A list of service accounts indicating the sets of instances that are applied with this rule. TargetServiceAccounts pulumi.StringArrayOutput `pulumi:"targetServiceAccounts"` - // Boolean flag indicating if the traffic should be TLS decrypted. It can be set only if action = + // Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = // 'apply_security_profile_group' and cannot be set for other actions. TlsInspect pulumi.BoolPtrOutput `pulumi:"tlsInspect"` } @@ -216,9 +221,12 @@ func GetFirewallPolicyRule(ctx *pulumi.Context, type firewallPolicyRuleState struct { // The Action to perform when the client connection triggers the rule. Valid actions are "allow", "deny", "gotoNext" and "applySecurityProfileGroup". Action *string `pulumi:"action"` + // Creation timestamp in RFC3339 text format. + CreationTimestamp *string `pulumi:"creationTimestamp"` // An optional description for this resource. Description *string `pulumi:"description"` - // The direction in which this rule applies. Possible values: INGRESS, EGRESS + // The direction in which this rule applies. + // Possible values are: `INGRESS`, `EGRESS`. Direction *string `pulumi:"direction"` // Denotes whether the firewall policy rule is disabled. When set to true, the firewall policy rule is not enforced and // traffic behaves as if it did not exist. If this is unspecified, the firewall policy rule will be enabled. @@ -232,21 +240,24 @@ type firewallPolicyRuleState struct { // Type of the resource. Always `compute#firewallPolicyRule` for firewall policy rules Kind *string `pulumi:"kind"` // A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. + // Structure is documented below. Match *FirewallPolicyRuleMatch `pulumi:"match"` - // An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. + // An integer indicating the priority of a rule in the list. + // The priority must be a positive value between 0 and 2147483647. + // Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. Priority *int `pulumi:"priority"` // Calculation of the complexity of a single firewall policy rule. RuleTupleCount *int `pulumi:"ruleTupleCount"` - // A fully-qualified URL of a SecurityProfileGroup resource. Example: - // https://networksecurity.googleapis.com/v1/organizations/{organizationId}/locations/global/securityProfileGroups/my-security-profile-group. - // It must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. + // A fully-qualified URL of a SecurityProfile resource instance. Example: + // https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group + // Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. SecurityProfileGroup *string `pulumi:"securityProfileGroup"` // A list of network resource URLs to which this rule applies. This field allows you to control which network's VMs get // this rule. If this field is left blank, all VMs within the organization will receive the rule. TargetResources []string `pulumi:"targetResources"` // A list of service accounts indicating the sets of instances that are applied with this rule. TargetServiceAccounts []string `pulumi:"targetServiceAccounts"` - // Boolean flag indicating if the traffic should be TLS decrypted. It can be set only if action = + // Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = // 'apply_security_profile_group' and cannot be set for other actions. TlsInspect *bool `pulumi:"tlsInspect"` } @@ -254,9 +265,12 @@ type firewallPolicyRuleState struct { type FirewallPolicyRuleState struct { // The Action to perform when the client connection triggers the rule. Valid actions are "allow", "deny", "gotoNext" and "applySecurityProfileGroup". Action pulumi.StringPtrInput + // Creation timestamp in RFC3339 text format. + CreationTimestamp pulumi.StringPtrInput // An optional description for this resource. Description pulumi.StringPtrInput - // The direction in which this rule applies. Possible values: INGRESS, EGRESS + // The direction in which this rule applies. + // Possible values are: `INGRESS`, `EGRESS`. Direction pulumi.StringPtrInput // Denotes whether the firewall policy rule is disabled. When set to true, the firewall policy rule is not enforced and // traffic behaves as if it did not exist. If this is unspecified, the firewall policy rule will be enabled. @@ -270,21 +284,24 @@ type FirewallPolicyRuleState struct { // Type of the resource. Always `compute#firewallPolicyRule` for firewall policy rules Kind pulumi.StringPtrInput // A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. + // Structure is documented below. Match FirewallPolicyRuleMatchPtrInput - // An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. + // An integer indicating the priority of a rule in the list. + // The priority must be a positive value between 0 and 2147483647. + // Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. Priority pulumi.IntPtrInput // Calculation of the complexity of a single firewall policy rule. RuleTupleCount pulumi.IntPtrInput - // A fully-qualified URL of a SecurityProfileGroup resource. Example: - // https://networksecurity.googleapis.com/v1/organizations/{organizationId}/locations/global/securityProfileGroups/my-security-profile-group. - // It must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. + // A fully-qualified URL of a SecurityProfile resource instance. Example: + // https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group + // Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. SecurityProfileGroup pulumi.StringPtrInput // A list of network resource URLs to which this rule applies. This field allows you to control which network's VMs get // this rule. If this field is left blank, all VMs within the organization will receive the rule. TargetResources pulumi.StringArrayInput // A list of service accounts indicating the sets of instances that are applied with this rule. TargetServiceAccounts pulumi.StringArrayInput - // Boolean flag indicating if the traffic should be TLS decrypted. It can be set only if action = + // Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = // 'apply_security_profile_group' and cannot be set for other actions. TlsInspect pulumi.BoolPtrInput } @@ -298,7 +315,8 @@ type firewallPolicyRuleArgs struct { Action string `pulumi:"action"` // An optional description for this resource. Description *string `pulumi:"description"` - // The direction in which this rule applies. Possible values: INGRESS, EGRESS + // The direction in which this rule applies. + // Possible values are: `INGRESS`, `EGRESS`. Direction string `pulumi:"direction"` // Denotes whether the firewall policy rule is disabled. When set to true, the firewall policy rule is not enforced and // traffic behaves as if it did not exist. If this is unspecified, the firewall policy rule will be enabled. @@ -310,19 +328,22 @@ type firewallPolicyRuleArgs struct { // The firewall policy of the resource. FirewallPolicy string `pulumi:"firewallPolicy"` // A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. + // Structure is documented below. Match FirewallPolicyRuleMatch `pulumi:"match"` - // An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. + // An integer indicating the priority of a rule in the list. + // The priority must be a positive value between 0 and 2147483647. + // Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. Priority int `pulumi:"priority"` - // A fully-qualified URL of a SecurityProfileGroup resource. Example: - // https://networksecurity.googleapis.com/v1/organizations/{organizationId}/locations/global/securityProfileGroups/my-security-profile-group. - // It must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. + // A fully-qualified URL of a SecurityProfile resource instance. Example: + // https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group + // Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. SecurityProfileGroup *string `pulumi:"securityProfileGroup"` // A list of network resource URLs to which this rule applies. This field allows you to control which network's VMs get // this rule. If this field is left blank, all VMs within the organization will receive the rule. TargetResources []string `pulumi:"targetResources"` // A list of service accounts indicating the sets of instances that are applied with this rule. TargetServiceAccounts []string `pulumi:"targetServiceAccounts"` - // Boolean flag indicating if the traffic should be TLS decrypted. It can be set only if action = + // Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = // 'apply_security_profile_group' and cannot be set for other actions. TlsInspect *bool `pulumi:"tlsInspect"` } @@ -333,7 +354,8 @@ type FirewallPolicyRuleArgs struct { Action pulumi.StringInput // An optional description for this resource. Description pulumi.StringPtrInput - // The direction in which this rule applies. Possible values: INGRESS, EGRESS + // The direction in which this rule applies. + // Possible values are: `INGRESS`, `EGRESS`. Direction pulumi.StringInput // Denotes whether the firewall policy rule is disabled. When set to true, the firewall policy rule is not enforced and // traffic behaves as if it did not exist. If this is unspecified, the firewall policy rule will be enabled. @@ -345,19 +367,22 @@ type FirewallPolicyRuleArgs struct { // The firewall policy of the resource. FirewallPolicy pulumi.StringInput // A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. + // Structure is documented below. Match FirewallPolicyRuleMatchInput - // An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. + // An integer indicating the priority of a rule in the list. + // The priority must be a positive value between 0 and 2147483647. + // Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. Priority pulumi.IntInput - // A fully-qualified URL of a SecurityProfileGroup resource. Example: - // https://networksecurity.googleapis.com/v1/organizations/{organizationId}/locations/global/securityProfileGroups/my-security-profile-group. - // It must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. + // A fully-qualified URL of a SecurityProfile resource instance. Example: + // https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group + // Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. SecurityProfileGroup pulumi.StringPtrInput // A list of network resource URLs to which this rule applies. This field allows you to control which network's VMs get // this rule. If this field is left blank, all VMs within the organization will receive the rule. TargetResources pulumi.StringArrayInput // A list of service accounts indicating the sets of instances that are applied with this rule. TargetServiceAccounts pulumi.StringArrayInput - // Boolean flag indicating if the traffic should be TLS decrypted. It can be set only if action = + // Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = // 'apply_security_profile_group' and cannot be set for other actions. TlsInspect pulumi.BoolPtrInput } @@ -454,12 +479,18 @@ func (o FirewallPolicyRuleOutput) Action() pulumi.StringOutput { return o.ApplyT(func(v *FirewallPolicyRule) pulumi.StringOutput { return v.Action }).(pulumi.StringOutput) } +// Creation timestamp in RFC3339 text format. +func (o FirewallPolicyRuleOutput) CreationTimestamp() pulumi.StringOutput { + return o.ApplyT(func(v *FirewallPolicyRule) pulumi.StringOutput { return v.CreationTimestamp }).(pulumi.StringOutput) +} + // An optional description for this resource. func (o FirewallPolicyRuleOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v *FirewallPolicyRule) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) } -// The direction in which this rule applies. Possible values: INGRESS, EGRESS +// The direction in which this rule applies. +// Possible values are: `INGRESS`, `EGRESS`. func (o FirewallPolicyRuleOutput) Direction() pulumi.StringOutput { return o.ApplyT(func(v *FirewallPolicyRule) pulumi.StringOutput { return v.Direction }).(pulumi.StringOutput) } @@ -488,11 +519,14 @@ func (o FirewallPolicyRuleOutput) Kind() pulumi.StringOutput { } // A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. +// Structure is documented below. func (o FirewallPolicyRuleOutput) Match() FirewallPolicyRuleMatchOutput { return o.ApplyT(func(v *FirewallPolicyRule) FirewallPolicyRuleMatchOutput { return v.Match }).(FirewallPolicyRuleMatchOutput) } -// An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. +// An integer indicating the priority of a rule in the list. +// The priority must be a positive value between 0 and 2147483647. +// Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. func (o FirewallPolicyRuleOutput) Priority() pulumi.IntOutput { return o.ApplyT(func(v *FirewallPolicyRule) pulumi.IntOutput { return v.Priority }).(pulumi.IntOutput) } @@ -502,9 +536,9 @@ func (o FirewallPolicyRuleOutput) RuleTupleCount() pulumi.IntOutput { return o.ApplyT(func(v *FirewallPolicyRule) pulumi.IntOutput { return v.RuleTupleCount }).(pulumi.IntOutput) } -// A fully-qualified URL of a SecurityProfileGroup resource. Example: -// https://networksecurity.googleapis.com/v1/organizations/{organizationId}/locations/global/securityProfileGroups/my-security-profile-group. -// It must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. +// A fully-qualified URL of a SecurityProfile resource instance. Example: +// https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group +// Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. func (o FirewallPolicyRuleOutput) SecurityProfileGroup() pulumi.StringPtrOutput { return o.ApplyT(func(v *FirewallPolicyRule) pulumi.StringPtrOutput { return v.SecurityProfileGroup }).(pulumi.StringPtrOutput) } @@ -520,7 +554,7 @@ func (o FirewallPolicyRuleOutput) TargetServiceAccounts() pulumi.StringArrayOutp return o.ApplyT(func(v *FirewallPolicyRule) pulumi.StringArrayOutput { return v.TargetServiceAccounts }).(pulumi.StringArrayOutput) } -// Boolean flag indicating if the traffic should be TLS decrypted. It can be set only if action = +// Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = // 'apply_security_profile_group' and cannot be set for other actions. func (o FirewallPolicyRuleOutput) TlsInspect() pulumi.BoolPtrOutput { return o.ApplyT(func(v *FirewallPolicyRule) pulumi.BoolPtrOutput { return v.TlsInspect }).(pulumi.BoolPtrOutput) diff --git a/sdk/go/gcp/compute/getRegionInstanceGroupManager.go b/sdk/go/gcp/compute/getRegionInstanceGroupManager.go index f0721e201f..aa0e54a6c1 100644 --- a/sdk/go/gcp/compute/getRegionInstanceGroupManager.go +++ b/sdk/go/gcp/compute/getRegionInstanceGroupManager.go @@ -75,29 +75,30 @@ type LookupRegionInstanceGroupManagerResult struct { DistributionPolicyZones []string `pulumi:"distributionPolicyZones"` Fingerprint string `pulumi:"fingerprint"` // The provider-assigned unique ID for this managed resource. - Id string `pulumi:"id"` - InstanceGroup string `pulumi:"instanceGroup"` - InstanceLifecyclePolicies []GetRegionInstanceGroupManagerInstanceLifecyclePolicy `pulumi:"instanceLifecyclePolicies"` - ListManagedInstancesResults string `pulumi:"listManagedInstancesResults"` - Name *string `pulumi:"name"` - NamedPorts []GetRegionInstanceGroupManagerNamedPort `pulumi:"namedPorts"` - Params []GetRegionInstanceGroupManagerParam `pulumi:"params"` - Project *string `pulumi:"project"` - Region *string `pulumi:"region"` - SelfLink *string `pulumi:"selfLink"` - StandbyPolicies []GetRegionInstanceGroupManagerStandbyPolicy `pulumi:"standbyPolicies"` - StatefulDisks []GetRegionInstanceGroupManagerStatefulDisk `pulumi:"statefulDisks"` - StatefulExternalIps []GetRegionInstanceGroupManagerStatefulExternalIp `pulumi:"statefulExternalIps"` - StatefulInternalIps []GetRegionInstanceGroupManagerStatefulInternalIp `pulumi:"statefulInternalIps"` - Statuses []GetRegionInstanceGroupManagerStatus `pulumi:"statuses"` - TargetPools []string `pulumi:"targetPools"` - TargetSize int `pulumi:"targetSize"` - TargetStoppedSize int `pulumi:"targetStoppedSize"` - TargetSuspendedSize int `pulumi:"targetSuspendedSize"` - UpdatePolicies []GetRegionInstanceGroupManagerUpdatePolicy `pulumi:"updatePolicies"` - Versions []GetRegionInstanceGroupManagerVersion `pulumi:"versions"` - WaitForInstances bool `pulumi:"waitForInstances"` - WaitForInstancesStatus string `pulumi:"waitForInstancesStatus"` + Id string `pulumi:"id"` + InstanceFlexibilityPolicies []GetRegionInstanceGroupManagerInstanceFlexibilityPolicy `pulumi:"instanceFlexibilityPolicies"` + InstanceGroup string `pulumi:"instanceGroup"` + InstanceLifecyclePolicies []GetRegionInstanceGroupManagerInstanceLifecyclePolicy `pulumi:"instanceLifecyclePolicies"` + ListManagedInstancesResults string `pulumi:"listManagedInstancesResults"` + Name *string `pulumi:"name"` + NamedPorts []GetRegionInstanceGroupManagerNamedPort `pulumi:"namedPorts"` + Params []GetRegionInstanceGroupManagerParam `pulumi:"params"` + Project *string `pulumi:"project"` + Region *string `pulumi:"region"` + SelfLink *string `pulumi:"selfLink"` + StandbyPolicies []GetRegionInstanceGroupManagerStandbyPolicy `pulumi:"standbyPolicies"` + StatefulDisks []GetRegionInstanceGroupManagerStatefulDisk `pulumi:"statefulDisks"` + StatefulExternalIps []GetRegionInstanceGroupManagerStatefulExternalIp `pulumi:"statefulExternalIps"` + StatefulInternalIps []GetRegionInstanceGroupManagerStatefulInternalIp `pulumi:"statefulInternalIps"` + Statuses []GetRegionInstanceGroupManagerStatus `pulumi:"statuses"` + TargetPools []string `pulumi:"targetPools"` + TargetSize int `pulumi:"targetSize"` + TargetStoppedSize int `pulumi:"targetStoppedSize"` + TargetSuspendedSize int `pulumi:"targetSuspendedSize"` + UpdatePolicies []GetRegionInstanceGroupManagerUpdatePolicy `pulumi:"updatePolicies"` + Versions []GetRegionInstanceGroupManagerVersion `pulumi:"versions"` + WaitForInstances bool `pulumi:"waitForInstances"` + WaitForInstancesStatus string `pulumi:"waitForInstancesStatus"` } func LookupRegionInstanceGroupManagerOutput(ctx *pulumi.Context, args LookupRegionInstanceGroupManagerOutputArgs, opts ...pulumi.InvokeOption) LookupRegionInstanceGroupManagerResultOutput { @@ -192,6 +193,12 @@ func (o LookupRegionInstanceGroupManagerResultOutput) Id() pulumi.StringOutput { return o.ApplyT(func(v LookupRegionInstanceGroupManagerResult) string { return v.Id }).(pulumi.StringOutput) } +func (o LookupRegionInstanceGroupManagerResultOutput) InstanceFlexibilityPolicies() GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArrayOutput { + return o.ApplyT(func(v LookupRegionInstanceGroupManagerResult) []GetRegionInstanceGroupManagerInstanceFlexibilityPolicy { + return v.InstanceFlexibilityPolicies + }).(GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArrayOutput) +} + func (o LookupRegionInstanceGroupManagerResultOutput) InstanceGroup() pulumi.StringOutput { return o.ApplyT(func(v LookupRegionInstanceGroupManagerResult) string { return v.InstanceGroup }).(pulumi.StringOutput) } diff --git a/sdk/go/gcp/compute/healthCheck.go b/sdk/go/gcp/compute/healthCheck.go index bc84c8482b..c7ec184e20 100644 --- a/sdk/go/gcp/compute/healthCheck.go +++ b/sdk/go/gcp/compute/healthCheck.go @@ -608,19 +608,19 @@ type HealthCheck struct { // An optional description of this resource. Provide this property when // you create the resource. Description pulumi.StringPtrOutput `pulumi:"description"` - // A nested object resource + // A nested object resource. // Structure is documented below. GrpcHealthCheck HealthCheckGrpcHealthCheckPtrOutput `pulumi:"grpcHealthCheck"` // A so-far unhealthy instance will be marked healthy after this many // consecutive successes. The default value is 2. HealthyThreshold pulumi.IntPtrOutput `pulumi:"healthyThreshold"` - // A nested object resource + // A nested object resource. // Structure is documented below. Http2HealthCheck HealthCheckHttp2HealthCheckPtrOutput `pulumi:"http2HealthCheck"` - // A nested object resource + // A nested object resource. // Structure is documented below. HttpHealthCheck HealthCheckHttpHealthCheckPtrOutput `pulumi:"httpHealthCheck"` - // A nested object resource + // A nested object resource. // Structure is documented below. HttpsHealthCheck HealthCheckHttpsHealthCheckPtrOutput `pulumi:"httpsHealthCheck"` // Configure logging on this health check. @@ -654,10 +654,10 @@ type HealthCheck struct { // * The health check cannot be used with BackendService nor with managed // instance group auto-healing. SourceRegions pulumi.StringArrayOutput `pulumi:"sourceRegions"` - // A nested object resource + // A nested object resource. // Structure is documented below. SslHealthCheck HealthCheckSslHealthCheckPtrOutput `pulumi:"sslHealthCheck"` - // A nested object resource + // A nested object resource. // Structure is documented below. TcpHealthCheck HealthCheckTcpHealthCheckPtrOutput `pulumi:"tcpHealthCheck"` // How long (in seconds) to wait before claiming failure. @@ -709,19 +709,19 @@ type healthCheckState struct { // An optional description of this resource. Provide this property when // you create the resource. Description *string `pulumi:"description"` - // A nested object resource + // A nested object resource. // Structure is documented below. GrpcHealthCheck *HealthCheckGrpcHealthCheck `pulumi:"grpcHealthCheck"` // A so-far unhealthy instance will be marked healthy after this many // consecutive successes. The default value is 2. HealthyThreshold *int `pulumi:"healthyThreshold"` - // A nested object resource + // A nested object resource. // Structure is documented below. Http2HealthCheck *HealthCheckHttp2HealthCheck `pulumi:"http2HealthCheck"` - // A nested object resource + // A nested object resource. // Structure is documented below. HttpHealthCheck *HealthCheckHttpHealthCheck `pulumi:"httpHealthCheck"` - // A nested object resource + // A nested object resource. // Structure is documented below. HttpsHealthCheck *HealthCheckHttpsHealthCheck `pulumi:"httpsHealthCheck"` // Configure logging on this health check. @@ -755,10 +755,10 @@ type healthCheckState struct { // * The health check cannot be used with BackendService nor with managed // instance group auto-healing. SourceRegions []string `pulumi:"sourceRegions"` - // A nested object resource + // A nested object resource. // Structure is documented below. SslHealthCheck *HealthCheckSslHealthCheck `pulumi:"sslHealthCheck"` - // A nested object resource + // A nested object resource. // Structure is documented below. TcpHealthCheck *HealthCheckTcpHealthCheck `pulumi:"tcpHealthCheck"` // How long (in seconds) to wait before claiming failure. @@ -781,19 +781,19 @@ type HealthCheckState struct { // An optional description of this resource. Provide this property when // you create the resource. Description pulumi.StringPtrInput - // A nested object resource + // A nested object resource. // Structure is documented below. GrpcHealthCheck HealthCheckGrpcHealthCheckPtrInput // A so-far unhealthy instance will be marked healthy after this many // consecutive successes. The default value is 2. HealthyThreshold pulumi.IntPtrInput - // A nested object resource + // A nested object resource. // Structure is documented below. Http2HealthCheck HealthCheckHttp2HealthCheckPtrInput - // A nested object resource + // A nested object resource. // Structure is documented below. HttpHealthCheck HealthCheckHttpHealthCheckPtrInput - // A nested object resource + // A nested object resource. // Structure is documented below. HttpsHealthCheck HealthCheckHttpsHealthCheckPtrInput // Configure logging on this health check. @@ -827,10 +827,10 @@ type HealthCheckState struct { // * The health check cannot be used with BackendService nor with managed // instance group auto-healing. SourceRegions pulumi.StringArrayInput - // A nested object resource + // A nested object resource. // Structure is documented below. SslHealthCheck HealthCheckSslHealthCheckPtrInput - // A nested object resource + // A nested object resource. // Structure is documented below. TcpHealthCheck HealthCheckTcpHealthCheckPtrInput // How long (in seconds) to wait before claiming failure. @@ -855,19 +855,19 @@ type healthCheckArgs struct { // An optional description of this resource. Provide this property when // you create the resource. Description *string `pulumi:"description"` - // A nested object resource + // A nested object resource. // Structure is documented below. GrpcHealthCheck *HealthCheckGrpcHealthCheck `pulumi:"grpcHealthCheck"` // A so-far unhealthy instance will be marked healthy after this many // consecutive successes. The default value is 2. HealthyThreshold *int `pulumi:"healthyThreshold"` - // A nested object resource + // A nested object resource. // Structure is documented below. Http2HealthCheck *HealthCheckHttp2HealthCheck `pulumi:"http2HealthCheck"` - // A nested object resource + // A nested object resource. // Structure is documented below. HttpHealthCheck *HealthCheckHttpHealthCheck `pulumi:"httpHealthCheck"` - // A nested object resource + // A nested object resource. // Structure is documented below. HttpsHealthCheck *HealthCheckHttpsHealthCheck `pulumi:"httpsHealthCheck"` // Configure logging on this health check. @@ -899,10 +899,10 @@ type healthCheckArgs struct { // * The health check cannot be used with BackendService nor with managed // instance group auto-healing. SourceRegions []string `pulumi:"sourceRegions"` - // A nested object resource + // A nested object resource. // Structure is documented below. SslHealthCheck *HealthCheckSslHealthCheck `pulumi:"sslHealthCheck"` - // A nested object resource + // A nested object resource. // Structure is documented below. TcpHealthCheck *HealthCheckTcpHealthCheck `pulumi:"tcpHealthCheck"` // How long (in seconds) to wait before claiming failure. @@ -922,19 +922,19 @@ type HealthCheckArgs struct { // An optional description of this resource. Provide this property when // you create the resource. Description pulumi.StringPtrInput - // A nested object resource + // A nested object resource. // Structure is documented below. GrpcHealthCheck HealthCheckGrpcHealthCheckPtrInput // A so-far unhealthy instance will be marked healthy after this many // consecutive successes. The default value is 2. HealthyThreshold pulumi.IntPtrInput - // A nested object resource + // A nested object resource. // Structure is documented below. Http2HealthCheck HealthCheckHttp2HealthCheckPtrInput - // A nested object resource + // A nested object resource. // Structure is documented below. HttpHealthCheck HealthCheckHttpHealthCheckPtrInput - // A nested object resource + // A nested object resource. // Structure is documented below. HttpsHealthCheck HealthCheckHttpsHealthCheckPtrInput // Configure logging on this health check. @@ -966,10 +966,10 @@ type HealthCheckArgs struct { // * The health check cannot be used with BackendService nor with managed // instance group auto-healing. SourceRegions pulumi.StringArrayInput - // A nested object resource + // A nested object resource. // Structure is documented below. SslHealthCheck HealthCheckSslHealthCheckPtrInput - // A nested object resource + // A nested object resource. // Structure is documented below. TcpHealthCheck HealthCheckTcpHealthCheckPtrInput // How long (in seconds) to wait before claiming failure. @@ -1085,7 +1085,7 @@ func (o HealthCheckOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v *HealthCheck) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o HealthCheckOutput) GrpcHealthCheck() HealthCheckGrpcHealthCheckPtrOutput { return o.ApplyT(func(v *HealthCheck) HealthCheckGrpcHealthCheckPtrOutput { return v.GrpcHealthCheck }).(HealthCheckGrpcHealthCheckPtrOutput) @@ -1097,19 +1097,19 @@ func (o HealthCheckOutput) HealthyThreshold() pulumi.IntPtrOutput { return o.ApplyT(func(v *HealthCheck) pulumi.IntPtrOutput { return v.HealthyThreshold }).(pulumi.IntPtrOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o HealthCheckOutput) Http2HealthCheck() HealthCheckHttp2HealthCheckPtrOutput { return o.ApplyT(func(v *HealthCheck) HealthCheckHttp2HealthCheckPtrOutput { return v.Http2HealthCheck }).(HealthCheckHttp2HealthCheckPtrOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o HealthCheckOutput) HttpHealthCheck() HealthCheckHttpHealthCheckPtrOutput { return o.ApplyT(func(v *HealthCheck) HealthCheckHttpHealthCheckPtrOutput { return v.HttpHealthCheck }).(HealthCheckHttpHealthCheckPtrOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o HealthCheckOutput) HttpsHealthCheck() HealthCheckHttpsHealthCheckPtrOutput { return o.ApplyT(func(v *HealthCheck) HealthCheckHttpsHealthCheckPtrOutput { return v.HttpsHealthCheck }).(HealthCheckHttpsHealthCheckPtrOutput) @@ -1161,13 +1161,13 @@ func (o HealthCheckOutput) SourceRegions() pulumi.StringArrayOutput { return o.ApplyT(func(v *HealthCheck) pulumi.StringArrayOutput { return v.SourceRegions }).(pulumi.StringArrayOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o HealthCheckOutput) SslHealthCheck() HealthCheckSslHealthCheckPtrOutput { return o.ApplyT(func(v *HealthCheck) HealthCheckSslHealthCheckPtrOutput { return v.SslHealthCheck }).(HealthCheckSslHealthCheckPtrOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o HealthCheckOutput) TcpHealthCheck() HealthCheckTcpHealthCheckPtrOutput { return o.ApplyT(func(v *HealthCheck) HealthCheckTcpHealthCheckPtrOutput { return v.TcpHealthCheck }).(HealthCheckTcpHealthCheckPtrOutput) diff --git a/sdk/go/gcp/compute/init.go b/sdk/go/gcp/compute/init.go index 98249d7f71..e50b3890e3 100644 --- a/sdk/go/gcp/compute/init.go +++ b/sdk/go/gcp/compute/init.go @@ -231,6 +231,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &RegionNetworkFirewallPolicyWithRules{} case "gcp:compute/regionPerInstanceConfig:RegionPerInstanceConfig": r = &RegionPerInstanceConfig{} + case "gcp:compute/regionResizeRequest:RegionResizeRequest": + r = &RegionResizeRequest{} case "gcp:compute/regionSecurityPolicy:RegionSecurityPolicy": r = &RegionSecurityPolicy{} case "gcp:compute/regionSecurityPolicyRule:RegionSecurityPolicyRule": @@ -857,6 +859,11 @@ func init() { "compute/regionPerInstanceConfig", &module{version}, ) + pulumi.RegisterResourceModule( + "gcp", + "compute/regionResizeRequest", + &module{version}, + ) pulumi.RegisterResourceModule( "gcp", "compute/regionSecurityPolicy", diff --git a/sdk/go/gcp/compute/networkFirewallPolicyRule.go b/sdk/go/gcp/compute/networkFirewallPolicyRule.go index af3e43480c..dac96d3d96 100644 --- a/sdk/go/gcp/compute/networkFirewallPolicyRule.go +++ b/sdk/go/gcp/compute/networkFirewallPolicyRule.go @@ -82,10 +82,8 @@ import ( // } // basicValue, err := tags.NewTagValue(ctx, "basic_value", &tags.TagValueArgs{ // Description: pulumi.String("For valuename resources."), -// Parent: basicKey.Name.ApplyT(func(name string) (string, error) { -// return fmt.Sprintf("tagKeys/%v", name), nil -// }).(pulumi.StringOutput), -// ShortName: pulumi.String("tagvalue"), +// Parent: basicKey.ID(), +// ShortName: pulumi.String("tagvalue"), // }) // if err != nil { // return err @@ -117,9 +115,7 @@ import ( // }, // SrcSecureTags: compute.NetworkFirewallPolicyRuleMatchSrcSecureTagArray{ // &compute.NetworkFirewallPolicyRuleMatchSrcSecureTagArgs{ -// Name: basicValue.Name.ApplyT(func(name string) (string, error) { -// return fmt.Sprintf("tagValues/%v", name), nil -// }).(pulumi.StringOutput), +// Name: basicValue.ID(), // }, // }, // Layer4Configs: compute.NetworkFirewallPolicyRuleMatchLayer4ConfigArray{ diff --git a/sdk/go/gcp/compute/networkFirewallPolicyWithRules.go b/sdk/go/gcp/compute/networkFirewallPolicyWithRules.go index 64c02d2e97..7e9b8fb824 100644 --- a/sdk/go/gcp/compute/networkFirewallPolicyWithRules.go +++ b/sdk/go/gcp/compute/networkFirewallPolicyWithRules.go @@ -39,7 +39,7 @@ import ( // } // addressGroup1, err := networksecurity.NewAddressGroup(ctx, "address_group_1", &networksecurity.AddressGroupArgs{ // Name: pulumi.String("tf-address-group"), -// Parent: pulumi.Sprintf("projects/%v", project.Name), +// Parent: pulumi.String(project.Id), // Description: pulumi.String("Global address group"), // Location: pulumi.String("global"), // Items: pulumi.StringArray{ @@ -53,7 +53,7 @@ import ( // } // secureTagKey1, err := tags.NewTagKey(ctx, "secure_tag_key_1", &tags.TagKeyArgs{ // Description: pulumi.String("Tag key"), -// Parent: pulumi.Sprintf("projects/%v", project.Name), +// Parent: pulumi.String(project.Id), // Purpose: pulumi.String("GCE_FIREWALL"), // ShortName: pulumi.String("tf-tag-key"), // PurposeData: pulumi.StringMap{ @@ -65,10 +65,8 @@ import ( // } // secureTagValue1, err := tags.NewTagValue(ctx, "secure_tag_value_1", &tags.TagValueArgs{ // Description: pulumi.String("Tag value"), -// Parent: secureTagKey1.Name.ApplyT(func(name string) (string, error) { -// return fmt.Sprintf("tagKeys/%v", name), nil -// }).(pulumi.StringOutput), -// ShortName: pulumi.String("tf-tag-value"), +// Parent: secureTagKey1.ID(), +// ShortName: pulumi.String("tf-tag-value"), // }) // if err != nil { // return err @@ -132,9 +130,7 @@ import ( // }, // TargetSecureTags: compute.NetworkFirewallPolicyWithRulesRuleTargetSecureTagArray{ // &compute.NetworkFirewallPolicyWithRulesRuleTargetSecureTagArgs{ -// Name: secureTagValue1.Name.ApplyT(func(name string) (string, error) { -// return fmt.Sprintf("tagValues/%v", name), nil -// }).(pulumi.StringOutput), +// Name: secureTagValue1.ID(), // }, // }, // }, @@ -170,9 +166,7 @@ import ( // }, // SrcSecureTags: compute.NetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArray{ // &compute.NetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgs{ -// Name: secureTagValue1.Name.ApplyT(func(name string) (string, error) { -// return fmt.Sprintf("tagValues/%v", name), nil -// }).(pulumi.StringOutput), +// Name: secureTagValue1.ID(), // }, // }, // }, diff --git a/sdk/go/gcp/compute/nodeTemplate.go b/sdk/go/gcp/compute/nodeTemplate.go index 2d5d54ab77..6ebd8901ba 100644 --- a/sdk/go/gcp/compute/nodeTemplate.go +++ b/sdk/go/gcp/compute/nodeTemplate.go @@ -128,6 +128,46 @@ import ( // } // // ``` +// ### Node Template Disks +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := compute.GetNodeTypes(ctx, &compute.GetNodeTypesArgs{ +// Zone: pulumi.StringRef("us-central1-a"), +// }, nil) +// if err != nil { +// return err +// } +// _, err = compute.NewNodeTemplate(ctx, "template", &compute.NodeTemplateArgs{ +// Name: pulumi.String("soletenant-with-disks"), +// Region: pulumi.String("us-central1"), +// NodeType: pulumi.String("n2-node-80-640"), +// Disks: compute.NodeTemplateDiskArray{ +// &compute.NodeTemplateDiskArgs{ +// DiskCount: pulumi.Int(16), +// DiskSizeGb: pulumi.Int(375), +// DiskType: pulumi.String("local-ssd"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` // // ## Import // @@ -173,6 +213,10 @@ type NodeTemplate struct { CreationTimestamp pulumi.StringOutput `pulumi:"creationTimestamp"` // An optional textual description of the resource. Description pulumi.StringPtrOutput `pulumi:"description"` + // List of the type, size and count of disks attached to the + // node template + // Structure is documented below. + Disks NodeTemplateDiskArrayOutput `pulumi:"disks"` // Name of the resource. Name pulumi.StringOutput `pulumi:"name"` // Labels to use for node affinity, which will be used in @@ -243,6 +287,10 @@ type nodeTemplateState struct { CreationTimestamp *string `pulumi:"creationTimestamp"` // An optional textual description of the resource. Description *string `pulumi:"description"` + // List of the type, size and count of disks attached to the + // node template + // Structure is documented below. + Disks []NodeTemplateDisk `pulumi:"disks"` // Name of the resource. Name *string `pulumi:"name"` // Labels to use for node affinity, which will be used in @@ -284,6 +332,10 @@ type NodeTemplateState struct { CreationTimestamp pulumi.StringPtrInput // An optional textual description of the resource. Description pulumi.StringPtrInput + // List of the type, size and count of disks attached to the + // node template + // Structure is documented below. + Disks NodeTemplateDiskArrayInput // Name of the resource. Name pulumi.StringPtrInput // Labels to use for node affinity, which will be used in @@ -327,6 +379,10 @@ type nodeTemplateArgs struct { CpuOvercommitType *string `pulumi:"cpuOvercommitType"` // An optional textual description of the resource. Description *string `pulumi:"description"` + // List of the type, size and count of disks attached to the + // node template + // Structure is documented below. + Disks []NodeTemplateDisk `pulumi:"disks"` // Name of the resource. Name *string `pulumi:"name"` // Labels to use for node affinity, which will be used in @@ -365,6 +421,10 @@ type NodeTemplateArgs struct { CpuOvercommitType pulumi.StringPtrInput // An optional textual description of the resource. Description pulumi.StringPtrInput + // List of the type, size and count of disks attached to the + // node template + // Structure is documented below. + Disks NodeTemplateDiskArrayInput // Name of the resource. Name pulumi.StringPtrInput // Labels to use for node affinity, which will be used in @@ -502,6 +562,13 @@ func (o NodeTemplateOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v *NodeTemplate) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) } +// List of the type, size and count of disks attached to the +// node template +// Structure is documented below. +func (o NodeTemplateOutput) Disks() NodeTemplateDiskArrayOutput { + return o.ApplyT(func(v *NodeTemplate) NodeTemplateDiskArrayOutput { return v.Disks }).(NodeTemplateDiskArrayOutput) +} + // Name of the resource. func (o NodeTemplateOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *NodeTemplate) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) diff --git a/sdk/go/gcp/compute/pulumiTypes.go b/sdk/go/gcp/compute/pulumiTypes.go index f39a520bd6..448ee1ab08 100644 --- a/sdk/go/gcp/compute/pulumiTypes.go +++ b/sdk/go/gcp/compute/pulumiTypes.go @@ -1060,7 +1060,7 @@ func (o AutoscalerAutoscalingPolicyMetricArrayOutput) Index(i pulumi.IntInput) A } type AutoscalerAutoscalingPolicyScaleDownControl struct { - // A nested object resource + // A nested object resource. // Structure is documented below. MaxScaledDownReplicas *AutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicas `pulumi:"maxScaledDownReplicas"` // How long back autoscaling should look when computing recommendations @@ -1080,7 +1080,7 @@ type AutoscalerAutoscalingPolicyScaleDownControlInput interface { } type AutoscalerAutoscalingPolicyScaleDownControlArgs struct { - // A nested object resource + // A nested object resource. // Structure is documented below. MaxScaledDownReplicas AutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasPtrInput `pulumi:"maxScaledDownReplicas"` // How long back autoscaling should look when computing recommendations @@ -1165,7 +1165,7 @@ func (o AutoscalerAutoscalingPolicyScaleDownControlOutput) ToAutoscalerAutoscali }).(AutoscalerAutoscalingPolicyScaleDownControlPtrOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o AutoscalerAutoscalingPolicyScaleDownControlOutput) MaxScaledDownReplicas() AutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasPtrOutput { return o.ApplyT(func(v AutoscalerAutoscalingPolicyScaleDownControl) *AutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicas { @@ -1203,7 +1203,7 @@ func (o AutoscalerAutoscalingPolicyScaleDownControlPtrOutput) Elem() AutoscalerA }).(AutoscalerAutoscalingPolicyScaleDownControlOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o AutoscalerAutoscalingPolicyScaleDownControlPtrOutput) MaxScaledDownReplicas() AutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasPtrOutput { return o.ApplyT(func(v *AutoscalerAutoscalingPolicyScaleDownControl) *AutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicas { @@ -1390,7 +1390,7 @@ func (o AutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasPtrOutpu } type AutoscalerAutoscalingPolicyScaleInControl struct { - // A nested object resource + // A nested object resource. // Structure is documented below. MaxScaledInReplicas *AutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicas `pulumi:"maxScaledInReplicas"` // How long back autoscaling should look when computing recommendations @@ -1410,7 +1410,7 @@ type AutoscalerAutoscalingPolicyScaleInControlInput interface { } type AutoscalerAutoscalingPolicyScaleInControlArgs struct { - // A nested object resource + // A nested object resource. // Structure is documented below. MaxScaledInReplicas AutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicasPtrInput `pulumi:"maxScaledInReplicas"` // How long back autoscaling should look when computing recommendations @@ -1495,7 +1495,7 @@ func (o AutoscalerAutoscalingPolicyScaleInControlOutput) ToAutoscalerAutoscaling }).(AutoscalerAutoscalingPolicyScaleInControlPtrOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o AutoscalerAutoscalingPolicyScaleInControlOutput) MaxScaledInReplicas() AutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicasPtrOutput { return o.ApplyT(func(v AutoscalerAutoscalingPolicyScaleInControl) *AutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicas { @@ -1533,7 +1533,7 @@ func (o AutoscalerAutoscalingPolicyScaleInControlPtrOutput) Elem() AutoscalerAut }).(AutoscalerAutoscalingPolicyScaleInControlOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o AutoscalerAutoscalingPolicyScaleInControlPtrOutput) MaxScaledInReplicas() AutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicasPtrOutput { return o.ApplyT(func(v *AutoscalerAutoscalingPolicyScaleInControl) *AutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicas { @@ -9987,29 +9987,30 @@ func (o FirewallLogConfigPtrOutput) Metadata() pulumi.StringPtrOutput { } type FirewallPolicyRuleMatch struct { - // Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. Destination address groups is only supported in Egress rules. + // Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. DestAddressGroups []string `pulumi:"destAddressGroups"` - // Domain names that will be used to match against the resolved domain name of destination of traffic. Can only be specified if DIRECTION is egress. + // Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100. DestFqdns []string `pulumi:"destFqdns"` - // CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 256. + // CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000. DestIpRanges []string `pulumi:"destIpRanges"` - // The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is egress. + // Region codes whose IP addresses will be used to match for destination of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of dest region codes allowed is 5000. DestRegionCodes []string `pulumi:"destRegionCodes"` - // Name of the Google Cloud Threat Intelligence list. + // Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination. DestThreatIntelligences []string `pulumi:"destThreatIntelligences"` // Pairs of IP protocols and ports that the rule should match. + // Structure is documented below. Layer4Configs []FirewallPolicyRuleMatchLayer4Config `pulumi:"layer4Configs"` - // Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. Source address groups is only supported in Ingress rules. + // Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. SrcAddressGroups []string `pulumi:"srcAddressGroups"` - // Domain names that will be used to match against the resolved domain name of source of traffic. Can only be specified if DIRECTION is ingress. + // Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100. SrcFqdns []string `pulumi:"srcFqdns"` - // CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 256. + // CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000. SrcIpRanges []string `pulumi:"srcIpRanges"` - // The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is ingress. + // Region codes whose IP addresses will be used to match for source of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of source region codes allowed is 5000. SrcRegionCodes []string `pulumi:"srcRegionCodes"` - // Name of the Google Cloud Threat Intelligence list. + // Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source. // - // The `layer4Configs` block supports: + // The `layer4Configs` block supports: SrcThreatIntelligences []string `pulumi:"srcThreatIntelligences"` } @@ -10025,29 +10026,30 @@ type FirewallPolicyRuleMatchInput interface { } type FirewallPolicyRuleMatchArgs struct { - // Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. Destination address groups is only supported in Egress rules. + // Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. DestAddressGroups pulumi.StringArrayInput `pulumi:"destAddressGroups"` - // Domain names that will be used to match against the resolved domain name of destination of traffic. Can only be specified if DIRECTION is egress. + // Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100. DestFqdns pulumi.StringArrayInput `pulumi:"destFqdns"` - // CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 256. + // CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000. DestIpRanges pulumi.StringArrayInput `pulumi:"destIpRanges"` - // The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is egress. + // Region codes whose IP addresses will be used to match for destination of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of dest region codes allowed is 5000. DestRegionCodes pulumi.StringArrayInput `pulumi:"destRegionCodes"` - // Name of the Google Cloud Threat Intelligence list. + // Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination. DestThreatIntelligences pulumi.StringArrayInput `pulumi:"destThreatIntelligences"` // Pairs of IP protocols and ports that the rule should match. + // Structure is documented below. Layer4Configs FirewallPolicyRuleMatchLayer4ConfigArrayInput `pulumi:"layer4Configs"` - // Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. Source address groups is only supported in Ingress rules. + // Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. SrcAddressGroups pulumi.StringArrayInput `pulumi:"srcAddressGroups"` - // Domain names that will be used to match against the resolved domain name of source of traffic. Can only be specified if DIRECTION is ingress. + // Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100. SrcFqdns pulumi.StringArrayInput `pulumi:"srcFqdns"` - // CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 256. + // CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000. SrcIpRanges pulumi.StringArrayInput `pulumi:"srcIpRanges"` - // The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is ingress. + // Region codes whose IP addresses will be used to match for source of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of source region codes allowed is 5000. SrcRegionCodes pulumi.StringArrayInput `pulumi:"srcRegionCodes"` - // Name of the Google Cloud Threat Intelligence list. + // Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source. // - // The `layer4Configs` block supports: + // The `layer4Configs` block supports: SrcThreatIntelligences pulumi.StringArrayInput `pulumi:"srcThreatIntelligences"` } @@ -10128,59 +10130,60 @@ func (o FirewallPolicyRuleMatchOutput) ToFirewallPolicyRuleMatchPtrOutputWithCon }).(FirewallPolicyRuleMatchPtrOutput) } -// Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. Destination address groups is only supported in Egress rules. +// Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. func (o FirewallPolicyRuleMatchOutput) DestAddressGroups() pulumi.StringArrayOutput { return o.ApplyT(func(v FirewallPolicyRuleMatch) []string { return v.DestAddressGroups }).(pulumi.StringArrayOutput) } -// Domain names that will be used to match against the resolved domain name of destination of traffic. Can only be specified if DIRECTION is egress. +// Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100. func (o FirewallPolicyRuleMatchOutput) DestFqdns() pulumi.StringArrayOutput { return o.ApplyT(func(v FirewallPolicyRuleMatch) []string { return v.DestFqdns }).(pulumi.StringArrayOutput) } -// CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 256. +// CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000. func (o FirewallPolicyRuleMatchOutput) DestIpRanges() pulumi.StringArrayOutput { return o.ApplyT(func(v FirewallPolicyRuleMatch) []string { return v.DestIpRanges }).(pulumi.StringArrayOutput) } -// The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is egress. +// Region codes whose IP addresses will be used to match for destination of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of dest region codes allowed is 5000. func (o FirewallPolicyRuleMatchOutput) DestRegionCodes() pulumi.StringArrayOutput { return o.ApplyT(func(v FirewallPolicyRuleMatch) []string { return v.DestRegionCodes }).(pulumi.StringArrayOutput) } -// Name of the Google Cloud Threat Intelligence list. +// Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination. func (o FirewallPolicyRuleMatchOutput) DestThreatIntelligences() pulumi.StringArrayOutput { return o.ApplyT(func(v FirewallPolicyRuleMatch) []string { return v.DestThreatIntelligences }).(pulumi.StringArrayOutput) } // Pairs of IP protocols and ports that the rule should match. +// Structure is documented below. func (o FirewallPolicyRuleMatchOutput) Layer4Configs() FirewallPolicyRuleMatchLayer4ConfigArrayOutput { return o.ApplyT(func(v FirewallPolicyRuleMatch) []FirewallPolicyRuleMatchLayer4Config { return v.Layer4Configs }).(FirewallPolicyRuleMatchLayer4ConfigArrayOutput) } -// Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. Source address groups is only supported in Ingress rules. +// Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. func (o FirewallPolicyRuleMatchOutput) SrcAddressGroups() pulumi.StringArrayOutput { return o.ApplyT(func(v FirewallPolicyRuleMatch) []string { return v.SrcAddressGroups }).(pulumi.StringArrayOutput) } -// Domain names that will be used to match against the resolved domain name of source of traffic. Can only be specified if DIRECTION is ingress. +// Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100. func (o FirewallPolicyRuleMatchOutput) SrcFqdns() pulumi.StringArrayOutput { return o.ApplyT(func(v FirewallPolicyRuleMatch) []string { return v.SrcFqdns }).(pulumi.StringArrayOutput) } -// CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 256. +// CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000. func (o FirewallPolicyRuleMatchOutput) SrcIpRanges() pulumi.StringArrayOutput { return o.ApplyT(func(v FirewallPolicyRuleMatch) []string { return v.SrcIpRanges }).(pulumi.StringArrayOutput) } -// The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is ingress. +// Region codes whose IP addresses will be used to match for source of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of source region codes allowed is 5000. func (o FirewallPolicyRuleMatchOutput) SrcRegionCodes() pulumi.StringArrayOutput { return o.ApplyT(func(v FirewallPolicyRuleMatch) []string { return v.SrcRegionCodes }).(pulumi.StringArrayOutput) } -// Name of the Google Cloud Threat Intelligence list. +// Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source. // -// The `layer4Configs` block supports: +// The `layer4Configs` block supports: func (o FirewallPolicyRuleMatchOutput) SrcThreatIntelligences() pulumi.StringArrayOutput { return o.ApplyT(func(v FirewallPolicyRuleMatch) []string { return v.SrcThreatIntelligences }).(pulumi.StringArrayOutput) } @@ -10209,7 +10212,7 @@ func (o FirewallPolicyRuleMatchPtrOutput) Elem() FirewallPolicyRuleMatchOutput { }).(FirewallPolicyRuleMatchOutput) } -// Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. Destination address groups is only supported in Egress rules. +// Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. func (o FirewallPolicyRuleMatchPtrOutput) DestAddressGroups() pulumi.StringArrayOutput { return o.ApplyT(func(v *FirewallPolicyRuleMatch) []string { if v == nil { @@ -10219,7 +10222,7 @@ func (o FirewallPolicyRuleMatchPtrOutput) DestAddressGroups() pulumi.StringArray }).(pulumi.StringArrayOutput) } -// Domain names that will be used to match against the resolved domain name of destination of traffic. Can only be specified if DIRECTION is egress. +// Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100. func (o FirewallPolicyRuleMatchPtrOutput) DestFqdns() pulumi.StringArrayOutput { return o.ApplyT(func(v *FirewallPolicyRuleMatch) []string { if v == nil { @@ -10229,7 +10232,7 @@ func (o FirewallPolicyRuleMatchPtrOutput) DestFqdns() pulumi.StringArrayOutput { }).(pulumi.StringArrayOutput) } -// CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 256. +// CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000. func (o FirewallPolicyRuleMatchPtrOutput) DestIpRanges() pulumi.StringArrayOutput { return o.ApplyT(func(v *FirewallPolicyRuleMatch) []string { if v == nil { @@ -10239,7 +10242,7 @@ func (o FirewallPolicyRuleMatchPtrOutput) DestIpRanges() pulumi.StringArrayOutpu }).(pulumi.StringArrayOutput) } -// The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is egress. +// Region codes whose IP addresses will be used to match for destination of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of dest region codes allowed is 5000. func (o FirewallPolicyRuleMatchPtrOutput) DestRegionCodes() pulumi.StringArrayOutput { return o.ApplyT(func(v *FirewallPolicyRuleMatch) []string { if v == nil { @@ -10249,7 +10252,7 @@ func (o FirewallPolicyRuleMatchPtrOutput) DestRegionCodes() pulumi.StringArrayOu }).(pulumi.StringArrayOutput) } -// Name of the Google Cloud Threat Intelligence list. +// Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination. func (o FirewallPolicyRuleMatchPtrOutput) DestThreatIntelligences() pulumi.StringArrayOutput { return o.ApplyT(func(v *FirewallPolicyRuleMatch) []string { if v == nil { @@ -10260,6 +10263,7 @@ func (o FirewallPolicyRuleMatchPtrOutput) DestThreatIntelligences() pulumi.Strin } // Pairs of IP protocols and ports that the rule should match. +// Structure is documented below. func (o FirewallPolicyRuleMatchPtrOutput) Layer4Configs() FirewallPolicyRuleMatchLayer4ConfigArrayOutput { return o.ApplyT(func(v *FirewallPolicyRuleMatch) []FirewallPolicyRuleMatchLayer4Config { if v == nil { @@ -10269,7 +10273,7 @@ func (o FirewallPolicyRuleMatchPtrOutput) Layer4Configs() FirewallPolicyRuleMatc }).(FirewallPolicyRuleMatchLayer4ConfigArrayOutput) } -// Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. Source address groups is only supported in Ingress rules. +// Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. func (o FirewallPolicyRuleMatchPtrOutput) SrcAddressGroups() pulumi.StringArrayOutput { return o.ApplyT(func(v *FirewallPolicyRuleMatch) []string { if v == nil { @@ -10279,7 +10283,7 @@ func (o FirewallPolicyRuleMatchPtrOutput) SrcAddressGroups() pulumi.StringArrayO }).(pulumi.StringArrayOutput) } -// Domain names that will be used to match against the resolved domain name of source of traffic. Can only be specified if DIRECTION is ingress. +// Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100. func (o FirewallPolicyRuleMatchPtrOutput) SrcFqdns() pulumi.StringArrayOutput { return o.ApplyT(func(v *FirewallPolicyRuleMatch) []string { if v == nil { @@ -10289,7 +10293,7 @@ func (o FirewallPolicyRuleMatchPtrOutput) SrcFqdns() pulumi.StringArrayOutput { }).(pulumi.StringArrayOutput) } -// CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 256. +// CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000. func (o FirewallPolicyRuleMatchPtrOutput) SrcIpRanges() pulumi.StringArrayOutput { return o.ApplyT(func(v *FirewallPolicyRuleMatch) []string { if v == nil { @@ -10299,7 +10303,7 @@ func (o FirewallPolicyRuleMatchPtrOutput) SrcIpRanges() pulumi.StringArrayOutput }).(pulumi.StringArrayOutput) } -// The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is ingress. +// Region codes whose IP addresses will be used to match for source of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of source region codes allowed is 5000. func (o FirewallPolicyRuleMatchPtrOutput) SrcRegionCodes() pulumi.StringArrayOutput { return o.ApplyT(func(v *FirewallPolicyRuleMatch) []string { if v == nil { @@ -10309,9 +10313,9 @@ func (o FirewallPolicyRuleMatchPtrOutput) SrcRegionCodes() pulumi.StringArrayOut }).(pulumi.StringArrayOutput) } -// Name of the Google Cloud Threat Intelligence list. +// Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source. // -// The `layer4Configs` block supports: +// The `layer4Configs` block supports: func (o FirewallPolicyRuleMatchPtrOutput) SrcThreatIntelligences() pulumi.StringArrayOutput { return o.ApplyT(func(v *FirewallPolicyRuleMatch) []string { if v == nil { @@ -10322,9 +10326,11 @@ func (o FirewallPolicyRuleMatchPtrOutput) SrcThreatIntelligences() pulumi.String } type FirewallPolicyRuleMatchLayer4Config struct { - // The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (`tcp`, `udp`, `icmp`, `esp`, `ah`, `ipip`, `sctp`), or the IP protocol number. + // The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. + // This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number. IpProtocol string `pulumi:"ipProtocol"` - // An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ``. + // An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. + // Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. Ports []string `pulumi:"ports"` } @@ -10340,9 +10346,11 @@ type FirewallPolicyRuleMatchLayer4ConfigInput interface { } type FirewallPolicyRuleMatchLayer4ConfigArgs struct { - // The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (`tcp`, `udp`, `icmp`, `esp`, `ah`, `ipip`, `sctp`), or the IP protocol number. + // The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. + // This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number. IpProtocol pulumi.StringInput `pulumi:"ipProtocol"` - // An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ``. + // An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. + // Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. Ports pulumi.StringArrayInput `pulumi:"ports"` } @@ -10397,12 +10405,14 @@ func (o FirewallPolicyRuleMatchLayer4ConfigOutput) ToFirewallPolicyRuleMatchLaye return o } -// The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (`tcp`, `udp`, `icmp`, `esp`, `ah`, `ipip`, `sctp`), or the IP protocol number. +// The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. +// This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number. func (o FirewallPolicyRuleMatchLayer4ConfigOutput) IpProtocol() pulumi.StringOutput { return o.ApplyT(func(v FirewallPolicyRuleMatchLayer4Config) string { return v.IpProtocol }).(pulumi.StringOutput) } -// An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: “. +// An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. +// Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. func (o FirewallPolicyRuleMatchLayer4ConfigOutput) Ports() pulumi.StringArrayOutput { return o.ApplyT(func(v FirewallPolicyRuleMatchLayer4Config) []string { return v.Ports }).(pulumi.StringArrayOutput) } @@ -38883,6 +38893,121 @@ func (o NodeTemplateAcceleratorArrayOutput) Index(i pulumi.IntInput) NodeTemplat }).(NodeTemplateAcceleratorOutput) } +type NodeTemplateDisk struct { + // Specifies the number of such disks. + DiskCount *int `pulumi:"diskCount"` + // Specifies the size of the disk in base-2 GB. + DiskSizeGb *int `pulumi:"diskSizeGb"` + // Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be the name of the disk type and not its URL. + DiskType *string `pulumi:"diskType"` +} + +// NodeTemplateDiskInput is an input type that accepts NodeTemplateDiskArgs and NodeTemplateDiskOutput values. +// You can construct a concrete instance of `NodeTemplateDiskInput` via: +// +// NodeTemplateDiskArgs{...} +type NodeTemplateDiskInput interface { + pulumi.Input + + ToNodeTemplateDiskOutput() NodeTemplateDiskOutput + ToNodeTemplateDiskOutputWithContext(context.Context) NodeTemplateDiskOutput +} + +type NodeTemplateDiskArgs struct { + // Specifies the number of such disks. + DiskCount pulumi.IntPtrInput `pulumi:"diskCount"` + // Specifies the size of the disk in base-2 GB. + DiskSizeGb pulumi.IntPtrInput `pulumi:"diskSizeGb"` + // Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be the name of the disk type and not its URL. + DiskType pulumi.StringPtrInput `pulumi:"diskType"` +} + +func (NodeTemplateDiskArgs) ElementType() reflect.Type { + return reflect.TypeOf((*NodeTemplateDisk)(nil)).Elem() +} + +func (i NodeTemplateDiskArgs) ToNodeTemplateDiskOutput() NodeTemplateDiskOutput { + return i.ToNodeTemplateDiskOutputWithContext(context.Background()) +} + +func (i NodeTemplateDiskArgs) ToNodeTemplateDiskOutputWithContext(ctx context.Context) NodeTemplateDiskOutput { + return pulumi.ToOutputWithContext(ctx, i).(NodeTemplateDiskOutput) +} + +// NodeTemplateDiskArrayInput is an input type that accepts NodeTemplateDiskArray and NodeTemplateDiskArrayOutput values. +// You can construct a concrete instance of `NodeTemplateDiskArrayInput` via: +// +// NodeTemplateDiskArray{ NodeTemplateDiskArgs{...} } +type NodeTemplateDiskArrayInput interface { + pulumi.Input + + ToNodeTemplateDiskArrayOutput() NodeTemplateDiskArrayOutput + ToNodeTemplateDiskArrayOutputWithContext(context.Context) NodeTemplateDiskArrayOutput +} + +type NodeTemplateDiskArray []NodeTemplateDiskInput + +func (NodeTemplateDiskArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]NodeTemplateDisk)(nil)).Elem() +} + +func (i NodeTemplateDiskArray) ToNodeTemplateDiskArrayOutput() NodeTemplateDiskArrayOutput { + return i.ToNodeTemplateDiskArrayOutputWithContext(context.Background()) +} + +func (i NodeTemplateDiskArray) ToNodeTemplateDiskArrayOutputWithContext(ctx context.Context) NodeTemplateDiskArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(NodeTemplateDiskArrayOutput) +} + +type NodeTemplateDiskOutput struct{ *pulumi.OutputState } + +func (NodeTemplateDiskOutput) ElementType() reflect.Type { + return reflect.TypeOf((*NodeTemplateDisk)(nil)).Elem() +} + +func (o NodeTemplateDiskOutput) ToNodeTemplateDiskOutput() NodeTemplateDiskOutput { + return o +} + +func (o NodeTemplateDiskOutput) ToNodeTemplateDiskOutputWithContext(ctx context.Context) NodeTemplateDiskOutput { + return o +} + +// Specifies the number of such disks. +func (o NodeTemplateDiskOutput) DiskCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v NodeTemplateDisk) *int { return v.DiskCount }).(pulumi.IntPtrOutput) +} + +// Specifies the size of the disk in base-2 GB. +func (o NodeTemplateDiskOutput) DiskSizeGb() pulumi.IntPtrOutput { + return o.ApplyT(func(v NodeTemplateDisk) *int { return v.DiskSizeGb }).(pulumi.IntPtrOutput) +} + +// Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be the name of the disk type and not its URL. +func (o NodeTemplateDiskOutput) DiskType() pulumi.StringPtrOutput { + return o.ApplyT(func(v NodeTemplateDisk) *string { return v.DiskType }).(pulumi.StringPtrOutput) +} + +type NodeTemplateDiskArrayOutput struct{ *pulumi.OutputState } + +func (NodeTemplateDiskArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]NodeTemplateDisk)(nil)).Elem() +} + +func (o NodeTemplateDiskArrayOutput) ToNodeTemplateDiskArrayOutput() NodeTemplateDiskArrayOutput { + return o +} + +func (o NodeTemplateDiskArrayOutput) ToNodeTemplateDiskArrayOutputWithContext(ctx context.Context) NodeTemplateDiskArrayOutput { + return o +} + +func (o NodeTemplateDiskArrayOutput) Index(i pulumi.IntInput) NodeTemplateDiskOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) NodeTemplateDisk { + return vs[0].([]NodeTemplateDisk)[vs[1].(int)] + }).(NodeTemplateDiskOutput) +} + type NodeTemplateNodeTypeFlexibility struct { // Number of virtual CPUs to use. Cpus *string `pulumi:"cpus"` @@ -42549,7 +42674,7 @@ func (o RegionAutoscalerAutoscalingPolicyMetricArrayOutput) Index(i pulumi.IntIn } type RegionAutoscalerAutoscalingPolicyScaleDownControl struct { - // A nested object resource + // A nested object resource. // Structure is documented below. MaxScaledDownReplicas *RegionAutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicas `pulumi:"maxScaledDownReplicas"` // How long back autoscaling should look when computing recommendations @@ -42569,7 +42694,7 @@ type RegionAutoscalerAutoscalingPolicyScaleDownControlInput interface { } type RegionAutoscalerAutoscalingPolicyScaleDownControlArgs struct { - // A nested object resource + // A nested object resource. // Structure is documented below. MaxScaledDownReplicas RegionAutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasPtrInput `pulumi:"maxScaledDownReplicas"` // How long back autoscaling should look when computing recommendations @@ -42654,7 +42779,7 @@ func (o RegionAutoscalerAutoscalingPolicyScaleDownControlOutput) ToRegionAutosca }).(RegionAutoscalerAutoscalingPolicyScaleDownControlPtrOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o RegionAutoscalerAutoscalingPolicyScaleDownControlOutput) MaxScaledDownReplicas() RegionAutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasPtrOutput { return o.ApplyT(func(v RegionAutoscalerAutoscalingPolicyScaleDownControl) *RegionAutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicas { @@ -42692,7 +42817,7 @@ func (o RegionAutoscalerAutoscalingPolicyScaleDownControlPtrOutput) Elem() Regio }).(RegionAutoscalerAutoscalingPolicyScaleDownControlOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o RegionAutoscalerAutoscalingPolicyScaleDownControlPtrOutput) MaxScaledDownReplicas() RegionAutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasPtrOutput { return o.ApplyT(func(v *RegionAutoscalerAutoscalingPolicyScaleDownControl) *RegionAutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicas { @@ -42879,7 +43004,7 @@ func (o RegionAutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasPt } type RegionAutoscalerAutoscalingPolicyScaleInControl struct { - // A nested object resource + // A nested object resource. // Structure is documented below. MaxScaledInReplicas *RegionAutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicas `pulumi:"maxScaledInReplicas"` // How long back autoscaling should look when computing recommendations @@ -42899,7 +43024,7 @@ type RegionAutoscalerAutoscalingPolicyScaleInControlInput interface { } type RegionAutoscalerAutoscalingPolicyScaleInControlArgs struct { - // A nested object resource + // A nested object resource. // Structure is documented below. MaxScaledInReplicas RegionAutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicasPtrInput `pulumi:"maxScaledInReplicas"` // How long back autoscaling should look when computing recommendations @@ -42984,7 +43109,7 @@ func (o RegionAutoscalerAutoscalingPolicyScaleInControlOutput) ToRegionAutoscale }).(RegionAutoscalerAutoscalingPolicyScaleInControlPtrOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o RegionAutoscalerAutoscalingPolicyScaleInControlOutput) MaxScaledInReplicas() RegionAutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicasPtrOutput { return o.ApplyT(func(v RegionAutoscalerAutoscalingPolicyScaleInControl) *RegionAutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicas { @@ -43022,7 +43147,7 @@ func (o RegionAutoscalerAutoscalingPolicyScaleInControlPtrOutput) Elem() RegionA }).(RegionAutoscalerAutoscalingPolicyScaleInControlOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o RegionAutoscalerAutoscalingPolicyScaleInControlPtrOutput) MaxScaledInReplicas() RegionAutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicasPtrOutput { return o.ApplyT(func(v *RegionAutoscalerAutoscalingPolicyScaleInControl) *RegionAutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicas { @@ -51276,11 +51401,9 @@ func (o RegionHealthCheckTcpHealthCheckPtrOutput) Response() pulumi.StringPtrOut } type RegionInstanceGroupManagerAllInstancesConfig struct { - // , The label key-value pairs that you want to patch onto the instance. - // - // *** + // The label key-value pairs that you want to patch onto the instance, Labels map[string]string `pulumi:"labels"` - // , The metadata key-value pairs that you want to patch onto the instance. For more information, see [Project and instance metadata](https://cloud.google.com/compute/docs/metadata#project_and_instance_metadata). + // The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata, Metadata map[string]string `pulumi:"metadata"` } @@ -51296,11 +51419,9 @@ type RegionInstanceGroupManagerAllInstancesConfigInput interface { } type RegionInstanceGroupManagerAllInstancesConfigArgs struct { - // , The label key-value pairs that you want to patch onto the instance. - // - // *** + // The label key-value pairs that you want to patch onto the instance, Labels pulumi.StringMapInput `pulumi:"labels"` - // , The metadata key-value pairs that you want to patch onto the instance. For more information, see [Project and instance metadata](https://cloud.google.com/compute/docs/metadata#project_and_instance_metadata). + // The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata, Metadata pulumi.StringMapInput `pulumi:"metadata"` } @@ -51381,14 +51502,12 @@ func (o RegionInstanceGroupManagerAllInstancesConfigOutput) ToRegionInstanceGrou }).(RegionInstanceGroupManagerAllInstancesConfigPtrOutput) } -// , The label key-value pairs that you want to patch onto the instance. -// -// *** +// The label key-value pairs that you want to patch onto the instance, func (o RegionInstanceGroupManagerAllInstancesConfigOutput) Labels() pulumi.StringMapOutput { return o.ApplyT(func(v RegionInstanceGroupManagerAllInstancesConfig) map[string]string { return v.Labels }).(pulumi.StringMapOutput) } -// , The metadata key-value pairs that you want to patch onto the instance. For more information, see [Project and instance metadata](https://cloud.google.com/compute/docs/metadata#project_and_instance_metadata). +// The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata, func (o RegionInstanceGroupManagerAllInstancesConfigOutput) Metadata() pulumi.StringMapOutput { return o.ApplyT(func(v RegionInstanceGroupManagerAllInstancesConfig) map[string]string { return v.Metadata }).(pulumi.StringMapOutput) } @@ -51417,9 +51536,7 @@ func (o RegionInstanceGroupManagerAllInstancesConfigPtrOutput) Elem() RegionInst }).(RegionInstanceGroupManagerAllInstancesConfigOutput) } -// , The label key-value pairs that you want to patch onto the instance. -// -// *** +// The label key-value pairs that you want to patch onto the instance, func (o RegionInstanceGroupManagerAllInstancesConfigPtrOutput) Labels() pulumi.StringMapOutput { return o.ApplyT(func(v *RegionInstanceGroupManagerAllInstancesConfig) map[string]string { if v == nil { @@ -51429,7 +51546,7 @@ func (o RegionInstanceGroupManagerAllInstancesConfigPtrOutput) Labels() pulumi.S }).(pulumi.StringMapOutput) } -// , The metadata key-value pairs that you want to patch onto the instance. For more information, see [Project and instance metadata](https://cloud.google.com/compute/docs/metadata#project_and_instance_metadata). +// The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata, func (o RegionInstanceGroupManagerAllInstancesConfigPtrOutput) Metadata() pulumi.StringMapOutput { return o.ApplyT(func(v *RegionInstanceGroupManagerAllInstancesConfig) map[string]string { if v == nil { @@ -51599,10 +51716,276 @@ func (o RegionInstanceGroupManagerAutoHealingPoliciesPtrOutput) InitialDelaySec( }).(pulumi.IntPtrOutput) } +type RegionInstanceGroupManagerInstanceFlexibilityPolicy struct { + // Named instance selections configuring properties that the group will use when creating new VMs. + InstanceSelections []RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection `pulumi:"instanceSelections"` +} + +// RegionInstanceGroupManagerInstanceFlexibilityPolicyInput is an input type that accepts RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs and RegionInstanceGroupManagerInstanceFlexibilityPolicyOutput values. +// You can construct a concrete instance of `RegionInstanceGroupManagerInstanceFlexibilityPolicyInput` via: +// +// RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs{...} +type RegionInstanceGroupManagerInstanceFlexibilityPolicyInput interface { + pulumi.Input + + ToRegionInstanceGroupManagerInstanceFlexibilityPolicyOutput() RegionInstanceGroupManagerInstanceFlexibilityPolicyOutput + ToRegionInstanceGroupManagerInstanceFlexibilityPolicyOutputWithContext(context.Context) RegionInstanceGroupManagerInstanceFlexibilityPolicyOutput +} + +type RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs struct { + // Named instance selections configuring properties that the group will use when creating new VMs. + InstanceSelections RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayInput `pulumi:"instanceSelections"` +} + +func (RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionInstanceGroupManagerInstanceFlexibilityPolicy)(nil)).Elem() +} + +func (i RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs) ToRegionInstanceGroupManagerInstanceFlexibilityPolicyOutput() RegionInstanceGroupManagerInstanceFlexibilityPolicyOutput { + return i.ToRegionInstanceGroupManagerInstanceFlexibilityPolicyOutputWithContext(context.Background()) +} + +func (i RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs) ToRegionInstanceGroupManagerInstanceFlexibilityPolicyOutputWithContext(ctx context.Context) RegionInstanceGroupManagerInstanceFlexibilityPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionInstanceGroupManagerInstanceFlexibilityPolicyOutput) +} + +func (i RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs) ToRegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutput() RegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutput { + return i.ToRegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutputWithContext(context.Background()) +} + +func (i RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs) ToRegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutputWithContext(ctx context.Context) RegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionInstanceGroupManagerInstanceFlexibilityPolicyOutput).ToRegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutputWithContext(ctx) +} + +// RegionInstanceGroupManagerInstanceFlexibilityPolicyPtrInput is an input type that accepts RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs, RegionInstanceGroupManagerInstanceFlexibilityPolicyPtr and RegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutput values. +// You can construct a concrete instance of `RegionInstanceGroupManagerInstanceFlexibilityPolicyPtrInput` via: +// +// RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs{...} +// +// or: +// +// nil +type RegionInstanceGroupManagerInstanceFlexibilityPolicyPtrInput interface { + pulumi.Input + + ToRegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutput() RegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutput + ToRegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutputWithContext(context.Context) RegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutput +} + +type regionInstanceGroupManagerInstanceFlexibilityPolicyPtrType RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs + +func RegionInstanceGroupManagerInstanceFlexibilityPolicyPtr(v *RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs) RegionInstanceGroupManagerInstanceFlexibilityPolicyPtrInput { + return (*regionInstanceGroupManagerInstanceFlexibilityPolicyPtrType)(v) +} + +func (*regionInstanceGroupManagerInstanceFlexibilityPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionInstanceGroupManagerInstanceFlexibilityPolicy)(nil)).Elem() +} + +func (i *regionInstanceGroupManagerInstanceFlexibilityPolicyPtrType) ToRegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutput() RegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutput { + return i.ToRegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutputWithContext(context.Background()) +} + +func (i *regionInstanceGroupManagerInstanceFlexibilityPolicyPtrType) ToRegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutputWithContext(ctx context.Context) RegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutput) +} + +type RegionInstanceGroupManagerInstanceFlexibilityPolicyOutput struct{ *pulumi.OutputState } + +func (RegionInstanceGroupManagerInstanceFlexibilityPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionInstanceGroupManagerInstanceFlexibilityPolicy)(nil)).Elem() +} + +func (o RegionInstanceGroupManagerInstanceFlexibilityPolicyOutput) ToRegionInstanceGroupManagerInstanceFlexibilityPolicyOutput() RegionInstanceGroupManagerInstanceFlexibilityPolicyOutput { + return o +} + +func (o RegionInstanceGroupManagerInstanceFlexibilityPolicyOutput) ToRegionInstanceGroupManagerInstanceFlexibilityPolicyOutputWithContext(ctx context.Context) RegionInstanceGroupManagerInstanceFlexibilityPolicyOutput { + return o +} + +func (o RegionInstanceGroupManagerInstanceFlexibilityPolicyOutput) ToRegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutput() RegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutput { + return o.ToRegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutputWithContext(context.Background()) +} + +func (o RegionInstanceGroupManagerInstanceFlexibilityPolicyOutput) ToRegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutputWithContext(ctx context.Context) RegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionInstanceGroupManagerInstanceFlexibilityPolicy) *RegionInstanceGroupManagerInstanceFlexibilityPolicy { + return &v + }).(RegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutput) +} + +// Named instance selections configuring properties that the group will use when creating new VMs. +func (o RegionInstanceGroupManagerInstanceFlexibilityPolicyOutput) InstanceSelections() RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput { + return o.ApplyT(func(v RegionInstanceGroupManagerInstanceFlexibilityPolicy) []RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection { + return v.InstanceSelections + }).(RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput) +} + +type RegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutput struct{ *pulumi.OutputState } + +func (RegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionInstanceGroupManagerInstanceFlexibilityPolicy)(nil)).Elem() +} + +func (o RegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutput) ToRegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutput() RegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutput { + return o +} + +func (o RegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutput) ToRegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutputWithContext(ctx context.Context) RegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutput { + return o +} + +func (o RegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutput) Elem() RegionInstanceGroupManagerInstanceFlexibilityPolicyOutput { + return o.ApplyT(func(v *RegionInstanceGroupManagerInstanceFlexibilityPolicy) RegionInstanceGroupManagerInstanceFlexibilityPolicy { + if v != nil { + return *v + } + var ret RegionInstanceGroupManagerInstanceFlexibilityPolicy + return ret + }).(RegionInstanceGroupManagerInstanceFlexibilityPolicyOutput) +} + +// Named instance selections configuring properties that the group will use when creating new VMs. +func (o RegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutput) InstanceSelections() RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput { + return o.ApplyT(func(v *RegionInstanceGroupManagerInstanceFlexibilityPolicy) []RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection { + if v == nil { + return nil + } + return v.InstanceSelections + }).(RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput) +} + +type RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection struct { + // Full machine-type names, e.g. "n1-standard-16" + MachineTypes []string `pulumi:"machineTypes"` + // The name of the instance group manager. Must be 1-63 + // characters long and comply with + // [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Supported characters + // include lowercase letters, numbers, and hyphens. + Name string `pulumi:"name"` + // Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference. + Rank *int `pulumi:"rank"` +} + +// RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionInput is an input type that accepts RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs and RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput values. +// You can construct a concrete instance of `RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionInput` via: +// +// RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs{...} +type RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionInput interface { + pulumi.Input + + ToRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput() RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput + ToRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutputWithContext(context.Context) RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput +} + +type RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs struct { + // Full machine-type names, e.g. "n1-standard-16" + MachineTypes pulumi.StringArrayInput `pulumi:"machineTypes"` + // The name of the instance group manager. Must be 1-63 + // characters long and comply with + // [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Supported characters + // include lowercase letters, numbers, and hyphens. + Name pulumi.StringInput `pulumi:"name"` + // Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference. + Rank pulumi.IntPtrInput `pulumi:"rank"` +} + +func (RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection)(nil)).Elem() +} + +func (i RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs) ToRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput() RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput { + return i.ToRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutputWithContext(context.Background()) +} + +func (i RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs) ToRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutputWithContext(ctx context.Context) RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput) +} + +// RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayInput is an input type that accepts RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArray and RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput values. +// You can construct a concrete instance of `RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayInput` via: +// +// RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArray{ RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs{...} } +type RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayInput interface { + pulumi.Input + + ToRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput() RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput + ToRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutputWithContext(context.Context) RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput +} + +type RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArray []RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionInput + +func (RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection)(nil)).Elem() +} + +func (i RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArray) ToRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput() RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput { + return i.ToRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutputWithContext(context.Background()) +} + +func (i RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArray) ToRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutputWithContext(ctx context.Context) RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput) +} + +type RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput struct{ *pulumi.OutputState } + +func (RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection)(nil)).Elem() +} + +func (o RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput) ToRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput() RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput { + return o +} + +func (o RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput) ToRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutputWithContext(ctx context.Context) RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput { + return o +} + +// Full machine-type names, e.g. "n1-standard-16" +func (o RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput) MachineTypes() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection) []string { + return v.MachineTypes + }).(pulumi.StringArrayOutput) +} + +// The name of the instance group manager. Must be 1-63 +// characters long and comply with +// [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Supported characters +// include lowercase letters, numbers, and hyphens. +func (o RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection) string { return v.Name }).(pulumi.StringOutput) +} + +// Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference. +func (o RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput) Rank() pulumi.IntPtrOutput { + return o.ApplyT(func(v RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection) *int { return v.Rank }).(pulumi.IntPtrOutput) +} + +type RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput struct{ *pulumi.OutputState } + +func (RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection)(nil)).Elem() +} + +func (o RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput) ToRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput() RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput { + return o +} + +func (o RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput) ToRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutputWithContext(ctx context.Context) RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput { + return o +} + +func (o RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput) Index(i pulumi.IntInput) RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection { + return vs[0].([]RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection)[vs[1].(int)] + }).(RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput) +} + type RegionInstanceGroupManagerInstanceLifecyclePolicy struct { // , Default behavior for all instance or health check failures. Valid options are: `REPAIR`, `DO_NOTHING`. If `DO_NOTHING` then instances will not be repaired. If `REPAIR` (default), then failed instances will be repaired. // // *** + // The `instanceFlexibilityPolicy` block supports: DefaultActionOnFailure *string `pulumi:"defaultActionOnFailure"` // , Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: `YES`, `NO`. If `YES` and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If `NO` (default), then updates are applied in accordance with the group's update policy type. ForceUpdateOnRepair *string `pulumi:"forceUpdateOnRepair"` @@ -51623,6 +52006,7 @@ type RegionInstanceGroupManagerInstanceLifecyclePolicyArgs struct { // , Default behavior for all instance or health check failures. Valid options are: `REPAIR`, `DO_NOTHING`. If `DO_NOTHING` then instances will not be repaired. If `REPAIR` (default), then failed instances will be repaired. // // *** + // The `instanceFlexibilityPolicy` block supports: DefaultActionOnFailure pulumi.StringPtrInput `pulumi:"defaultActionOnFailure"` // , Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: `YES`, `NO`. If `YES` and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If `NO` (default), then updates are applied in accordance with the group's update policy type. ForceUpdateOnRepair pulumi.StringPtrInput `pulumi:"forceUpdateOnRepair"` @@ -51708,6 +52092,7 @@ func (o RegionInstanceGroupManagerInstanceLifecyclePolicyOutput) ToRegionInstanc // , Default behavior for all instance or health check failures. Valid options are: `REPAIR`, `DO_NOTHING`. If `DO_NOTHING` then instances will not be repaired. If `REPAIR` (default), then failed instances will be repaired. // // *** +// The `instanceFlexibilityPolicy` block supports: func (o RegionInstanceGroupManagerInstanceLifecyclePolicyOutput) DefaultActionOnFailure() pulumi.StringPtrOutput { return o.ApplyT(func(v RegionInstanceGroupManagerInstanceLifecyclePolicy) *string { return v.DefaultActionOnFailure }).(pulumi.StringPtrOutput) } @@ -51744,6 +52129,7 @@ func (o RegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutput) Elem() Regio // , Default behavior for all instance or health check failures. Valid options are: `REPAIR`, `DO_NOTHING`. If `DO_NOTHING` then instances will not be repaired. If `REPAIR` (default), then failed instances will be repaired. // // *** +// The `instanceFlexibilityPolicy` block supports: func (o RegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutput) DefaultActionOnFailure() pulumi.StringPtrOutput { return o.ApplyT(func(v *RegionInstanceGroupManagerInstanceLifecyclePolicy) *string { if v == nil { @@ -61664,8031 +62050,7273 @@ func (o RegionPerInstanceConfigPreservedStateInternalIpIpAddressPtrOutput) Addre }).(pulumi.StringPtrOutput) } -type RegionSecurityPolicyDdosProtectionConfig struct { - // Google Cloud Armor offers the following options to help protect systems against DDoS attacks: - // - STANDARD: basic always-on protection for network load balancers, protocol forwarding, or VMs with public IP addresses. - // - ADVANCED: additional protections for Managed Protection Plus subscribers who use network load balancers, protocol forwarding, or VMs with public IP addresses. - // - ADVANCED_PREVIEW: flag to enable the security policy in preview mode. - // Possible values are: `ADVANCED`, `ADVANCED_PREVIEW`, `STANDARD`. - DdosProtection string `pulumi:"ddosProtection"` +type RegionResizeRequestRequestedRunDuration struct { + // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. + Nanos *int `pulumi:"nanos"` + // Span of time at a resolution of a second. Must be from 600 to 604800 inclusive. Note: minimum and maximum allowed range for requestedRunDuration is 10 minutes (600 seconds) and 7 days(604800 seconds) correspondingly. + Seconds string `pulumi:"seconds"` } -// RegionSecurityPolicyDdosProtectionConfigInput is an input type that accepts RegionSecurityPolicyDdosProtectionConfigArgs and RegionSecurityPolicyDdosProtectionConfigOutput values. -// You can construct a concrete instance of `RegionSecurityPolicyDdosProtectionConfigInput` via: +// RegionResizeRequestRequestedRunDurationInput is an input type that accepts RegionResizeRequestRequestedRunDurationArgs and RegionResizeRequestRequestedRunDurationOutput values. +// You can construct a concrete instance of `RegionResizeRequestRequestedRunDurationInput` via: // -// RegionSecurityPolicyDdosProtectionConfigArgs{...} -type RegionSecurityPolicyDdosProtectionConfigInput interface { +// RegionResizeRequestRequestedRunDurationArgs{...} +type RegionResizeRequestRequestedRunDurationInput interface { pulumi.Input - ToRegionSecurityPolicyDdosProtectionConfigOutput() RegionSecurityPolicyDdosProtectionConfigOutput - ToRegionSecurityPolicyDdosProtectionConfigOutputWithContext(context.Context) RegionSecurityPolicyDdosProtectionConfigOutput + ToRegionResizeRequestRequestedRunDurationOutput() RegionResizeRequestRequestedRunDurationOutput + ToRegionResizeRequestRequestedRunDurationOutputWithContext(context.Context) RegionResizeRequestRequestedRunDurationOutput } -type RegionSecurityPolicyDdosProtectionConfigArgs struct { - // Google Cloud Armor offers the following options to help protect systems against DDoS attacks: - // - STANDARD: basic always-on protection for network load balancers, protocol forwarding, or VMs with public IP addresses. - // - ADVANCED: additional protections for Managed Protection Plus subscribers who use network load balancers, protocol forwarding, or VMs with public IP addresses. - // - ADVANCED_PREVIEW: flag to enable the security policy in preview mode. - // Possible values are: `ADVANCED`, `ADVANCED_PREVIEW`, `STANDARD`. - DdosProtection pulumi.StringInput `pulumi:"ddosProtection"` +type RegionResizeRequestRequestedRunDurationArgs struct { + // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. + Nanos pulumi.IntPtrInput `pulumi:"nanos"` + // Span of time at a resolution of a second. Must be from 600 to 604800 inclusive. Note: minimum and maximum allowed range for requestedRunDuration is 10 minutes (600 seconds) and 7 days(604800 seconds) correspondingly. + Seconds pulumi.StringInput `pulumi:"seconds"` } -func (RegionSecurityPolicyDdosProtectionConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionSecurityPolicyDdosProtectionConfig)(nil)).Elem() +func (RegionResizeRequestRequestedRunDurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestRequestedRunDuration)(nil)).Elem() } -func (i RegionSecurityPolicyDdosProtectionConfigArgs) ToRegionSecurityPolicyDdosProtectionConfigOutput() RegionSecurityPolicyDdosProtectionConfigOutput { - return i.ToRegionSecurityPolicyDdosProtectionConfigOutputWithContext(context.Background()) +func (i RegionResizeRequestRequestedRunDurationArgs) ToRegionResizeRequestRequestedRunDurationOutput() RegionResizeRequestRequestedRunDurationOutput { + return i.ToRegionResizeRequestRequestedRunDurationOutputWithContext(context.Background()) } -func (i RegionSecurityPolicyDdosProtectionConfigArgs) ToRegionSecurityPolicyDdosProtectionConfigOutputWithContext(ctx context.Context) RegionSecurityPolicyDdosProtectionConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyDdosProtectionConfigOutput) +func (i RegionResizeRequestRequestedRunDurationArgs) ToRegionResizeRequestRequestedRunDurationOutputWithContext(ctx context.Context) RegionResizeRequestRequestedRunDurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestRequestedRunDurationOutput) } -func (i RegionSecurityPolicyDdosProtectionConfigArgs) ToRegionSecurityPolicyDdosProtectionConfigPtrOutput() RegionSecurityPolicyDdosProtectionConfigPtrOutput { - return i.ToRegionSecurityPolicyDdosProtectionConfigPtrOutputWithContext(context.Background()) +func (i RegionResizeRequestRequestedRunDurationArgs) ToRegionResizeRequestRequestedRunDurationPtrOutput() RegionResizeRequestRequestedRunDurationPtrOutput { + return i.ToRegionResizeRequestRequestedRunDurationPtrOutputWithContext(context.Background()) } -func (i RegionSecurityPolicyDdosProtectionConfigArgs) ToRegionSecurityPolicyDdosProtectionConfigPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyDdosProtectionConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyDdosProtectionConfigOutput).ToRegionSecurityPolicyDdosProtectionConfigPtrOutputWithContext(ctx) +func (i RegionResizeRequestRequestedRunDurationArgs) ToRegionResizeRequestRequestedRunDurationPtrOutputWithContext(ctx context.Context) RegionResizeRequestRequestedRunDurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestRequestedRunDurationOutput).ToRegionResizeRequestRequestedRunDurationPtrOutputWithContext(ctx) } -// RegionSecurityPolicyDdosProtectionConfigPtrInput is an input type that accepts RegionSecurityPolicyDdosProtectionConfigArgs, RegionSecurityPolicyDdosProtectionConfigPtr and RegionSecurityPolicyDdosProtectionConfigPtrOutput values. -// You can construct a concrete instance of `RegionSecurityPolicyDdosProtectionConfigPtrInput` via: +// RegionResizeRequestRequestedRunDurationPtrInput is an input type that accepts RegionResizeRequestRequestedRunDurationArgs, RegionResizeRequestRequestedRunDurationPtr and RegionResizeRequestRequestedRunDurationPtrOutput values. +// You can construct a concrete instance of `RegionResizeRequestRequestedRunDurationPtrInput` via: // -// RegionSecurityPolicyDdosProtectionConfigArgs{...} +// RegionResizeRequestRequestedRunDurationArgs{...} // // or: // // nil -type RegionSecurityPolicyDdosProtectionConfigPtrInput interface { +type RegionResizeRequestRequestedRunDurationPtrInput interface { pulumi.Input - ToRegionSecurityPolicyDdosProtectionConfigPtrOutput() RegionSecurityPolicyDdosProtectionConfigPtrOutput - ToRegionSecurityPolicyDdosProtectionConfigPtrOutputWithContext(context.Context) RegionSecurityPolicyDdosProtectionConfigPtrOutput + ToRegionResizeRequestRequestedRunDurationPtrOutput() RegionResizeRequestRequestedRunDurationPtrOutput + ToRegionResizeRequestRequestedRunDurationPtrOutputWithContext(context.Context) RegionResizeRequestRequestedRunDurationPtrOutput } -type regionSecurityPolicyDdosProtectionConfigPtrType RegionSecurityPolicyDdosProtectionConfigArgs +type regionResizeRequestRequestedRunDurationPtrType RegionResizeRequestRequestedRunDurationArgs -func RegionSecurityPolicyDdosProtectionConfigPtr(v *RegionSecurityPolicyDdosProtectionConfigArgs) RegionSecurityPolicyDdosProtectionConfigPtrInput { - return (*regionSecurityPolicyDdosProtectionConfigPtrType)(v) +func RegionResizeRequestRequestedRunDurationPtr(v *RegionResizeRequestRequestedRunDurationArgs) RegionResizeRequestRequestedRunDurationPtrInput { + return (*regionResizeRequestRequestedRunDurationPtrType)(v) } -func (*regionSecurityPolicyDdosProtectionConfigPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionSecurityPolicyDdosProtectionConfig)(nil)).Elem() +func (*regionResizeRequestRequestedRunDurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionResizeRequestRequestedRunDuration)(nil)).Elem() } -func (i *regionSecurityPolicyDdosProtectionConfigPtrType) ToRegionSecurityPolicyDdosProtectionConfigPtrOutput() RegionSecurityPolicyDdosProtectionConfigPtrOutput { - return i.ToRegionSecurityPolicyDdosProtectionConfigPtrOutputWithContext(context.Background()) +func (i *regionResizeRequestRequestedRunDurationPtrType) ToRegionResizeRequestRequestedRunDurationPtrOutput() RegionResizeRequestRequestedRunDurationPtrOutput { + return i.ToRegionResizeRequestRequestedRunDurationPtrOutputWithContext(context.Background()) } -func (i *regionSecurityPolicyDdosProtectionConfigPtrType) ToRegionSecurityPolicyDdosProtectionConfigPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyDdosProtectionConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyDdosProtectionConfigPtrOutput) +func (i *regionResizeRequestRequestedRunDurationPtrType) ToRegionResizeRequestRequestedRunDurationPtrOutputWithContext(ctx context.Context) RegionResizeRequestRequestedRunDurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestRequestedRunDurationPtrOutput) } -type RegionSecurityPolicyDdosProtectionConfigOutput struct{ *pulumi.OutputState } +type RegionResizeRequestRequestedRunDurationOutput struct{ *pulumi.OutputState } -func (RegionSecurityPolicyDdosProtectionConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionSecurityPolicyDdosProtectionConfig)(nil)).Elem() +func (RegionResizeRequestRequestedRunDurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestRequestedRunDuration)(nil)).Elem() } -func (o RegionSecurityPolicyDdosProtectionConfigOutput) ToRegionSecurityPolicyDdosProtectionConfigOutput() RegionSecurityPolicyDdosProtectionConfigOutput { +func (o RegionResizeRequestRequestedRunDurationOutput) ToRegionResizeRequestRequestedRunDurationOutput() RegionResizeRequestRequestedRunDurationOutput { return o } -func (o RegionSecurityPolicyDdosProtectionConfigOutput) ToRegionSecurityPolicyDdosProtectionConfigOutputWithContext(ctx context.Context) RegionSecurityPolicyDdosProtectionConfigOutput { +func (o RegionResizeRequestRequestedRunDurationOutput) ToRegionResizeRequestRequestedRunDurationOutputWithContext(ctx context.Context) RegionResizeRequestRequestedRunDurationOutput { return o } -func (o RegionSecurityPolicyDdosProtectionConfigOutput) ToRegionSecurityPolicyDdosProtectionConfigPtrOutput() RegionSecurityPolicyDdosProtectionConfigPtrOutput { - return o.ToRegionSecurityPolicyDdosProtectionConfigPtrOutputWithContext(context.Background()) +func (o RegionResizeRequestRequestedRunDurationOutput) ToRegionResizeRequestRequestedRunDurationPtrOutput() RegionResizeRequestRequestedRunDurationPtrOutput { + return o.ToRegionResizeRequestRequestedRunDurationPtrOutputWithContext(context.Background()) } -func (o RegionSecurityPolicyDdosProtectionConfigOutput) ToRegionSecurityPolicyDdosProtectionConfigPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyDdosProtectionConfigPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionSecurityPolicyDdosProtectionConfig) *RegionSecurityPolicyDdosProtectionConfig { +func (o RegionResizeRequestRequestedRunDurationOutput) ToRegionResizeRequestRequestedRunDurationPtrOutputWithContext(ctx context.Context) RegionResizeRequestRequestedRunDurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionResizeRequestRequestedRunDuration) *RegionResizeRequestRequestedRunDuration { return &v - }).(RegionSecurityPolicyDdosProtectionConfigPtrOutput) + }).(RegionResizeRequestRequestedRunDurationPtrOutput) } -// Google Cloud Armor offers the following options to help protect systems against DDoS attacks: -// - STANDARD: basic always-on protection for network load balancers, protocol forwarding, or VMs with public IP addresses. -// - ADVANCED: additional protections for Managed Protection Plus subscribers who use network load balancers, protocol forwarding, or VMs with public IP addresses. -// - ADVANCED_PREVIEW: flag to enable the security policy in preview mode. -// Possible values are: `ADVANCED`, `ADVANCED_PREVIEW`, `STANDARD`. -func (o RegionSecurityPolicyDdosProtectionConfigOutput) DdosProtection() pulumi.StringOutput { - return o.ApplyT(func(v RegionSecurityPolicyDdosProtectionConfig) string { return v.DdosProtection }).(pulumi.StringOutput) +// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. +func (o RegionResizeRequestRequestedRunDurationOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v RegionResizeRequestRequestedRunDuration) *int { return v.Nanos }).(pulumi.IntPtrOutput) } -type RegionSecurityPolicyDdosProtectionConfigPtrOutput struct{ *pulumi.OutputState } +// Span of time at a resolution of a second. Must be from 600 to 604800 inclusive. Note: minimum and maximum allowed range for requestedRunDuration is 10 minutes (600 seconds) and 7 days(604800 seconds) correspondingly. +func (o RegionResizeRequestRequestedRunDurationOutput) Seconds() pulumi.StringOutput { + return o.ApplyT(func(v RegionResizeRequestRequestedRunDuration) string { return v.Seconds }).(pulumi.StringOutput) +} -func (RegionSecurityPolicyDdosProtectionConfigPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionSecurityPolicyDdosProtectionConfig)(nil)).Elem() +type RegionResizeRequestRequestedRunDurationPtrOutput struct{ *pulumi.OutputState } + +func (RegionResizeRequestRequestedRunDurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionResizeRequestRequestedRunDuration)(nil)).Elem() } -func (o RegionSecurityPolicyDdosProtectionConfigPtrOutput) ToRegionSecurityPolicyDdosProtectionConfigPtrOutput() RegionSecurityPolicyDdosProtectionConfigPtrOutput { +func (o RegionResizeRequestRequestedRunDurationPtrOutput) ToRegionResizeRequestRequestedRunDurationPtrOutput() RegionResizeRequestRequestedRunDurationPtrOutput { return o } -func (o RegionSecurityPolicyDdosProtectionConfigPtrOutput) ToRegionSecurityPolicyDdosProtectionConfigPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyDdosProtectionConfigPtrOutput { +func (o RegionResizeRequestRequestedRunDurationPtrOutput) ToRegionResizeRequestRequestedRunDurationPtrOutputWithContext(ctx context.Context) RegionResizeRequestRequestedRunDurationPtrOutput { return o } -func (o RegionSecurityPolicyDdosProtectionConfigPtrOutput) Elem() RegionSecurityPolicyDdosProtectionConfigOutput { - return o.ApplyT(func(v *RegionSecurityPolicyDdosProtectionConfig) RegionSecurityPolicyDdosProtectionConfig { +func (o RegionResizeRequestRequestedRunDurationPtrOutput) Elem() RegionResizeRequestRequestedRunDurationOutput { + return o.ApplyT(func(v *RegionResizeRequestRequestedRunDuration) RegionResizeRequestRequestedRunDuration { if v != nil { return *v } - var ret RegionSecurityPolicyDdosProtectionConfig + var ret RegionResizeRequestRequestedRunDuration return ret - }).(RegionSecurityPolicyDdosProtectionConfigOutput) + }).(RegionResizeRequestRequestedRunDurationOutput) } -// Google Cloud Armor offers the following options to help protect systems against DDoS attacks: -// - STANDARD: basic always-on protection for network load balancers, protocol forwarding, or VMs with public IP addresses. -// - ADVANCED: additional protections for Managed Protection Plus subscribers who use network load balancers, protocol forwarding, or VMs with public IP addresses. -// - ADVANCED_PREVIEW: flag to enable the security policy in preview mode. -// Possible values are: `ADVANCED`, `ADVANCED_PREVIEW`, `STANDARD`. -func (o RegionSecurityPolicyDdosProtectionConfigPtrOutput) DdosProtection() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionSecurityPolicyDdosProtectionConfig) *string { +// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. +func (o RegionResizeRequestRequestedRunDurationPtrOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RegionResizeRequestRequestedRunDuration) *int { if v == nil { return nil } - return &v.DdosProtection + return v.Nanos + }).(pulumi.IntPtrOutput) +} + +// Span of time at a resolution of a second. Must be from 600 to 604800 inclusive. Note: minimum and maximum allowed range for requestedRunDuration is 10 minutes (600 seconds) and 7 days(604800 seconds) correspondingly. +func (o RegionResizeRequestRequestedRunDurationPtrOutput) Seconds() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionResizeRequestRequestedRunDuration) *string { + if v == nil { + return nil + } + return &v.Seconds }).(pulumi.StringPtrOutput) } -type RegionSecurityPolicyRuleMatch struct { - // The configuration options available when specifying versionedExpr. - // This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified. +type RegionResizeRequestStatus struct { + // (Output) + // Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. // Structure is documented below. - Config *RegionSecurityPolicyRuleMatchConfig `pulumi:"config"` - // User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. + Errors []RegionResizeRequestStatusError `pulumi:"errors"` + // (Output) + // Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the "error" field only. // Structure is documented below. - Expr *RegionSecurityPolicyRuleMatchExpr `pulumi:"expr"` - // Preconfigured versioned expression. If this field is specified, config must also be specified. - // Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config. - // Possible values are: `SRC_IPS_V1`. - VersionedExpr *string `pulumi:"versionedExpr"` + LastAttempts []RegionResizeRequestStatusLastAttempt `pulumi:"lastAttempts"` } -// RegionSecurityPolicyRuleMatchInput is an input type that accepts RegionSecurityPolicyRuleMatchArgs and RegionSecurityPolicyRuleMatchOutput values. -// You can construct a concrete instance of `RegionSecurityPolicyRuleMatchInput` via: +// RegionResizeRequestStatusInput is an input type that accepts RegionResizeRequestStatusArgs and RegionResizeRequestStatusOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusInput` via: // -// RegionSecurityPolicyRuleMatchArgs{...} -type RegionSecurityPolicyRuleMatchInput interface { +// RegionResizeRequestStatusArgs{...} +type RegionResizeRequestStatusInput interface { pulumi.Input - ToRegionSecurityPolicyRuleMatchOutput() RegionSecurityPolicyRuleMatchOutput - ToRegionSecurityPolicyRuleMatchOutputWithContext(context.Context) RegionSecurityPolicyRuleMatchOutput + ToRegionResizeRequestStatusOutput() RegionResizeRequestStatusOutput + ToRegionResizeRequestStatusOutputWithContext(context.Context) RegionResizeRequestStatusOutput } -type RegionSecurityPolicyRuleMatchArgs struct { - // The configuration options available when specifying versionedExpr. - // This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified. +type RegionResizeRequestStatusArgs struct { + // (Output) + // Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. // Structure is documented below. - Config RegionSecurityPolicyRuleMatchConfigPtrInput `pulumi:"config"` - // User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. + Errors RegionResizeRequestStatusErrorArrayInput `pulumi:"errors"` + // (Output) + // Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the "error" field only. // Structure is documented below. - Expr RegionSecurityPolicyRuleMatchExprPtrInput `pulumi:"expr"` - // Preconfigured versioned expression. If this field is specified, config must also be specified. - // Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config. - // Possible values are: `SRC_IPS_V1`. - VersionedExpr pulumi.StringPtrInput `pulumi:"versionedExpr"` + LastAttempts RegionResizeRequestStatusLastAttemptArrayInput `pulumi:"lastAttempts"` } -func (RegionSecurityPolicyRuleMatchArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionSecurityPolicyRuleMatch)(nil)).Elem() +func (RegionResizeRequestStatusArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatus)(nil)).Elem() } -func (i RegionSecurityPolicyRuleMatchArgs) ToRegionSecurityPolicyRuleMatchOutput() RegionSecurityPolicyRuleMatchOutput { - return i.ToRegionSecurityPolicyRuleMatchOutputWithContext(context.Background()) +func (i RegionResizeRequestStatusArgs) ToRegionResizeRequestStatusOutput() RegionResizeRequestStatusOutput { + return i.ToRegionResizeRequestStatusOutputWithContext(context.Background()) } -func (i RegionSecurityPolicyRuleMatchArgs) ToRegionSecurityPolicyRuleMatchOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleMatchOutput) +func (i RegionResizeRequestStatusArgs) ToRegionResizeRequestStatusOutputWithContext(ctx context.Context) RegionResizeRequestStatusOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusOutput) } -func (i RegionSecurityPolicyRuleMatchArgs) ToRegionSecurityPolicyRuleMatchPtrOutput() RegionSecurityPolicyRuleMatchPtrOutput { - return i.ToRegionSecurityPolicyRuleMatchPtrOutputWithContext(context.Background()) +// RegionResizeRequestStatusArrayInput is an input type that accepts RegionResizeRequestStatusArray and RegionResizeRequestStatusArrayOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusArrayInput` via: +// +// RegionResizeRequestStatusArray{ RegionResizeRequestStatusArgs{...} } +type RegionResizeRequestStatusArrayInput interface { + pulumi.Input + + ToRegionResizeRequestStatusArrayOutput() RegionResizeRequestStatusArrayOutput + ToRegionResizeRequestStatusArrayOutputWithContext(context.Context) RegionResizeRequestStatusArrayOutput } -func (i RegionSecurityPolicyRuleMatchArgs) ToRegionSecurityPolicyRuleMatchPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleMatchOutput).ToRegionSecurityPolicyRuleMatchPtrOutputWithContext(ctx) +type RegionResizeRequestStatusArray []RegionResizeRequestStatusInput + +func (RegionResizeRequestStatusArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatus)(nil)).Elem() } -// RegionSecurityPolicyRuleMatchPtrInput is an input type that accepts RegionSecurityPolicyRuleMatchArgs, RegionSecurityPolicyRuleMatchPtr and RegionSecurityPolicyRuleMatchPtrOutput values. -// You can construct a concrete instance of `RegionSecurityPolicyRuleMatchPtrInput` via: -// -// RegionSecurityPolicyRuleMatchArgs{...} -// -// or: -// -// nil -type RegionSecurityPolicyRuleMatchPtrInput interface { - pulumi.Input +func (i RegionResizeRequestStatusArray) ToRegionResizeRequestStatusArrayOutput() RegionResizeRequestStatusArrayOutput { + return i.ToRegionResizeRequestStatusArrayOutputWithContext(context.Background()) +} - ToRegionSecurityPolicyRuleMatchPtrOutput() RegionSecurityPolicyRuleMatchPtrOutput - ToRegionSecurityPolicyRuleMatchPtrOutputWithContext(context.Context) RegionSecurityPolicyRuleMatchPtrOutput +func (i RegionResizeRequestStatusArray) ToRegionResizeRequestStatusArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusArrayOutput) } -type regionSecurityPolicyRuleMatchPtrType RegionSecurityPolicyRuleMatchArgs +type RegionResizeRequestStatusOutput struct{ *pulumi.OutputState } -func RegionSecurityPolicyRuleMatchPtr(v *RegionSecurityPolicyRuleMatchArgs) RegionSecurityPolicyRuleMatchPtrInput { - return (*regionSecurityPolicyRuleMatchPtrType)(v) +func (RegionResizeRequestStatusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatus)(nil)).Elem() } -func (*regionSecurityPolicyRuleMatchPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionSecurityPolicyRuleMatch)(nil)).Elem() +func (o RegionResizeRequestStatusOutput) ToRegionResizeRequestStatusOutput() RegionResizeRequestStatusOutput { + return o } -func (i *regionSecurityPolicyRuleMatchPtrType) ToRegionSecurityPolicyRuleMatchPtrOutput() RegionSecurityPolicyRuleMatchPtrOutput { - return i.ToRegionSecurityPolicyRuleMatchPtrOutputWithContext(context.Background()) +func (o RegionResizeRequestStatusOutput) ToRegionResizeRequestStatusOutputWithContext(ctx context.Context) RegionResizeRequestStatusOutput { + return o } -func (i *regionSecurityPolicyRuleMatchPtrType) ToRegionSecurityPolicyRuleMatchPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleMatchPtrOutput) +// (Output) +// Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. +// Structure is documented below. +func (o RegionResizeRequestStatusOutput) Errors() RegionResizeRequestStatusErrorArrayOutput { + return o.ApplyT(func(v RegionResizeRequestStatus) []RegionResizeRequestStatusError { return v.Errors }).(RegionResizeRequestStatusErrorArrayOutput) } -type RegionSecurityPolicyRuleMatchOutput struct{ *pulumi.OutputState } +// (Output) +// Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the "error" field only. +// Structure is documented below. +func (o RegionResizeRequestStatusOutput) LastAttempts() RegionResizeRequestStatusLastAttemptArrayOutput { + return o.ApplyT(func(v RegionResizeRequestStatus) []RegionResizeRequestStatusLastAttempt { return v.LastAttempts }).(RegionResizeRequestStatusLastAttemptArrayOutput) +} -func (RegionSecurityPolicyRuleMatchOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionSecurityPolicyRuleMatch)(nil)).Elem() +type RegionResizeRequestStatusArrayOutput struct{ *pulumi.OutputState } + +func (RegionResizeRequestStatusArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatus)(nil)).Elem() } -func (o RegionSecurityPolicyRuleMatchOutput) ToRegionSecurityPolicyRuleMatchOutput() RegionSecurityPolicyRuleMatchOutput { +func (o RegionResizeRequestStatusArrayOutput) ToRegionResizeRequestStatusArrayOutput() RegionResizeRequestStatusArrayOutput { return o } -func (o RegionSecurityPolicyRuleMatchOutput) ToRegionSecurityPolicyRuleMatchOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchOutput { +func (o RegionResizeRequestStatusArrayOutput) ToRegionResizeRequestStatusArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusArrayOutput { return o } -func (o RegionSecurityPolicyRuleMatchOutput) ToRegionSecurityPolicyRuleMatchPtrOutput() RegionSecurityPolicyRuleMatchPtrOutput { - return o.ToRegionSecurityPolicyRuleMatchPtrOutputWithContext(context.Background()) +func (o RegionResizeRequestStatusArrayOutput) Index(i pulumi.IntInput) RegionResizeRequestStatusOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionResizeRequestStatus { + return vs[0].([]RegionResizeRequestStatus)[vs[1].(int)] + }).(RegionResizeRequestStatusOutput) } -func (o RegionSecurityPolicyRuleMatchOutput) ToRegionSecurityPolicyRuleMatchPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionSecurityPolicyRuleMatch) *RegionSecurityPolicyRuleMatch { - return &v - }).(RegionSecurityPolicyRuleMatchPtrOutput) +type RegionResizeRequestStatusError struct { + // (Output) + // The array of errors encountered while processing this operation. + // Structure is documented below. + Errors []RegionResizeRequestStatusErrorError `pulumi:"errors"` } -// The configuration options available when specifying versionedExpr. -// This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified. -// Structure is documented below. -func (o RegionSecurityPolicyRuleMatchOutput) Config() RegionSecurityPolicyRuleMatchConfigPtrOutput { - return o.ApplyT(func(v RegionSecurityPolicyRuleMatch) *RegionSecurityPolicyRuleMatchConfig { return v.Config }).(RegionSecurityPolicyRuleMatchConfigPtrOutput) +// RegionResizeRequestStatusErrorInput is an input type that accepts RegionResizeRequestStatusErrorArgs and RegionResizeRequestStatusErrorOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusErrorInput` via: +// +// RegionResizeRequestStatusErrorArgs{...} +type RegionResizeRequestStatusErrorInput interface { + pulumi.Input + + ToRegionResizeRequestStatusErrorOutput() RegionResizeRequestStatusErrorOutput + ToRegionResizeRequestStatusErrorOutputWithContext(context.Context) RegionResizeRequestStatusErrorOutput } -// User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. -// Structure is documented below. -func (o RegionSecurityPolicyRuleMatchOutput) Expr() RegionSecurityPolicyRuleMatchExprPtrOutput { - return o.ApplyT(func(v RegionSecurityPolicyRuleMatch) *RegionSecurityPolicyRuleMatchExpr { return v.Expr }).(RegionSecurityPolicyRuleMatchExprPtrOutput) +type RegionResizeRequestStatusErrorArgs struct { + // (Output) + // The array of errors encountered while processing this operation. + // Structure is documented below. + Errors RegionResizeRequestStatusErrorErrorArrayInput `pulumi:"errors"` } -// Preconfigured versioned expression. If this field is specified, config must also be specified. -// Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config. -// Possible values are: `SRC_IPS_V1`. -func (o RegionSecurityPolicyRuleMatchOutput) VersionedExpr() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionSecurityPolicyRuleMatch) *string { return v.VersionedExpr }).(pulumi.StringPtrOutput) +func (RegionResizeRequestStatusErrorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatusError)(nil)).Elem() } -type RegionSecurityPolicyRuleMatchPtrOutput struct{ *pulumi.OutputState } +func (i RegionResizeRequestStatusErrorArgs) ToRegionResizeRequestStatusErrorOutput() RegionResizeRequestStatusErrorOutput { + return i.ToRegionResizeRequestStatusErrorOutputWithContext(context.Background()) +} -func (RegionSecurityPolicyRuleMatchPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionSecurityPolicyRuleMatch)(nil)).Elem() +func (i RegionResizeRequestStatusErrorArgs) ToRegionResizeRequestStatusErrorOutputWithContext(ctx context.Context) RegionResizeRequestStatusErrorOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusErrorOutput) } -func (o RegionSecurityPolicyRuleMatchPtrOutput) ToRegionSecurityPolicyRuleMatchPtrOutput() RegionSecurityPolicyRuleMatchPtrOutput { - return o +// RegionResizeRequestStatusErrorArrayInput is an input type that accepts RegionResizeRequestStatusErrorArray and RegionResizeRequestStatusErrorArrayOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusErrorArrayInput` via: +// +// RegionResizeRequestStatusErrorArray{ RegionResizeRequestStatusErrorArgs{...} } +type RegionResizeRequestStatusErrorArrayInput interface { + pulumi.Input + + ToRegionResizeRequestStatusErrorArrayOutput() RegionResizeRequestStatusErrorArrayOutput + ToRegionResizeRequestStatusErrorArrayOutputWithContext(context.Context) RegionResizeRequestStatusErrorArrayOutput } -func (o RegionSecurityPolicyRuleMatchPtrOutput) ToRegionSecurityPolicyRuleMatchPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchPtrOutput { - return o +type RegionResizeRequestStatusErrorArray []RegionResizeRequestStatusErrorInput + +func (RegionResizeRequestStatusErrorArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatusError)(nil)).Elem() } -func (o RegionSecurityPolicyRuleMatchPtrOutput) Elem() RegionSecurityPolicyRuleMatchOutput { - return o.ApplyT(func(v *RegionSecurityPolicyRuleMatch) RegionSecurityPolicyRuleMatch { - if v != nil { - return *v - } - var ret RegionSecurityPolicyRuleMatch - return ret - }).(RegionSecurityPolicyRuleMatchOutput) +func (i RegionResizeRequestStatusErrorArray) ToRegionResizeRequestStatusErrorArrayOutput() RegionResizeRequestStatusErrorArrayOutput { + return i.ToRegionResizeRequestStatusErrorArrayOutputWithContext(context.Background()) } -// The configuration options available when specifying versionedExpr. -// This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified. -// Structure is documented below. -func (o RegionSecurityPolicyRuleMatchPtrOutput) Config() RegionSecurityPolicyRuleMatchConfigPtrOutput { - return o.ApplyT(func(v *RegionSecurityPolicyRuleMatch) *RegionSecurityPolicyRuleMatchConfig { - if v == nil { - return nil - } - return v.Config - }).(RegionSecurityPolicyRuleMatchConfigPtrOutput) +func (i RegionResizeRequestStatusErrorArray) ToRegionResizeRequestStatusErrorArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusErrorArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusErrorArrayOutput) } -// User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. +type RegionResizeRequestStatusErrorOutput struct{ *pulumi.OutputState } + +func (RegionResizeRequestStatusErrorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatusError)(nil)).Elem() +} + +func (o RegionResizeRequestStatusErrorOutput) ToRegionResizeRequestStatusErrorOutput() RegionResizeRequestStatusErrorOutput { + return o +} + +func (o RegionResizeRequestStatusErrorOutput) ToRegionResizeRequestStatusErrorOutputWithContext(ctx context.Context) RegionResizeRequestStatusErrorOutput { + return o +} + +// (Output) +// The array of errors encountered while processing this operation. // Structure is documented below. -func (o RegionSecurityPolicyRuleMatchPtrOutput) Expr() RegionSecurityPolicyRuleMatchExprPtrOutput { - return o.ApplyT(func(v *RegionSecurityPolicyRuleMatch) *RegionSecurityPolicyRuleMatchExpr { - if v == nil { - return nil - } - return v.Expr - }).(RegionSecurityPolicyRuleMatchExprPtrOutput) +func (o RegionResizeRequestStatusErrorOutput) Errors() RegionResizeRequestStatusErrorErrorArrayOutput { + return o.ApplyT(func(v RegionResizeRequestStatusError) []RegionResizeRequestStatusErrorError { return v.Errors }).(RegionResizeRequestStatusErrorErrorArrayOutput) } -// Preconfigured versioned expression. If this field is specified, config must also be specified. -// Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config. -// Possible values are: `SRC_IPS_V1`. -func (o RegionSecurityPolicyRuleMatchPtrOutput) VersionedExpr() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionSecurityPolicyRuleMatch) *string { - if v == nil { - return nil - } - return v.VersionedExpr - }).(pulumi.StringPtrOutput) +type RegionResizeRequestStatusErrorArrayOutput struct{ *pulumi.OutputState } + +func (RegionResizeRequestStatusErrorArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatusError)(nil)).Elem() } -type RegionSecurityPolicyRuleMatchConfig struct { - // CIDR IP address range. Maximum number of srcIpRanges allowed is 10. - SrcIpRanges []string `pulumi:"srcIpRanges"` +func (o RegionResizeRequestStatusErrorArrayOutput) ToRegionResizeRequestStatusErrorArrayOutput() RegionResizeRequestStatusErrorArrayOutput { + return o } -// RegionSecurityPolicyRuleMatchConfigInput is an input type that accepts RegionSecurityPolicyRuleMatchConfigArgs and RegionSecurityPolicyRuleMatchConfigOutput values. -// You can construct a concrete instance of `RegionSecurityPolicyRuleMatchConfigInput` via: -// -// RegionSecurityPolicyRuleMatchConfigArgs{...} -type RegionSecurityPolicyRuleMatchConfigInput interface { - pulumi.Input +func (o RegionResizeRequestStatusErrorArrayOutput) ToRegionResizeRequestStatusErrorArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusErrorArrayOutput { + return o +} - ToRegionSecurityPolicyRuleMatchConfigOutput() RegionSecurityPolicyRuleMatchConfigOutput - ToRegionSecurityPolicyRuleMatchConfigOutputWithContext(context.Context) RegionSecurityPolicyRuleMatchConfigOutput +func (o RegionResizeRequestStatusErrorArrayOutput) Index(i pulumi.IntInput) RegionResizeRequestStatusErrorOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionResizeRequestStatusError { + return vs[0].([]RegionResizeRequestStatusError)[vs[1].(int)] + }).(RegionResizeRequestStatusErrorOutput) } -type RegionSecurityPolicyRuleMatchConfigArgs struct { - // CIDR IP address range. Maximum number of srcIpRanges allowed is 10. - SrcIpRanges pulumi.StringArrayInput `pulumi:"srcIpRanges"` +type RegionResizeRequestStatusErrorError struct { + // (Output) + // The error type identifier for this error. + Code *string `pulumi:"code"` + // (Output) + // An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + // Structure is documented below. + ErrorDetails []RegionResizeRequestStatusErrorErrorErrorDetail `pulumi:"errorDetails"` + // (Output) + // Indicates the field in the request that caused the error. This property is optional. + Location *string `pulumi:"location"` + // (Output) + // The localized error message in the above locale. + Message *string `pulumi:"message"` } -func (RegionSecurityPolicyRuleMatchConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionSecurityPolicyRuleMatchConfig)(nil)).Elem() +// RegionResizeRequestStatusErrorErrorInput is an input type that accepts RegionResizeRequestStatusErrorErrorArgs and RegionResizeRequestStatusErrorErrorOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusErrorErrorInput` via: +// +// RegionResizeRequestStatusErrorErrorArgs{...} +type RegionResizeRequestStatusErrorErrorInput interface { + pulumi.Input + + ToRegionResizeRequestStatusErrorErrorOutput() RegionResizeRequestStatusErrorErrorOutput + ToRegionResizeRequestStatusErrorErrorOutputWithContext(context.Context) RegionResizeRequestStatusErrorErrorOutput } -func (i RegionSecurityPolicyRuleMatchConfigArgs) ToRegionSecurityPolicyRuleMatchConfigOutput() RegionSecurityPolicyRuleMatchConfigOutput { - return i.ToRegionSecurityPolicyRuleMatchConfigOutputWithContext(context.Background()) +type RegionResizeRequestStatusErrorErrorArgs struct { + // (Output) + // The error type identifier for this error. + Code pulumi.StringPtrInput `pulumi:"code"` + // (Output) + // An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + // Structure is documented below. + ErrorDetails RegionResizeRequestStatusErrorErrorErrorDetailArrayInput `pulumi:"errorDetails"` + // (Output) + // Indicates the field in the request that caused the error. This property is optional. + Location pulumi.StringPtrInput `pulumi:"location"` + // (Output) + // The localized error message in the above locale. + Message pulumi.StringPtrInput `pulumi:"message"` } -func (i RegionSecurityPolicyRuleMatchConfigArgs) ToRegionSecurityPolicyRuleMatchConfigOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleMatchConfigOutput) +func (RegionResizeRequestStatusErrorErrorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatusErrorError)(nil)).Elem() } -func (i RegionSecurityPolicyRuleMatchConfigArgs) ToRegionSecurityPolicyRuleMatchConfigPtrOutput() RegionSecurityPolicyRuleMatchConfigPtrOutput { - return i.ToRegionSecurityPolicyRuleMatchConfigPtrOutputWithContext(context.Background()) +func (i RegionResizeRequestStatusErrorErrorArgs) ToRegionResizeRequestStatusErrorErrorOutput() RegionResizeRequestStatusErrorErrorOutput { + return i.ToRegionResizeRequestStatusErrorErrorOutputWithContext(context.Background()) } -func (i RegionSecurityPolicyRuleMatchConfigArgs) ToRegionSecurityPolicyRuleMatchConfigPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleMatchConfigOutput).ToRegionSecurityPolicyRuleMatchConfigPtrOutputWithContext(ctx) +func (i RegionResizeRequestStatusErrorErrorArgs) ToRegionResizeRequestStatusErrorErrorOutputWithContext(ctx context.Context) RegionResizeRequestStatusErrorErrorOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusErrorErrorOutput) } -// RegionSecurityPolicyRuleMatchConfigPtrInput is an input type that accepts RegionSecurityPolicyRuleMatchConfigArgs, RegionSecurityPolicyRuleMatchConfigPtr and RegionSecurityPolicyRuleMatchConfigPtrOutput values. -// You can construct a concrete instance of `RegionSecurityPolicyRuleMatchConfigPtrInput` via: +// RegionResizeRequestStatusErrorErrorArrayInput is an input type that accepts RegionResizeRequestStatusErrorErrorArray and RegionResizeRequestStatusErrorErrorArrayOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusErrorErrorArrayInput` via: // -// RegionSecurityPolicyRuleMatchConfigArgs{...} -// -// or: -// -// nil -type RegionSecurityPolicyRuleMatchConfigPtrInput interface { +// RegionResizeRequestStatusErrorErrorArray{ RegionResizeRequestStatusErrorErrorArgs{...} } +type RegionResizeRequestStatusErrorErrorArrayInput interface { pulumi.Input - ToRegionSecurityPolicyRuleMatchConfigPtrOutput() RegionSecurityPolicyRuleMatchConfigPtrOutput - ToRegionSecurityPolicyRuleMatchConfigPtrOutputWithContext(context.Context) RegionSecurityPolicyRuleMatchConfigPtrOutput + ToRegionResizeRequestStatusErrorErrorArrayOutput() RegionResizeRequestStatusErrorErrorArrayOutput + ToRegionResizeRequestStatusErrorErrorArrayOutputWithContext(context.Context) RegionResizeRequestStatusErrorErrorArrayOutput } -type regionSecurityPolicyRuleMatchConfigPtrType RegionSecurityPolicyRuleMatchConfigArgs - -func RegionSecurityPolicyRuleMatchConfigPtr(v *RegionSecurityPolicyRuleMatchConfigArgs) RegionSecurityPolicyRuleMatchConfigPtrInput { - return (*regionSecurityPolicyRuleMatchConfigPtrType)(v) -} +type RegionResizeRequestStatusErrorErrorArray []RegionResizeRequestStatusErrorErrorInput -func (*regionSecurityPolicyRuleMatchConfigPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionSecurityPolicyRuleMatchConfig)(nil)).Elem() +func (RegionResizeRequestStatusErrorErrorArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatusErrorError)(nil)).Elem() } -func (i *regionSecurityPolicyRuleMatchConfigPtrType) ToRegionSecurityPolicyRuleMatchConfigPtrOutput() RegionSecurityPolicyRuleMatchConfigPtrOutput { - return i.ToRegionSecurityPolicyRuleMatchConfigPtrOutputWithContext(context.Background()) +func (i RegionResizeRequestStatusErrorErrorArray) ToRegionResizeRequestStatusErrorErrorArrayOutput() RegionResizeRequestStatusErrorErrorArrayOutput { + return i.ToRegionResizeRequestStatusErrorErrorArrayOutputWithContext(context.Background()) } -func (i *regionSecurityPolicyRuleMatchConfigPtrType) ToRegionSecurityPolicyRuleMatchConfigPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleMatchConfigPtrOutput) +func (i RegionResizeRequestStatusErrorErrorArray) ToRegionResizeRequestStatusErrorErrorArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusErrorErrorArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusErrorErrorArrayOutput) } -type RegionSecurityPolicyRuleMatchConfigOutput struct{ *pulumi.OutputState } +type RegionResizeRequestStatusErrorErrorOutput struct{ *pulumi.OutputState } -func (RegionSecurityPolicyRuleMatchConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionSecurityPolicyRuleMatchConfig)(nil)).Elem() +func (RegionResizeRequestStatusErrorErrorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatusErrorError)(nil)).Elem() } -func (o RegionSecurityPolicyRuleMatchConfigOutput) ToRegionSecurityPolicyRuleMatchConfigOutput() RegionSecurityPolicyRuleMatchConfigOutput { +func (o RegionResizeRequestStatusErrorErrorOutput) ToRegionResizeRequestStatusErrorErrorOutput() RegionResizeRequestStatusErrorErrorOutput { return o } -func (o RegionSecurityPolicyRuleMatchConfigOutput) ToRegionSecurityPolicyRuleMatchConfigOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchConfigOutput { +func (o RegionResizeRequestStatusErrorErrorOutput) ToRegionResizeRequestStatusErrorErrorOutputWithContext(ctx context.Context) RegionResizeRequestStatusErrorErrorOutput { return o } -func (o RegionSecurityPolicyRuleMatchConfigOutput) ToRegionSecurityPolicyRuleMatchConfigPtrOutput() RegionSecurityPolicyRuleMatchConfigPtrOutput { - return o.ToRegionSecurityPolicyRuleMatchConfigPtrOutputWithContext(context.Background()) +// (Output) +// The error type identifier for this error. +func (o RegionResizeRequestStatusErrorErrorOutput) Code() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionResizeRequestStatusErrorError) *string { return v.Code }).(pulumi.StringPtrOutput) } -func (o RegionSecurityPolicyRuleMatchConfigOutput) ToRegionSecurityPolicyRuleMatchConfigPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchConfigPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionSecurityPolicyRuleMatchConfig) *RegionSecurityPolicyRuleMatchConfig { - return &v - }).(RegionSecurityPolicyRuleMatchConfigPtrOutput) +// (Output) +// An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. +// Structure is documented below. +func (o RegionResizeRequestStatusErrorErrorOutput) ErrorDetails() RegionResizeRequestStatusErrorErrorErrorDetailArrayOutput { + return o.ApplyT(func(v RegionResizeRequestStatusErrorError) []RegionResizeRequestStatusErrorErrorErrorDetail { + return v.ErrorDetails + }).(RegionResizeRequestStatusErrorErrorErrorDetailArrayOutput) } -// CIDR IP address range. Maximum number of srcIpRanges allowed is 10. -func (o RegionSecurityPolicyRuleMatchConfigOutput) SrcIpRanges() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionSecurityPolicyRuleMatchConfig) []string { return v.SrcIpRanges }).(pulumi.StringArrayOutput) +// (Output) +// Indicates the field in the request that caused the error. This property is optional. +func (o RegionResizeRequestStatusErrorErrorOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionResizeRequestStatusErrorError) *string { return v.Location }).(pulumi.StringPtrOutput) } -type RegionSecurityPolicyRuleMatchConfigPtrOutput struct{ *pulumi.OutputState } - -func (RegionSecurityPolicyRuleMatchConfigPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionSecurityPolicyRuleMatchConfig)(nil)).Elem() +// (Output) +// The localized error message in the above locale. +func (o RegionResizeRequestStatusErrorErrorOutput) Message() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionResizeRequestStatusErrorError) *string { return v.Message }).(pulumi.StringPtrOutput) } -func (o RegionSecurityPolicyRuleMatchConfigPtrOutput) ToRegionSecurityPolicyRuleMatchConfigPtrOutput() RegionSecurityPolicyRuleMatchConfigPtrOutput { - return o +type RegionResizeRequestStatusErrorErrorArrayOutput struct{ *pulumi.OutputState } + +func (RegionResizeRequestStatusErrorErrorArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatusErrorError)(nil)).Elem() } -func (o RegionSecurityPolicyRuleMatchConfigPtrOutput) ToRegionSecurityPolicyRuleMatchConfigPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchConfigPtrOutput { +func (o RegionResizeRequestStatusErrorErrorArrayOutput) ToRegionResizeRequestStatusErrorErrorArrayOutput() RegionResizeRequestStatusErrorErrorArrayOutput { return o } -func (o RegionSecurityPolicyRuleMatchConfigPtrOutput) Elem() RegionSecurityPolicyRuleMatchConfigOutput { - return o.ApplyT(func(v *RegionSecurityPolicyRuleMatchConfig) RegionSecurityPolicyRuleMatchConfig { - if v != nil { - return *v - } - var ret RegionSecurityPolicyRuleMatchConfig - return ret - }).(RegionSecurityPolicyRuleMatchConfigOutput) +func (o RegionResizeRequestStatusErrorErrorArrayOutput) ToRegionResizeRequestStatusErrorErrorArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusErrorErrorArrayOutput { + return o } -// CIDR IP address range. Maximum number of srcIpRanges allowed is 10. -func (o RegionSecurityPolicyRuleMatchConfigPtrOutput) SrcIpRanges() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RegionSecurityPolicyRuleMatchConfig) []string { - if v == nil { - return nil - } - return v.SrcIpRanges - }).(pulumi.StringArrayOutput) +func (o RegionResizeRequestStatusErrorErrorArrayOutput) Index(i pulumi.IntInput) RegionResizeRequestStatusErrorErrorOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionResizeRequestStatusErrorError { + return vs[0].([]RegionResizeRequestStatusErrorError)[vs[1].(int)] + }).(RegionResizeRequestStatusErrorErrorOutput) } -type RegionSecurityPolicyRuleMatchExpr struct { - // Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported. - Expression string `pulumi:"expression"` +type RegionResizeRequestStatusErrorErrorErrorDetail struct { + // (Output) + // A nested object resource. + // Structure is documented below. + ErrorInfos []RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo `pulumi:"errorInfos"` + // (Output) + // A nested object resource. + // Structure is documented below. + Helps []RegionResizeRequestStatusErrorErrorErrorDetailHelp `pulumi:"helps"` + // (Output) + // A nested object resource. + // Structure is documented below. + LocalizedMessages []RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage `pulumi:"localizedMessages"` + // (Output) + // A nested object resource. + // Structure is documented below. + QuotaInfos []RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo `pulumi:"quotaInfos"` } -// RegionSecurityPolicyRuleMatchExprInput is an input type that accepts RegionSecurityPolicyRuleMatchExprArgs and RegionSecurityPolicyRuleMatchExprOutput values. -// You can construct a concrete instance of `RegionSecurityPolicyRuleMatchExprInput` via: +// RegionResizeRequestStatusErrorErrorErrorDetailInput is an input type that accepts RegionResizeRequestStatusErrorErrorErrorDetailArgs and RegionResizeRequestStatusErrorErrorErrorDetailOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusErrorErrorErrorDetailInput` via: // -// RegionSecurityPolicyRuleMatchExprArgs{...} -type RegionSecurityPolicyRuleMatchExprInput interface { +// RegionResizeRequestStatusErrorErrorErrorDetailArgs{...} +type RegionResizeRequestStatusErrorErrorErrorDetailInput interface { pulumi.Input - ToRegionSecurityPolicyRuleMatchExprOutput() RegionSecurityPolicyRuleMatchExprOutput - ToRegionSecurityPolicyRuleMatchExprOutputWithContext(context.Context) RegionSecurityPolicyRuleMatchExprOutput -} - -type RegionSecurityPolicyRuleMatchExprArgs struct { - // Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported. - Expression pulumi.StringInput `pulumi:"expression"` -} - -func (RegionSecurityPolicyRuleMatchExprArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionSecurityPolicyRuleMatchExpr)(nil)).Elem() + ToRegionResizeRequestStatusErrorErrorErrorDetailOutput() RegionResizeRequestStatusErrorErrorErrorDetailOutput + ToRegionResizeRequestStatusErrorErrorErrorDetailOutputWithContext(context.Context) RegionResizeRequestStatusErrorErrorErrorDetailOutput } -func (i RegionSecurityPolicyRuleMatchExprArgs) ToRegionSecurityPolicyRuleMatchExprOutput() RegionSecurityPolicyRuleMatchExprOutput { - return i.ToRegionSecurityPolicyRuleMatchExprOutputWithContext(context.Background()) +type RegionResizeRequestStatusErrorErrorErrorDetailArgs struct { + // (Output) + // A nested object resource. + // Structure is documented below. + ErrorInfos RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayInput `pulumi:"errorInfos"` + // (Output) + // A nested object resource. + // Structure is documented below. + Helps RegionResizeRequestStatusErrorErrorErrorDetailHelpArrayInput `pulumi:"helps"` + // (Output) + // A nested object resource. + // Structure is documented below. + LocalizedMessages RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayInput `pulumi:"localizedMessages"` + // (Output) + // A nested object resource. + // Structure is documented below. + QuotaInfos RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayInput `pulumi:"quotaInfos"` } -func (i RegionSecurityPolicyRuleMatchExprArgs) ToRegionSecurityPolicyRuleMatchExprOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchExprOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleMatchExprOutput) +func (RegionResizeRequestStatusErrorErrorErrorDetailArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatusErrorErrorErrorDetail)(nil)).Elem() } -func (i RegionSecurityPolicyRuleMatchExprArgs) ToRegionSecurityPolicyRuleMatchExprPtrOutput() RegionSecurityPolicyRuleMatchExprPtrOutput { - return i.ToRegionSecurityPolicyRuleMatchExprPtrOutputWithContext(context.Background()) +func (i RegionResizeRequestStatusErrorErrorErrorDetailArgs) ToRegionResizeRequestStatusErrorErrorErrorDetailOutput() RegionResizeRequestStatusErrorErrorErrorDetailOutput { + return i.ToRegionResizeRequestStatusErrorErrorErrorDetailOutputWithContext(context.Background()) } -func (i RegionSecurityPolicyRuleMatchExprArgs) ToRegionSecurityPolicyRuleMatchExprPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchExprPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleMatchExprOutput).ToRegionSecurityPolicyRuleMatchExprPtrOutputWithContext(ctx) +func (i RegionResizeRequestStatusErrorErrorErrorDetailArgs) ToRegionResizeRequestStatusErrorErrorErrorDetailOutputWithContext(ctx context.Context) RegionResizeRequestStatusErrorErrorErrorDetailOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusErrorErrorErrorDetailOutput) } -// RegionSecurityPolicyRuleMatchExprPtrInput is an input type that accepts RegionSecurityPolicyRuleMatchExprArgs, RegionSecurityPolicyRuleMatchExprPtr and RegionSecurityPolicyRuleMatchExprPtrOutput values. -// You can construct a concrete instance of `RegionSecurityPolicyRuleMatchExprPtrInput` via: -// -// RegionSecurityPolicyRuleMatchExprArgs{...} -// -// or: +// RegionResizeRequestStatusErrorErrorErrorDetailArrayInput is an input type that accepts RegionResizeRequestStatusErrorErrorErrorDetailArray and RegionResizeRequestStatusErrorErrorErrorDetailArrayOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusErrorErrorErrorDetailArrayInput` via: // -// nil -type RegionSecurityPolicyRuleMatchExprPtrInput interface { +// RegionResizeRequestStatusErrorErrorErrorDetailArray{ RegionResizeRequestStatusErrorErrorErrorDetailArgs{...} } +type RegionResizeRequestStatusErrorErrorErrorDetailArrayInput interface { pulumi.Input - ToRegionSecurityPolicyRuleMatchExprPtrOutput() RegionSecurityPolicyRuleMatchExprPtrOutput - ToRegionSecurityPolicyRuleMatchExprPtrOutputWithContext(context.Context) RegionSecurityPolicyRuleMatchExprPtrOutput + ToRegionResizeRequestStatusErrorErrorErrorDetailArrayOutput() RegionResizeRequestStatusErrorErrorErrorDetailArrayOutput + ToRegionResizeRequestStatusErrorErrorErrorDetailArrayOutputWithContext(context.Context) RegionResizeRequestStatusErrorErrorErrorDetailArrayOutput } -type regionSecurityPolicyRuleMatchExprPtrType RegionSecurityPolicyRuleMatchExprArgs - -func RegionSecurityPolicyRuleMatchExprPtr(v *RegionSecurityPolicyRuleMatchExprArgs) RegionSecurityPolicyRuleMatchExprPtrInput { - return (*regionSecurityPolicyRuleMatchExprPtrType)(v) -} +type RegionResizeRequestStatusErrorErrorErrorDetailArray []RegionResizeRequestStatusErrorErrorErrorDetailInput -func (*regionSecurityPolicyRuleMatchExprPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionSecurityPolicyRuleMatchExpr)(nil)).Elem() +func (RegionResizeRequestStatusErrorErrorErrorDetailArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatusErrorErrorErrorDetail)(nil)).Elem() } -func (i *regionSecurityPolicyRuleMatchExprPtrType) ToRegionSecurityPolicyRuleMatchExprPtrOutput() RegionSecurityPolicyRuleMatchExprPtrOutput { - return i.ToRegionSecurityPolicyRuleMatchExprPtrOutputWithContext(context.Background()) +func (i RegionResizeRequestStatusErrorErrorErrorDetailArray) ToRegionResizeRequestStatusErrorErrorErrorDetailArrayOutput() RegionResizeRequestStatusErrorErrorErrorDetailArrayOutput { + return i.ToRegionResizeRequestStatusErrorErrorErrorDetailArrayOutputWithContext(context.Background()) } -func (i *regionSecurityPolicyRuleMatchExprPtrType) ToRegionSecurityPolicyRuleMatchExprPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchExprPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleMatchExprPtrOutput) +func (i RegionResizeRequestStatusErrorErrorErrorDetailArray) ToRegionResizeRequestStatusErrorErrorErrorDetailArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusErrorErrorErrorDetailArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusErrorErrorErrorDetailArrayOutput) } -type RegionSecurityPolicyRuleMatchExprOutput struct{ *pulumi.OutputState } +type RegionResizeRequestStatusErrorErrorErrorDetailOutput struct{ *pulumi.OutputState } -func (RegionSecurityPolicyRuleMatchExprOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionSecurityPolicyRuleMatchExpr)(nil)).Elem() +func (RegionResizeRequestStatusErrorErrorErrorDetailOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatusErrorErrorErrorDetail)(nil)).Elem() } -func (o RegionSecurityPolicyRuleMatchExprOutput) ToRegionSecurityPolicyRuleMatchExprOutput() RegionSecurityPolicyRuleMatchExprOutput { +func (o RegionResizeRequestStatusErrorErrorErrorDetailOutput) ToRegionResizeRequestStatusErrorErrorErrorDetailOutput() RegionResizeRequestStatusErrorErrorErrorDetailOutput { return o } -func (o RegionSecurityPolicyRuleMatchExprOutput) ToRegionSecurityPolicyRuleMatchExprOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchExprOutput { +func (o RegionResizeRequestStatusErrorErrorErrorDetailOutput) ToRegionResizeRequestStatusErrorErrorErrorDetailOutputWithContext(ctx context.Context) RegionResizeRequestStatusErrorErrorErrorDetailOutput { return o } -func (o RegionSecurityPolicyRuleMatchExprOutput) ToRegionSecurityPolicyRuleMatchExprPtrOutput() RegionSecurityPolicyRuleMatchExprPtrOutput { - return o.ToRegionSecurityPolicyRuleMatchExprPtrOutputWithContext(context.Background()) +// (Output) +// A nested object resource. +// Structure is documented below. +func (o RegionResizeRequestStatusErrorErrorErrorDetailOutput) ErrorInfos() RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput { + return o.ApplyT(func(v RegionResizeRequestStatusErrorErrorErrorDetail) []RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo { + return v.ErrorInfos + }).(RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput) } -func (o RegionSecurityPolicyRuleMatchExprOutput) ToRegionSecurityPolicyRuleMatchExprPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchExprPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionSecurityPolicyRuleMatchExpr) *RegionSecurityPolicyRuleMatchExpr { - return &v - }).(RegionSecurityPolicyRuleMatchExprPtrOutput) +// (Output) +// A nested object resource. +// Structure is documented below. +func (o RegionResizeRequestStatusErrorErrorErrorDetailOutput) Helps() RegionResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput { + return o.ApplyT(func(v RegionResizeRequestStatusErrorErrorErrorDetail) []RegionResizeRequestStatusErrorErrorErrorDetailHelp { + return v.Helps + }).(RegionResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput) } -// Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported. -func (o RegionSecurityPolicyRuleMatchExprOutput) Expression() pulumi.StringOutput { - return o.ApplyT(func(v RegionSecurityPolicyRuleMatchExpr) string { return v.Expression }).(pulumi.StringOutput) +// (Output) +// A nested object resource. +// Structure is documented below. +func (o RegionResizeRequestStatusErrorErrorErrorDetailOutput) LocalizedMessages() RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput { + return o.ApplyT(func(v RegionResizeRequestStatusErrorErrorErrorDetail) []RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage { + return v.LocalizedMessages + }).(RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput) } -type RegionSecurityPolicyRuleMatchExprPtrOutput struct{ *pulumi.OutputState } +// (Output) +// A nested object resource. +// Structure is documented below. +func (o RegionResizeRequestStatusErrorErrorErrorDetailOutput) QuotaInfos() RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput { + return o.ApplyT(func(v RegionResizeRequestStatusErrorErrorErrorDetail) []RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo { + return v.QuotaInfos + }).(RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput) +} -func (RegionSecurityPolicyRuleMatchExprPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionSecurityPolicyRuleMatchExpr)(nil)).Elem() +type RegionResizeRequestStatusErrorErrorErrorDetailArrayOutput struct{ *pulumi.OutputState } + +func (RegionResizeRequestStatusErrorErrorErrorDetailArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatusErrorErrorErrorDetail)(nil)).Elem() } -func (o RegionSecurityPolicyRuleMatchExprPtrOutput) ToRegionSecurityPolicyRuleMatchExprPtrOutput() RegionSecurityPolicyRuleMatchExprPtrOutput { +func (o RegionResizeRequestStatusErrorErrorErrorDetailArrayOutput) ToRegionResizeRequestStatusErrorErrorErrorDetailArrayOutput() RegionResizeRequestStatusErrorErrorErrorDetailArrayOutput { return o } -func (o RegionSecurityPolicyRuleMatchExprPtrOutput) ToRegionSecurityPolicyRuleMatchExprPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchExprPtrOutput { +func (o RegionResizeRequestStatusErrorErrorErrorDetailArrayOutput) ToRegionResizeRequestStatusErrorErrorErrorDetailArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusErrorErrorErrorDetailArrayOutput { return o } -func (o RegionSecurityPolicyRuleMatchExprPtrOutput) Elem() RegionSecurityPolicyRuleMatchExprOutput { - return o.ApplyT(func(v *RegionSecurityPolicyRuleMatchExpr) RegionSecurityPolicyRuleMatchExpr { - if v != nil { - return *v - } - var ret RegionSecurityPolicyRuleMatchExpr - return ret - }).(RegionSecurityPolicyRuleMatchExprOutput) +func (o RegionResizeRequestStatusErrorErrorErrorDetailArrayOutput) Index(i pulumi.IntInput) RegionResizeRequestStatusErrorErrorErrorDetailOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionResizeRequestStatusErrorErrorErrorDetail { + return vs[0].([]RegionResizeRequestStatusErrorErrorErrorDetail)[vs[1].(int)] + }).(RegionResizeRequestStatusErrorErrorErrorDetailOutput) } -// Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported. -func (o RegionSecurityPolicyRuleMatchExprPtrOutput) Expression() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionSecurityPolicyRuleMatchExpr) *string { - if v == nil { - return nil - } - return &v.Expression - }).(pulumi.StringPtrOutput) +type RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo struct { + // (Output) + // 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". + Domain *string `pulumi:"domain"` + // (Output) + // Additional structured details about this error. + Metadatas map[string]string `pulumi:"metadatas"` + // (Output) + // 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. + Reason *string `pulumi:"reason"` } -type RegionSecurityPolicyRuleNetworkMatch struct { - // Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format. - DestIpRanges []string `pulumi:"destIpRanges"` - // Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). - DestPorts []string `pulumi:"destPorts"` - // IPv4 protocol / IPv6 next header (after extension headers). Each element can be an 8-bit unsigned decimal number (e.g. "6"), range (e.g. "253-254"), or one of the following protocol names: "tcp", "udp", "icmp", "esp", "ah", "ipip", or "sctp". - IpProtocols []string `pulumi:"ipProtocols"` - // BGP Autonomous System Number associated with the source IP address. - SrcAsns []int `pulumi:"srcAsns"` - // Source IPv4/IPv6 addresses or CIDR prefixes, in standard text format. - SrcIpRanges []string `pulumi:"srcIpRanges"` - // Source port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). - SrcPorts []string `pulumi:"srcPorts"` - // Two-letter ISO 3166-1 alpha-2 country code associated with the source IP address. - SrcRegionCodes []string `pulumi:"srcRegionCodes"` - // User-defined fields. Each element names a defined field and lists the matching values for that field. - // Structure is documented below. - UserDefinedFields []RegionSecurityPolicyRuleNetworkMatchUserDefinedField `pulumi:"userDefinedFields"` -} - -// RegionSecurityPolicyRuleNetworkMatchInput is an input type that accepts RegionSecurityPolicyRuleNetworkMatchArgs and RegionSecurityPolicyRuleNetworkMatchOutput values. -// You can construct a concrete instance of `RegionSecurityPolicyRuleNetworkMatchInput` via: +// RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoInput is an input type that accepts RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs and RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoInput` via: // -// RegionSecurityPolicyRuleNetworkMatchArgs{...} -type RegionSecurityPolicyRuleNetworkMatchInput interface { +// RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs{...} +type RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoInput interface { pulumi.Input - ToRegionSecurityPolicyRuleNetworkMatchOutput() RegionSecurityPolicyRuleNetworkMatchOutput - ToRegionSecurityPolicyRuleNetworkMatchOutputWithContext(context.Context) RegionSecurityPolicyRuleNetworkMatchOutput + ToRegionResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput() RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput + ToRegionResizeRequestStatusErrorErrorErrorDetailErrorInfoOutputWithContext(context.Context) RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput } -type RegionSecurityPolicyRuleNetworkMatchArgs struct { - // Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format. - DestIpRanges pulumi.StringArrayInput `pulumi:"destIpRanges"` - // Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). - DestPorts pulumi.StringArrayInput `pulumi:"destPorts"` - // IPv4 protocol / IPv6 next header (after extension headers). Each element can be an 8-bit unsigned decimal number (e.g. "6"), range (e.g. "253-254"), or one of the following protocol names: "tcp", "udp", "icmp", "esp", "ah", "ipip", or "sctp". - IpProtocols pulumi.StringArrayInput `pulumi:"ipProtocols"` - // BGP Autonomous System Number associated with the source IP address. - SrcAsns pulumi.IntArrayInput `pulumi:"srcAsns"` - // Source IPv4/IPv6 addresses or CIDR prefixes, in standard text format. - SrcIpRanges pulumi.StringArrayInput `pulumi:"srcIpRanges"` - // Source port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). - SrcPorts pulumi.StringArrayInput `pulumi:"srcPorts"` - // Two-letter ISO 3166-1 alpha-2 country code associated with the source IP address. - SrcRegionCodes pulumi.StringArrayInput `pulumi:"srcRegionCodes"` - // User-defined fields. Each element names a defined field and lists the matching values for that field. - // Structure is documented below. - UserDefinedFields RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayInput `pulumi:"userDefinedFields"` +type RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs struct { + // (Output) + // 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". + Domain pulumi.StringPtrInput `pulumi:"domain"` + // (Output) + // Additional structured details about this error. + Metadatas pulumi.StringMapInput `pulumi:"metadatas"` + // (Output) + // 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. + Reason pulumi.StringPtrInput `pulumi:"reason"` } -func (RegionSecurityPolicyRuleNetworkMatchArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionSecurityPolicyRuleNetworkMatch)(nil)).Elem() +func (RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo)(nil)).Elem() } -func (i RegionSecurityPolicyRuleNetworkMatchArgs) ToRegionSecurityPolicyRuleNetworkMatchOutput() RegionSecurityPolicyRuleNetworkMatchOutput { - return i.ToRegionSecurityPolicyRuleNetworkMatchOutputWithContext(context.Background()) +func (i RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs) ToRegionResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput() RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput { + return i.ToRegionResizeRequestStatusErrorErrorErrorDetailErrorInfoOutputWithContext(context.Background()) } -func (i RegionSecurityPolicyRuleNetworkMatchArgs) ToRegionSecurityPolicyRuleNetworkMatchOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleNetworkMatchOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleNetworkMatchOutput) +func (i RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs) ToRegionResizeRequestStatusErrorErrorErrorDetailErrorInfoOutputWithContext(ctx context.Context) RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput) } -func (i RegionSecurityPolicyRuleNetworkMatchArgs) ToRegionSecurityPolicyRuleNetworkMatchPtrOutput() RegionSecurityPolicyRuleNetworkMatchPtrOutput { - return i.ToRegionSecurityPolicyRuleNetworkMatchPtrOutputWithContext(context.Background()) +// RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayInput is an input type that accepts RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArray and RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayInput` via: +// +// RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArray{ RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs{...} } +type RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayInput interface { + pulumi.Input + + ToRegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput() RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput + ToRegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutputWithContext(context.Context) RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput } -func (i RegionSecurityPolicyRuleNetworkMatchArgs) ToRegionSecurityPolicyRuleNetworkMatchPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleNetworkMatchPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleNetworkMatchOutput).ToRegionSecurityPolicyRuleNetworkMatchPtrOutputWithContext(ctx) +type RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArray []RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoInput + +func (RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo)(nil)).Elem() } -// RegionSecurityPolicyRuleNetworkMatchPtrInput is an input type that accepts RegionSecurityPolicyRuleNetworkMatchArgs, RegionSecurityPolicyRuleNetworkMatchPtr and RegionSecurityPolicyRuleNetworkMatchPtrOutput values. -// You can construct a concrete instance of `RegionSecurityPolicyRuleNetworkMatchPtrInput` via: -// -// RegionSecurityPolicyRuleNetworkMatchArgs{...} -// -// or: -// -// nil -type RegionSecurityPolicyRuleNetworkMatchPtrInput interface { - pulumi.Input +func (i RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArray) ToRegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput() RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput { + return i.ToRegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutputWithContext(context.Background()) +} - ToRegionSecurityPolicyRuleNetworkMatchPtrOutput() RegionSecurityPolicyRuleNetworkMatchPtrOutput - ToRegionSecurityPolicyRuleNetworkMatchPtrOutputWithContext(context.Context) RegionSecurityPolicyRuleNetworkMatchPtrOutput +func (i RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArray) ToRegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput) } -type regionSecurityPolicyRuleNetworkMatchPtrType RegionSecurityPolicyRuleNetworkMatchArgs +type RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput struct{ *pulumi.OutputState } -func RegionSecurityPolicyRuleNetworkMatchPtr(v *RegionSecurityPolicyRuleNetworkMatchArgs) RegionSecurityPolicyRuleNetworkMatchPtrInput { - return (*regionSecurityPolicyRuleNetworkMatchPtrType)(v) +func (RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo)(nil)).Elem() } -func (*regionSecurityPolicyRuleNetworkMatchPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionSecurityPolicyRuleNetworkMatch)(nil)).Elem() +func (o RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput) ToRegionResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput() RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput { + return o } -func (i *regionSecurityPolicyRuleNetworkMatchPtrType) ToRegionSecurityPolicyRuleNetworkMatchPtrOutput() RegionSecurityPolicyRuleNetworkMatchPtrOutput { - return i.ToRegionSecurityPolicyRuleNetworkMatchPtrOutputWithContext(context.Background()) +func (o RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput) ToRegionResizeRequestStatusErrorErrorErrorDetailErrorInfoOutputWithContext(ctx context.Context) RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput { + return o } -func (i *regionSecurityPolicyRuleNetworkMatchPtrType) ToRegionSecurityPolicyRuleNetworkMatchPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleNetworkMatchPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleNetworkMatchPtrOutput) +// (Output) +// 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". +func (o RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput) Domain() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo) *string { return v.Domain }).(pulumi.StringPtrOutput) } -type RegionSecurityPolicyRuleNetworkMatchOutput struct{ *pulumi.OutputState } +// (Output) +// Additional structured details about this error. +func (o RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput) Metadatas() pulumi.StringMapOutput { + return o.ApplyT(func(v RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo) map[string]string { return v.Metadatas }).(pulumi.StringMapOutput) +} -func (RegionSecurityPolicyRuleNetworkMatchOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionSecurityPolicyRuleNetworkMatch)(nil)).Elem() +// (Output) +// 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. +func (o RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput) Reason() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo) *string { return v.Reason }).(pulumi.StringPtrOutput) } -func (o RegionSecurityPolicyRuleNetworkMatchOutput) ToRegionSecurityPolicyRuleNetworkMatchOutput() RegionSecurityPolicyRuleNetworkMatchOutput { - return o +type RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput struct{ *pulumi.OutputState } + +func (RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo)(nil)).Elem() } -func (o RegionSecurityPolicyRuleNetworkMatchOutput) ToRegionSecurityPolicyRuleNetworkMatchOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleNetworkMatchOutput { +func (o RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput) ToRegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput() RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput { return o } -func (o RegionSecurityPolicyRuleNetworkMatchOutput) ToRegionSecurityPolicyRuleNetworkMatchPtrOutput() RegionSecurityPolicyRuleNetworkMatchPtrOutput { - return o.ToRegionSecurityPolicyRuleNetworkMatchPtrOutputWithContext(context.Background()) +func (o RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput) ToRegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput { + return o } -func (o RegionSecurityPolicyRuleNetworkMatchOutput) ToRegionSecurityPolicyRuleNetworkMatchPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleNetworkMatchPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionSecurityPolicyRuleNetworkMatch) *RegionSecurityPolicyRuleNetworkMatch { - return &v - }).(RegionSecurityPolicyRuleNetworkMatchPtrOutput) +func (o RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput) Index(i pulumi.IntInput) RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo { + return vs[0].([]RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo)[vs[1].(int)] + }).(RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput) } -// Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format. -func (o RegionSecurityPolicyRuleNetworkMatchOutput) DestIpRanges() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionSecurityPolicyRuleNetworkMatch) []string { return v.DestIpRanges }).(pulumi.StringArrayOutput) +type RegionResizeRequestStatusErrorErrorErrorDetailHelp struct { + // (Output) + // A nested object resource. + // Structure is documented below. + Links []RegionResizeRequestStatusErrorErrorErrorDetailHelpLink `pulumi:"links"` } -// Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). -func (o RegionSecurityPolicyRuleNetworkMatchOutput) DestPorts() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionSecurityPolicyRuleNetworkMatch) []string { return v.DestPorts }).(pulumi.StringArrayOutput) -} +// RegionResizeRequestStatusErrorErrorErrorDetailHelpInput is an input type that accepts RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs and RegionResizeRequestStatusErrorErrorErrorDetailHelpOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusErrorErrorErrorDetailHelpInput` via: +// +// RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs{...} +type RegionResizeRequestStatusErrorErrorErrorDetailHelpInput interface { + pulumi.Input -// IPv4 protocol / IPv6 next header (after extension headers). Each element can be an 8-bit unsigned decimal number (e.g. "6"), range (e.g. "253-254"), or one of the following protocol names: "tcp", "udp", "icmp", "esp", "ah", "ipip", or "sctp". -func (o RegionSecurityPolicyRuleNetworkMatchOutput) IpProtocols() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionSecurityPolicyRuleNetworkMatch) []string { return v.IpProtocols }).(pulumi.StringArrayOutput) + ToRegionResizeRequestStatusErrorErrorErrorDetailHelpOutput() RegionResizeRequestStatusErrorErrorErrorDetailHelpOutput + ToRegionResizeRequestStatusErrorErrorErrorDetailHelpOutputWithContext(context.Context) RegionResizeRequestStatusErrorErrorErrorDetailHelpOutput } -// BGP Autonomous System Number associated with the source IP address. -func (o RegionSecurityPolicyRuleNetworkMatchOutput) SrcAsns() pulumi.IntArrayOutput { - return o.ApplyT(func(v RegionSecurityPolicyRuleNetworkMatch) []int { return v.SrcAsns }).(pulumi.IntArrayOutput) +type RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs struct { + // (Output) + // A nested object resource. + // Structure is documented below. + Links RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayInput `pulumi:"links"` } -// Source IPv4/IPv6 addresses or CIDR prefixes, in standard text format. -func (o RegionSecurityPolicyRuleNetworkMatchOutput) SrcIpRanges() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionSecurityPolicyRuleNetworkMatch) []string { return v.SrcIpRanges }).(pulumi.StringArrayOutput) +func (RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatusErrorErrorErrorDetailHelp)(nil)).Elem() } -// Source port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). -func (o RegionSecurityPolicyRuleNetworkMatchOutput) SrcPorts() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionSecurityPolicyRuleNetworkMatch) []string { return v.SrcPorts }).(pulumi.StringArrayOutput) +func (i RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs) ToRegionResizeRequestStatusErrorErrorErrorDetailHelpOutput() RegionResizeRequestStatusErrorErrorErrorDetailHelpOutput { + return i.ToRegionResizeRequestStatusErrorErrorErrorDetailHelpOutputWithContext(context.Background()) } -// Two-letter ISO 3166-1 alpha-2 country code associated with the source IP address. -func (o RegionSecurityPolicyRuleNetworkMatchOutput) SrcRegionCodes() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionSecurityPolicyRuleNetworkMatch) []string { return v.SrcRegionCodes }).(pulumi.StringArrayOutput) +func (i RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs) ToRegionResizeRequestStatusErrorErrorErrorDetailHelpOutputWithContext(ctx context.Context) RegionResizeRequestStatusErrorErrorErrorDetailHelpOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusErrorErrorErrorDetailHelpOutput) } -// User-defined fields. Each element names a defined field and lists the matching values for that field. -// Structure is documented below. -func (o RegionSecurityPolicyRuleNetworkMatchOutput) UserDefinedFields() RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput { - return o.ApplyT(func(v RegionSecurityPolicyRuleNetworkMatch) []RegionSecurityPolicyRuleNetworkMatchUserDefinedField { - return v.UserDefinedFields - }).(RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput) +// RegionResizeRequestStatusErrorErrorErrorDetailHelpArrayInput is an input type that accepts RegionResizeRequestStatusErrorErrorErrorDetailHelpArray and RegionResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusErrorErrorErrorDetailHelpArrayInput` via: +// +// RegionResizeRequestStatusErrorErrorErrorDetailHelpArray{ RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs{...} } +type RegionResizeRequestStatusErrorErrorErrorDetailHelpArrayInput interface { + pulumi.Input + + ToRegionResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput() RegionResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput + ToRegionResizeRequestStatusErrorErrorErrorDetailHelpArrayOutputWithContext(context.Context) RegionResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput } -type RegionSecurityPolicyRuleNetworkMatchPtrOutput struct{ *pulumi.OutputState } +type RegionResizeRequestStatusErrorErrorErrorDetailHelpArray []RegionResizeRequestStatusErrorErrorErrorDetailHelpInput -func (RegionSecurityPolicyRuleNetworkMatchPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionSecurityPolicyRuleNetworkMatch)(nil)).Elem() +func (RegionResizeRequestStatusErrorErrorErrorDetailHelpArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatusErrorErrorErrorDetailHelp)(nil)).Elem() } -func (o RegionSecurityPolicyRuleNetworkMatchPtrOutput) ToRegionSecurityPolicyRuleNetworkMatchPtrOutput() RegionSecurityPolicyRuleNetworkMatchPtrOutput { - return o +func (i RegionResizeRequestStatusErrorErrorErrorDetailHelpArray) ToRegionResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput() RegionResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput { + return i.ToRegionResizeRequestStatusErrorErrorErrorDetailHelpArrayOutputWithContext(context.Background()) } -func (o RegionSecurityPolicyRuleNetworkMatchPtrOutput) ToRegionSecurityPolicyRuleNetworkMatchPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleNetworkMatchPtrOutput { - return o +func (i RegionResizeRequestStatusErrorErrorErrorDetailHelpArray) ToRegionResizeRequestStatusErrorErrorErrorDetailHelpArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput) } -func (o RegionSecurityPolicyRuleNetworkMatchPtrOutput) Elem() RegionSecurityPolicyRuleNetworkMatchOutput { - return o.ApplyT(func(v *RegionSecurityPolicyRuleNetworkMatch) RegionSecurityPolicyRuleNetworkMatch { - if v != nil { - return *v - } - var ret RegionSecurityPolicyRuleNetworkMatch - return ret - }).(RegionSecurityPolicyRuleNetworkMatchOutput) -} +type RegionResizeRequestStatusErrorErrorErrorDetailHelpOutput struct{ *pulumi.OutputState } -// Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format. -func (o RegionSecurityPolicyRuleNetworkMatchPtrOutput) DestIpRanges() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RegionSecurityPolicyRuleNetworkMatch) []string { - if v == nil { - return nil - } - return v.DestIpRanges - }).(pulumi.StringArrayOutput) +func (RegionResizeRequestStatusErrorErrorErrorDetailHelpOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatusErrorErrorErrorDetailHelp)(nil)).Elem() } -// Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). -func (o RegionSecurityPolicyRuleNetworkMatchPtrOutput) DestPorts() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RegionSecurityPolicyRuleNetworkMatch) []string { - if v == nil { - return nil - } - return v.DestPorts - }).(pulumi.StringArrayOutput) +func (o RegionResizeRequestStatusErrorErrorErrorDetailHelpOutput) ToRegionResizeRequestStatusErrorErrorErrorDetailHelpOutput() RegionResizeRequestStatusErrorErrorErrorDetailHelpOutput { + return o } -// IPv4 protocol / IPv6 next header (after extension headers). Each element can be an 8-bit unsigned decimal number (e.g. "6"), range (e.g. "253-254"), or one of the following protocol names: "tcp", "udp", "icmp", "esp", "ah", "ipip", or "sctp". -func (o RegionSecurityPolicyRuleNetworkMatchPtrOutput) IpProtocols() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RegionSecurityPolicyRuleNetworkMatch) []string { - if v == nil { - return nil - } - return v.IpProtocols - }).(pulumi.StringArrayOutput) +func (o RegionResizeRequestStatusErrorErrorErrorDetailHelpOutput) ToRegionResizeRequestStatusErrorErrorErrorDetailHelpOutputWithContext(ctx context.Context) RegionResizeRequestStatusErrorErrorErrorDetailHelpOutput { + return o } -// BGP Autonomous System Number associated with the source IP address. -func (o RegionSecurityPolicyRuleNetworkMatchPtrOutput) SrcAsns() pulumi.IntArrayOutput { - return o.ApplyT(func(v *RegionSecurityPolicyRuleNetworkMatch) []int { - if v == nil { - return nil - } - return v.SrcAsns - }).(pulumi.IntArrayOutput) +// (Output) +// A nested object resource. +// Structure is documented below. +func (o RegionResizeRequestStatusErrorErrorErrorDetailHelpOutput) Links() RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput { + return o.ApplyT(func(v RegionResizeRequestStatusErrorErrorErrorDetailHelp) []RegionResizeRequestStatusErrorErrorErrorDetailHelpLink { + return v.Links + }).(RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput) } -// Source IPv4/IPv6 addresses or CIDR prefixes, in standard text format. -func (o RegionSecurityPolicyRuleNetworkMatchPtrOutput) SrcIpRanges() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RegionSecurityPolicyRuleNetworkMatch) []string { - if v == nil { - return nil - } - return v.SrcIpRanges - }).(pulumi.StringArrayOutput) +type RegionResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput struct{ *pulumi.OutputState } + +func (RegionResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatusErrorErrorErrorDetailHelp)(nil)).Elem() } -// Source port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). -func (o RegionSecurityPolicyRuleNetworkMatchPtrOutput) SrcPorts() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RegionSecurityPolicyRuleNetworkMatch) []string { - if v == nil { - return nil - } - return v.SrcPorts - }).(pulumi.StringArrayOutput) +func (o RegionResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput) ToRegionResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput() RegionResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput { + return o } -// Two-letter ISO 3166-1 alpha-2 country code associated with the source IP address. -func (o RegionSecurityPolicyRuleNetworkMatchPtrOutput) SrcRegionCodes() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RegionSecurityPolicyRuleNetworkMatch) []string { - if v == nil { - return nil - } - return v.SrcRegionCodes - }).(pulumi.StringArrayOutput) +func (o RegionResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput) ToRegionResizeRequestStatusErrorErrorErrorDetailHelpArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput { + return o } -// User-defined fields. Each element names a defined field and lists the matching values for that field. -// Structure is documented below. -func (o RegionSecurityPolicyRuleNetworkMatchPtrOutput) UserDefinedFields() RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput { - return o.ApplyT(func(v *RegionSecurityPolicyRuleNetworkMatch) []RegionSecurityPolicyRuleNetworkMatchUserDefinedField { - if v == nil { - return nil - } - return v.UserDefinedFields - }).(RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput) +func (o RegionResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput) Index(i pulumi.IntInput) RegionResizeRequestStatusErrorErrorErrorDetailHelpOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionResizeRequestStatusErrorErrorErrorDetailHelp { + return vs[0].([]RegionResizeRequestStatusErrorErrorErrorDetailHelp)[vs[1].(int)] + }).(RegionResizeRequestStatusErrorErrorErrorDetailHelpOutput) } -type RegionSecurityPolicyRuleNetworkMatchUserDefinedField struct { - // Name of the user-defined field, as given in the definition. - Name *string `pulumi:"name"` - // Matching values of the field. Each element can be a 32-bit unsigned decimal or hexadecimal (starting with "0x") number (e.g. "64") or range (e.g. "0x400-0x7ff"). - Values []string `pulumi:"values"` +type RegionResizeRequestStatusErrorErrorErrorDetailHelpLink struct { + // An optional description of this resize-request. + Description *string `pulumi:"description"` + // (Output) + // The URL of the link. + Url *string `pulumi:"url"` } -// RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldInput is an input type that accepts RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArgs and RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput values. -// You can construct a concrete instance of `RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldInput` via: +// RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkInput is an input type that accepts RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs and RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkInput` via: // -// RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArgs{...} -type RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldInput interface { +// RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs{...} +type RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkInput interface { pulumi.Input - ToRegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput() RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput - ToRegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutputWithContext(context.Context) RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput + ToRegionResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput() RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput + ToRegionResizeRequestStatusErrorErrorErrorDetailHelpLinkOutputWithContext(context.Context) RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput } -type RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArgs struct { - // Name of the user-defined field, as given in the definition. - Name pulumi.StringPtrInput `pulumi:"name"` - // Matching values of the field. Each element can be a 32-bit unsigned decimal or hexadecimal (starting with "0x") number (e.g. "64") or range (e.g. "0x400-0x7ff"). - Values pulumi.StringArrayInput `pulumi:"values"` +type RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs struct { + // An optional description of this resize-request. + Description pulumi.StringPtrInput `pulumi:"description"` + // (Output) + // The URL of the link. + Url pulumi.StringPtrInput `pulumi:"url"` } -func (RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionSecurityPolicyRuleNetworkMatchUserDefinedField)(nil)).Elem() +func (RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatusErrorErrorErrorDetailHelpLink)(nil)).Elem() } -func (i RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArgs) ToRegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput() RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput { - return i.ToRegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutputWithContext(context.Background()) +func (i RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs) ToRegionResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput() RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput { + return i.ToRegionResizeRequestStatusErrorErrorErrorDetailHelpLinkOutputWithContext(context.Background()) } -func (i RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArgs) ToRegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput) +func (i RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs) ToRegionResizeRequestStatusErrorErrorErrorDetailHelpLinkOutputWithContext(ctx context.Context) RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput) } -// RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayInput is an input type that accepts RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArray and RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput values. -// You can construct a concrete instance of `RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayInput` via: +// RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayInput is an input type that accepts RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArray and RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayInput` via: // -// RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArray{ RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArgs{...} } -type RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayInput interface { +// RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArray{ RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs{...} } +type RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayInput interface { pulumi.Input - ToRegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput() RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput - ToRegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutputWithContext(context.Context) RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput + ToRegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput() RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput + ToRegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutputWithContext(context.Context) RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput } -type RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArray []RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldInput +type RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArray []RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkInput -func (RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionSecurityPolicyRuleNetworkMatchUserDefinedField)(nil)).Elem() +func (RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatusErrorErrorErrorDetailHelpLink)(nil)).Elem() } -func (i RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArray) ToRegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput() RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput { - return i.ToRegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutputWithContext(context.Background()) +func (i RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArray) ToRegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput() RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput { + return i.ToRegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutputWithContext(context.Background()) } -func (i RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArray) ToRegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput) +func (i RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArray) ToRegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput) } -type RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput struct{ *pulumi.OutputState } +type RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput struct{ *pulumi.OutputState } -func (RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionSecurityPolicyRuleNetworkMatchUserDefinedField)(nil)).Elem() +func (RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatusErrorErrorErrorDetailHelpLink)(nil)).Elem() } -func (o RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput) ToRegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput() RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput { +func (o RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput) ToRegionResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput() RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput { return o } -func (o RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput) ToRegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput { +func (o RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput) ToRegionResizeRequestStatusErrorErrorErrorDetailHelpLinkOutputWithContext(ctx context.Context) RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput { return o } -// Name of the user-defined field, as given in the definition. -func (o RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionSecurityPolicyRuleNetworkMatchUserDefinedField) *string { return v.Name }).(pulumi.StringPtrOutput) +// An optional description of this resize-request. +func (o RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionResizeRequestStatusErrorErrorErrorDetailHelpLink) *string { return v.Description }).(pulumi.StringPtrOutput) } -// Matching values of the field. Each element can be a 32-bit unsigned decimal or hexadecimal (starting with "0x") number (e.g. "64") or range (e.g. "0x400-0x7ff"). -func (o RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput) Values() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionSecurityPolicyRuleNetworkMatchUserDefinedField) []string { return v.Values }).(pulumi.StringArrayOutput) +// (Output) +// The URL of the link. +func (o RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput) Url() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionResizeRequestStatusErrorErrorErrorDetailHelpLink) *string { return v.Url }).(pulumi.StringPtrOutput) } -type RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput struct{ *pulumi.OutputState } +type RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput struct{ *pulumi.OutputState } -func (RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionSecurityPolicyRuleNetworkMatchUserDefinedField)(nil)).Elem() +func (RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatusErrorErrorErrorDetailHelpLink)(nil)).Elem() } -func (o RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput) ToRegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput() RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput { +func (o RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput) ToRegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput() RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput { return o } -func (o RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput) ToRegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput { +func (o RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput) ToRegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput { return o } -func (o RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput) Index(i pulumi.IntInput) RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionSecurityPolicyRuleNetworkMatchUserDefinedField { - return vs[0].([]RegionSecurityPolicyRuleNetworkMatchUserDefinedField)[vs[1].(int)] - }).(RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput) +func (o RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput) Index(i pulumi.IntInput) RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionResizeRequestStatusErrorErrorErrorDetailHelpLink { + return vs[0].([]RegionResizeRequestStatusErrorErrorErrorDetailHelpLink)[vs[1].(int)] + }).(RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput) } -type RegionSecurityPolicyRulePreconfiguredWafConfig struct { - // An exclusion to apply during preconfigured WAF evaluation. - // Structure is documented below. - Exclusions []RegionSecurityPolicyRulePreconfiguredWafConfigExclusion `pulumi:"exclusions"` +type RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage struct { + // (Output) + // The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + Locale *string `pulumi:"locale"` + // (Output) + // The localized error message in the above locale. + Message *string `pulumi:"message"` } -// RegionSecurityPolicyRulePreconfiguredWafConfigInput is an input type that accepts RegionSecurityPolicyRulePreconfiguredWafConfigArgs and RegionSecurityPolicyRulePreconfiguredWafConfigOutput values. -// You can construct a concrete instance of `RegionSecurityPolicyRulePreconfiguredWafConfigInput` via: +// RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageInput is an input type that accepts RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs and RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageInput` via: // -// RegionSecurityPolicyRulePreconfiguredWafConfigArgs{...} -type RegionSecurityPolicyRulePreconfiguredWafConfigInput interface { +// RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs{...} +type RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageInput interface { pulumi.Input - ToRegionSecurityPolicyRulePreconfiguredWafConfigOutput() RegionSecurityPolicyRulePreconfiguredWafConfigOutput - ToRegionSecurityPolicyRulePreconfiguredWafConfigOutputWithContext(context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigOutput -} - -type RegionSecurityPolicyRulePreconfiguredWafConfigArgs struct { - // An exclusion to apply during preconfigured WAF evaluation. - // Structure is documented below. - Exclusions RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayInput `pulumi:"exclusions"` -} - -func (RegionSecurityPolicyRulePreconfiguredWafConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionSecurityPolicyRulePreconfiguredWafConfig)(nil)).Elem() + ToRegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput() RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput + ToRegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutputWithContext(context.Context) RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput } -func (i RegionSecurityPolicyRulePreconfiguredWafConfigArgs) ToRegionSecurityPolicyRulePreconfiguredWafConfigOutput() RegionSecurityPolicyRulePreconfiguredWafConfigOutput { - return i.ToRegionSecurityPolicyRulePreconfiguredWafConfigOutputWithContext(context.Background()) +type RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs struct { + // (Output) + // The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + Locale pulumi.StringPtrInput `pulumi:"locale"` + // (Output) + // The localized error message in the above locale. + Message pulumi.StringPtrInput `pulumi:"message"` } -func (i RegionSecurityPolicyRulePreconfiguredWafConfigArgs) ToRegionSecurityPolicyRulePreconfiguredWafConfigOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRulePreconfiguredWafConfigOutput) +func (RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage)(nil)).Elem() } -func (i RegionSecurityPolicyRulePreconfiguredWafConfigArgs) ToRegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput() RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput { - return i.ToRegionSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(context.Background()) +func (i RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs) ToRegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput() RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput { + return i.ToRegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutputWithContext(context.Background()) } -func (i RegionSecurityPolicyRulePreconfiguredWafConfigArgs) ToRegionSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRulePreconfiguredWafConfigOutput).ToRegionSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(ctx) +func (i RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs) ToRegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutputWithContext(ctx context.Context) RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput) } -// RegionSecurityPolicyRulePreconfiguredWafConfigPtrInput is an input type that accepts RegionSecurityPolicyRulePreconfiguredWafConfigArgs, RegionSecurityPolicyRulePreconfiguredWafConfigPtr and RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput values. -// You can construct a concrete instance of `RegionSecurityPolicyRulePreconfiguredWafConfigPtrInput` via: +// RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayInput is an input type that accepts RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArray and RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayInput` via: // -// RegionSecurityPolicyRulePreconfiguredWafConfigArgs{...} -// -// or: -// -// nil -type RegionSecurityPolicyRulePreconfiguredWafConfigPtrInput interface { +// RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArray{ RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs{...} } +type RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayInput interface { pulumi.Input - ToRegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput() RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput - ToRegionSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput + ToRegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput() RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput + ToRegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutputWithContext(context.Context) RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput } -type regionSecurityPolicyRulePreconfiguredWafConfigPtrType RegionSecurityPolicyRulePreconfiguredWafConfigArgs - -func RegionSecurityPolicyRulePreconfiguredWafConfigPtr(v *RegionSecurityPolicyRulePreconfiguredWafConfigArgs) RegionSecurityPolicyRulePreconfiguredWafConfigPtrInput { - return (*regionSecurityPolicyRulePreconfiguredWafConfigPtrType)(v) -} +type RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArray []RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageInput -func (*regionSecurityPolicyRulePreconfiguredWafConfigPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionSecurityPolicyRulePreconfiguredWafConfig)(nil)).Elem() +func (RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage)(nil)).Elem() } -func (i *regionSecurityPolicyRulePreconfiguredWafConfigPtrType) ToRegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput() RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput { - return i.ToRegionSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(context.Background()) +func (i RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArray) ToRegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput() RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput { + return i.ToRegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutputWithContext(context.Background()) } -func (i *regionSecurityPolicyRulePreconfiguredWafConfigPtrType) ToRegionSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput) +func (i RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArray) ToRegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput) } -type RegionSecurityPolicyRulePreconfiguredWafConfigOutput struct{ *pulumi.OutputState } +type RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput struct{ *pulumi.OutputState } -func (RegionSecurityPolicyRulePreconfiguredWafConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionSecurityPolicyRulePreconfiguredWafConfig)(nil)).Elem() +func (RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage)(nil)).Elem() } -func (o RegionSecurityPolicyRulePreconfiguredWafConfigOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigOutput() RegionSecurityPolicyRulePreconfiguredWafConfigOutput { +func (o RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput) ToRegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput() RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput { return o } -func (o RegionSecurityPolicyRulePreconfiguredWafConfigOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigOutput { +func (o RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput) ToRegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutputWithContext(ctx context.Context) RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput { return o } -func (o RegionSecurityPolicyRulePreconfiguredWafConfigOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput() RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput { - return o.ToRegionSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(context.Background()) -} - -func (o RegionSecurityPolicyRulePreconfiguredWafConfigOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionSecurityPolicyRulePreconfiguredWafConfig) *RegionSecurityPolicyRulePreconfiguredWafConfig { - return &v - }).(RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput) +// (Output) +// The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" +func (o RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput) Locale() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage) *string { return v.Locale }).(pulumi.StringPtrOutput) } -// An exclusion to apply during preconfigured WAF evaluation. -// Structure is documented below. -func (o RegionSecurityPolicyRulePreconfiguredWafConfigOutput) Exclusions() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { - return o.ApplyT(func(v RegionSecurityPolicyRulePreconfiguredWafConfig) []RegionSecurityPolicyRulePreconfiguredWafConfigExclusion { - return v.Exclusions - }).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) +// (Output) +// The localized error message in the above locale. +func (o RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput) Message() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage) *string { return v.Message }).(pulumi.StringPtrOutput) } -type RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput struct{ *pulumi.OutputState } +type RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput struct{ *pulumi.OutputState } -func (RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionSecurityPolicyRulePreconfiguredWafConfig)(nil)).Elem() +func (RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage)(nil)).Elem() } -func (o RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput() RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput { +func (o RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput) ToRegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput() RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput { return o } -func (o RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput { +func (o RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput) ToRegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput { return o } -func (o RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput) Elem() RegionSecurityPolicyRulePreconfiguredWafConfigOutput { - return o.ApplyT(func(v *RegionSecurityPolicyRulePreconfiguredWafConfig) RegionSecurityPolicyRulePreconfiguredWafConfig { - if v != nil { - return *v - } - var ret RegionSecurityPolicyRulePreconfiguredWafConfig - return ret - }).(RegionSecurityPolicyRulePreconfiguredWafConfigOutput) -} - -// An exclusion to apply during preconfigured WAF evaluation. -// Structure is documented below. -func (o RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput) Exclusions() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { - return o.ApplyT(func(v *RegionSecurityPolicyRulePreconfiguredWafConfig) []RegionSecurityPolicyRulePreconfiguredWafConfigExclusion { - if v == nil { - return nil - } - return v.Exclusions - }).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) +func (o RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput) Index(i pulumi.IntInput) RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage { + return vs[0].([]RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage)[vs[1].(int)] + }).(RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput) } -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusion struct { - // Request cookie whose value will be excluded from inspection during preconfigured WAF evaluation. - // Structure is documented below. - RequestCookies []RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky `pulumi:"requestCookies"` - // Request header whose value will be excluded from inspection during preconfigured WAF evaluation. - // Structure is documented below. - RequestHeaders []RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader `pulumi:"requestHeaders"` - // Request query parameter whose value will be excluded from inspection during preconfigured WAF evaluation. - // Note that the parameter can be in the query string or in the POST body. - // Structure is documented below. - RequestQueryParams []RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam `pulumi:"requestQueryParams"` - // Request URI from the request line to be excluded from inspection during preconfigured WAF evaluation. - // When specifying this field, the query or fragment part should be excluded. - // Structure is documented below. - RequestUris []RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri `pulumi:"requestUris"` - // A list of target rule IDs under the WAF rule set to apply the preconfigured WAF exclusion. - // If omitted, it refers to all the rule IDs under the WAF rule set. - TargetRuleIds []string `pulumi:"targetRuleIds"` - // Target WAF rule set to apply the preconfigured WAF exclusion. - TargetRuleSet string `pulumi:"targetRuleSet"` +type RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo struct { + // (Output) + // The map holding related quota dimensions + Dimensions map[string]string `pulumi:"dimensions"` + // (Output) + // Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + FutureLimit *int `pulumi:"futureLimit"` + // (Output) + // Current effective quota limit. The limit's unit depends on the quota type or metric. + Limit *int `pulumi:"limit"` + // (Output) + // The name of the quota limit. + LimitName *string `pulumi:"limitName"` + // (Output) + // The Compute Engine quota metric name. + MetricName *string `pulumi:"metricName"` + // (Output) + // Rollout status of the future quota limit. + RolloutStatus *string `pulumi:"rolloutStatus"` } -// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionInput is an input type that accepts RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArgs and RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput values. -// You can construct a concrete instance of `RegionSecurityPolicyRulePreconfiguredWafConfigExclusionInput` via: +// RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoInput is an input type that accepts RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs and RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoInput` via: // -// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArgs{...} -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionInput interface { +// RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs{...} +type RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoInput interface { pulumi.Input - ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput - ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutputWithContext(context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput + ToRegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput() RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput + ToRegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutputWithContext(context.Context) RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput } -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArgs struct { - // Request cookie whose value will be excluded from inspection during preconfigured WAF evaluation. - // Structure is documented below. - RequestCookies RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayInput `pulumi:"requestCookies"` - // Request header whose value will be excluded from inspection during preconfigured WAF evaluation. - // Structure is documented below. - RequestHeaders RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayInput `pulumi:"requestHeaders"` - // Request query parameter whose value will be excluded from inspection during preconfigured WAF evaluation. - // Note that the parameter can be in the query string or in the POST body. - // Structure is documented below. - RequestQueryParams RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayInput `pulumi:"requestQueryParams"` - // Request URI from the request line to be excluded from inspection during preconfigured WAF evaluation. - // When specifying this field, the query or fragment part should be excluded. - // Structure is documented below. - RequestUris RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayInput `pulumi:"requestUris"` - // A list of target rule IDs under the WAF rule set to apply the preconfigured WAF exclusion. - // If omitted, it refers to all the rule IDs under the WAF rule set. - TargetRuleIds pulumi.StringArrayInput `pulumi:"targetRuleIds"` - // Target WAF rule set to apply the preconfigured WAF exclusion. - TargetRuleSet pulumi.StringInput `pulumi:"targetRuleSet"` +type RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs struct { + // (Output) + // The map holding related quota dimensions + Dimensions pulumi.StringMapInput `pulumi:"dimensions"` + // (Output) + // Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + FutureLimit pulumi.IntPtrInput `pulumi:"futureLimit"` + // (Output) + // Current effective quota limit. The limit's unit depends on the quota type or metric. + Limit pulumi.IntPtrInput `pulumi:"limit"` + // (Output) + // The name of the quota limit. + LimitName pulumi.StringPtrInput `pulumi:"limitName"` + // (Output) + // The Compute Engine quota metric name. + MetricName pulumi.StringPtrInput `pulumi:"metricName"` + // (Output) + // Rollout status of the future quota limit. + RolloutStatus pulumi.StringPtrInput `pulumi:"rolloutStatus"` } -func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionSecurityPolicyRulePreconfiguredWafConfigExclusion)(nil)).Elem() +func (RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo)(nil)).Elem() } -func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArgs) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput { - return i.ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutputWithContext(context.Background()) +func (i RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs) ToRegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput() RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput { + return i.ToRegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutputWithContext(context.Background()) } -func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArgs) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput) +func (i RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs) ToRegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutputWithContext(ctx context.Context) RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) } -// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayInput is an input type that accepts RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArray and RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput values. -// You can construct a concrete instance of `RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayInput` via: +// RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayInput is an input type that accepts RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArray and RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayInput` via: // -// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArray{ RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArgs{...} } -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayInput interface { +// RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArray{ RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs{...} } +type RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayInput interface { pulumi.Input - ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput - ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutputWithContext(context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput + ToRegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput() RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput + ToRegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutputWithContext(context.Context) RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput } -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArray []RegionSecurityPolicyRulePreconfiguredWafConfigExclusionInput +type RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArray []RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoInput -func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionSecurityPolicyRulePreconfiguredWafConfigExclusion)(nil)).Elem() +func (RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo)(nil)).Elem() } -func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArray) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { - return i.ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutputWithContext(context.Background()) +func (i RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArray) ToRegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput() RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput { + return i.ToRegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutputWithContext(context.Background()) } -func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArray) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) +func (i RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArray) ToRegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput) } -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput struct{ *pulumi.OutputState } +type RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput struct{ *pulumi.OutputState } -func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionSecurityPolicyRulePreconfiguredWafConfigExclusion)(nil)).Elem() +func (RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo)(nil)).Elem() } -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput { +func (o RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) ToRegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput() RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput { return o } -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput { +func (o RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) ToRegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutputWithContext(ctx context.Context) RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput { return o } -// Request cookie whose value will be excluded from inspection during preconfigured WAF evaluation. -// Structure is documented below. -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput) RequestCookies() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput { - return o.ApplyT(func(v RegionSecurityPolicyRulePreconfiguredWafConfigExclusion) []RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky { - return v.RequestCookies - }).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) +// (Output) +// The map holding related quota dimensions +func (o RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) Dimensions() pulumi.StringMapOutput { + return o.ApplyT(func(v RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo) map[string]string { return v.Dimensions }).(pulumi.StringMapOutput) } -// Request header whose value will be excluded from inspection during preconfigured WAF evaluation. -// Structure is documented below. -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput) RequestHeaders() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput { - return o.ApplyT(func(v RegionSecurityPolicyRulePreconfiguredWafConfigExclusion) []RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader { - return v.RequestHeaders - }).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) +// (Output) +// Future quota limit being rolled out. The limit's unit depends on the quota type or metric. +func (o RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) FutureLimit() pulumi.IntPtrOutput { + return o.ApplyT(func(v RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo) *int { return v.FutureLimit }).(pulumi.IntPtrOutput) } -// Request query parameter whose value will be excluded from inspection during preconfigured WAF evaluation. -// Note that the parameter can be in the query string or in the POST body. -// Structure is documented below. -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput) RequestQueryParams() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput { - return o.ApplyT(func(v RegionSecurityPolicyRulePreconfiguredWafConfigExclusion) []RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam { - return v.RequestQueryParams - }).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) +// (Output) +// Current effective quota limit. The limit's unit depends on the quota type or metric. +func (o RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) Limit() pulumi.IntPtrOutput { + return o.ApplyT(func(v RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo) *int { return v.Limit }).(pulumi.IntPtrOutput) } -// Request URI from the request line to be excluded from inspection during preconfigured WAF evaluation. -// When specifying this field, the query or fragment part should be excluded. -// Structure is documented below. -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput) RequestUris() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput { - return o.ApplyT(func(v RegionSecurityPolicyRulePreconfiguredWafConfigExclusion) []RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri { - return v.RequestUris - }).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) +// (Output) +// The name of the quota limit. +func (o RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) LimitName() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo) *string { return v.LimitName }).(pulumi.StringPtrOutput) } -// A list of target rule IDs under the WAF rule set to apply the preconfigured WAF exclusion. -// If omitted, it refers to all the rule IDs under the WAF rule set. -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput) TargetRuleIds() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionSecurityPolicyRulePreconfiguredWafConfigExclusion) []string { return v.TargetRuleIds }).(pulumi.StringArrayOutput) +// (Output) +// The Compute Engine quota metric name. +func (o RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) MetricName() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo) *string { return v.MetricName }).(pulumi.StringPtrOutput) } -// Target WAF rule set to apply the preconfigured WAF exclusion. -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput) TargetRuleSet() pulumi.StringOutput { - return o.ApplyT(func(v RegionSecurityPolicyRulePreconfiguredWafConfigExclusion) string { return v.TargetRuleSet }).(pulumi.StringOutput) +// (Output) +// Rollout status of the future quota limit. +func (o RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) RolloutStatus() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo) *string { return v.RolloutStatus }).(pulumi.StringPtrOutput) } -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput struct{ *pulumi.OutputState } +type RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput struct{ *pulumi.OutputState } -func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionSecurityPolicyRulePreconfiguredWafConfigExclusion)(nil)).Elem() +func (RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo)(nil)).Elem() } -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { +func (o RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput) ToRegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput() RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput { return o } -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { +func (o RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput) ToRegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput { return o } -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) Index(i pulumi.IntInput) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionSecurityPolicyRulePreconfiguredWafConfigExclusion { - return vs[0].([]RegionSecurityPolicyRulePreconfiguredWafConfigExclusion)[vs[1].(int)] - }).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput) +func (o RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput) Index(i pulumi.IntInput) RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo { + return vs[0].([]RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo)[vs[1].(int)] + }).(RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) } -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky struct { - // You can specify an exact match or a partial match by using a field operator and a field value. - // Available options: - // EQUALS: The operator matches if the field value equals the specified value. - // STARTS_WITH: The operator matches if the field value starts with the specified value. - // ENDS_WITH: The operator matches if the field value ends with the specified value. - // CONTAINS: The operator matches if the field value contains the specified value. - // EQUALS_ANY: The operator matches if the field value is any value. - // Possible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`. - Operator string `pulumi:"operator"` - // A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. - // The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. - Value *string `pulumi:"value"` +type RegionResizeRequestStatusLastAttempt struct { + // (Output) + // Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + // Structure is documented below. + Errors []RegionResizeRequestStatusLastAttemptError `pulumi:"errors"` } -// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyInput is an input type that accepts RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs and RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput values. -// You can construct a concrete instance of `RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyInput` via: +// RegionResizeRequestStatusLastAttemptInput is an input type that accepts RegionResizeRequestStatusLastAttemptArgs and RegionResizeRequestStatusLastAttemptOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusLastAttemptInput` via: // -// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs{...} -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyInput interface { +// RegionResizeRequestStatusLastAttemptArgs{...} +type RegionResizeRequestStatusLastAttemptInput interface { pulumi.Input - ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput - ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutputWithContext(context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput + ToRegionResizeRequestStatusLastAttemptOutput() RegionResizeRequestStatusLastAttemptOutput + ToRegionResizeRequestStatusLastAttemptOutputWithContext(context.Context) RegionResizeRequestStatusLastAttemptOutput } -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs struct { - // You can specify an exact match or a partial match by using a field operator and a field value. - // Available options: - // EQUALS: The operator matches if the field value equals the specified value. - // STARTS_WITH: The operator matches if the field value starts with the specified value. - // ENDS_WITH: The operator matches if the field value ends with the specified value. - // CONTAINS: The operator matches if the field value contains the specified value. - // EQUALS_ANY: The operator matches if the field value is any value. - // Possible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`. - Operator pulumi.StringInput `pulumi:"operator"` - // A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. - // The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. - Value pulumi.StringPtrInput `pulumi:"value"` +type RegionResizeRequestStatusLastAttemptArgs struct { + // (Output) + // Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + // Structure is documented below. + Errors RegionResizeRequestStatusLastAttemptErrorArrayInput `pulumi:"errors"` } -func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky)(nil)).Elem() +func (RegionResizeRequestStatusLastAttemptArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatusLastAttempt)(nil)).Elem() } -func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput { - return i.ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutputWithContext(context.Background()) +func (i RegionResizeRequestStatusLastAttemptArgs) ToRegionResizeRequestStatusLastAttemptOutput() RegionResizeRequestStatusLastAttemptOutput { + return i.ToRegionResizeRequestStatusLastAttemptOutputWithContext(context.Background()) } -func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) +func (i RegionResizeRequestStatusLastAttemptArgs) ToRegionResizeRequestStatusLastAttemptOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusLastAttemptOutput) } -// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayInput is an input type that accepts RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray and RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput values. -// You can construct a concrete instance of `RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayInput` via: +// RegionResizeRequestStatusLastAttemptArrayInput is an input type that accepts RegionResizeRequestStatusLastAttemptArray and RegionResizeRequestStatusLastAttemptArrayOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusLastAttemptArrayInput` via: // -// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray{ RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs{...} } -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayInput interface { +// RegionResizeRequestStatusLastAttemptArray{ RegionResizeRequestStatusLastAttemptArgs{...} } +type RegionResizeRequestStatusLastAttemptArrayInput interface { pulumi.Input - ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput - ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutputWithContext(context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput + ToRegionResizeRequestStatusLastAttemptArrayOutput() RegionResizeRequestStatusLastAttemptArrayOutput + ToRegionResizeRequestStatusLastAttemptArrayOutputWithContext(context.Context) RegionResizeRequestStatusLastAttemptArrayOutput } -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray []RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyInput +type RegionResizeRequestStatusLastAttemptArray []RegionResizeRequestStatusLastAttemptInput -func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky)(nil)).Elem() +func (RegionResizeRequestStatusLastAttemptArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatusLastAttempt)(nil)).Elem() } -func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput { - return i.ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutputWithContext(context.Background()) +func (i RegionResizeRequestStatusLastAttemptArray) ToRegionResizeRequestStatusLastAttemptArrayOutput() RegionResizeRequestStatusLastAttemptArrayOutput { + return i.ToRegionResizeRequestStatusLastAttemptArrayOutputWithContext(context.Background()) } -func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) +func (i RegionResizeRequestStatusLastAttemptArray) ToRegionResizeRequestStatusLastAttemptArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusLastAttemptArrayOutput) } -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput struct{ *pulumi.OutputState } +type RegionResizeRequestStatusLastAttemptOutput struct{ *pulumi.OutputState } -func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky)(nil)).Elem() +func (RegionResizeRequestStatusLastAttemptOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatusLastAttempt)(nil)).Elem() } -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput { +func (o RegionResizeRequestStatusLastAttemptOutput) ToRegionResizeRequestStatusLastAttemptOutput() RegionResizeRequestStatusLastAttemptOutput { return o } -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput { +func (o RegionResizeRequestStatusLastAttemptOutput) ToRegionResizeRequestStatusLastAttemptOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptOutput { return o } -// You can specify an exact match or a partial match by using a field operator and a field value. -// Available options: -// EQUALS: The operator matches if the field value equals the specified value. -// STARTS_WITH: The operator matches if the field value starts with the specified value. -// ENDS_WITH: The operator matches if the field value ends with the specified value. -// CONTAINS: The operator matches if the field value contains the specified value. -// EQUALS_ANY: The operator matches if the field value is any value. -// Possible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`. -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) Operator() pulumi.StringOutput { - return o.ApplyT(func(v RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky) string { return v.Operator }).(pulumi.StringOutput) -} - -// A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. -// The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) Value() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky) *string { return v.Value }).(pulumi.StringPtrOutput) +// (Output) +// Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. +// Structure is documented below. +func (o RegionResizeRequestStatusLastAttemptOutput) Errors() RegionResizeRequestStatusLastAttemptErrorArrayOutput { + return o.ApplyT(func(v RegionResizeRequestStatusLastAttempt) []RegionResizeRequestStatusLastAttemptError { + return v.Errors + }).(RegionResizeRequestStatusLastAttemptErrorArrayOutput) } -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput struct{ *pulumi.OutputState } +type RegionResizeRequestStatusLastAttemptArrayOutput struct{ *pulumi.OutputState } -func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky)(nil)).Elem() +func (RegionResizeRequestStatusLastAttemptArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatusLastAttempt)(nil)).Elem() } -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput { +func (o RegionResizeRequestStatusLastAttemptArrayOutput) ToRegionResizeRequestStatusLastAttemptArrayOutput() RegionResizeRequestStatusLastAttemptArrayOutput { return o } -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput { +func (o RegionResizeRequestStatusLastAttemptArrayOutput) ToRegionResizeRequestStatusLastAttemptArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptArrayOutput { return o } -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) Index(i pulumi.IntInput) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky { - return vs[0].([]RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky)[vs[1].(int)] - }).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) +func (o RegionResizeRequestStatusLastAttemptArrayOutput) Index(i pulumi.IntInput) RegionResizeRequestStatusLastAttemptOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionResizeRequestStatusLastAttempt { + return vs[0].([]RegionResizeRequestStatusLastAttempt)[vs[1].(int)] + }).(RegionResizeRequestStatusLastAttemptOutput) } -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader struct { - // You can specify an exact match or a partial match by using a field operator and a field value. - // Available options: - // EQUALS: The operator matches if the field value equals the specified value. - // STARTS_WITH: The operator matches if the field value starts with the specified value. - // ENDS_WITH: The operator matches if the field value ends with the specified value. - // CONTAINS: The operator matches if the field value contains the specified value. - // EQUALS_ANY: The operator matches if the field value is any value. - // Possible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`. - Operator string `pulumi:"operator"` - // A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. - // The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. - Value *string `pulumi:"value"` +type RegionResizeRequestStatusLastAttemptError struct { + // (Output) + // The array of errors encountered while processing this operation. + // Structure is documented below. + Errors []RegionResizeRequestStatusLastAttemptErrorError `pulumi:"errors"` } -// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderInput is an input type that accepts RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs and RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput values. -// You can construct a concrete instance of `RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderInput` via: +// RegionResizeRequestStatusLastAttemptErrorInput is an input type that accepts RegionResizeRequestStatusLastAttemptErrorArgs and RegionResizeRequestStatusLastAttemptErrorOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusLastAttemptErrorInput` via: // -// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs{...} -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderInput interface { +// RegionResizeRequestStatusLastAttemptErrorArgs{...} +type RegionResizeRequestStatusLastAttemptErrorInput interface { pulumi.Input - ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput - ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutputWithContext(context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput + ToRegionResizeRequestStatusLastAttemptErrorOutput() RegionResizeRequestStatusLastAttemptErrorOutput + ToRegionResizeRequestStatusLastAttemptErrorOutputWithContext(context.Context) RegionResizeRequestStatusLastAttemptErrorOutput } -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs struct { - // You can specify an exact match or a partial match by using a field operator and a field value. - // Available options: - // EQUALS: The operator matches if the field value equals the specified value. - // STARTS_WITH: The operator matches if the field value starts with the specified value. - // ENDS_WITH: The operator matches if the field value ends with the specified value. - // CONTAINS: The operator matches if the field value contains the specified value. - // EQUALS_ANY: The operator matches if the field value is any value. - // Possible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`. - Operator pulumi.StringInput `pulumi:"operator"` - // A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. - // The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. - Value pulumi.StringPtrInput `pulumi:"value"` +type RegionResizeRequestStatusLastAttemptErrorArgs struct { + // (Output) + // The array of errors encountered while processing this operation. + // Structure is documented below. + Errors RegionResizeRequestStatusLastAttemptErrorErrorArrayInput `pulumi:"errors"` } -func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader)(nil)).Elem() +func (RegionResizeRequestStatusLastAttemptErrorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatusLastAttemptError)(nil)).Elem() } -func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput { - return i.ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutputWithContext(context.Background()) +func (i RegionResizeRequestStatusLastAttemptErrorArgs) ToRegionResizeRequestStatusLastAttemptErrorOutput() RegionResizeRequestStatusLastAttemptErrorOutput { + return i.ToRegionResizeRequestStatusLastAttemptErrorOutputWithContext(context.Background()) } -func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) +func (i RegionResizeRequestStatusLastAttemptErrorArgs) ToRegionResizeRequestStatusLastAttemptErrorOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptErrorOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusLastAttemptErrorOutput) } -// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayInput is an input type that accepts RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray and RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput values. -// You can construct a concrete instance of `RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayInput` via: +// RegionResizeRequestStatusLastAttemptErrorArrayInput is an input type that accepts RegionResizeRequestStatusLastAttemptErrorArray and RegionResizeRequestStatusLastAttemptErrorArrayOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusLastAttemptErrorArrayInput` via: // -// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray{ RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs{...} } -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayInput interface { +// RegionResizeRequestStatusLastAttemptErrorArray{ RegionResizeRequestStatusLastAttemptErrorArgs{...} } +type RegionResizeRequestStatusLastAttemptErrorArrayInput interface { pulumi.Input - ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput - ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutputWithContext(context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput + ToRegionResizeRequestStatusLastAttemptErrorArrayOutput() RegionResizeRequestStatusLastAttemptErrorArrayOutput + ToRegionResizeRequestStatusLastAttemptErrorArrayOutputWithContext(context.Context) RegionResizeRequestStatusLastAttemptErrorArrayOutput } -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray []RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderInput +type RegionResizeRequestStatusLastAttemptErrorArray []RegionResizeRequestStatusLastAttemptErrorInput -func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader)(nil)).Elem() +func (RegionResizeRequestStatusLastAttemptErrorArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatusLastAttemptError)(nil)).Elem() } -func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput { - return i.ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutputWithContext(context.Background()) +func (i RegionResizeRequestStatusLastAttemptErrorArray) ToRegionResizeRequestStatusLastAttemptErrorArrayOutput() RegionResizeRequestStatusLastAttemptErrorArrayOutput { + return i.ToRegionResizeRequestStatusLastAttemptErrorArrayOutputWithContext(context.Background()) } -func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) +func (i RegionResizeRequestStatusLastAttemptErrorArray) ToRegionResizeRequestStatusLastAttemptErrorArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptErrorArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusLastAttemptErrorArrayOutput) } -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput struct{ *pulumi.OutputState } +type RegionResizeRequestStatusLastAttemptErrorOutput struct{ *pulumi.OutputState } -func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader)(nil)).Elem() +func (RegionResizeRequestStatusLastAttemptErrorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatusLastAttemptError)(nil)).Elem() } -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput { +func (o RegionResizeRequestStatusLastAttemptErrorOutput) ToRegionResizeRequestStatusLastAttemptErrorOutput() RegionResizeRequestStatusLastAttemptErrorOutput { return o } -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput { +func (o RegionResizeRequestStatusLastAttemptErrorOutput) ToRegionResizeRequestStatusLastAttemptErrorOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptErrorOutput { return o } -// You can specify an exact match or a partial match by using a field operator and a field value. -// Available options: -// EQUALS: The operator matches if the field value equals the specified value. -// STARTS_WITH: The operator matches if the field value starts with the specified value. -// ENDS_WITH: The operator matches if the field value ends with the specified value. -// CONTAINS: The operator matches if the field value contains the specified value. -// EQUALS_ANY: The operator matches if the field value is any value. -// Possible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`. -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) Operator() pulumi.StringOutput { - return o.ApplyT(func(v RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader) string { return v.Operator }).(pulumi.StringOutput) -} - -// A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. -// The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) Value() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader) *string { return v.Value }).(pulumi.StringPtrOutput) +// (Output) +// The array of errors encountered while processing this operation. +// Structure is documented below. +func (o RegionResizeRequestStatusLastAttemptErrorOutput) Errors() RegionResizeRequestStatusLastAttemptErrorErrorArrayOutput { + return o.ApplyT(func(v RegionResizeRequestStatusLastAttemptError) []RegionResizeRequestStatusLastAttemptErrorError { + return v.Errors + }).(RegionResizeRequestStatusLastAttemptErrorErrorArrayOutput) } -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput struct{ *pulumi.OutputState } +type RegionResizeRequestStatusLastAttemptErrorArrayOutput struct{ *pulumi.OutputState } -func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader)(nil)).Elem() +func (RegionResizeRequestStatusLastAttemptErrorArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatusLastAttemptError)(nil)).Elem() } -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput { +func (o RegionResizeRequestStatusLastAttemptErrorArrayOutput) ToRegionResizeRequestStatusLastAttemptErrorArrayOutput() RegionResizeRequestStatusLastAttemptErrorArrayOutput { return o } -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput { +func (o RegionResizeRequestStatusLastAttemptErrorArrayOutput) ToRegionResizeRequestStatusLastAttemptErrorArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptErrorArrayOutput { return o } -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) Index(i pulumi.IntInput) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader { - return vs[0].([]RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader)[vs[1].(int)] - }).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) +func (o RegionResizeRequestStatusLastAttemptErrorArrayOutput) Index(i pulumi.IntInput) RegionResizeRequestStatusLastAttemptErrorOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionResizeRequestStatusLastAttemptError { + return vs[0].([]RegionResizeRequestStatusLastAttemptError)[vs[1].(int)] + }).(RegionResizeRequestStatusLastAttemptErrorOutput) } -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam struct { - // You can specify an exact match or a partial match by using a field operator and a field value. - // Available options: - // EQUALS: The operator matches if the field value equals the specified value. - // STARTS_WITH: The operator matches if the field value starts with the specified value. - // ENDS_WITH: The operator matches if the field value ends with the specified value. - // CONTAINS: The operator matches if the field value contains the specified value. - // EQUALS_ANY: The operator matches if the field value is any value. - // Possible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`. - Operator string `pulumi:"operator"` - // A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. - // The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. - Value *string `pulumi:"value"` +type RegionResizeRequestStatusLastAttemptErrorError struct { + // (Output) + // The error type identifier for this error. + Code *string `pulumi:"code"` + // (Output) + // An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + // Structure is documented below. + ErrorDetails []RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail `pulumi:"errorDetails"` + // (Output) + // Indicates the field in the request that caused the error. This property is optional. + Location *string `pulumi:"location"` + // (Output) + // The localized error message in the above locale. + Message *string `pulumi:"message"` } -// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamInput is an input type that accepts RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs and RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput values. -// You can construct a concrete instance of `RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamInput` via: +// RegionResizeRequestStatusLastAttemptErrorErrorInput is an input type that accepts RegionResizeRequestStatusLastAttemptErrorErrorArgs and RegionResizeRequestStatusLastAttemptErrorErrorOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusLastAttemptErrorErrorInput` via: // -// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs{...} -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamInput interface { +// RegionResizeRequestStatusLastAttemptErrorErrorArgs{...} +type RegionResizeRequestStatusLastAttemptErrorErrorInput interface { pulumi.Input - ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput - ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutputWithContext(context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput + ToRegionResizeRequestStatusLastAttemptErrorErrorOutput() RegionResizeRequestStatusLastAttemptErrorErrorOutput + ToRegionResizeRequestStatusLastAttemptErrorErrorOutputWithContext(context.Context) RegionResizeRequestStatusLastAttemptErrorErrorOutput } -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs struct { - // You can specify an exact match or a partial match by using a field operator and a field value. - // Available options: - // EQUALS: The operator matches if the field value equals the specified value. - // STARTS_WITH: The operator matches if the field value starts with the specified value. - // ENDS_WITH: The operator matches if the field value ends with the specified value. - // CONTAINS: The operator matches if the field value contains the specified value. - // EQUALS_ANY: The operator matches if the field value is any value. - // Possible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`. - Operator pulumi.StringInput `pulumi:"operator"` - // A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. - // The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. - Value pulumi.StringPtrInput `pulumi:"value"` +type RegionResizeRequestStatusLastAttemptErrorErrorArgs struct { + // (Output) + // The error type identifier for this error. + Code pulumi.StringPtrInput `pulumi:"code"` + // (Output) + // An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + // Structure is documented below. + ErrorDetails RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayInput `pulumi:"errorDetails"` + // (Output) + // Indicates the field in the request that caused the error. This property is optional. + Location pulumi.StringPtrInput `pulumi:"location"` + // (Output) + // The localized error message in the above locale. + Message pulumi.StringPtrInput `pulumi:"message"` } -func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam)(nil)).Elem() +func (RegionResizeRequestStatusLastAttemptErrorErrorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatusLastAttemptErrorError)(nil)).Elem() } -func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput { - return i.ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutputWithContext(context.Background()) +func (i RegionResizeRequestStatusLastAttemptErrorErrorArgs) ToRegionResizeRequestStatusLastAttemptErrorErrorOutput() RegionResizeRequestStatusLastAttemptErrorErrorOutput { + return i.ToRegionResizeRequestStatusLastAttemptErrorErrorOutputWithContext(context.Background()) } -func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) +func (i RegionResizeRequestStatusLastAttemptErrorErrorArgs) ToRegionResizeRequestStatusLastAttemptErrorErrorOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptErrorErrorOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusLastAttemptErrorErrorOutput) } -// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayInput is an input type that accepts RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray and RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput values. -// You can construct a concrete instance of `RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayInput` via: +// RegionResizeRequestStatusLastAttemptErrorErrorArrayInput is an input type that accepts RegionResizeRequestStatusLastAttemptErrorErrorArray and RegionResizeRequestStatusLastAttemptErrorErrorArrayOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusLastAttemptErrorErrorArrayInput` via: // -// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray{ RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs{...} } -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayInput interface { +// RegionResizeRequestStatusLastAttemptErrorErrorArray{ RegionResizeRequestStatusLastAttemptErrorErrorArgs{...} } +type RegionResizeRequestStatusLastAttemptErrorErrorArrayInput interface { pulumi.Input - ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput - ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutputWithContext(context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput + ToRegionResizeRequestStatusLastAttemptErrorErrorArrayOutput() RegionResizeRequestStatusLastAttemptErrorErrorArrayOutput + ToRegionResizeRequestStatusLastAttemptErrorErrorArrayOutputWithContext(context.Context) RegionResizeRequestStatusLastAttemptErrorErrorArrayOutput } -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray []RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamInput +type RegionResizeRequestStatusLastAttemptErrorErrorArray []RegionResizeRequestStatusLastAttemptErrorErrorInput -func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam)(nil)).Elem() +func (RegionResizeRequestStatusLastAttemptErrorErrorArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatusLastAttemptErrorError)(nil)).Elem() } -func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput { - return i.ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutputWithContext(context.Background()) +func (i RegionResizeRequestStatusLastAttemptErrorErrorArray) ToRegionResizeRequestStatusLastAttemptErrorErrorArrayOutput() RegionResizeRequestStatusLastAttemptErrorErrorArrayOutput { + return i.ToRegionResizeRequestStatusLastAttemptErrorErrorArrayOutputWithContext(context.Background()) } -func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) +func (i RegionResizeRequestStatusLastAttemptErrorErrorArray) ToRegionResizeRequestStatusLastAttemptErrorErrorArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptErrorErrorArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusLastAttemptErrorErrorArrayOutput) } -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput struct{ *pulumi.OutputState } +type RegionResizeRequestStatusLastAttemptErrorErrorOutput struct{ *pulumi.OutputState } -func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam)(nil)).Elem() +func (RegionResizeRequestStatusLastAttemptErrorErrorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatusLastAttemptErrorError)(nil)).Elem() } -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput { +func (o RegionResizeRequestStatusLastAttemptErrorErrorOutput) ToRegionResizeRequestStatusLastAttemptErrorErrorOutput() RegionResizeRequestStatusLastAttemptErrorErrorOutput { return o } -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput { +func (o RegionResizeRequestStatusLastAttemptErrorErrorOutput) ToRegionResizeRequestStatusLastAttemptErrorErrorOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptErrorErrorOutput { return o } -// You can specify an exact match or a partial match by using a field operator and a field value. -// Available options: -// EQUALS: The operator matches if the field value equals the specified value. -// STARTS_WITH: The operator matches if the field value starts with the specified value. -// ENDS_WITH: The operator matches if the field value ends with the specified value. -// CONTAINS: The operator matches if the field value contains the specified value. -// EQUALS_ANY: The operator matches if the field value is any value. -// Possible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`. -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) Operator() pulumi.StringOutput { - return o.ApplyT(func(v RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam) string { - return v.Operator - }).(pulumi.StringOutput) +// (Output) +// The error type identifier for this error. +func (o RegionResizeRequestStatusLastAttemptErrorErrorOutput) Code() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionResizeRequestStatusLastAttemptErrorError) *string { return v.Code }).(pulumi.StringPtrOutput) } -// A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. -// The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) Value() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam) *string { - return v.Value - }).(pulumi.StringPtrOutput) +// (Output) +// An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. +// Structure is documented below. +func (o RegionResizeRequestStatusLastAttemptErrorErrorOutput) ErrorDetails() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput { + return o.ApplyT(func(v RegionResizeRequestStatusLastAttemptErrorError) []RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail { + return v.ErrorDetails + }).(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput) } -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput struct{ *pulumi.OutputState } +// (Output) +// Indicates the field in the request that caused the error. This property is optional. +func (o RegionResizeRequestStatusLastAttemptErrorErrorOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionResizeRequestStatusLastAttemptErrorError) *string { return v.Location }).(pulumi.StringPtrOutput) +} -func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam)(nil)).Elem() +// (Output) +// The localized error message in the above locale. +func (o RegionResizeRequestStatusLastAttemptErrorErrorOutput) Message() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionResizeRequestStatusLastAttemptErrorError) *string { return v.Message }).(pulumi.StringPtrOutput) } -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput { +type RegionResizeRequestStatusLastAttemptErrorErrorArrayOutput struct{ *pulumi.OutputState } + +func (RegionResizeRequestStatusLastAttemptErrorErrorArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatusLastAttemptErrorError)(nil)).Elem() +} + +func (o RegionResizeRequestStatusLastAttemptErrorErrorArrayOutput) ToRegionResizeRequestStatusLastAttemptErrorErrorArrayOutput() RegionResizeRequestStatusLastAttemptErrorErrorArrayOutput { return o } -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput { +func (o RegionResizeRequestStatusLastAttemptErrorErrorArrayOutput) ToRegionResizeRequestStatusLastAttemptErrorErrorArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptErrorErrorArrayOutput { return o } -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) Index(i pulumi.IntInput) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam { - return vs[0].([]RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam)[vs[1].(int)] - }).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) +func (o RegionResizeRequestStatusLastAttemptErrorErrorArrayOutput) Index(i pulumi.IntInput) RegionResizeRequestStatusLastAttemptErrorErrorOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionResizeRequestStatusLastAttemptErrorError { + return vs[0].([]RegionResizeRequestStatusLastAttemptErrorError)[vs[1].(int)] + }).(RegionResizeRequestStatusLastAttemptErrorErrorOutput) } -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri struct { - // You can specify an exact match or a partial match by using a field operator and a field value. - // Available options: - // EQUALS: The operator matches if the field value equals the specified value. - // STARTS_WITH: The operator matches if the field value starts with the specified value. - // ENDS_WITH: The operator matches if the field value ends with the specified value. - // CONTAINS: The operator matches if the field value contains the specified value. - // EQUALS_ANY: The operator matches if the field value is any value. - // Possible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`. - Operator string `pulumi:"operator"` - // A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. - // The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. - Value *string `pulumi:"value"` +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail struct { + // (Output) + // A nested object resource. + // Structure is documented below. + ErrorInfos []RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo `pulumi:"errorInfos"` + // (Output) + // A nested object resource. + // Structure is documented below. + Helps []RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp `pulumi:"helps"` + // (Output) + // A nested object resource. + // Structure is documented below. + LocalizedMessages []RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage `pulumi:"localizedMessages"` + // (Output) + // A nested object resource. + // Structure is documented below. + QuotaInfos []RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo `pulumi:"quotaInfos"` } -// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriInput is an input type that accepts RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs and RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput values. -// You can construct a concrete instance of `RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriInput` via: +// RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailInput is an input type that accepts RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs and RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailInput` via: // -// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs{...} -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriInput interface { +// RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs{...} +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailInput interface { pulumi.Input - ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput - ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutputWithContext(context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput + ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput + ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailOutputWithContext(context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput } -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs struct { - // You can specify an exact match or a partial match by using a field operator and a field value. - // Available options: - // EQUALS: The operator matches if the field value equals the specified value. - // STARTS_WITH: The operator matches if the field value starts with the specified value. - // ENDS_WITH: The operator matches if the field value ends with the specified value. - // CONTAINS: The operator matches if the field value contains the specified value. - // EQUALS_ANY: The operator matches if the field value is any value. - // Possible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`. - Operator pulumi.StringInput `pulumi:"operator"` - // A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. - // The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. - Value pulumi.StringPtrInput `pulumi:"value"` +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs struct { + // (Output) + // A nested object resource. + // Structure is documented below. + ErrorInfos RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayInput `pulumi:"errorInfos"` + // (Output) + // A nested object resource. + // Structure is documented below. + Helps RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayInput `pulumi:"helps"` + // (Output) + // A nested object resource. + // Structure is documented below. + LocalizedMessages RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayInput `pulumi:"localizedMessages"` + // (Output) + // A nested object resource. + // Structure is documented below. + QuotaInfos RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayInput `pulumi:"quotaInfos"` } -func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri)(nil)).Elem() +func (RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail)(nil)).Elem() } -func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput { - return i.ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutputWithContext(context.Background()) +func (i RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput { + return i.ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailOutputWithContext(context.Background()) } -func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) +func (i RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) } -// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayInput is an input type that accepts RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray and RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput values. -// You can construct a concrete instance of `RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayInput` via: +// RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayInput is an input type that accepts RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArray and RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayInput` via: // -// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray{ RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs{...} } -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayInput interface { +// RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArray{ RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs{...} } +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayInput interface { pulumi.Input - ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput - ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutputWithContext(context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput + ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput + ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutputWithContext(context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput } -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray []RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriInput +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArray []RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailInput -func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri)(nil)).Elem() +func (RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail)(nil)).Elem() } -func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput { - return i.ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutputWithContext(context.Background()) +func (i RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArray) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput { + return i.ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutputWithContext(context.Background()) } -func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) +func (i RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArray) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput) } -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput struct{ *pulumi.OutputState } +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput struct{ *pulumi.OutputState } -func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri)(nil)).Elem() +func (RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail)(nil)).Elem() } -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput { +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput { return o } -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput { +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput { return o } -// You can specify an exact match or a partial match by using a field operator and a field value. -// Available options: -// EQUALS: The operator matches if the field value equals the specified value. -// STARTS_WITH: The operator matches if the field value starts with the specified value. -// ENDS_WITH: The operator matches if the field value ends with the specified value. -// CONTAINS: The operator matches if the field value contains the specified value. -// EQUALS_ANY: The operator matches if the field value is any value. -// Possible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`. -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) Operator() pulumi.StringOutput { - return o.ApplyT(func(v RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri) string { return v.Operator }).(pulumi.StringOutput) +// (Output) +// A nested object resource. +// Structure is documented below. +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) ErrorInfos() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput { + return o.ApplyT(func(v RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail) []RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo { + return v.ErrorInfos + }).(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput) } -// A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. -// The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) Value() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri) *string { return v.Value }).(pulumi.StringPtrOutput) +// (Output) +// A nested object resource. +// Structure is documented below. +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) Helps() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput { + return o.ApplyT(func(v RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail) []RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp { + return v.Helps + }).(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput) } -type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput struct{ *pulumi.OutputState } +// (Output) +// A nested object resource. +// Structure is documented below. +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) LocalizedMessages() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput { + return o.ApplyT(func(v RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail) []RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage { + return v.LocalizedMessages + }).(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput) +} -func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri)(nil)).Elem() +// (Output) +// A nested object resource. +// Structure is documented below. +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) QuotaInfos() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput { + return o.ApplyT(func(v RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail) []RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo { + return v.QuotaInfos + }).(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput) } -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput { +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput struct{ *pulumi.OutputState } + +func (RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail)(nil)).Elem() +} + +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput { return o } -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput { +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput { return o } -func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) Index(i pulumi.IntInput) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri { - return vs[0].([]RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri)[vs[1].(int)] - }).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput) Index(i pulumi.IntInput) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail { + return vs[0].([]RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail)[vs[1].(int)] + }).(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) } -type RegionSecurityPolicyRuleRateLimitOptions struct { - // Can only be specified if the action for the rule is "rateBasedBan". - // If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold. - BanDurationSec *int `pulumi:"banDurationSec"` - // Can only be specified if the action for the rule is "rateBasedBan". - // If specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'. - // Structure is documented below. - BanThreshold *RegionSecurityPolicyRuleRateLimitOptionsBanThreshold `pulumi:"banThreshold"` - // Action to take for requests that are under the configured rate limit threshold. - // Valid option is "allow" only. - ConformAction *string `pulumi:"conformAction"` - // Determines the key to enforce the rateLimitThreshold on. Possible values are: - // * ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKey" is not configured. - // * IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - // * HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - // * XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. - // * HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. - // * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. - // * SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. - // * REGION_CODE: The country/region from which the request originates. - // * TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. - // * USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP. - // Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. - EnforceOnKey *string `pulumi:"enforceOnKey"` - // If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced. - // You can specify up to 3 enforceOnKeyConfigs. - // If enforceOnKeyConfigs is specified, enforceOnKey must not be specified. - // Structure is documented below. - EnforceOnKeyConfigs []RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig `pulumi:"enforceOnKeyConfigs"` - // Rate limit key name applicable only for the following key types: - // HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. - // HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. - EnforceOnKeyName *string `pulumi:"enforceOnKeyName"` - // Action to take for requests that are above the configured rate limit threshold, to deny with a specified HTTP response code. - // Valid options are deny(STATUS), where valid values for STATUS are 403, 404, 429, and 502. - ExceedAction *string `pulumi:"exceedAction"` - // Threshold at which to begin ratelimiting. - // Structure is documented below. - RateLimitThreshold *RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold `pulumi:"rateLimitThreshold"` +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo struct { + // (Output) + // 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". + Domain *string `pulumi:"domain"` + // (Output) + // Additional structured details about this error. + Metadatas map[string]string `pulumi:"metadatas"` + // (Output) + // 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. + Reason *string `pulumi:"reason"` } -// RegionSecurityPolicyRuleRateLimitOptionsInput is an input type that accepts RegionSecurityPolicyRuleRateLimitOptionsArgs and RegionSecurityPolicyRuleRateLimitOptionsOutput values. -// You can construct a concrete instance of `RegionSecurityPolicyRuleRateLimitOptionsInput` via: +// RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoInput is an input type that accepts RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs and RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoInput` via: // -// RegionSecurityPolicyRuleRateLimitOptionsArgs{...} -type RegionSecurityPolicyRuleRateLimitOptionsInput interface { +// RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs{...} +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoInput interface { pulumi.Input - ToRegionSecurityPolicyRuleRateLimitOptionsOutput() RegionSecurityPolicyRuleRateLimitOptionsOutput - ToRegionSecurityPolicyRuleRateLimitOptionsOutputWithContext(context.Context) RegionSecurityPolicyRuleRateLimitOptionsOutput + ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput + ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutputWithContext(context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput } -type RegionSecurityPolicyRuleRateLimitOptionsArgs struct { - // Can only be specified if the action for the rule is "rateBasedBan". - // If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold. - BanDurationSec pulumi.IntPtrInput `pulumi:"banDurationSec"` - // Can only be specified if the action for the rule is "rateBasedBan". - // If specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'. - // Structure is documented below. - BanThreshold RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrInput `pulumi:"banThreshold"` - // Action to take for requests that are under the configured rate limit threshold. - // Valid option is "allow" only. - ConformAction pulumi.StringPtrInput `pulumi:"conformAction"` - // Determines the key to enforce the rateLimitThreshold on. Possible values are: - // * ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKey" is not configured. - // * IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - // * HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - // * XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. - // * HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. - // * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. - // * SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. - // * REGION_CODE: The country/region from which the request originates. - // * TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. - // * USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP. - // Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. - EnforceOnKey pulumi.StringPtrInput `pulumi:"enforceOnKey"` - // If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced. - // You can specify up to 3 enforceOnKeyConfigs. - // If enforceOnKeyConfigs is specified, enforceOnKey must not be specified. - // Structure is documented below. - EnforceOnKeyConfigs RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayInput `pulumi:"enforceOnKeyConfigs"` - // Rate limit key name applicable only for the following key types: - // HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. - // HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. - EnforceOnKeyName pulumi.StringPtrInput `pulumi:"enforceOnKeyName"` - // Action to take for requests that are above the configured rate limit threshold, to deny with a specified HTTP response code. - // Valid options are deny(STATUS), where valid values for STATUS are 403, 404, 429, and 502. - ExceedAction pulumi.StringPtrInput `pulumi:"exceedAction"` - // Threshold at which to begin ratelimiting. - // Structure is documented below. - RateLimitThreshold RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrInput `pulumi:"rateLimitThreshold"` -} - -func (RegionSecurityPolicyRuleRateLimitOptionsArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionSecurityPolicyRuleRateLimitOptions)(nil)).Elem() -} - -func (i RegionSecurityPolicyRuleRateLimitOptionsArgs) ToRegionSecurityPolicyRuleRateLimitOptionsOutput() RegionSecurityPolicyRuleRateLimitOptionsOutput { - return i.ToRegionSecurityPolicyRuleRateLimitOptionsOutputWithContext(context.Background()) +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs struct { + // (Output) + // 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". + Domain pulumi.StringPtrInput `pulumi:"domain"` + // (Output) + // Additional structured details about this error. + Metadatas pulumi.StringMapInput `pulumi:"metadatas"` + // (Output) + // 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. + Reason pulumi.StringPtrInput `pulumi:"reason"` } -func (i RegionSecurityPolicyRuleRateLimitOptionsArgs) ToRegionSecurityPolicyRuleRateLimitOptionsOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleRateLimitOptionsOutput) +func (RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo)(nil)).Elem() } -func (i RegionSecurityPolicyRuleRateLimitOptionsArgs) ToRegionSecurityPolicyRuleRateLimitOptionsPtrOutput() RegionSecurityPolicyRuleRateLimitOptionsPtrOutput { - return i.ToRegionSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(context.Background()) +func (i RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput { + return i.ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutputWithContext(context.Background()) } -func (i RegionSecurityPolicyRuleRateLimitOptionsArgs) ToRegionSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleRateLimitOptionsOutput).ToRegionSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx) +func (i RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput) } -// RegionSecurityPolicyRuleRateLimitOptionsPtrInput is an input type that accepts RegionSecurityPolicyRuleRateLimitOptionsArgs, RegionSecurityPolicyRuleRateLimitOptionsPtr and RegionSecurityPolicyRuleRateLimitOptionsPtrOutput values. -// You can construct a concrete instance of `RegionSecurityPolicyRuleRateLimitOptionsPtrInput` via: -// -// RegionSecurityPolicyRuleRateLimitOptionsArgs{...} -// -// or: +// RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayInput is an input type that accepts RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArray and RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayInput` via: // -// nil -type RegionSecurityPolicyRuleRateLimitOptionsPtrInput interface { +// RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArray{ RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs{...} } +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayInput interface { pulumi.Input - ToRegionSecurityPolicyRuleRateLimitOptionsPtrOutput() RegionSecurityPolicyRuleRateLimitOptionsPtrOutput - ToRegionSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(context.Context) RegionSecurityPolicyRuleRateLimitOptionsPtrOutput + ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput + ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutputWithContext(context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput } -type regionSecurityPolicyRuleRateLimitOptionsPtrType RegionSecurityPolicyRuleRateLimitOptionsArgs - -func RegionSecurityPolicyRuleRateLimitOptionsPtr(v *RegionSecurityPolicyRuleRateLimitOptionsArgs) RegionSecurityPolicyRuleRateLimitOptionsPtrInput { - return (*regionSecurityPolicyRuleRateLimitOptionsPtrType)(v) -} +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArray []RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoInput -func (*regionSecurityPolicyRuleRateLimitOptionsPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionSecurityPolicyRuleRateLimitOptions)(nil)).Elem() +func (RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo)(nil)).Elem() } -func (i *regionSecurityPolicyRuleRateLimitOptionsPtrType) ToRegionSecurityPolicyRuleRateLimitOptionsPtrOutput() RegionSecurityPolicyRuleRateLimitOptionsPtrOutput { - return i.ToRegionSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(context.Background()) +func (i RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArray) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput { + return i.ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutputWithContext(context.Background()) } -func (i *regionSecurityPolicyRuleRateLimitOptionsPtrType) ToRegionSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleRateLimitOptionsPtrOutput) +func (i RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArray) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput) } -type RegionSecurityPolicyRuleRateLimitOptionsOutput struct{ *pulumi.OutputState } +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput struct{ *pulumi.OutputState } -func (RegionSecurityPolicyRuleRateLimitOptionsOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionSecurityPolicyRuleRateLimitOptions)(nil)).Elem() +func (RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo)(nil)).Elem() } -func (o RegionSecurityPolicyRuleRateLimitOptionsOutput) ToRegionSecurityPolicyRuleRateLimitOptionsOutput() RegionSecurityPolicyRuleRateLimitOptionsOutput { +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput { return o } -func (o RegionSecurityPolicyRuleRateLimitOptionsOutput) ToRegionSecurityPolicyRuleRateLimitOptionsOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsOutput { +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput { return o } -func (o RegionSecurityPolicyRuleRateLimitOptionsOutput) ToRegionSecurityPolicyRuleRateLimitOptionsPtrOutput() RegionSecurityPolicyRuleRateLimitOptionsPtrOutput { - return o.ToRegionSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(context.Background()) +// (Output) +// 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". +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput) Domain() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo) *string { return v.Domain }).(pulumi.StringPtrOutput) } -func (o RegionSecurityPolicyRuleRateLimitOptionsOutput) ToRegionSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionSecurityPolicyRuleRateLimitOptions) *RegionSecurityPolicyRuleRateLimitOptions { - return &v - }).(RegionSecurityPolicyRuleRateLimitOptionsPtrOutput) +// (Output) +// Additional structured details about this error. +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput) Metadatas() pulumi.StringMapOutput { + return o.ApplyT(func(v RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo) map[string]string { + return v.Metadatas + }).(pulumi.StringMapOutput) } -// Can only be specified if the action for the rule is "rateBasedBan". -// If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold. -func (o RegionSecurityPolicyRuleRateLimitOptionsOutput) BanDurationSec() pulumi.IntPtrOutput { - return o.ApplyT(func(v RegionSecurityPolicyRuleRateLimitOptions) *int { return v.BanDurationSec }).(pulumi.IntPtrOutput) +// (Output) +// 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. +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput) Reason() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo) *string { return v.Reason }).(pulumi.StringPtrOutput) } -// Can only be specified if the action for the rule is "rateBasedBan". -// If specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'. -// Structure is documented below. -func (o RegionSecurityPolicyRuleRateLimitOptionsOutput) BanThreshold() RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { - return o.ApplyT(func(v RegionSecurityPolicyRuleRateLimitOptions) *RegionSecurityPolicyRuleRateLimitOptionsBanThreshold { - return v.BanThreshold - }).(RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) -} +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput struct{ *pulumi.OutputState } -// Action to take for requests that are under the configured rate limit threshold. -// Valid option is "allow" only. -func (o RegionSecurityPolicyRuleRateLimitOptionsOutput) ConformAction() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionSecurityPolicyRuleRateLimitOptions) *string { return v.ConformAction }).(pulumi.StringPtrOutput) +func (RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo)(nil)).Elem() } -// Determines the key to enforce the rateLimitThreshold on. Possible values are: -// - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKey" is not configured. -// - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. -// - HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. -// - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. -// - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. -// - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. -// - SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. -// - REGION_CODE: The country/region from which the request originates. -// - TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. -// - USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP. -// Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. -func (o RegionSecurityPolicyRuleRateLimitOptionsOutput) EnforceOnKey() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionSecurityPolicyRuleRateLimitOptions) *string { return v.EnforceOnKey }).(pulumi.StringPtrOutput) +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput { + return o } -// If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced. -// You can specify up to 3 enforceOnKeyConfigs. -// If enforceOnKeyConfigs is specified, enforceOnKey must not be specified. -// Structure is documented below. -func (o RegionSecurityPolicyRuleRateLimitOptionsOutput) EnforceOnKeyConfigs() RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { - return o.ApplyT(func(v RegionSecurityPolicyRuleRateLimitOptions) []RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig { - return v.EnforceOnKeyConfigs - }).(RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput { + return o } -// Rate limit key name applicable only for the following key types: -// HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. -// HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. -func (o RegionSecurityPolicyRuleRateLimitOptionsOutput) EnforceOnKeyName() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionSecurityPolicyRuleRateLimitOptions) *string { return v.EnforceOnKeyName }).(pulumi.StringPtrOutput) +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput) Index(i pulumi.IntInput) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo { + return vs[0].([]RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo)[vs[1].(int)] + }).(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput) } -// Action to take for requests that are above the configured rate limit threshold, to deny with a specified HTTP response code. -// Valid options are deny(STATUS), where valid values for STATUS are 403, 404, 429, and 502. -func (o RegionSecurityPolicyRuleRateLimitOptionsOutput) ExceedAction() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionSecurityPolicyRuleRateLimitOptions) *string { return v.ExceedAction }).(pulumi.StringPtrOutput) +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp struct { + // (Output) + // A nested object resource. + // Structure is documented below. + Links []RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink `pulumi:"links"` } -// Threshold at which to begin ratelimiting. -// Structure is documented below. -func (o RegionSecurityPolicyRuleRateLimitOptionsOutput) RateLimitThreshold() RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { - return o.ApplyT(func(v RegionSecurityPolicyRuleRateLimitOptions) *RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold { - return v.RateLimitThreshold - }).(RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) -} +// RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpInput is an input type that accepts RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs and RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpInput` via: +// +// RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs{...} +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpInput interface { + pulumi.Input -type RegionSecurityPolicyRuleRateLimitOptionsPtrOutput struct{ *pulumi.OutputState } + ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput + ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutputWithContext(context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput +} -func (RegionSecurityPolicyRuleRateLimitOptionsPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionSecurityPolicyRuleRateLimitOptions)(nil)).Elem() +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs struct { + // (Output) + // A nested object resource. + // Structure is documented below. + Links RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayInput `pulumi:"links"` } -func (o RegionSecurityPolicyRuleRateLimitOptionsPtrOutput) ToRegionSecurityPolicyRuleRateLimitOptionsPtrOutput() RegionSecurityPolicyRuleRateLimitOptionsPtrOutput { - return o +func (RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp)(nil)).Elem() } -func (o RegionSecurityPolicyRuleRateLimitOptionsPtrOutput) ToRegionSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsPtrOutput { - return o +func (i RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput { + return i.ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutputWithContext(context.Background()) } -func (o RegionSecurityPolicyRuleRateLimitOptionsPtrOutput) Elem() RegionSecurityPolicyRuleRateLimitOptionsOutput { - return o.ApplyT(func(v *RegionSecurityPolicyRuleRateLimitOptions) RegionSecurityPolicyRuleRateLimitOptions { - if v != nil { - return *v - } - var ret RegionSecurityPolicyRuleRateLimitOptions - return ret - }).(RegionSecurityPolicyRuleRateLimitOptionsOutput) +func (i RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput) } -// Can only be specified if the action for the rule is "rateBasedBan". -// If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold. -func (o RegionSecurityPolicyRuleRateLimitOptionsPtrOutput) BanDurationSec() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RegionSecurityPolicyRuleRateLimitOptions) *int { - if v == nil { - return nil - } - return v.BanDurationSec - }).(pulumi.IntPtrOutput) +// RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayInput is an input type that accepts RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArray and RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayInput` via: +// +// RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArray{ RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs{...} } +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayInput interface { + pulumi.Input + + ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput + ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutputWithContext(context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput } -// Can only be specified if the action for the rule is "rateBasedBan". -// If specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'. -// Structure is documented below. -func (o RegionSecurityPolicyRuleRateLimitOptionsPtrOutput) BanThreshold() RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { - return o.ApplyT(func(v *RegionSecurityPolicyRuleRateLimitOptions) *RegionSecurityPolicyRuleRateLimitOptionsBanThreshold { - if v == nil { - return nil - } - return v.BanThreshold - }).(RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArray []RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpInput + +func (RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp)(nil)).Elem() } -// Action to take for requests that are under the configured rate limit threshold. -// Valid option is "allow" only. -func (o RegionSecurityPolicyRuleRateLimitOptionsPtrOutput) ConformAction() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionSecurityPolicyRuleRateLimitOptions) *string { - if v == nil { - return nil - } - return v.ConformAction - }).(pulumi.StringPtrOutput) +func (i RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArray) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput { + return i.ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutputWithContext(context.Background()) } -// Determines the key to enforce the rateLimitThreshold on. Possible values are: -// - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKey" is not configured. -// - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. -// - HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. -// - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. -// - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. -// - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. -// - SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. -// - REGION_CODE: The country/region from which the request originates. -// - TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. -// - USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP. -// Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. -func (o RegionSecurityPolicyRuleRateLimitOptionsPtrOutput) EnforceOnKey() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionSecurityPolicyRuleRateLimitOptions) *string { - if v == nil { - return nil - } - return v.EnforceOnKey - }).(pulumi.StringPtrOutput) +func (i RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArray) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput) } -// If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced. -// You can specify up to 3 enforceOnKeyConfigs. -// If enforceOnKeyConfigs is specified, enforceOnKey must not be specified. -// Structure is documented below. -func (o RegionSecurityPolicyRuleRateLimitOptionsPtrOutput) EnforceOnKeyConfigs() RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { - return o.ApplyT(func(v *RegionSecurityPolicyRuleRateLimitOptions) []RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig { - if v == nil { - return nil - } - return v.EnforceOnKeyConfigs - }).(RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput struct{ *pulumi.OutputState } + +func (RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp)(nil)).Elem() } -// Rate limit key name applicable only for the following key types: -// HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. -// HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. -func (o RegionSecurityPolicyRuleRateLimitOptionsPtrOutput) EnforceOnKeyName() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionSecurityPolicyRuleRateLimitOptions) *string { - if v == nil { - return nil - } - return v.EnforceOnKeyName - }).(pulumi.StringPtrOutput) +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput { + return o } -// Action to take for requests that are above the configured rate limit threshold, to deny with a specified HTTP response code. -// Valid options are deny(STATUS), where valid values for STATUS are 403, 404, 429, and 502. -func (o RegionSecurityPolicyRuleRateLimitOptionsPtrOutput) ExceedAction() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionSecurityPolicyRuleRateLimitOptions) *string { - if v == nil { - return nil - } - return v.ExceedAction - }).(pulumi.StringPtrOutput) +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput { + return o } -// Threshold at which to begin ratelimiting. +// (Output) +// A nested object resource. // Structure is documented below. -func (o RegionSecurityPolicyRuleRateLimitOptionsPtrOutput) RateLimitThreshold() RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { - return o.ApplyT(func(v *RegionSecurityPolicyRuleRateLimitOptions) *RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold { - if v == nil { - return nil - } - return v.RateLimitThreshold - }).(RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput) Links() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput { + return o.ApplyT(func(v RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp) []RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink { + return v.Links + }).(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput) } -type RegionSecurityPolicyRuleRateLimitOptionsBanThreshold struct { - // Number of HTTP(S) requests for calculating the threshold. - Count *int `pulumi:"count"` - // Interval over which the threshold is computed. - IntervalSec *int `pulumi:"intervalSec"` +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput struct{ *pulumi.OutputState } + +func (RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp)(nil)).Elem() } -// RegionSecurityPolicyRuleRateLimitOptionsBanThresholdInput is an input type that accepts RegionSecurityPolicyRuleRateLimitOptionsBanThresholdArgs and RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput values. -// You can construct a concrete instance of `RegionSecurityPolicyRuleRateLimitOptionsBanThresholdInput` via: -// -// RegionSecurityPolicyRuleRateLimitOptionsBanThresholdArgs{...} -type RegionSecurityPolicyRuleRateLimitOptionsBanThresholdInput interface { - pulumi.Input +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput { + return o +} - ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput() RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput - ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutputWithContext(context.Context) RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput { + return o } -type RegionSecurityPolicyRuleRateLimitOptionsBanThresholdArgs struct { - // Number of HTTP(S) requests for calculating the threshold. - Count pulumi.IntPtrInput `pulumi:"count"` - // Interval over which the threshold is computed. - IntervalSec pulumi.IntPtrInput `pulumi:"intervalSec"` +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput) Index(i pulumi.IntInput) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp { + return vs[0].([]RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp)[vs[1].(int)] + }).(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput) } -func (RegionSecurityPolicyRuleRateLimitOptionsBanThresholdArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionSecurityPolicyRuleRateLimitOptionsBanThreshold)(nil)).Elem() +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink struct { + // An optional description of this resize-request. + Description *string `pulumi:"description"` + // (Output) + // The URL of the link. + Url *string `pulumi:"url"` } -func (i RegionSecurityPolicyRuleRateLimitOptionsBanThresholdArgs) ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput() RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput { - return i.ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutputWithContext(context.Background()) +// RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkInput is an input type that accepts RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs and RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkInput` via: +// +// RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs{...} +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkInput interface { + pulumi.Input + + ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput + ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutputWithContext(context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput } -func (i RegionSecurityPolicyRuleRateLimitOptionsBanThresholdArgs) ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput) +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs struct { + // An optional description of this resize-request. + Description pulumi.StringPtrInput `pulumi:"description"` + // (Output) + // The URL of the link. + Url pulumi.StringPtrInput `pulumi:"url"` } -func (i RegionSecurityPolicyRuleRateLimitOptionsBanThresholdArgs) ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput() RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { - return i.ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(context.Background()) +func (RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink)(nil)).Elem() } -func (i RegionSecurityPolicyRuleRateLimitOptionsBanThresholdArgs) ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput).ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(ctx) +func (i RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput { + return i.ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutputWithContext(context.Background()) } -// RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrInput is an input type that accepts RegionSecurityPolicyRuleRateLimitOptionsBanThresholdArgs, RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtr and RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput values. -// You can construct a concrete instance of `RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrInput` via: -// -// RegionSecurityPolicyRuleRateLimitOptionsBanThresholdArgs{...} -// -// or: +func (i RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput) +} + +// RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayInput is an input type that accepts RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArray and RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayInput` via: // -// nil -type RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrInput interface { +// RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArray{ RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs{...} } +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayInput interface { pulumi.Input - ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput() RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput - ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(context.Context) RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput + ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput + ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutputWithContext(context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput } -type regionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrType RegionSecurityPolicyRuleRateLimitOptionsBanThresholdArgs - -func RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtr(v *RegionSecurityPolicyRuleRateLimitOptionsBanThresholdArgs) RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrInput { - return (*regionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrType)(v) -} +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArray []RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkInput -func (*regionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionSecurityPolicyRuleRateLimitOptionsBanThreshold)(nil)).Elem() +func (RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink)(nil)).Elem() } -func (i *regionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrType) ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput() RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { - return i.ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(context.Background()) +func (i RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArray) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput { + return i.ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutputWithContext(context.Background()) } -func (i *regionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrType) ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) +func (i RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArray) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput) } -type RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput struct{ *pulumi.OutputState } +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput struct{ *pulumi.OutputState } -func (RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionSecurityPolicyRuleRateLimitOptionsBanThreshold)(nil)).Elem() +func (RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink)(nil)).Elem() } -func (o RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput) ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput() RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput { +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput { return o } -func (o RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput) ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput { +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput { return o } -func (o RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput) ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput() RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { - return o.ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(context.Background()) -} - -func (o RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput) ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionSecurityPolicyRuleRateLimitOptionsBanThreshold) *RegionSecurityPolicyRuleRateLimitOptionsBanThreshold { - return &v - }).(RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) -} - -// Number of HTTP(S) requests for calculating the threshold. -func (o RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput) Count() pulumi.IntPtrOutput { - return o.ApplyT(func(v RegionSecurityPolicyRuleRateLimitOptionsBanThreshold) *int { return v.Count }).(pulumi.IntPtrOutput) +// An optional description of this resize-request. +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink) *string { + return v.Description + }).(pulumi.StringPtrOutput) } -// Interval over which the threshold is computed. -func (o RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput) IntervalSec() pulumi.IntPtrOutput { - return o.ApplyT(func(v RegionSecurityPolicyRuleRateLimitOptionsBanThreshold) *int { return v.IntervalSec }).(pulumi.IntPtrOutput) +// (Output) +// The URL of the link. +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput) Url() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink) *string { return v.Url }).(pulumi.StringPtrOutput) } -type RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput struct{ *pulumi.OutputState } +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput struct{ *pulumi.OutputState } -func (RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionSecurityPolicyRuleRateLimitOptionsBanThreshold)(nil)).Elem() +func (RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink)(nil)).Elem() } -func (o RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput() RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput { return o } -func (o RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput { return o } -func (o RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) Elem() RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput { - return o.ApplyT(func(v *RegionSecurityPolicyRuleRateLimitOptionsBanThreshold) RegionSecurityPolicyRuleRateLimitOptionsBanThreshold { - if v != nil { - return *v - } - var ret RegionSecurityPolicyRuleRateLimitOptionsBanThreshold - return ret - }).(RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput) -} - -// Number of HTTP(S) requests for calculating the threshold. -func (o RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) Count() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RegionSecurityPolicyRuleRateLimitOptionsBanThreshold) *int { - if v == nil { - return nil - } - return v.Count - }).(pulumi.IntPtrOutput) -} - -// Interval over which the threshold is computed. -func (o RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) IntervalSec() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RegionSecurityPolicyRuleRateLimitOptionsBanThreshold) *int { - if v == nil { - return nil - } - return v.IntervalSec - }).(pulumi.IntPtrOutput) +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput) Index(i pulumi.IntInput) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink { + return vs[0].([]RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink)[vs[1].(int)] + }).(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput) } -type RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig struct { - // Rate limit key name applicable only for the following key types: - // HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. - // HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. - EnforceOnKeyName *string `pulumi:"enforceOnKeyName"` - // Determines the key to enforce the rateLimitThreshold on. Possible values are: - // * ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKeyConfigs" is not configured. - // * IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - // * HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - // * XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. - // * HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. - // * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. - // * SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. - // * REGION_CODE: The country/region from which the request originates. - // * TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. - // * USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP. - // Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. - EnforceOnKeyType *string `pulumi:"enforceOnKeyType"` +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage struct { + // (Output) + // The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + Locale *string `pulumi:"locale"` + // (Output) + // The localized error message in the above locale. + Message *string `pulumi:"message"` } -// RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigInput is an input type that accepts RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs and RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput values. -// You can construct a concrete instance of `RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigInput` via: +// RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageInput is an input type that accepts RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs and RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageInput` via: // -// RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs{...} -type RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigInput interface { +// RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs{...} +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageInput interface { pulumi.Input - ToRegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput() RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput - ToRegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutputWithContext(context.Context) RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput + ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput + ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutputWithContext(context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput } -type RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs struct { - // Rate limit key name applicable only for the following key types: - // HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. - // HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. - EnforceOnKeyName pulumi.StringPtrInput `pulumi:"enforceOnKeyName"` - // Determines the key to enforce the rateLimitThreshold on. Possible values are: - // * ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKeyConfigs" is not configured. - // * IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - // * HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - // * XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. - // * HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. - // * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. - // * SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. - // * REGION_CODE: The country/region from which the request originates. - // * TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. - // * USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP. - // Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. - EnforceOnKeyType pulumi.StringPtrInput `pulumi:"enforceOnKeyType"` +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs struct { + // (Output) + // The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + Locale pulumi.StringPtrInput `pulumi:"locale"` + // (Output) + // The localized error message in the above locale. + Message pulumi.StringPtrInput `pulumi:"message"` } -func (RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig)(nil)).Elem() +func (RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage)(nil)).Elem() } -func (i RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs) ToRegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput() RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput { - return i.ToRegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutputWithContext(context.Background()) +func (i RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput { + return i.ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutputWithContext(context.Background()) } -func (i RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs) ToRegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) +func (i RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput) } -// RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayInput is an input type that accepts RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray and RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput values. -// You can construct a concrete instance of `RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayInput` via: +// RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayInput is an input type that accepts RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArray and RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayInput` via: // -// RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray{ RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs{...} } -type RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayInput interface { +// RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArray{ RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs{...} } +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayInput interface { pulumi.Input - ToRegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput() RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput - ToRegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutputWithContext(context.Context) RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput + ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput + ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutputWithContext(context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput } -type RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray []RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigInput +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArray []RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageInput -func (RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig)(nil)).Elem() +func (RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage)(nil)).Elem() } -func (i RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray) ToRegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput() RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { - return i.ToRegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutputWithContext(context.Background()) +func (i RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArray) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput { + return i.ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutputWithContext(context.Background()) } -func (i RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray) ToRegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) +func (i RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArray) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput) } -type RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput struct{ *pulumi.OutputState } +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput struct{ *pulumi.OutputState } -func (RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig)(nil)).Elem() +func (RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage)(nil)).Elem() } -func (o RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) ToRegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput() RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput { +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput { return o } -func (o RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) ToRegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput { +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput { return o } -// Rate limit key name applicable only for the following key types: -// HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. -// HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. -func (o RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) EnforceOnKeyName() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig) *string { return v.EnforceOnKeyName }).(pulumi.StringPtrOutput) +// (Output) +// The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput) Locale() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage) *string { + return v.Locale + }).(pulumi.StringPtrOutput) } -// Determines the key to enforce the rateLimitThreshold on. Possible values are: -// - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKeyConfigs" is not configured. -// - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. -// - HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. -// - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. -// - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. -// - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. -// - SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. -// - REGION_CODE: The country/region from which the request originates. -// - TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. -// - USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP. -// Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. -func (o RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) EnforceOnKeyType() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig) *string { return v.EnforceOnKeyType }).(pulumi.StringPtrOutput) +// (Output) +// The localized error message in the above locale. +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput) Message() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage) *string { + return v.Message + }).(pulumi.StringPtrOutput) } -type RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput struct{ *pulumi.OutputState } +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput struct{ *pulumi.OutputState } -func (RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig)(nil)).Elem() +func (RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage)(nil)).Elem() } -func (o RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) ToRegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput() RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput { return o } -func (o RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) ToRegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput { return o } -func (o RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) Index(i pulumi.IntInput) RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig { - return vs[0].([]RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig)[vs[1].(int)] - }).(RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) -} - -type RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold struct { - // Number of HTTP(S) requests for calculating the threshold. - Count *int `pulumi:"count"` - // Interval over which the threshold is computed. - IntervalSec *int `pulumi:"intervalSec"` -} - -// RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdInput is an input type that accepts RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs and RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput values. -// You can construct a concrete instance of `RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdInput` via: -// -// RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs{...} -type RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdInput interface { - pulumi.Input - - ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput() RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput - ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutputWithContext(context.Context) RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput) Index(i pulumi.IntInput) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage { + return vs[0].([]RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage)[vs[1].(int)] + }).(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput) } -type RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs struct { - // Number of HTTP(S) requests for calculating the threshold. - Count pulumi.IntPtrInput `pulumi:"count"` - // Interval over which the threshold is computed. - IntervalSec pulumi.IntPtrInput `pulumi:"intervalSec"` +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo struct { + // (Output) + // The map holding related quota dimensions + Dimensions map[string]string `pulumi:"dimensions"` + // (Output) + // Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + FutureLimit *int `pulumi:"futureLimit"` + // (Output) + // Current effective quota limit. The limit's unit depends on the quota type or metric. + Limit *int `pulumi:"limit"` + // (Output) + // The name of the quota limit. + LimitName *string `pulumi:"limitName"` + // (Output) + // The Compute Engine quota metric name. + MetricName *string `pulumi:"metricName"` + // (Output) + // Rollout status of the future quota limit. + RolloutStatus *string `pulumi:"rolloutStatus"` } -func (RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold)(nil)).Elem() +// RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoInput is an input type that accepts RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs and RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoInput` via: +// +// RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs{...} +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoInput interface { + pulumi.Input + + ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput + ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutputWithContext(context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput } -func (i RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput() RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput { - return i.ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutputWithContext(context.Background()) +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs struct { + // (Output) + // The map holding related quota dimensions + Dimensions pulumi.StringMapInput `pulumi:"dimensions"` + // (Output) + // Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + FutureLimit pulumi.IntPtrInput `pulumi:"futureLimit"` + // (Output) + // Current effective quota limit. The limit's unit depends on the quota type or metric. + Limit pulumi.IntPtrInput `pulumi:"limit"` + // (Output) + // The name of the quota limit. + LimitName pulumi.StringPtrInput `pulumi:"limitName"` + // (Output) + // The Compute Engine quota metric name. + MetricName pulumi.StringPtrInput `pulumi:"metricName"` + // (Output) + // Rollout status of the future quota limit. + RolloutStatus pulumi.StringPtrInput `pulumi:"rolloutStatus"` } -func (i RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) +func (RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo)(nil)).Elem() } -func (i RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput() RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { - return i.ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(context.Background()) +func (i RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput { + return i.ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutputWithContext(context.Background()) } -func (i RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput).ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(ctx) +func (i RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) } -// RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrInput is an input type that accepts RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs, RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtr and RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput values. -// You can construct a concrete instance of `RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrInput` via: -// -// RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs{...} -// -// or: +// RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayInput is an input type that accepts RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArray and RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput values. +// You can construct a concrete instance of `RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayInput` via: // -// nil -type RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrInput interface { +// RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArray{ RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs{...} } +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayInput interface { pulumi.Input - ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput() RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput - ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(context.Context) RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput + ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput + ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutputWithContext(context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput } -type regionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrType RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs - -func RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtr(v *RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrInput { - return (*regionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrType)(v) -} +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArray []RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoInput -func (*regionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold)(nil)).Elem() +func (RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo)(nil)).Elem() } -func (i *regionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrType) ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput() RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { - return i.ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(context.Background()) +func (i RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArray) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput { + return i.ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutputWithContext(context.Background()) } -func (i *regionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrType) ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) +func (i RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArray) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput) } -type RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput struct{ *pulumi.OutputState } +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput struct{ *pulumi.OutputState } -func (RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold)(nil)).Elem() +func (RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo)(nil)).Elem() } -func (o RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput() RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput { +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput { return o } -func (o RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput { +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput { return o } -func (o RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput() RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { - return o.ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(context.Background()) +// (Output) +// The map holding related quota dimensions +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) Dimensions() pulumi.StringMapOutput { + return o.ApplyT(func(v RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo) map[string]string { + return v.Dimensions + }).(pulumi.StringMapOutput) } -func (o RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold) *RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold { - return &v - }).(RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) +// (Output) +// Future quota limit being rolled out. The limit's unit depends on the quota type or metric. +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) FutureLimit() pulumi.IntPtrOutput { + return o.ApplyT(func(v RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo) *int { return v.FutureLimit }).(pulumi.IntPtrOutput) } -// Number of HTTP(S) requests for calculating the threshold. -func (o RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) Count() pulumi.IntPtrOutput { - return o.ApplyT(func(v RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold) *int { return v.Count }).(pulumi.IntPtrOutput) +// (Output) +// Current effective quota limit. The limit's unit depends on the quota type or metric. +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) Limit() pulumi.IntPtrOutput { + return o.ApplyT(func(v RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo) *int { return v.Limit }).(pulumi.IntPtrOutput) } -// Interval over which the threshold is computed. -func (o RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) IntervalSec() pulumi.IntPtrOutput { - return o.ApplyT(func(v RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold) *int { return v.IntervalSec }).(pulumi.IntPtrOutput) +// (Output) +// The name of the quota limit. +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) LimitName() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo) *string { return v.LimitName }).(pulumi.StringPtrOutput) } -type RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput struct{ *pulumi.OutputState } - -func (RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold)(nil)).Elem() +// (Output) +// The Compute Engine quota metric name. +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) MetricName() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo) *string { + return v.MetricName + }).(pulumi.StringPtrOutput) } -func (o RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput() RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { - return o +// (Output) +// Rollout status of the future quota limit. +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) RolloutStatus() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo) *string { + return v.RolloutStatus + }).(pulumi.StringPtrOutput) } -func (o RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { - return o +type RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput struct{ *pulumi.OutputState } + +func (RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo)(nil)).Elem() } -func (o RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) Elem() RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput { - return o.ApplyT(func(v *RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold) RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold { - if v != nil { - return *v - } - var ret RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold - return ret - }).(RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput() RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput { + return o } -// Number of HTTP(S) requests for calculating the threshold. -func (o RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) Count() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold) *int { - if v == nil { - return nil - } - return v.Count - }).(pulumi.IntPtrOutput) +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput) ToRegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutputWithContext(ctx context.Context) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput { + return o } -// Interval over which the threshold is computed. -func (o RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) IntervalSec() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold) *int { - if v == nil { - return nil - } - return v.IntervalSec - }).(pulumi.IntPtrOutput) +func (o RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput) Index(i pulumi.IntInput) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo { + return vs[0].([]RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo)[vs[1].(int)] + }).(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) } -type RegionSecurityPolicyUserDefinedField struct { - // The base relative to which 'offset' is measured. Possible values are: - // - IPV4: Points to the beginning of the IPv4 header. - // - IPV6: Points to the beginning of the IPv6 header. - // - TCP: Points to the beginning of the TCP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments. - // - UDP: Points to the beginning of the UDP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments. - // Possible values are: `IPV4`, `IPV6`, `TCP`, `UDP`. - Base string `pulumi:"base"` - // If specified, apply this mask (bitwise AND) to the field to ignore bits before matching. - // Encoded as a hexadecimal number (starting with "0x"). - // The last byte of the field (in network byte order) corresponds to the least significant byte of the mask. - Mask *string `pulumi:"mask"` - // The name of this field. Must be unique within the policy. - Name *string `pulumi:"name"` - // Offset of the first byte of the field (in network byte order) relative to 'base'. - Offset *int `pulumi:"offset"` - // Size of the field in bytes. Valid values: 1-4. - Size *int `pulumi:"size"` +type RegionSecurityPolicyDdosProtectionConfig struct { + // Google Cloud Armor offers the following options to help protect systems against DDoS attacks: + // - STANDARD: basic always-on protection for network load balancers, protocol forwarding, or VMs with public IP addresses. + // - ADVANCED: additional protections for Managed Protection Plus subscribers who use network load balancers, protocol forwarding, or VMs with public IP addresses. + // - ADVANCED_PREVIEW: flag to enable the security policy in preview mode. + // Possible values are: `ADVANCED`, `ADVANCED_PREVIEW`, `STANDARD`. + DdosProtection string `pulumi:"ddosProtection"` } -// RegionSecurityPolicyUserDefinedFieldInput is an input type that accepts RegionSecurityPolicyUserDefinedFieldArgs and RegionSecurityPolicyUserDefinedFieldOutput values. -// You can construct a concrete instance of `RegionSecurityPolicyUserDefinedFieldInput` via: +// RegionSecurityPolicyDdosProtectionConfigInput is an input type that accepts RegionSecurityPolicyDdosProtectionConfigArgs and RegionSecurityPolicyDdosProtectionConfigOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyDdosProtectionConfigInput` via: // -// RegionSecurityPolicyUserDefinedFieldArgs{...} -type RegionSecurityPolicyUserDefinedFieldInput interface { +// RegionSecurityPolicyDdosProtectionConfigArgs{...} +type RegionSecurityPolicyDdosProtectionConfigInput interface { pulumi.Input - ToRegionSecurityPolicyUserDefinedFieldOutput() RegionSecurityPolicyUserDefinedFieldOutput - ToRegionSecurityPolicyUserDefinedFieldOutputWithContext(context.Context) RegionSecurityPolicyUserDefinedFieldOutput + ToRegionSecurityPolicyDdosProtectionConfigOutput() RegionSecurityPolicyDdosProtectionConfigOutput + ToRegionSecurityPolicyDdosProtectionConfigOutputWithContext(context.Context) RegionSecurityPolicyDdosProtectionConfigOutput } -type RegionSecurityPolicyUserDefinedFieldArgs struct { - // The base relative to which 'offset' is measured. Possible values are: - // - IPV4: Points to the beginning of the IPv4 header. - // - IPV6: Points to the beginning of the IPv6 header. - // - TCP: Points to the beginning of the TCP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments. - // - UDP: Points to the beginning of the UDP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments. - // Possible values are: `IPV4`, `IPV6`, `TCP`, `UDP`. - Base pulumi.StringInput `pulumi:"base"` - // If specified, apply this mask (bitwise AND) to the field to ignore bits before matching. - // Encoded as a hexadecimal number (starting with "0x"). - // The last byte of the field (in network byte order) corresponds to the least significant byte of the mask. - Mask pulumi.StringPtrInput `pulumi:"mask"` - // The name of this field. Must be unique within the policy. - Name pulumi.StringPtrInput `pulumi:"name"` - // Offset of the first byte of the field (in network byte order) relative to 'base'. - Offset pulumi.IntPtrInput `pulumi:"offset"` - // Size of the field in bytes. Valid values: 1-4. - Size pulumi.IntPtrInput `pulumi:"size"` +type RegionSecurityPolicyDdosProtectionConfigArgs struct { + // Google Cloud Armor offers the following options to help protect systems against DDoS attacks: + // - STANDARD: basic always-on protection for network load balancers, protocol forwarding, or VMs with public IP addresses. + // - ADVANCED: additional protections for Managed Protection Plus subscribers who use network load balancers, protocol forwarding, or VMs with public IP addresses. + // - ADVANCED_PREVIEW: flag to enable the security policy in preview mode. + // Possible values are: `ADVANCED`, `ADVANCED_PREVIEW`, `STANDARD`. + DdosProtection pulumi.StringInput `pulumi:"ddosProtection"` } -func (RegionSecurityPolicyUserDefinedFieldArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionSecurityPolicyUserDefinedField)(nil)).Elem() +func (RegionSecurityPolicyDdosProtectionConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyDdosProtectionConfig)(nil)).Elem() } -func (i RegionSecurityPolicyUserDefinedFieldArgs) ToRegionSecurityPolicyUserDefinedFieldOutput() RegionSecurityPolicyUserDefinedFieldOutput { - return i.ToRegionSecurityPolicyUserDefinedFieldOutputWithContext(context.Background()) +func (i RegionSecurityPolicyDdosProtectionConfigArgs) ToRegionSecurityPolicyDdosProtectionConfigOutput() RegionSecurityPolicyDdosProtectionConfigOutput { + return i.ToRegionSecurityPolicyDdosProtectionConfigOutputWithContext(context.Background()) } -func (i RegionSecurityPolicyUserDefinedFieldArgs) ToRegionSecurityPolicyUserDefinedFieldOutputWithContext(ctx context.Context) RegionSecurityPolicyUserDefinedFieldOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyUserDefinedFieldOutput) +func (i RegionSecurityPolicyDdosProtectionConfigArgs) ToRegionSecurityPolicyDdosProtectionConfigOutputWithContext(ctx context.Context) RegionSecurityPolicyDdosProtectionConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyDdosProtectionConfigOutput) } -// RegionSecurityPolicyUserDefinedFieldArrayInput is an input type that accepts RegionSecurityPolicyUserDefinedFieldArray and RegionSecurityPolicyUserDefinedFieldArrayOutput values. -// You can construct a concrete instance of `RegionSecurityPolicyUserDefinedFieldArrayInput` via: +func (i RegionSecurityPolicyDdosProtectionConfigArgs) ToRegionSecurityPolicyDdosProtectionConfigPtrOutput() RegionSecurityPolicyDdosProtectionConfigPtrOutput { + return i.ToRegionSecurityPolicyDdosProtectionConfigPtrOutputWithContext(context.Background()) +} + +func (i RegionSecurityPolicyDdosProtectionConfigArgs) ToRegionSecurityPolicyDdosProtectionConfigPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyDdosProtectionConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyDdosProtectionConfigOutput).ToRegionSecurityPolicyDdosProtectionConfigPtrOutputWithContext(ctx) +} + +// RegionSecurityPolicyDdosProtectionConfigPtrInput is an input type that accepts RegionSecurityPolicyDdosProtectionConfigArgs, RegionSecurityPolicyDdosProtectionConfigPtr and RegionSecurityPolicyDdosProtectionConfigPtrOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyDdosProtectionConfigPtrInput` via: // -// RegionSecurityPolicyUserDefinedFieldArray{ RegionSecurityPolicyUserDefinedFieldArgs{...} } -type RegionSecurityPolicyUserDefinedFieldArrayInput interface { +// RegionSecurityPolicyDdosProtectionConfigArgs{...} +// +// or: +// +// nil +type RegionSecurityPolicyDdosProtectionConfigPtrInput interface { pulumi.Input - ToRegionSecurityPolicyUserDefinedFieldArrayOutput() RegionSecurityPolicyUserDefinedFieldArrayOutput - ToRegionSecurityPolicyUserDefinedFieldArrayOutputWithContext(context.Context) RegionSecurityPolicyUserDefinedFieldArrayOutput + ToRegionSecurityPolicyDdosProtectionConfigPtrOutput() RegionSecurityPolicyDdosProtectionConfigPtrOutput + ToRegionSecurityPolicyDdosProtectionConfigPtrOutputWithContext(context.Context) RegionSecurityPolicyDdosProtectionConfigPtrOutput } -type RegionSecurityPolicyUserDefinedFieldArray []RegionSecurityPolicyUserDefinedFieldInput +type regionSecurityPolicyDdosProtectionConfigPtrType RegionSecurityPolicyDdosProtectionConfigArgs -func (RegionSecurityPolicyUserDefinedFieldArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionSecurityPolicyUserDefinedField)(nil)).Elem() +func RegionSecurityPolicyDdosProtectionConfigPtr(v *RegionSecurityPolicyDdosProtectionConfigArgs) RegionSecurityPolicyDdosProtectionConfigPtrInput { + return (*regionSecurityPolicyDdosProtectionConfigPtrType)(v) } -func (i RegionSecurityPolicyUserDefinedFieldArray) ToRegionSecurityPolicyUserDefinedFieldArrayOutput() RegionSecurityPolicyUserDefinedFieldArrayOutput { - return i.ToRegionSecurityPolicyUserDefinedFieldArrayOutputWithContext(context.Background()) +func (*regionSecurityPolicyDdosProtectionConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionSecurityPolicyDdosProtectionConfig)(nil)).Elem() } -func (i RegionSecurityPolicyUserDefinedFieldArray) ToRegionSecurityPolicyUserDefinedFieldArrayOutputWithContext(ctx context.Context) RegionSecurityPolicyUserDefinedFieldArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyUserDefinedFieldArrayOutput) +func (i *regionSecurityPolicyDdosProtectionConfigPtrType) ToRegionSecurityPolicyDdosProtectionConfigPtrOutput() RegionSecurityPolicyDdosProtectionConfigPtrOutput { + return i.ToRegionSecurityPolicyDdosProtectionConfigPtrOutputWithContext(context.Background()) } -type RegionSecurityPolicyUserDefinedFieldOutput struct{ *pulumi.OutputState } +func (i *regionSecurityPolicyDdosProtectionConfigPtrType) ToRegionSecurityPolicyDdosProtectionConfigPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyDdosProtectionConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyDdosProtectionConfigPtrOutput) +} -func (RegionSecurityPolicyUserDefinedFieldOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionSecurityPolicyUserDefinedField)(nil)).Elem() +type RegionSecurityPolicyDdosProtectionConfigOutput struct{ *pulumi.OutputState } + +func (RegionSecurityPolicyDdosProtectionConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyDdosProtectionConfig)(nil)).Elem() } -func (o RegionSecurityPolicyUserDefinedFieldOutput) ToRegionSecurityPolicyUserDefinedFieldOutput() RegionSecurityPolicyUserDefinedFieldOutput { +func (o RegionSecurityPolicyDdosProtectionConfigOutput) ToRegionSecurityPolicyDdosProtectionConfigOutput() RegionSecurityPolicyDdosProtectionConfigOutput { return o } -func (o RegionSecurityPolicyUserDefinedFieldOutput) ToRegionSecurityPolicyUserDefinedFieldOutputWithContext(ctx context.Context) RegionSecurityPolicyUserDefinedFieldOutput { +func (o RegionSecurityPolicyDdosProtectionConfigOutput) ToRegionSecurityPolicyDdosProtectionConfigOutputWithContext(ctx context.Context) RegionSecurityPolicyDdosProtectionConfigOutput { return o } -// The base relative to which 'offset' is measured. Possible values are: -// - IPV4: Points to the beginning of the IPv4 header. -// - IPV6: Points to the beginning of the IPv6 header. -// - TCP: Points to the beginning of the TCP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments. -// - UDP: Points to the beginning of the UDP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments. -// Possible values are: `IPV4`, `IPV6`, `TCP`, `UDP`. -func (o RegionSecurityPolicyUserDefinedFieldOutput) Base() pulumi.StringOutput { - return o.ApplyT(func(v RegionSecurityPolicyUserDefinedField) string { return v.Base }).(pulumi.StringOutput) +func (o RegionSecurityPolicyDdosProtectionConfigOutput) ToRegionSecurityPolicyDdosProtectionConfigPtrOutput() RegionSecurityPolicyDdosProtectionConfigPtrOutput { + return o.ToRegionSecurityPolicyDdosProtectionConfigPtrOutputWithContext(context.Background()) } -// If specified, apply this mask (bitwise AND) to the field to ignore bits before matching. -// Encoded as a hexadecimal number (starting with "0x"). -// The last byte of the field (in network byte order) corresponds to the least significant byte of the mask. -func (o RegionSecurityPolicyUserDefinedFieldOutput) Mask() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionSecurityPolicyUserDefinedField) *string { return v.Mask }).(pulumi.StringPtrOutput) +func (o RegionSecurityPolicyDdosProtectionConfigOutput) ToRegionSecurityPolicyDdosProtectionConfigPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyDdosProtectionConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionSecurityPolicyDdosProtectionConfig) *RegionSecurityPolicyDdosProtectionConfig { + return &v + }).(RegionSecurityPolicyDdosProtectionConfigPtrOutput) } -// The name of this field. Must be unique within the policy. -func (o RegionSecurityPolicyUserDefinedFieldOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionSecurityPolicyUserDefinedField) *string { return v.Name }).(pulumi.StringPtrOutput) +// Google Cloud Armor offers the following options to help protect systems against DDoS attacks: +// - STANDARD: basic always-on protection for network load balancers, protocol forwarding, or VMs with public IP addresses. +// - ADVANCED: additional protections for Managed Protection Plus subscribers who use network load balancers, protocol forwarding, or VMs with public IP addresses. +// - ADVANCED_PREVIEW: flag to enable the security policy in preview mode. +// Possible values are: `ADVANCED`, `ADVANCED_PREVIEW`, `STANDARD`. +func (o RegionSecurityPolicyDdosProtectionConfigOutput) DdosProtection() pulumi.StringOutput { + return o.ApplyT(func(v RegionSecurityPolicyDdosProtectionConfig) string { return v.DdosProtection }).(pulumi.StringOutput) } -// Offset of the first byte of the field (in network byte order) relative to 'base'. -func (o RegionSecurityPolicyUserDefinedFieldOutput) Offset() pulumi.IntPtrOutput { - return o.ApplyT(func(v RegionSecurityPolicyUserDefinedField) *int { return v.Offset }).(pulumi.IntPtrOutput) -} +type RegionSecurityPolicyDdosProtectionConfigPtrOutput struct{ *pulumi.OutputState } -// Size of the field in bytes. Valid values: 1-4. -func (o RegionSecurityPolicyUserDefinedFieldOutput) Size() pulumi.IntPtrOutput { - return o.ApplyT(func(v RegionSecurityPolicyUserDefinedField) *int { return v.Size }).(pulumi.IntPtrOutput) +func (RegionSecurityPolicyDdosProtectionConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionSecurityPolicyDdosProtectionConfig)(nil)).Elem() } -type RegionSecurityPolicyUserDefinedFieldArrayOutput struct{ *pulumi.OutputState } - -func (RegionSecurityPolicyUserDefinedFieldArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionSecurityPolicyUserDefinedField)(nil)).Elem() +func (o RegionSecurityPolicyDdosProtectionConfigPtrOutput) ToRegionSecurityPolicyDdosProtectionConfigPtrOutput() RegionSecurityPolicyDdosProtectionConfigPtrOutput { + return o } -func (o RegionSecurityPolicyUserDefinedFieldArrayOutput) ToRegionSecurityPolicyUserDefinedFieldArrayOutput() RegionSecurityPolicyUserDefinedFieldArrayOutput { +func (o RegionSecurityPolicyDdosProtectionConfigPtrOutput) ToRegionSecurityPolicyDdosProtectionConfigPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyDdosProtectionConfigPtrOutput { return o } -func (o RegionSecurityPolicyUserDefinedFieldArrayOutput) ToRegionSecurityPolicyUserDefinedFieldArrayOutputWithContext(ctx context.Context) RegionSecurityPolicyUserDefinedFieldArrayOutput { - return o +func (o RegionSecurityPolicyDdosProtectionConfigPtrOutput) Elem() RegionSecurityPolicyDdosProtectionConfigOutput { + return o.ApplyT(func(v *RegionSecurityPolicyDdosProtectionConfig) RegionSecurityPolicyDdosProtectionConfig { + if v != nil { + return *v + } + var ret RegionSecurityPolicyDdosProtectionConfig + return ret + }).(RegionSecurityPolicyDdosProtectionConfigOutput) } -func (o RegionSecurityPolicyUserDefinedFieldArrayOutput) Index(i pulumi.IntInput) RegionSecurityPolicyUserDefinedFieldOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionSecurityPolicyUserDefinedField { - return vs[0].([]RegionSecurityPolicyUserDefinedField)[vs[1].(int)] - }).(RegionSecurityPolicyUserDefinedFieldOutput) +// Google Cloud Armor offers the following options to help protect systems against DDoS attacks: +// - STANDARD: basic always-on protection for network load balancers, protocol forwarding, or VMs with public IP addresses. +// - ADVANCED: additional protections for Managed Protection Plus subscribers who use network load balancers, protocol forwarding, or VMs with public IP addresses. +// - ADVANCED_PREVIEW: flag to enable the security policy in preview mode. +// Possible values are: `ADVANCED`, `ADVANCED_PREVIEW`, `STANDARD`. +func (o RegionSecurityPolicyDdosProtectionConfigPtrOutput) DdosProtection() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionSecurityPolicyDdosProtectionConfig) *string { + if v == nil { + return nil + } + return &v.DdosProtection + }).(pulumi.StringPtrOutput) } -type RegionUrlMapDefaultRouteAction struct { - // The specification for allowing client side cross-origin requests. Please see - // [W3C Recommendation for Cross Origin Resource Sharing](https://www.w3.org/TR/cors/) - // Structure is documented below. - CorsPolicy *RegionUrlMapDefaultRouteActionCorsPolicy `pulumi:"corsPolicy"` - // The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. - // As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. - // Similarly requests from clients can be aborted by the load balancer for a percentage of requests. - // timeout and retryPolicy is ignored by clients that are configured with a faultInjectionPolicy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection. - // Fault injection is not supported with the global external HTTP(S) load balancer (classic). To see which load balancers support fault injection, see Load balancing: [Routing and traffic management features](https://cloud.google.com/load-balancing/docs/features#routing-traffic-management). - // Structure is documented below. - FaultInjectionPolicy *RegionUrlMapDefaultRouteActionFaultInjectionPolicy `pulumi:"faultInjectionPolicy"` - // Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. - // The load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow. - // Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. - // Structure is documented below. - RequestMirrorPolicy *RegionUrlMapDefaultRouteActionRequestMirrorPolicy `pulumi:"requestMirrorPolicy"` - // Specifies the retry policy associated with this route. +type RegionSecurityPolicyRuleType struct { + // The Action to perform when the rule is matched. The following are the valid actions: + // * allow: allow access to target. + // * deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for STATUS are 403, 404, and 502. + // * rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rateLimitOptions to be set. + // * redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. This action is only supported in Global Security Policies of type CLOUD_ARMOR. + // * throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rateLimitOptions to be set for this. + Action string `pulumi:"action"` + // An optional description of this resource. Provide this property when you create the resource. + Description *string `pulumi:"description"` + // A match condition that incoming traffic is evaluated against. + // If it evaluates to true, the corresponding 'action' is enforced. // Structure is documented below. - RetryPolicy *RegionUrlMapDefaultRouteActionRetryPolicy `pulumi:"retryPolicy"` - // Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as end-of-stream) up until the response has been processed. Timeout includes all retries. - // If not specified, this field uses the largest timeout among all backend services associated with the route. - // Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. + Match *RegionSecurityPolicyRuleMatch `pulumi:"match"` + // A match condition that incoming packets are evaluated against for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding 'action' is enforced. + // The match criteria for a rule consists of built-in match fields (like 'srcIpRanges') and potentially multiple user-defined match fields ('userDefinedFields'). + // Field values may be extracted directly from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may not be present in every packet (e.g. 'srcPorts'). A user-defined field is only present if the base header is found in the packet and the entire field is in bounds. + // Each match field may specify which values can match it, listing one or more ranges, prefixes, or exact values that are considered a match for the field. A field value must be present in order to match a specified match field. If no match values are specified for a match field, then any field value is considered to match it, and it's not required to be present. For strings specifying '*' is also equivalent to match all. + // For a packet to match a rule, all specified match fields must match the corresponding field values derived from the packet. + // Example: + // networkMatch: srcIpRanges: - "192.0.2.0/24" - "198.51.100.0/24" userDefinedFields: - name: "ipv4FragmentOffset" values: - "1-0x1fff" + // The above match condition matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a user-defined field named "ipv4FragmentOffset" with a value between 1 and 0x1fff inclusive // Structure is documented below. - Timeout *RegionUrlMapDefaultRouteActionTimeout `pulumi:"timeout"` - // The spec to modify the URL of the request, before forwarding the request to the matched service. - // urlRewrite is the only action supported in UrlMaps for external HTTP(S) load balancers. - // Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. + NetworkMatch *RegionSecurityPolicyRuleNetworkMatch `pulumi:"networkMatch"` + // Preconfigured WAF configuration to be applied for the rule. + // If the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect. // Structure is documented below. - UrlRewrite *RegionUrlMapDefaultRouteActionUrlRewrite `pulumi:"urlRewrite"` - // A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. - // After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction. + PreconfiguredWafConfig *RegionSecurityPolicyRulePreconfiguredWafConfig `pulumi:"preconfiguredWafConfig"` + // If set to true, the specified action is not enforced. + Preview *bool `pulumi:"preview"` + // An integer indicating the priority of a rule in the list. + // The priority must be a positive value between 0 and 2147483647. + // Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority. + Priority int `pulumi:"priority"` + // Must be specified if the action is "rateBasedBan" or "throttle". Cannot be specified for any other actions. // Structure is documented below. - WeightedBackendServices []RegionUrlMapDefaultRouteActionWeightedBackendService `pulumi:"weightedBackendServices"` + RateLimitOptions *RegionSecurityPolicyRuleRateLimitOptions `pulumi:"rateLimitOptions"` } -// RegionUrlMapDefaultRouteActionInput is an input type that accepts RegionUrlMapDefaultRouteActionArgs and RegionUrlMapDefaultRouteActionOutput values. -// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionInput` via: +// RegionSecurityPolicyRuleTypeInput is an input type that accepts RegionSecurityPolicyRuleTypeArgs and RegionSecurityPolicyRuleTypeOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyRuleTypeInput` via: // -// RegionUrlMapDefaultRouteActionArgs{...} -type RegionUrlMapDefaultRouteActionInput interface { +// RegionSecurityPolicyRuleTypeArgs{...} +type RegionSecurityPolicyRuleTypeInput interface { pulumi.Input - ToRegionUrlMapDefaultRouteActionOutput() RegionUrlMapDefaultRouteActionOutput - ToRegionUrlMapDefaultRouteActionOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionOutput + ToRegionSecurityPolicyRuleTypeOutput() RegionSecurityPolicyRuleTypeOutput + ToRegionSecurityPolicyRuleTypeOutputWithContext(context.Context) RegionSecurityPolicyRuleTypeOutput } -type RegionUrlMapDefaultRouteActionArgs struct { - // The specification for allowing client side cross-origin requests. Please see - // [W3C Recommendation for Cross Origin Resource Sharing](https://www.w3.org/TR/cors/) - // Structure is documented below. - CorsPolicy RegionUrlMapDefaultRouteActionCorsPolicyPtrInput `pulumi:"corsPolicy"` - // The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. - // As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. - // Similarly requests from clients can be aborted by the load balancer for a percentage of requests. - // timeout and retryPolicy is ignored by clients that are configured with a faultInjectionPolicy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection. - // Fault injection is not supported with the global external HTTP(S) load balancer (classic). To see which load balancers support fault injection, see Load balancing: [Routing and traffic management features](https://cloud.google.com/load-balancing/docs/features#routing-traffic-management). - // Structure is documented below. - FaultInjectionPolicy RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrInput `pulumi:"faultInjectionPolicy"` - // Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. - // The load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow. - // Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. - // Structure is documented below. - RequestMirrorPolicy RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrInput `pulumi:"requestMirrorPolicy"` - // Specifies the retry policy associated with this route. +type RegionSecurityPolicyRuleTypeArgs struct { + // The Action to perform when the rule is matched. The following are the valid actions: + // * allow: allow access to target. + // * deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for STATUS are 403, 404, and 502. + // * rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rateLimitOptions to be set. + // * redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. This action is only supported in Global Security Policies of type CLOUD_ARMOR. + // * throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rateLimitOptions to be set for this. + Action pulumi.StringInput `pulumi:"action"` + // An optional description of this resource. Provide this property when you create the resource. + Description pulumi.StringPtrInput `pulumi:"description"` + // A match condition that incoming traffic is evaluated against. + // If it evaluates to true, the corresponding 'action' is enforced. // Structure is documented below. - RetryPolicy RegionUrlMapDefaultRouteActionRetryPolicyPtrInput `pulumi:"retryPolicy"` - // Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as end-of-stream) up until the response has been processed. Timeout includes all retries. - // If not specified, this field uses the largest timeout among all backend services associated with the route. - // Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. + Match RegionSecurityPolicyRuleMatchPtrInput `pulumi:"match"` + // A match condition that incoming packets are evaluated against for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding 'action' is enforced. + // The match criteria for a rule consists of built-in match fields (like 'srcIpRanges') and potentially multiple user-defined match fields ('userDefinedFields'). + // Field values may be extracted directly from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may not be present in every packet (e.g. 'srcPorts'). A user-defined field is only present if the base header is found in the packet and the entire field is in bounds. + // Each match field may specify which values can match it, listing one or more ranges, prefixes, or exact values that are considered a match for the field. A field value must be present in order to match a specified match field. If no match values are specified for a match field, then any field value is considered to match it, and it's not required to be present. For strings specifying '*' is also equivalent to match all. + // For a packet to match a rule, all specified match fields must match the corresponding field values derived from the packet. + // Example: + // networkMatch: srcIpRanges: - "192.0.2.0/24" - "198.51.100.0/24" userDefinedFields: - name: "ipv4FragmentOffset" values: - "1-0x1fff" + // The above match condition matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a user-defined field named "ipv4FragmentOffset" with a value between 1 and 0x1fff inclusive // Structure is documented below. - Timeout RegionUrlMapDefaultRouteActionTimeoutPtrInput `pulumi:"timeout"` - // The spec to modify the URL of the request, before forwarding the request to the matched service. - // urlRewrite is the only action supported in UrlMaps for external HTTP(S) load balancers. - // Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. + NetworkMatch RegionSecurityPolicyRuleNetworkMatchPtrInput `pulumi:"networkMatch"` + // Preconfigured WAF configuration to be applied for the rule. + // If the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect. // Structure is documented below. - UrlRewrite RegionUrlMapDefaultRouteActionUrlRewritePtrInput `pulumi:"urlRewrite"` - // A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. - // After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction. + PreconfiguredWafConfig RegionSecurityPolicyRulePreconfiguredWafConfigPtrInput `pulumi:"preconfiguredWafConfig"` + // If set to true, the specified action is not enforced. + Preview pulumi.BoolPtrInput `pulumi:"preview"` + // An integer indicating the priority of a rule in the list. + // The priority must be a positive value between 0 and 2147483647. + // Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority. + Priority pulumi.IntInput `pulumi:"priority"` + // Must be specified if the action is "rateBasedBan" or "throttle". Cannot be specified for any other actions. // Structure is documented below. - WeightedBackendServices RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayInput `pulumi:"weightedBackendServices"` -} - -func (RegionUrlMapDefaultRouteActionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapDefaultRouteAction)(nil)).Elem() -} - -func (i RegionUrlMapDefaultRouteActionArgs) ToRegionUrlMapDefaultRouteActionOutput() RegionUrlMapDefaultRouteActionOutput { - return i.ToRegionUrlMapDefaultRouteActionOutputWithContext(context.Background()) + RateLimitOptions RegionSecurityPolicyRuleRateLimitOptionsPtrInput `pulumi:"rateLimitOptions"` } -func (i RegionUrlMapDefaultRouteActionArgs) ToRegionUrlMapDefaultRouteActionOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionOutput) +func (RegionSecurityPolicyRuleTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyRuleType)(nil)).Elem() } -func (i RegionUrlMapDefaultRouteActionArgs) ToRegionUrlMapDefaultRouteActionPtrOutput() RegionUrlMapDefaultRouteActionPtrOutput { - return i.ToRegionUrlMapDefaultRouteActionPtrOutputWithContext(context.Background()) +func (i RegionSecurityPolicyRuleTypeArgs) ToRegionSecurityPolicyRuleTypeOutput() RegionSecurityPolicyRuleTypeOutput { + return i.ToRegionSecurityPolicyRuleTypeOutputWithContext(context.Background()) } -func (i RegionUrlMapDefaultRouteActionArgs) ToRegionUrlMapDefaultRouteActionPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionOutput).ToRegionUrlMapDefaultRouteActionPtrOutputWithContext(ctx) +func (i RegionSecurityPolicyRuleTypeArgs) ToRegionSecurityPolicyRuleTypeOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleTypeOutput) } -// RegionUrlMapDefaultRouteActionPtrInput is an input type that accepts RegionUrlMapDefaultRouteActionArgs, RegionUrlMapDefaultRouteActionPtr and RegionUrlMapDefaultRouteActionPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionPtrInput` via: -// -// RegionUrlMapDefaultRouteActionArgs{...} -// -// or: +// RegionSecurityPolicyRuleTypeArrayInput is an input type that accepts RegionSecurityPolicyRuleTypeArray and RegionSecurityPolicyRuleTypeArrayOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyRuleTypeArrayInput` via: // -// nil -type RegionUrlMapDefaultRouteActionPtrInput interface { +// RegionSecurityPolicyRuleTypeArray{ RegionSecurityPolicyRuleTypeArgs{...} } +type RegionSecurityPolicyRuleTypeArrayInput interface { pulumi.Input - ToRegionUrlMapDefaultRouteActionPtrOutput() RegionUrlMapDefaultRouteActionPtrOutput - ToRegionUrlMapDefaultRouteActionPtrOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionPtrOutput + ToRegionSecurityPolicyRuleTypeArrayOutput() RegionSecurityPolicyRuleTypeArrayOutput + ToRegionSecurityPolicyRuleTypeArrayOutputWithContext(context.Context) RegionSecurityPolicyRuleTypeArrayOutput } -type regionUrlMapDefaultRouteActionPtrType RegionUrlMapDefaultRouteActionArgs - -func RegionUrlMapDefaultRouteActionPtr(v *RegionUrlMapDefaultRouteActionArgs) RegionUrlMapDefaultRouteActionPtrInput { - return (*regionUrlMapDefaultRouteActionPtrType)(v) -} +type RegionSecurityPolicyRuleTypeArray []RegionSecurityPolicyRuleTypeInput -func (*regionUrlMapDefaultRouteActionPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapDefaultRouteAction)(nil)).Elem() +func (RegionSecurityPolicyRuleTypeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionSecurityPolicyRuleType)(nil)).Elem() } -func (i *regionUrlMapDefaultRouteActionPtrType) ToRegionUrlMapDefaultRouteActionPtrOutput() RegionUrlMapDefaultRouteActionPtrOutput { - return i.ToRegionUrlMapDefaultRouteActionPtrOutputWithContext(context.Background()) +func (i RegionSecurityPolicyRuleTypeArray) ToRegionSecurityPolicyRuleTypeArrayOutput() RegionSecurityPolicyRuleTypeArrayOutput { + return i.ToRegionSecurityPolicyRuleTypeArrayOutputWithContext(context.Background()) } -func (i *regionUrlMapDefaultRouteActionPtrType) ToRegionUrlMapDefaultRouteActionPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionPtrOutput) +func (i RegionSecurityPolicyRuleTypeArray) ToRegionSecurityPolicyRuleTypeArrayOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleTypeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleTypeArrayOutput) } -type RegionUrlMapDefaultRouteActionOutput struct{ *pulumi.OutputState } +type RegionSecurityPolicyRuleTypeOutput struct{ *pulumi.OutputState } -func (RegionUrlMapDefaultRouteActionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapDefaultRouteAction)(nil)).Elem() +func (RegionSecurityPolicyRuleTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyRuleType)(nil)).Elem() } -func (o RegionUrlMapDefaultRouteActionOutput) ToRegionUrlMapDefaultRouteActionOutput() RegionUrlMapDefaultRouteActionOutput { +func (o RegionSecurityPolicyRuleTypeOutput) ToRegionSecurityPolicyRuleTypeOutput() RegionSecurityPolicyRuleTypeOutput { return o } -func (o RegionUrlMapDefaultRouteActionOutput) ToRegionUrlMapDefaultRouteActionOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionOutput { +func (o RegionSecurityPolicyRuleTypeOutput) ToRegionSecurityPolicyRuleTypeOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleTypeOutput { return o } -func (o RegionUrlMapDefaultRouteActionOutput) ToRegionUrlMapDefaultRouteActionPtrOutput() RegionUrlMapDefaultRouteActionPtrOutput { - return o.ToRegionUrlMapDefaultRouteActionPtrOutputWithContext(context.Background()) +// The Action to perform when the rule is matched. The following are the valid actions: +// * allow: allow access to target. +// * deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for STATUS are 403, 404, and 502. +// * rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rateLimitOptions to be set. +// * redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. This action is only supported in Global Security Policies of type CLOUD_ARMOR. +// * throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rateLimitOptions to be set for this. +func (o RegionSecurityPolicyRuleTypeOutput) Action() pulumi.StringOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleType) string { return v.Action }).(pulumi.StringOutput) } -func (o RegionUrlMapDefaultRouteActionOutput) ToRegionUrlMapDefaultRouteActionPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapDefaultRouteAction) *RegionUrlMapDefaultRouteAction { - return &v - }).(RegionUrlMapDefaultRouteActionPtrOutput) +// An optional description of this resource. Provide this property when you create the resource. +func (o RegionSecurityPolicyRuleTypeOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleType) *string { return v.Description }).(pulumi.StringPtrOutput) } -// The specification for allowing client side cross-origin requests. Please see -// [W3C Recommendation for Cross Origin Resource Sharing](https://www.w3.org/TR/cors/) +// A match condition that incoming traffic is evaluated against. +// If it evaluates to true, the corresponding 'action' is enforced. // Structure is documented below. -func (o RegionUrlMapDefaultRouteActionOutput) CorsPolicy() RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteAction) *RegionUrlMapDefaultRouteActionCorsPolicy { return v.CorsPolicy }).(RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput) +func (o RegionSecurityPolicyRuleTypeOutput) Match() RegionSecurityPolicyRuleMatchPtrOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleType) *RegionSecurityPolicyRuleMatch { return v.Match }).(RegionSecurityPolicyRuleMatchPtrOutput) } -// The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. -// As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. -// Similarly requests from clients can be aborted by the load balancer for a percentage of requests. -// timeout and retryPolicy is ignored by clients that are configured with a faultInjectionPolicy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection. -// Fault injection is not supported with the global external HTTP(S) load balancer (classic). To see which load balancers support fault injection, see Load balancing: [Routing and traffic management features](https://cloud.google.com/load-balancing/docs/features#routing-traffic-management). +// A match condition that incoming packets are evaluated against for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding 'action' is enforced. +// The match criteria for a rule consists of built-in match fields (like 'srcIpRanges') and potentially multiple user-defined match fields ('userDefinedFields'). +// Field values may be extracted directly from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may not be present in every packet (e.g. 'srcPorts'). A user-defined field is only present if the base header is found in the packet and the entire field is in bounds. +// Each match field may specify which values can match it, listing one or more ranges, prefixes, or exact values that are considered a match for the field. A field value must be present in order to match a specified match field. If no match values are specified for a match field, then any field value is considered to match it, and it's not required to be present. For strings specifying '*' is also equivalent to match all. +// For a packet to match a rule, all specified match fields must match the corresponding field values derived from the packet. +// Example: +// networkMatch: srcIpRanges: - "192.0.2.0/24" - "198.51.100.0/24" userDefinedFields: - name: "ipv4FragmentOffset" values: - "1-0x1fff" +// The above match condition matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a user-defined field named "ipv4FragmentOffset" with a value between 1 and 0x1fff inclusive // Structure is documented below. -func (o RegionUrlMapDefaultRouteActionOutput) FaultInjectionPolicy() RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteAction) *RegionUrlMapDefaultRouteActionFaultInjectionPolicy { - return v.FaultInjectionPolicy - }).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput) +func (o RegionSecurityPolicyRuleTypeOutput) NetworkMatch() RegionSecurityPolicyRuleNetworkMatchPtrOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleType) *RegionSecurityPolicyRuleNetworkMatch { return v.NetworkMatch }).(RegionSecurityPolicyRuleNetworkMatchPtrOutput) } -// Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. -// The load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow. -// Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. +// Preconfigured WAF configuration to be applied for the rule. +// If the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect. // Structure is documented below. -func (o RegionUrlMapDefaultRouteActionOutput) RequestMirrorPolicy() RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteAction) *RegionUrlMapDefaultRouteActionRequestMirrorPolicy { - return v.RequestMirrorPolicy - }).(RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput) +func (o RegionSecurityPolicyRuleTypeOutput) PreconfiguredWafConfig() RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleType) *RegionSecurityPolicyRulePreconfiguredWafConfig { + return v.PreconfiguredWafConfig + }).(RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput) } -// Specifies the retry policy associated with this route. -// Structure is documented below. -func (o RegionUrlMapDefaultRouteActionOutput) RetryPolicy() RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteAction) *RegionUrlMapDefaultRouteActionRetryPolicy { - return v.RetryPolicy - }).(RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput) +// If set to true, the specified action is not enforced. +func (o RegionSecurityPolicyRuleTypeOutput) Preview() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleType) *bool { return v.Preview }).(pulumi.BoolPtrOutput) } -// Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as end-of-stream) up until the response has been processed. Timeout includes all retries. -// If not specified, this field uses the largest timeout among all backend services associated with the route. -// Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. -// Structure is documented below. -func (o RegionUrlMapDefaultRouteActionOutput) Timeout() RegionUrlMapDefaultRouteActionTimeoutPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteAction) *RegionUrlMapDefaultRouteActionTimeout { return v.Timeout }).(RegionUrlMapDefaultRouteActionTimeoutPtrOutput) +// An integer indicating the priority of a rule in the list. +// The priority must be a positive value between 0 and 2147483647. +// Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority. +func (o RegionSecurityPolicyRuleTypeOutput) Priority() pulumi.IntOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleType) int { return v.Priority }).(pulumi.IntOutput) } -// The spec to modify the URL of the request, before forwarding the request to the matched service. -// urlRewrite is the only action supported in UrlMaps for external HTTP(S) load balancers. -// Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. +// Must be specified if the action is "rateBasedBan" or "throttle". Cannot be specified for any other actions. // Structure is documented below. -func (o RegionUrlMapDefaultRouteActionOutput) UrlRewrite() RegionUrlMapDefaultRouteActionUrlRewritePtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteAction) *RegionUrlMapDefaultRouteActionUrlRewrite { return v.UrlRewrite }).(RegionUrlMapDefaultRouteActionUrlRewritePtrOutput) +func (o RegionSecurityPolicyRuleTypeOutput) RateLimitOptions() RegionSecurityPolicyRuleRateLimitOptionsPtrOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleType) *RegionSecurityPolicyRuleRateLimitOptions { + return v.RateLimitOptions + }).(RegionSecurityPolicyRuleRateLimitOptionsPtrOutput) } -// A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. -// After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction. -// Structure is documented below. -func (o RegionUrlMapDefaultRouteActionOutput) WeightedBackendServices() RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteAction) []RegionUrlMapDefaultRouteActionWeightedBackendService { - return v.WeightedBackendServices - }).(RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput) +type RegionSecurityPolicyRuleTypeArrayOutput struct{ *pulumi.OutputState } + +func (RegionSecurityPolicyRuleTypeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionSecurityPolicyRuleType)(nil)).Elem() } -type RegionUrlMapDefaultRouteActionPtrOutput struct{ *pulumi.OutputState } - -func (RegionUrlMapDefaultRouteActionPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapDefaultRouteAction)(nil)).Elem() -} - -func (o RegionUrlMapDefaultRouteActionPtrOutput) ToRegionUrlMapDefaultRouteActionPtrOutput() RegionUrlMapDefaultRouteActionPtrOutput { +func (o RegionSecurityPolicyRuleTypeArrayOutput) ToRegionSecurityPolicyRuleTypeArrayOutput() RegionSecurityPolicyRuleTypeArrayOutput { return o } -func (o RegionUrlMapDefaultRouteActionPtrOutput) ToRegionUrlMapDefaultRouteActionPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionPtrOutput { +func (o RegionSecurityPolicyRuleTypeArrayOutput) ToRegionSecurityPolicyRuleTypeArrayOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleTypeArrayOutput { return o } -func (o RegionUrlMapDefaultRouteActionPtrOutput) Elem() RegionUrlMapDefaultRouteActionOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteAction) RegionUrlMapDefaultRouteAction { - if v != nil { - return *v - } - var ret RegionUrlMapDefaultRouteAction - return ret - }).(RegionUrlMapDefaultRouteActionOutput) -} - -// The specification for allowing client side cross-origin requests. Please see -// [W3C Recommendation for Cross Origin Resource Sharing](https://www.w3.org/TR/cors/) -// Structure is documented below. -func (o RegionUrlMapDefaultRouteActionPtrOutput) CorsPolicy() RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteAction) *RegionUrlMapDefaultRouteActionCorsPolicy { - if v == nil { - return nil - } - return v.CorsPolicy - }).(RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput) -} - -// The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. -// As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. -// Similarly requests from clients can be aborted by the load balancer for a percentage of requests. -// timeout and retryPolicy is ignored by clients that are configured with a faultInjectionPolicy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection. -// Fault injection is not supported with the global external HTTP(S) load balancer (classic). To see which load balancers support fault injection, see Load balancing: [Routing and traffic management features](https://cloud.google.com/load-balancing/docs/features#routing-traffic-management). -// Structure is documented below. -func (o RegionUrlMapDefaultRouteActionPtrOutput) FaultInjectionPolicy() RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteAction) *RegionUrlMapDefaultRouteActionFaultInjectionPolicy { - if v == nil { - return nil - } - return v.FaultInjectionPolicy - }).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput) -} - -// Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. -// The load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow. -// Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. -// Structure is documented below. -func (o RegionUrlMapDefaultRouteActionPtrOutput) RequestMirrorPolicy() RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteAction) *RegionUrlMapDefaultRouteActionRequestMirrorPolicy { - if v == nil { - return nil - } - return v.RequestMirrorPolicy - }).(RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput) -} - -// Specifies the retry policy associated with this route. -// Structure is documented below. -func (o RegionUrlMapDefaultRouteActionPtrOutput) RetryPolicy() RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteAction) *RegionUrlMapDefaultRouteActionRetryPolicy { - if v == nil { - return nil - } - return v.RetryPolicy - }).(RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput) -} - -// Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as end-of-stream) up until the response has been processed. Timeout includes all retries. -// If not specified, this field uses the largest timeout among all backend services associated with the route. -// Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. -// Structure is documented below. -func (o RegionUrlMapDefaultRouteActionPtrOutput) Timeout() RegionUrlMapDefaultRouteActionTimeoutPtrOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteAction) *RegionUrlMapDefaultRouteActionTimeout { - if v == nil { - return nil - } - return v.Timeout - }).(RegionUrlMapDefaultRouteActionTimeoutPtrOutput) -} - -// The spec to modify the URL of the request, before forwarding the request to the matched service. -// urlRewrite is the only action supported in UrlMaps for external HTTP(S) load balancers. -// Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. -// Structure is documented below. -func (o RegionUrlMapDefaultRouteActionPtrOutput) UrlRewrite() RegionUrlMapDefaultRouteActionUrlRewritePtrOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteAction) *RegionUrlMapDefaultRouteActionUrlRewrite { - if v == nil { - return nil - } - return v.UrlRewrite - }).(RegionUrlMapDefaultRouteActionUrlRewritePtrOutput) -} - -// A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. -// After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction. -// Structure is documented below. -func (o RegionUrlMapDefaultRouteActionPtrOutput) WeightedBackendServices() RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteAction) []RegionUrlMapDefaultRouteActionWeightedBackendService { - if v == nil { - return nil - } - return v.WeightedBackendServices - }).(RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput) +func (o RegionSecurityPolicyRuleTypeArrayOutput) Index(i pulumi.IntInput) RegionSecurityPolicyRuleTypeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionSecurityPolicyRuleType { + return vs[0].([]RegionSecurityPolicyRuleType)[vs[1].(int)] + }).(RegionSecurityPolicyRuleTypeOutput) } -type RegionUrlMapDefaultRouteActionCorsPolicy struct { - // In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. - // Default is false. - AllowCredentials *bool `pulumi:"allowCredentials"` - // Specifies the content for the Access-Control-Allow-Headers header. - AllowHeaders []string `pulumi:"allowHeaders"` - // Specifies the content for the Access-Control-Allow-Methods header. - AllowMethods []string `pulumi:"allowMethods"` - // Specifies the regualar expression patterns that match allowed origins. For regular expression grammar - // please see en.cppreference.com/w/cpp/regex/ecmascript - // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. - AllowOriginRegexes []string `pulumi:"allowOriginRegexes"` - // Specifies the list of origins that will be allowed to do CORS requests. - // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. - AllowOrigins []string `pulumi:"allowOrigins"` - // If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. - Disabled *bool `pulumi:"disabled"` - // Specifies the content for the Access-Control-Expose-Headers header. - ExposeHeaders []string `pulumi:"exposeHeaders"` - // Specifies how long results of a preflight request can be cached in seconds. - // This translates to the Access-Control-Max-Age header. - MaxAge *int `pulumi:"maxAge"` +type RegionSecurityPolicyRuleMatch struct { + // The configuration options available when specifying versionedExpr. + // This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified. + // Structure is documented below. + Config *RegionSecurityPolicyRuleMatchConfig `pulumi:"config"` + // User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. + // Structure is documented below. + Expr *RegionSecurityPolicyRuleMatchExpr `pulumi:"expr"` + // Preconfigured versioned expression. If this field is specified, config must also be specified. + // Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config. + // Possible values are: `SRC_IPS_V1`. + VersionedExpr *string `pulumi:"versionedExpr"` } -// RegionUrlMapDefaultRouteActionCorsPolicyInput is an input type that accepts RegionUrlMapDefaultRouteActionCorsPolicyArgs and RegionUrlMapDefaultRouteActionCorsPolicyOutput values. -// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionCorsPolicyInput` via: +// RegionSecurityPolicyRuleMatchInput is an input type that accepts RegionSecurityPolicyRuleMatchArgs and RegionSecurityPolicyRuleMatchOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyRuleMatchInput` via: // -// RegionUrlMapDefaultRouteActionCorsPolicyArgs{...} -type RegionUrlMapDefaultRouteActionCorsPolicyInput interface { +// RegionSecurityPolicyRuleMatchArgs{...} +type RegionSecurityPolicyRuleMatchInput interface { pulumi.Input - ToRegionUrlMapDefaultRouteActionCorsPolicyOutput() RegionUrlMapDefaultRouteActionCorsPolicyOutput - ToRegionUrlMapDefaultRouteActionCorsPolicyOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionCorsPolicyOutput + ToRegionSecurityPolicyRuleMatchOutput() RegionSecurityPolicyRuleMatchOutput + ToRegionSecurityPolicyRuleMatchOutputWithContext(context.Context) RegionSecurityPolicyRuleMatchOutput } -type RegionUrlMapDefaultRouteActionCorsPolicyArgs struct { - // In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. - // Default is false. - AllowCredentials pulumi.BoolPtrInput `pulumi:"allowCredentials"` - // Specifies the content for the Access-Control-Allow-Headers header. - AllowHeaders pulumi.StringArrayInput `pulumi:"allowHeaders"` - // Specifies the content for the Access-Control-Allow-Methods header. - AllowMethods pulumi.StringArrayInput `pulumi:"allowMethods"` - // Specifies the regualar expression patterns that match allowed origins. For regular expression grammar - // please see en.cppreference.com/w/cpp/regex/ecmascript - // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. - AllowOriginRegexes pulumi.StringArrayInput `pulumi:"allowOriginRegexes"` - // Specifies the list of origins that will be allowed to do CORS requests. - // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. - AllowOrigins pulumi.StringArrayInput `pulumi:"allowOrigins"` - // If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. - Disabled pulumi.BoolPtrInput `pulumi:"disabled"` - // Specifies the content for the Access-Control-Expose-Headers header. - ExposeHeaders pulumi.StringArrayInput `pulumi:"exposeHeaders"` - // Specifies how long results of a preflight request can be cached in seconds. - // This translates to the Access-Control-Max-Age header. - MaxAge pulumi.IntPtrInput `pulumi:"maxAge"` +type RegionSecurityPolicyRuleMatchArgs struct { + // The configuration options available when specifying versionedExpr. + // This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified. + // Structure is documented below. + Config RegionSecurityPolicyRuleMatchConfigPtrInput `pulumi:"config"` + // User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. + // Structure is documented below. + Expr RegionSecurityPolicyRuleMatchExprPtrInput `pulumi:"expr"` + // Preconfigured versioned expression. If this field is specified, config must also be specified. + // Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config. + // Possible values are: `SRC_IPS_V1`. + VersionedExpr pulumi.StringPtrInput `pulumi:"versionedExpr"` } -func (RegionUrlMapDefaultRouteActionCorsPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapDefaultRouteActionCorsPolicy)(nil)).Elem() +func (RegionSecurityPolicyRuleMatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyRuleMatch)(nil)).Elem() } -func (i RegionUrlMapDefaultRouteActionCorsPolicyArgs) ToRegionUrlMapDefaultRouteActionCorsPolicyOutput() RegionUrlMapDefaultRouteActionCorsPolicyOutput { - return i.ToRegionUrlMapDefaultRouteActionCorsPolicyOutputWithContext(context.Background()) +func (i RegionSecurityPolicyRuleMatchArgs) ToRegionSecurityPolicyRuleMatchOutput() RegionSecurityPolicyRuleMatchOutput { + return i.ToRegionSecurityPolicyRuleMatchOutputWithContext(context.Background()) } -func (i RegionUrlMapDefaultRouteActionCorsPolicyArgs) ToRegionUrlMapDefaultRouteActionCorsPolicyOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionCorsPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionCorsPolicyOutput) +func (i RegionSecurityPolicyRuleMatchArgs) ToRegionSecurityPolicyRuleMatchOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleMatchOutput) } -func (i RegionUrlMapDefaultRouteActionCorsPolicyArgs) ToRegionUrlMapDefaultRouteActionCorsPolicyPtrOutput() RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput { - return i.ToRegionUrlMapDefaultRouteActionCorsPolicyPtrOutputWithContext(context.Background()) +func (i RegionSecurityPolicyRuleMatchArgs) ToRegionSecurityPolicyRuleMatchPtrOutput() RegionSecurityPolicyRuleMatchPtrOutput { + return i.ToRegionSecurityPolicyRuleMatchPtrOutputWithContext(context.Background()) } -func (i RegionUrlMapDefaultRouteActionCorsPolicyArgs) ToRegionUrlMapDefaultRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionCorsPolicyOutput).ToRegionUrlMapDefaultRouteActionCorsPolicyPtrOutputWithContext(ctx) +func (i RegionSecurityPolicyRuleMatchArgs) ToRegionSecurityPolicyRuleMatchPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleMatchOutput).ToRegionSecurityPolicyRuleMatchPtrOutputWithContext(ctx) } -// RegionUrlMapDefaultRouteActionCorsPolicyPtrInput is an input type that accepts RegionUrlMapDefaultRouteActionCorsPolicyArgs, RegionUrlMapDefaultRouteActionCorsPolicyPtr and RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionCorsPolicyPtrInput` via: +// RegionSecurityPolicyRuleMatchPtrInput is an input type that accepts RegionSecurityPolicyRuleMatchArgs, RegionSecurityPolicyRuleMatchPtr and RegionSecurityPolicyRuleMatchPtrOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyRuleMatchPtrInput` via: // -// RegionUrlMapDefaultRouteActionCorsPolicyArgs{...} +// RegionSecurityPolicyRuleMatchArgs{...} // // or: // // nil -type RegionUrlMapDefaultRouteActionCorsPolicyPtrInput interface { +type RegionSecurityPolicyRuleMatchPtrInput interface { pulumi.Input - ToRegionUrlMapDefaultRouteActionCorsPolicyPtrOutput() RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput - ToRegionUrlMapDefaultRouteActionCorsPolicyPtrOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput + ToRegionSecurityPolicyRuleMatchPtrOutput() RegionSecurityPolicyRuleMatchPtrOutput + ToRegionSecurityPolicyRuleMatchPtrOutputWithContext(context.Context) RegionSecurityPolicyRuleMatchPtrOutput } -type regionUrlMapDefaultRouteActionCorsPolicyPtrType RegionUrlMapDefaultRouteActionCorsPolicyArgs +type regionSecurityPolicyRuleMatchPtrType RegionSecurityPolicyRuleMatchArgs -func RegionUrlMapDefaultRouteActionCorsPolicyPtr(v *RegionUrlMapDefaultRouteActionCorsPolicyArgs) RegionUrlMapDefaultRouteActionCorsPolicyPtrInput { - return (*regionUrlMapDefaultRouteActionCorsPolicyPtrType)(v) +func RegionSecurityPolicyRuleMatchPtr(v *RegionSecurityPolicyRuleMatchArgs) RegionSecurityPolicyRuleMatchPtrInput { + return (*regionSecurityPolicyRuleMatchPtrType)(v) } -func (*regionUrlMapDefaultRouteActionCorsPolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapDefaultRouteActionCorsPolicy)(nil)).Elem() +func (*regionSecurityPolicyRuleMatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionSecurityPolicyRuleMatch)(nil)).Elem() } -func (i *regionUrlMapDefaultRouteActionCorsPolicyPtrType) ToRegionUrlMapDefaultRouteActionCorsPolicyPtrOutput() RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput { - return i.ToRegionUrlMapDefaultRouteActionCorsPolicyPtrOutputWithContext(context.Background()) +func (i *regionSecurityPolicyRuleMatchPtrType) ToRegionSecurityPolicyRuleMatchPtrOutput() RegionSecurityPolicyRuleMatchPtrOutput { + return i.ToRegionSecurityPolicyRuleMatchPtrOutputWithContext(context.Background()) } -func (i *regionUrlMapDefaultRouteActionCorsPolicyPtrType) ToRegionUrlMapDefaultRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput) +func (i *regionSecurityPolicyRuleMatchPtrType) ToRegionSecurityPolicyRuleMatchPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleMatchPtrOutput) } -type RegionUrlMapDefaultRouteActionCorsPolicyOutput struct{ *pulumi.OutputState } +type RegionSecurityPolicyRuleMatchOutput struct{ *pulumi.OutputState } -func (RegionUrlMapDefaultRouteActionCorsPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapDefaultRouteActionCorsPolicy)(nil)).Elem() +func (RegionSecurityPolicyRuleMatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyRuleMatch)(nil)).Elem() } -func (o RegionUrlMapDefaultRouteActionCorsPolicyOutput) ToRegionUrlMapDefaultRouteActionCorsPolicyOutput() RegionUrlMapDefaultRouteActionCorsPolicyOutput { +func (o RegionSecurityPolicyRuleMatchOutput) ToRegionSecurityPolicyRuleMatchOutput() RegionSecurityPolicyRuleMatchOutput { return o } -func (o RegionUrlMapDefaultRouteActionCorsPolicyOutput) ToRegionUrlMapDefaultRouteActionCorsPolicyOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionCorsPolicyOutput { +func (o RegionSecurityPolicyRuleMatchOutput) ToRegionSecurityPolicyRuleMatchOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchOutput { return o } -func (o RegionUrlMapDefaultRouteActionCorsPolicyOutput) ToRegionUrlMapDefaultRouteActionCorsPolicyPtrOutput() RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput { - return o.ToRegionUrlMapDefaultRouteActionCorsPolicyPtrOutputWithContext(context.Background()) +func (o RegionSecurityPolicyRuleMatchOutput) ToRegionSecurityPolicyRuleMatchPtrOutput() RegionSecurityPolicyRuleMatchPtrOutput { + return o.ToRegionSecurityPolicyRuleMatchPtrOutputWithContext(context.Background()) } -func (o RegionUrlMapDefaultRouteActionCorsPolicyOutput) ToRegionUrlMapDefaultRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapDefaultRouteActionCorsPolicy) *RegionUrlMapDefaultRouteActionCorsPolicy { +func (o RegionSecurityPolicyRuleMatchOutput) ToRegionSecurityPolicyRuleMatchPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionSecurityPolicyRuleMatch) *RegionSecurityPolicyRuleMatch { return &v - }).(RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput) -} - -// In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. -// Default is false. -func (o RegionUrlMapDefaultRouteActionCorsPolicyOutput) AllowCredentials() pulumi.BoolPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionCorsPolicy) *bool { return v.AllowCredentials }).(pulumi.BoolPtrOutput) -} - -// Specifies the content for the Access-Control-Allow-Headers header. -func (o RegionUrlMapDefaultRouteActionCorsPolicyOutput) AllowHeaders() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionCorsPolicy) []string { return v.AllowHeaders }).(pulumi.StringArrayOutput) -} - -// Specifies the content for the Access-Control-Allow-Methods header. -func (o RegionUrlMapDefaultRouteActionCorsPolicyOutput) AllowMethods() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionCorsPolicy) []string { return v.AllowMethods }).(pulumi.StringArrayOutput) -} - -// Specifies the regualar expression patterns that match allowed origins. For regular expression grammar -// please see en.cppreference.com/w/cpp/regex/ecmascript -// An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. -func (o RegionUrlMapDefaultRouteActionCorsPolicyOutput) AllowOriginRegexes() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionCorsPolicy) []string { return v.AllowOriginRegexes }).(pulumi.StringArrayOutput) -} - -// Specifies the list of origins that will be allowed to do CORS requests. -// An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. -func (o RegionUrlMapDefaultRouteActionCorsPolicyOutput) AllowOrigins() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionCorsPolicy) []string { return v.AllowOrigins }).(pulumi.StringArrayOutput) + }).(RegionSecurityPolicyRuleMatchPtrOutput) } -// If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. -func (o RegionUrlMapDefaultRouteActionCorsPolicyOutput) Disabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionCorsPolicy) *bool { return v.Disabled }).(pulumi.BoolPtrOutput) +// The configuration options available when specifying versionedExpr. +// This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified. +// Structure is documented below. +func (o RegionSecurityPolicyRuleMatchOutput) Config() RegionSecurityPolicyRuleMatchConfigPtrOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleMatch) *RegionSecurityPolicyRuleMatchConfig { return v.Config }).(RegionSecurityPolicyRuleMatchConfigPtrOutput) } -// Specifies the content for the Access-Control-Expose-Headers header. -func (o RegionUrlMapDefaultRouteActionCorsPolicyOutput) ExposeHeaders() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionCorsPolicy) []string { return v.ExposeHeaders }).(pulumi.StringArrayOutput) +// User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. +// Structure is documented below. +func (o RegionSecurityPolicyRuleMatchOutput) Expr() RegionSecurityPolicyRuleMatchExprPtrOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleMatch) *RegionSecurityPolicyRuleMatchExpr { return v.Expr }).(RegionSecurityPolicyRuleMatchExprPtrOutput) } -// Specifies how long results of a preflight request can be cached in seconds. -// This translates to the Access-Control-Max-Age header. -func (o RegionUrlMapDefaultRouteActionCorsPolicyOutput) MaxAge() pulumi.IntPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionCorsPolicy) *int { return v.MaxAge }).(pulumi.IntPtrOutput) +// Preconfigured versioned expression. If this field is specified, config must also be specified. +// Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config. +// Possible values are: `SRC_IPS_V1`. +func (o RegionSecurityPolicyRuleMatchOutput) VersionedExpr() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleMatch) *string { return v.VersionedExpr }).(pulumi.StringPtrOutput) } -type RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput struct{ *pulumi.OutputState } +type RegionSecurityPolicyRuleMatchPtrOutput struct{ *pulumi.OutputState } -func (RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapDefaultRouteActionCorsPolicy)(nil)).Elem() +func (RegionSecurityPolicyRuleMatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionSecurityPolicyRuleMatch)(nil)).Elem() } -func (o RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput) ToRegionUrlMapDefaultRouteActionCorsPolicyPtrOutput() RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput { +func (o RegionSecurityPolicyRuleMatchPtrOutput) ToRegionSecurityPolicyRuleMatchPtrOutput() RegionSecurityPolicyRuleMatchPtrOutput { return o } -func (o RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput) ToRegionUrlMapDefaultRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput { +func (o RegionSecurityPolicyRuleMatchPtrOutput) ToRegionSecurityPolicyRuleMatchPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchPtrOutput { return o } -func (o RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput) Elem() RegionUrlMapDefaultRouteActionCorsPolicyOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionCorsPolicy) RegionUrlMapDefaultRouteActionCorsPolicy { +func (o RegionSecurityPolicyRuleMatchPtrOutput) Elem() RegionSecurityPolicyRuleMatchOutput { + return o.ApplyT(func(v *RegionSecurityPolicyRuleMatch) RegionSecurityPolicyRuleMatch { if v != nil { return *v } - var ret RegionUrlMapDefaultRouteActionCorsPolicy + var ret RegionSecurityPolicyRuleMatch return ret - }).(RegionUrlMapDefaultRouteActionCorsPolicyOutput) -} - -// In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. -// Default is false. -func (o RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput) AllowCredentials() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionCorsPolicy) *bool { - if v == nil { - return nil - } - return v.AllowCredentials - }).(pulumi.BoolPtrOutput) -} - -// Specifies the content for the Access-Control-Allow-Headers header. -func (o RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput) AllowHeaders() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionCorsPolicy) []string { - if v == nil { - return nil - } - return v.AllowHeaders - }).(pulumi.StringArrayOutput) -} - -// Specifies the content for the Access-Control-Allow-Methods header. -func (o RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput) AllowMethods() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionCorsPolicy) []string { - if v == nil { - return nil - } - return v.AllowMethods - }).(pulumi.StringArrayOutput) -} - -// Specifies the regualar expression patterns that match allowed origins. For regular expression grammar -// please see en.cppreference.com/w/cpp/regex/ecmascript -// An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. -func (o RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput) AllowOriginRegexes() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionCorsPolicy) []string { - if v == nil { - return nil - } - return v.AllowOriginRegexes - }).(pulumi.StringArrayOutput) -} - -// Specifies the list of origins that will be allowed to do CORS requests. -// An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. -func (o RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput) AllowOrigins() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionCorsPolicy) []string { - if v == nil { - return nil - } - return v.AllowOrigins - }).(pulumi.StringArrayOutput) + }).(RegionSecurityPolicyRuleMatchOutput) } -// If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. -func (o RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput) Disabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionCorsPolicy) *bool { +// The configuration options available when specifying versionedExpr. +// This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified. +// Structure is documented below. +func (o RegionSecurityPolicyRuleMatchPtrOutput) Config() RegionSecurityPolicyRuleMatchConfigPtrOutput { + return o.ApplyT(func(v *RegionSecurityPolicyRuleMatch) *RegionSecurityPolicyRuleMatchConfig { if v == nil { return nil } - return v.Disabled - }).(pulumi.BoolPtrOutput) + return v.Config + }).(RegionSecurityPolicyRuleMatchConfigPtrOutput) } -// Specifies the content for the Access-Control-Expose-Headers header. -func (o RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput) ExposeHeaders() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionCorsPolicy) []string { +// User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. +// Structure is documented below. +func (o RegionSecurityPolicyRuleMatchPtrOutput) Expr() RegionSecurityPolicyRuleMatchExprPtrOutput { + return o.ApplyT(func(v *RegionSecurityPolicyRuleMatch) *RegionSecurityPolicyRuleMatchExpr { if v == nil { return nil } - return v.ExposeHeaders - }).(pulumi.StringArrayOutput) + return v.Expr + }).(RegionSecurityPolicyRuleMatchExprPtrOutput) } -// Specifies how long results of a preflight request can be cached in seconds. -// This translates to the Access-Control-Max-Age header. -func (o RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput) MaxAge() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionCorsPolicy) *int { +// Preconfigured versioned expression. If this field is specified, config must also be specified. +// Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config. +// Possible values are: `SRC_IPS_V1`. +func (o RegionSecurityPolicyRuleMatchPtrOutput) VersionedExpr() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionSecurityPolicyRuleMatch) *string { if v == nil { return nil } - return v.MaxAge - }).(pulumi.IntPtrOutput) + return v.VersionedExpr + }).(pulumi.StringPtrOutput) } -type RegionUrlMapDefaultRouteActionFaultInjectionPolicy struct { - // The specification for how client requests are aborted as part of fault injection. - // Structure is documented below. - Abort *RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort `pulumi:"abort"` - // The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. - // Structure is documented below. - Delay *RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay `pulumi:"delay"` +type RegionSecurityPolicyRuleMatchConfig struct { + // CIDR IP address range. Maximum number of srcIpRanges allowed is 10. + SrcIpRanges []string `pulumi:"srcIpRanges"` } -// RegionUrlMapDefaultRouteActionFaultInjectionPolicyInput is an input type that accepts RegionUrlMapDefaultRouteActionFaultInjectionPolicyArgs and RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput values. -// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionFaultInjectionPolicyInput` via: +// RegionSecurityPolicyRuleMatchConfigInput is an input type that accepts RegionSecurityPolicyRuleMatchConfigArgs and RegionSecurityPolicyRuleMatchConfigOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyRuleMatchConfigInput` via: // -// RegionUrlMapDefaultRouteActionFaultInjectionPolicyArgs{...} -type RegionUrlMapDefaultRouteActionFaultInjectionPolicyInput interface { +// RegionSecurityPolicyRuleMatchConfigArgs{...} +type RegionSecurityPolicyRuleMatchConfigInput interface { pulumi.Input - ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput - ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput + ToRegionSecurityPolicyRuleMatchConfigOutput() RegionSecurityPolicyRuleMatchConfigOutput + ToRegionSecurityPolicyRuleMatchConfigOutputWithContext(context.Context) RegionSecurityPolicyRuleMatchConfigOutput } -type RegionUrlMapDefaultRouteActionFaultInjectionPolicyArgs struct { - // The specification for how client requests are aborted as part of fault injection. - // Structure is documented below. - Abort RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrInput `pulumi:"abort"` - // The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. - // Structure is documented below. - Delay RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrInput `pulumi:"delay"` +type RegionSecurityPolicyRuleMatchConfigArgs struct { + // CIDR IP address range. Maximum number of srcIpRanges allowed is 10. + SrcIpRanges pulumi.StringArrayInput `pulumi:"srcIpRanges"` } -func (RegionUrlMapDefaultRouteActionFaultInjectionPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapDefaultRouteActionFaultInjectionPolicy)(nil)).Elem() +func (RegionSecurityPolicyRuleMatchConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyRuleMatchConfig)(nil)).Elem() } -func (i RegionUrlMapDefaultRouteActionFaultInjectionPolicyArgs) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput { - return i.ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyOutputWithContext(context.Background()) +func (i RegionSecurityPolicyRuleMatchConfigArgs) ToRegionSecurityPolicyRuleMatchConfigOutput() RegionSecurityPolicyRuleMatchConfigOutput { + return i.ToRegionSecurityPolicyRuleMatchConfigOutputWithContext(context.Background()) } -func (i RegionUrlMapDefaultRouteActionFaultInjectionPolicyArgs) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput) +func (i RegionSecurityPolicyRuleMatchConfigArgs) ToRegionSecurityPolicyRuleMatchConfigOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleMatchConfigOutput) } -func (i RegionUrlMapDefaultRouteActionFaultInjectionPolicyArgs) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput { - return i.ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Background()) +func (i RegionSecurityPolicyRuleMatchConfigArgs) ToRegionSecurityPolicyRuleMatchConfigPtrOutput() RegionSecurityPolicyRuleMatchConfigPtrOutput { + return i.ToRegionSecurityPolicyRuleMatchConfigPtrOutputWithContext(context.Background()) } -func (i RegionUrlMapDefaultRouteActionFaultInjectionPolicyArgs) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput).ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx) +func (i RegionSecurityPolicyRuleMatchConfigArgs) ToRegionSecurityPolicyRuleMatchConfigPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleMatchConfigOutput).ToRegionSecurityPolicyRuleMatchConfigPtrOutputWithContext(ctx) } -// RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrInput is an input type that accepts RegionUrlMapDefaultRouteActionFaultInjectionPolicyArgs, RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtr and RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrInput` via: +// RegionSecurityPolicyRuleMatchConfigPtrInput is an input type that accepts RegionSecurityPolicyRuleMatchConfigArgs, RegionSecurityPolicyRuleMatchConfigPtr and RegionSecurityPolicyRuleMatchConfigPtrOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyRuleMatchConfigPtrInput` via: // -// RegionUrlMapDefaultRouteActionFaultInjectionPolicyArgs{...} +// RegionSecurityPolicyRuleMatchConfigArgs{...} // // or: // // nil -type RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrInput interface { +type RegionSecurityPolicyRuleMatchConfigPtrInput interface { pulumi.Input - ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput - ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput + ToRegionSecurityPolicyRuleMatchConfigPtrOutput() RegionSecurityPolicyRuleMatchConfigPtrOutput + ToRegionSecurityPolicyRuleMatchConfigPtrOutputWithContext(context.Context) RegionSecurityPolicyRuleMatchConfigPtrOutput } -type regionUrlMapDefaultRouteActionFaultInjectionPolicyPtrType RegionUrlMapDefaultRouteActionFaultInjectionPolicyArgs +type regionSecurityPolicyRuleMatchConfigPtrType RegionSecurityPolicyRuleMatchConfigArgs -func RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtr(v *RegionUrlMapDefaultRouteActionFaultInjectionPolicyArgs) RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrInput { - return (*regionUrlMapDefaultRouteActionFaultInjectionPolicyPtrType)(v) +func RegionSecurityPolicyRuleMatchConfigPtr(v *RegionSecurityPolicyRuleMatchConfigArgs) RegionSecurityPolicyRuleMatchConfigPtrInput { + return (*regionSecurityPolicyRuleMatchConfigPtrType)(v) } -func (*regionUrlMapDefaultRouteActionFaultInjectionPolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapDefaultRouteActionFaultInjectionPolicy)(nil)).Elem() +func (*regionSecurityPolicyRuleMatchConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionSecurityPolicyRuleMatchConfig)(nil)).Elem() } -func (i *regionUrlMapDefaultRouteActionFaultInjectionPolicyPtrType) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput { - return i.ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Background()) +func (i *regionSecurityPolicyRuleMatchConfigPtrType) ToRegionSecurityPolicyRuleMatchConfigPtrOutput() RegionSecurityPolicyRuleMatchConfigPtrOutput { + return i.ToRegionSecurityPolicyRuleMatchConfigPtrOutputWithContext(context.Background()) } -func (i *regionUrlMapDefaultRouteActionFaultInjectionPolicyPtrType) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput) +func (i *regionSecurityPolicyRuleMatchConfigPtrType) ToRegionSecurityPolicyRuleMatchConfigPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleMatchConfigPtrOutput) } -type RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput struct{ *pulumi.OutputState } +type RegionSecurityPolicyRuleMatchConfigOutput struct{ *pulumi.OutputState } -func (RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapDefaultRouteActionFaultInjectionPolicy)(nil)).Elem() +func (RegionSecurityPolicyRuleMatchConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyRuleMatchConfig)(nil)).Elem() } -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput { +func (o RegionSecurityPolicyRuleMatchConfigOutput) ToRegionSecurityPolicyRuleMatchConfigOutput() RegionSecurityPolicyRuleMatchConfigOutput { return o } -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput { +func (o RegionSecurityPolicyRuleMatchConfigOutput) ToRegionSecurityPolicyRuleMatchConfigOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchConfigOutput { return o } -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput { - return o.ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Background()) +func (o RegionSecurityPolicyRuleMatchConfigOutput) ToRegionSecurityPolicyRuleMatchConfigPtrOutput() RegionSecurityPolicyRuleMatchConfigPtrOutput { + return o.ToRegionSecurityPolicyRuleMatchConfigPtrOutputWithContext(context.Background()) } -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapDefaultRouteActionFaultInjectionPolicy) *RegionUrlMapDefaultRouteActionFaultInjectionPolicy { +func (o RegionSecurityPolicyRuleMatchConfigOutput) ToRegionSecurityPolicyRuleMatchConfigPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionSecurityPolicyRuleMatchConfig) *RegionSecurityPolicyRuleMatchConfig { return &v - }).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput) -} - -// The specification for how client requests are aborted as part of fault injection. -// Structure is documented below. -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput) Abort() RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionFaultInjectionPolicy) *RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort { - return v.Abort - }).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) + }).(RegionSecurityPolicyRuleMatchConfigPtrOutput) } -// The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. -// Structure is documented below. -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput) Delay() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionFaultInjectionPolicy) *RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay { - return v.Delay - }).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) +// CIDR IP address range. Maximum number of srcIpRanges allowed is 10. +func (o RegionSecurityPolicyRuleMatchConfigOutput) SrcIpRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleMatchConfig) []string { return v.SrcIpRanges }).(pulumi.StringArrayOutput) } -type RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput struct{ *pulumi.OutputState } +type RegionSecurityPolicyRuleMatchConfigPtrOutput struct{ *pulumi.OutputState } -func (RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapDefaultRouteActionFaultInjectionPolicy)(nil)).Elem() +func (RegionSecurityPolicyRuleMatchConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionSecurityPolicyRuleMatchConfig)(nil)).Elem() } -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput { +func (o RegionSecurityPolicyRuleMatchConfigPtrOutput) ToRegionSecurityPolicyRuleMatchConfigPtrOutput() RegionSecurityPolicyRuleMatchConfigPtrOutput { return o } -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput { +func (o RegionSecurityPolicyRuleMatchConfigPtrOutput) ToRegionSecurityPolicyRuleMatchConfigPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchConfigPtrOutput { return o } -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput) Elem() RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionFaultInjectionPolicy) RegionUrlMapDefaultRouteActionFaultInjectionPolicy { +func (o RegionSecurityPolicyRuleMatchConfigPtrOutput) Elem() RegionSecurityPolicyRuleMatchConfigOutput { + return o.ApplyT(func(v *RegionSecurityPolicyRuleMatchConfig) RegionSecurityPolicyRuleMatchConfig { if v != nil { return *v } - var ret RegionUrlMapDefaultRouteActionFaultInjectionPolicy + var ret RegionSecurityPolicyRuleMatchConfig return ret - }).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput) -} - -// The specification for how client requests are aborted as part of fault injection. -// Structure is documented below. -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput) Abort() RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionFaultInjectionPolicy) *RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort { - if v == nil { - return nil - } - return v.Abort - }).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) + }).(RegionSecurityPolicyRuleMatchConfigOutput) } -// The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. -// Structure is documented below. -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput) Delay() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionFaultInjectionPolicy) *RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay { +// CIDR IP address range. Maximum number of srcIpRanges allowed is 10. +func (o RegionSecurityPolicyRuleMatchConfigPtrOutput) SrcIpRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RegionSecurityPolicyRuleMatchConfig) []string { if v == nil { return nil } - return v.Delay - }).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) + return v.SrcIpRanges + }).(pulumi.StringArrayOutput) } -type RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort struct { - // The HTTP status code used to abort the request. - // The value must be between 200 and 599 inclusive. - HttpStatus *int `pulumi:"httpStatus"` - // The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. - // The value must be between 0.0 and 100.0 inclusive. - Percentage *float64 `pulumi:"percentage"` +type RegionSecurityPolicyRuleMatchExpr struct { + // Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported. + Expression string `pulumi:"expression"` } -// RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortInput is an input type that accepts RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortArgs and RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput values. -// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortInput` via: +// RegionSecurityPolicyRuleMatchExprInput is an input type that accepts RegionSecurityPolicyRuleMatchExprArgs and RegionSecurityPolicyRuleMatchExprOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyRuleMatchExprInput` via: // -// RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortArgs{...} -type RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortInput interface { +// RegionSecurityPolicyRuleMatchExprArgs{...} +type RegionSecurityPolicyRuleMatchExprInput interface { pulumi.Input - ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput - ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput + ToRegionSecurityPolicyRuleMatchExprOutput() RegionSecurityPolicyRuleMatchExprOutput + ToRegionSecurityPolicyRuleMatchExprOutputWithContext(context.Context) RegionSecurityPolicyRuleMatchExprOutput } -type RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortArgs struct { - // The HTTP status code used to abort the request. - // The value must be between 200 and 599 inclusive. - HttpStatus pulumi.IntPtrInput `pulumi:"httpStatus"` - // The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. - // The value must be between 0.0 and 100.0 inclusive. - Percentage pulumi.Float64PtrInput `pulumi:"percentage"` +type RegionSecurityPolicyRuleMatchExprArgs struct { + // Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported. + Expression pulumi.StringInput `pulumi:"expression"` } -func (RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort)(nil)).Elem() +func (RegionSecurityPolicyRuleMatchExprArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyRuleMatchExpr)(nil)).Elem() } -func (i RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortArgs) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput { - return i.ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutputWithContext(context.Background()) +func (i RegionSecurityPolicyRuleMatchExprArgs) ToRegionSecurityPolicyRuleMatchExprOutput() RegionSecurityPolicyRuleMatchExprOutput { + return i.ToRegionSecurityPolicyRuleMatchExprOutputWithContext(context.Background()) } -func (i RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortArgs) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput) +func (i RegionSecurityPolicyRuleMatchExprArgs) ToRegionSecurityPolicyRuleMatchExprOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchExprOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleMatchExprOutput) } -func (i RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortArgs) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { - return i.ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Background()) +func (i RegionSecurityPolicyRuleMatchExprArgs) ToRegionSecurityPolicyRuleMatchExprPtrOutput() RegionSecurityPolicyRuleMatchExprPtrOutput { + return i.ToRegionSecurityPolicyRuleMatchExprPtrOutputWithContext(context.Background()) } -func (i RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortArgs) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput).ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx) +func (i RegionSecurityPolicyRuleMatchExprArgs) ToRegionSecurityPolicyRuleMatchExprPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchExprPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleMatchExprOutput).ToRegionSecurityPolicyRuleMatchExprPtrOutputWithContext(ctx) } -// RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrInput is an input type that accepts RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortArgs, RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtr and RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrInput` via: +// RegionSecurityPolicyRuleMatchExprPtrInput is an input type that accepts RegionSecurityPolicyRuleMatchExprArgs, RegionSecurityPolicyRuleMatchExprPtr and RegionSecurityPolicyRuleMatchExprPtrOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyRuleMatchExprPtrInput` via: // -// RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortArgs{...} +// RegionSecurityPolicyRuleMatchExprArgs{...} // // or: // // nil -type RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrInput interface { +type RegionSecurityPolicyRuleMatchExprPtrInput interface { pulumi.Input - ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput - ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput + ToRegionSecurityPolicyRuleMatchExprPtrOutput() RegionSecurityPolicyRuleMatchExprPtrOutput + ToRegionSecurityPolicyRuleMatchExprPtrOutputWithContext(context.Context) RegionSecurityPolicyRuleMatchExprPtrOutput } -type regionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrType RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortArgs +type regionSecurityPolicyRuleMatchExprPtrType RegionSecurityPolicyRuleMatchExprArgs -func RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtr(v *RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortArgs) RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrInput { - return (*regionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrType)(v) +func RegionSecurityPolicyRuleMatchExprPtr(v *RegionSecurityPolicyRuleMatchExprArgs) RegionSecurityPolicyRuleMatchExprPtrInput { + return (*regionSecurityPolicyRuleMatchExprPtrType)(v) } -func (*regionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort)(nil)).Elem() +func (*regionSecurityPolicyRuleMatchExprPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionSecurityPolicyRuleMatchExpr)(nil)).Elem() } -func (i *regionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrType) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { - return i.ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Background()) +func (i *regionSecurityPolicyRuleMatchExprPtrType) ToRegionSecurityPolicyRuleMatchExprPtrOutput() RegionSecurityPolicyRuleMatchExprPtrOutput { + return i.ToRegionSecurityPolicyRuleMatchExprPtrOutputWithContext(context.Background()) } -func (i *regionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrType) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) +func (i *regionSecurityPolicyRuleMatchExprPtrType) ToRegionSecurityPolicyRuleMatchExprPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchExprPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleMatchExprPtrOutput) } -type RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput struct{ *pulumi.OutputState } +type RegionSecurityPolicyRuleMatchExprOutput struct{ *pulumi.OutputState } -func (RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort)(nil)).Elem() +func (RegionSecurityPolicyRuleMatchExprOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyRuleMatchExpr)(nil)).Elem() } -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput { +func (o RegionSecurityPolicyRuleMatchExprOutput) ToRegionSecurityPolicyRuleMatchExprOutput() RegionSecurityPolicyRuleMatchExprOutput { return o } -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput { +func (o RegionSecurityPolicyRuleMatchExprOutput) ToRegionSecurityPolicyRuleMatchExprOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchExprOutput { return o } -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { - return o.ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Background()) +func (o RegionSecurityPolicyRuleMatchExprOutput) ToRegionSecurityPolicyRuleMatchExprPtrOutput() RegionSecurityPolicyRuleMatchExprPtrOutput { + return o.ToRegionSecurityPolicyRuleMatchExprPtrOutputWithContext(context.Background()) } -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort) *RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort { +func (o RegionSecurityPolicyRuleMatchExprOutput) ToRegionSecurityPolicyRuleMatchExprPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchExprPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionSecurityPolicyRuleMatchExpr) *RegionSecurityPolicyRuleMatchExpr { return &v - }).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) -} - -// The HTTP status code used to abort the request. -// The value must be between 200 and 599 inclusive. -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput) HttpStatus() pulumi.IntPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort) *int { return v.HttpStatus }).(pulumi.IntPtrOutput) + }).(RegionSecurityPolicyRuleMatchExprPtrOutput) } -// The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. -// The value must be between 0.0 and 100.0 inclusive. -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput) Percentage() pulumi.Float64PtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort) *float64 { return v.Percentage }).(pulumi.Float64PtrOutput) +// Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported. +func (o RegionSecurityPolicyRuleMatchExprOutput) Expression() pulumi.StringOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleMatchExpr) string { return v.Expression }).(pulumi.StringOutput) } -type RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput struct{ *pulumi.OutputState } +type RegionSecurityPolicyRuleMatchExprPtrOutput struct{ *pulumi.OutputState } -func (RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort)(nil)).Elem() +func (RegionSecurityPolicyRuleMatchExprPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionSecurityPolicyRuleMatchExpr)(nil)).Elem() } -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { +func (o RegionSecurityPolicyRuleMatchExprPtrOutput) ToRegionSecurityPolicyRuleMatchExprPtrOutput() RegionSecurityPolicyRuleMatchExprPtrOutput { return o } -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { +func (o RegionSecurityPolicyRuleMatchExprPtrOutput) ToRegionSecurityPolicyRuleMatchExprPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleMatchExprPtrOutput { return o } -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) Elem() RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort) RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort { +func (o RegionSecurityPolicyRuleMatchExprPtrOutput) Elem() RegionSecurityPolicyRuleMatchExprOutput { + return o.ApplyT(func(v *RegionSecurityPolicyRuleMatchExpr) RegionSecurityPolicyRuleMatchExpr { if v != nil { return *v } - var ret RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort + var ret RegionSecurityPolicyRuleMatchExpr return ret - }).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput) -} - -// The HTTP status code used to abort the request. -// The value must be between 200 and 599 inclusive. -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) HttpStatus() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort) *int { - if v == nil { - return nil - } - return v.HttpStatus - }).(pulumi.IntPtrOutput) + }).(RegionSecurityPolicyRuleMatchExprOutput) } -// The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. -// The value must be between 0.0 and 100.0 inclusive. -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) Percentage() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort) *float64 { +// Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported. +func (o RegionSecurityPolicyRuleMatchExprPtrOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionSecurityPolicyRuleMatchExpr) *string { if v == nil { return nil } - return v.Percentage - }).(pulumi.Float64PtrOutput) + return &v.Expression + }).(pulumi.StringPtrOutput) } -type RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay struct { - // Specifies the value of the fixed delay interval. +type RegionSecurityPolicyRuleNetworkMatch struct { + // Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format. + DestIpRanges []string `pulumi:"destIpRanges"` + // Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). + DestPorts []string `pulumi:"destPorts"` + // IPv4 protocol / IPv6 next header (after extension headers). Each element can be an 8-bit unsigned decimal number (e.g. "6"), range (e.g. "253-254"), or one of the following protocol names: "tcp", "udp", "icmp", "esp", "ah", "ipip", or "sctp". + IpProtocols []string `pulumi:"ipProtocols"` + // BGP Autonomous System Number associated with the source IP address. + SrcAsns []int `pulumi:"srcAsns"` + // Source IPv4/IPv6 addresses or CIDR prefixes, in standard text format. + SrcIpRanges []string `pulumi:"srcIpRanges"` + // Source port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). + SrcPorts []string `pulumi:"srcPorts"` + // Two-letter ISO 3166-1 alpha-2 country code associated with the source IP address. + SrcRegionCodes []string `pulumi:"srcRegionCodes"` + // User-defined fields. Each element names a defined field and lists the matching values for that field. // Structure is documented below. - FixedDelay *RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay `pulumi:"fixedDelay"` - // The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. - // The value must be between 0.0 and 100.0 inclusive. - Percentage *float64 `pulumi:"percentage"` + UserDefinedFields []RegionSecurityPolicyRuleNetworkMatchUserDefinedField `pulumi:"userDefinedFields"` } -// RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayInput is an input type that accepts RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayArgs and RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput values. -// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayInput` via: +// RegionSecurityPolicyRuleNetworkMatchInput is an input type that accepts RegionSecurityPolicyRuleNetworkMatchArgs and RegionSecurityPolicyRuleNetworkMatchOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyRuleNetworkMatchInput` via: // -// RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayArgs{...} -type RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayInput interface { +// RegionSecurityPolicyRuleNetworkMatchArgs{...} +type RegionSecurityPolicyRuleNetworkMatchInput interface { pulumi.Input - ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput - ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput + ToRegionSecurityPolicyRuleNetworkMatchOutput() RegionSecurityPolicyRuleNetworkMatchOutput + ToRegionSecurityPolicyRuleNetworkMatchOutputWithContext(context.Context) RegionSecurityPolicyRuleNetworkMatchOutput } -type RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayArgs struct { - // Specifies the value of the fixed delay interval. +type RegionSecurityPolicyRuleNetworkMatchArgs struct { + // Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format. + DestIpRanges pulumi.StringArrayInput `pulumi:"destIpRanges"` + // Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). + DestPorts pulumi.StringArrayInput `pulumi:"destPorts"` + // IPv4 protocol / IPv6 next header (after extension headers). Each element can be an 8-bit unsigned decimal number (e.g. "6"), range (e.g. "253-254"), or one of the following protocol names: "tcp", "udp", "icmp", "esp", "ah", "ipip", or "sctp". + IpProtocols pulumi.StringArrayInput `pulumi:"ipProtocols"` + // BGP Autonomous System Number associated with the source IP address. + SrcAsns pulumi.IntArrayInput `pulumi:"srcAsns"` + // Source IPv4/IPv6 addresses or CIDR prefixes, in standard text format. + SrcIpRanges pulumi.StringArrayInput `pulumi:"srcIpRanges"` + // Source port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). + SrcPorts pulumi.StringArrayInput `pulumi:"srcPorts"` + // Two-letter ISO 3166-1 alpha-2 country code associated with the source IP address. + SrcRegionCodes pulumi.StringArrayInput `pulumi:"srcRegionCodes"` + // User-defined fields. Each element names a defined field and lists the matching values for that field. // Structure is documented below. - FixedDelay RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput `pulumi:"fixedDelay"` - // The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. - // The value must be between 0.0 and 100.0 inclusive. - Percentage pulumi.Float64PtrInput `pulumi:"percentage"` + UserDefinedFields RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayInput `pulumi:"userDefinedFields"` } -func (RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay)(nil)).Elem() +func (RegionSecurityPolicyRuleNetworkMatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyRuleNetworkMatch)(nil)).Elem() } -func (i RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayArgs) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput { - return i.ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutputWithContext(context.Background()) +func (i RegionSecurityPolicyRuleNetworkMatchArgs) ToRegionSecurityPolicyRuleNetworkMatchOutput() RegionSecurityPolicyRuleNetworkMatchOutput { + return i.ToRegionSecurityPolicyRuleNetworkMatchOutputWithContext(context.Background()) } -func (i RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayArgs) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput) +func (i RegionSecurityPolicyRuleNetworkMatchArgs) ToRegionSecurityPolicyRuleNetworkMatchOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleNetworkMatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleNetworkMatchOutput) } -func (i RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayArgs) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { - return i.ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Background()) +func (i RegionSecurityPolicyRuleNetworkMatchArgs) ToRegionSecurityPolicyRuleNetworkMatchPtrOutput() RegionSecurityPolicyRuleNetworkMatchPtrOutput { + return i.ToRegionSecurityPolicyRuleNetworkMatchPtrOutputWithContext(context.Background()) } -func (i RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayArgs) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput).ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx) +func (i RegionSecurityPolicyRuleNetworkMatchArgs) ToRegionSecurityPolicyRuleNetworkMatchPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleNetworkMatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleNetworkMatchOutput).ToRegionSecurityPolicyRuleNetworkMatchPtrOutputWithContext(ctx) } -// RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrInput is an input type that accepts RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayArgs, RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtr and RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrInput` via: +// RegionSecurityPolicyRuleNetworkMatchPtrInput is an input type that accepts RegionSecurityPolicyRuleNetworkMatchArgs, RegionSecurityPolicyRuleNetworkMatchPtr and RegionSecurityPolicyRuleNetworkMatchPtrOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyRuleNetworkMatchPtrInput` via: // -// RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayArgs{...} +// RegionSecurityPolicyRuleNetworkMatchArgs{...} // // or: // // nil -type RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrInput interface { +type RegionSecurityPolicyRuleNetworkMatchPtrInput interface { pulumi.Input - ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput - ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput + ToRegionSecurityPolicyRuleNetworkMatchPtrOutput() RegionSecurityPolicyRuleNetworkMatchPtrOutput + ToRegionSecurityPolicyRuleNetworkMatchPtrOutputWithContext(context.Context) RegionSecurityPolicyRuleNetworkMatchPtrOutput } -type regionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrType RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayArgs +type regionSecurityPolicyRuleNetworkMatchPtrType RegionSecurityPolicyRuleNetworkMatchArgs -func RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtr(v *RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayArgs) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrInput { - return (*regionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrType)(v) +func RegionSecurityPolicyRuleNetworkMatchPtr(v *RegionSecurityPolicyRuleNetworkMatchArgs) RegionSecurityPolicyRuleNetworkMatchPtrInput { + return (*regionSecurityPolicyRuleNetworkMatchPtrType)(v) } -func (*regionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay)(nil)).Elem() +func (*regionSecurityPolicyRuleNetworkMatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionSecurityPolicyRuleNetworkMatch)(nil)).Elem() } -func (i *regionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrType) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { - return i.ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Background()) +func (i *regionSecurityPolicyRuleNetworkMatchPtrType) ToRegionSecurityPolicyRuleNetworkMatchPtrOutput() RegionSecurityPolicyRuleNetworkMatchPtrOutput { + return i.ToRegionSecurityPolicyRuleNetworkMatchPtrOutputWithContext(context.Background()) } -func (i *regionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrType) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) +func (i *regionSecurityPolicyRuleNetworkMatchPtrType) ToRegionSecurityPolicyRuleNetworkMatchPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleNetworkMatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleNetworkMatchPtrOutput) } -type RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput struct{ *pulumi.OutputState } +type RegionSecurityPolicyRuleNetworkMatchOutput struct{ *pulumi.OutputState } -func (RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay)(nil)).Elem() +func (RegionSecurityPolicyRuleNetworkMatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyRuleNetworkMatch)(nil)).Elem() } -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput { +func (o RegionSecurityPolicyRuleNetworkMatchOutput) ToRegionSecurityPolicyRuleNetworkMatchOutput() RegionSecurityPolicyRuleNetworkMatchOutput { return o } -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput { +func (o RegionSecurityPolicyRuleNetworkMatchOutput) ToRegionSecurityPolicyRuleNetworkMatchOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleNetworkMatchOutput { return o } -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { - return o.ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Background()) +func (o RegionSecurityPolicyRuleNetworkMatchOutput) ToRegionSecurityPolicyRuleNetworkMatchPtrOutput() RegionSecurityPolicyRuleNetworkMatchPtrOutput { + return o.ToRegionSecurityPolicyRuleNetworkMatchPtrOutputWithContext(context.Background()) } -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay) *RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay { +func (o RegionSecurityPolicyRuleNetworkMatchOutput) ToRegionSecurityPolicyRuleNetworkMatchPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleNetworkMatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionSecurityPolicyRuleNetworkMatch) *RegionSecurityPolicyRuleNetworkMatch { return &v - }).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) + }).(RegionSecurityPolicyRuleNetworkMatchPtrOutput) } -// Specifies the value of the fixed delay interval. -// Structure is documented below. -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput) FixedDelay() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay) *RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay { - return v.FixedDelay - }).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) +// Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format. +func (o RegionSecurityPolicyRuleNetworkMatchOutput) DestIpRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleNetworkMatch) []string { return v.DestIpRanges }).(pulumi.StringArrayOutput) } -// The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. -// The value must be between 0.0 and 100.0 inclusive. -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput) Percentage() pulumi.Float64PtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay) *float64 { return v.Percentage }).(pulumi.Float64PtrOutput) +// Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). +func (o RegionSecurityPolicyRuleNetworkMatchOutput) DestPorts() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleNetworkMatch) []string { return v.DestPorts }).(pulumi.StringArrayOutput) } -type RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput struct{ *pulumi.OutputState } +// IPv4 protocol / IPv6 next header (after extension headers). Each element can be an 8-bit unsigned decimal number (e.g. "6"), range (e.g. "253-254"), or one of the following protocol names: "tcp", "udp", "icmp", "esp", "ah", "ipip", or "sctp". +func (o RegionSecurityPolicyRuleNetworkMatchOutput) IpProtocols() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleNetworkMatch) []string { return v.IpProtocols }).(pulumi.StringArrayOutput) +} -func (RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay)(nil)).Elem() +// BGP Autonomous System Number associated with the source IP address. +func (o RegionSecurityPolicyRuleNetworkMatchOutput) SrcAsns() pulumi.IntArrayOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleNetworkMatch) []int { return v.SrcAsns }).(pulumi.IntArrayOutput) } -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { +// Source IPv4/IPv6 addresses or CIDR prefixes, in standard text format. +func (o RegionSecurityPolicyRuleNetworkMatchOutput) SrcIpRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleNetworkMatch) []string { return v.SrcIpRanges }).(pulumi.StringArrayOutput) +} + +// Source port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). +func (o RegionSecurityPolicyRuleNetworkMatchOutput) SrcPorts() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleNetworkMatch) []string { return v.SrcPorts }).(pulumi.StringArrayOutput) +} + +// Two-letter ISO 3166-1 alpha-2 country code associated with the source IP address. +func (o RegionSecurityPolicyRuleNetworkMatchOutput) SrcRegionCodes() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleNetworkMatch) []string { return v.SrcRegionCodes }).(pulumi.StringArrayOutput) +} + +// User-defined fields. Each element names a defined field and lists the matching values for that field. +// Structure is documented below. +func (o RegionSecurityPolicyRuleNetworkMatchOutput) UserDefinedFields() RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleNetworkMatch) []RegionSecurityPolicyRuleNetworkMatchUserDefinedField { + return v.UserDefinedFields + }).(RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput) +} + +type RegionSecurityPolicyRuleNetworkMatchPtrOutput struct{ *pulumi.OutputState } + +func (RegionSecurityPolicyRuleNetworkMatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionSecurityPolicyRuleNetworkMatch)(nil)).Elem() +} + +func (o RegionSecurityPolicyRuleNetworkMatchPtrOutput) ToRegionSecurityPolicyRuleNetworkMatchPtrOutput() RegionSecurityPolicyRuleNetworkMatchPtrOutput { return o } -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { +func (o RegionSecurityPolicyRuleNetworkMatchPtrOutput) ToRegionSecurityPolicyRuleNetworkMatchPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleNetworkMatchPtrOutput { return o } -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) Elem() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay { +func (o RegionSecurityPolicyRuleNetworkMatchPtrOutput) Elem() RegionSecurityPolicyRuleNetworkMatchOutput { + return o.ApplyT(func(v *RegionSecurityPolicyRuleNetworkMatch) RegionSecurityPolicyRuleNetworkMatch { if v != nil { return *v } - var ret RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay + var ret RegionSecurityPolicyRuleNetworkMatch return ret - }).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput) + }).(RegionSecurityPolicyRuleNetworkMatchOutput) } -// Specifies the value of the fixed delay interval. -// Structure is documented below. -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) FixedDelay() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay) *RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay { +// Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format. +func (o RegionSecurityPolicyRuleNetworkMatchPtrOutput) DestIpRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RegionSecurityPolicyRuleNetworkMatch) []string { if v == nil { return nil } - return v.FixedDelay - }).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) + return v.DestIpRanges + }).(pulumi.StringArrayOutput) } -// The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. -// The value must be between 0.0 and 100.0 inclusive. -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) Percentage() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay) *float64 { +// Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). +func (o RegionSecurityPolicyRuleNetworkMatchPtrOutput) DestPorts() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RegionSecurityPolicyRuleNetworkMatch) []string { if v == nil { return nil } - return v.Percentage - }).(pulumi.Float64PtrOutput) + return v.DestPorts + }).(pulumi.StringArrayOutput) } -type RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay struct { - // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are - // represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. - Nanos *int `pulumi:"nanos"` - // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. - // Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years - Seconds *string `pulumi:"seconds"` +// IPv4 protocol / IPv6 next header (after extension headers). Each element can be an 8-bit unsigned decimal number (e.g. "6"), range (e.g. "253-254"), or one of the following protocol names: "tcp", "udp", "icmp", "esp", "ah", "ipip", or "sctp". +func (o RegionSecurityPolicyRuleNetworkMatchPtrOutput) IpProtocols() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RegionSecurityPolicyRuleNetworkMatch) []string { + if v == nil { + return nil + } + return v.IpProtocols + }).(pulumi.StringArrayOutput) } -// RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayInput is an input type that accepts RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs and RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput values. -// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayInput` via: -// -// RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs{...} -type RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayInput interface { - pulumi.Input +// BGP Autonomous System Number associated with the source IP address. +func (o RegionSecurityPolicyRuleNetworkMatchPtrOutput) SrcAsns() pulumi.IntArrayOutput { + return o.ApplyT(func(v *RegionSecurityPolicyRuleNetworkMatch) []int { + if v == nil { + return nil + } + return v.SrcAsns + }).(pulumi.IntArrayOutput) +} - ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput - ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput +// Source IPv4/IPv6 addresses or CIDR prefixes, in standard text format. +func (o RegionSecurityPolicyRuleNetworkMatchPtrOutput) SrcIpRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RegionSecurityPolicyRuleNetworkMatch) []string { + if v == nil { + return nil + } + return v.SrcIpRanges + }).(pulumi.StringArrayOutput) } -type RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs struct { - // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are - // represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. - Nanos pulumi.IntPtrInput `pulumi:"nanos"` - // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. - // Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years - Seconds pulumi.StringPtrInput `pulumi:"seconds"` +// Source port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). +func (o RegionSecurityPolicyRuleNetworkMatchPtrOutput) SrcPorts() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RegionSecurityPolicyRuleNetworkMatch) []string { + if v == nil { + return nil + } + return v.SrcPorts + }).(pulumi.StringArrayOutput) } -func (RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() +// Two-letter ISO 3166-1 alpha-2 country code associated with the source IP address. +func (o RegionSecurityPolicyRuleNetworkMatchPtrOutput) SrcRegionCodes() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RegionSecurityPolicyRuleNetworkMatch) []string { + if v == nil { + return nil + } + return v.SrcRegionCodes + }).(pulumi.StringArrayOutput) } -func (i RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput { - return i.ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(context.Background()) +// User-defined fields. Each element names a defined field and lists the matching values for that field. +// Structure is documented below. +func (o RegionSecurityPolicyRuleNetworkMatchPtrOutput) UserDefinedFields() RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput { + return o.ApplyT(func(v *RegionSecurityPolicyRuleNetworkMatch) []RegionSecurityPolicyRuleNetworkMatchUserDefinedField { + if v == nil { + return nil + } + return v.UserDefinedFields + }).(RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput) } -func (i RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) -} - -func (i RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return i.ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Background()) -} - -func (i RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput).ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx) +type RegionSecurityPolicyRuleNetworkMatchUserDefinedField struct { + // Name of the user-defined field, as given in the definition. + Name *string `pulumi:"name"` + // Matching values of the field. Each element can be a 32-bit unsigned decimal or hexadecimal (starting with "0x") number (e.g. "64") or range (e.g. "0x400-0x7ff"). + Values []string `pulumi:"values"` } -// RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput is an input type that accepts RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs, RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtr and RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput` via: -// -// RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs{...} -// -// or: +// RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldInput is an input type that accepts RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArgs and RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldInput` via: // -// nil -type RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput interface { +// RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArgs{...} +type RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldInput interface { pulumi.Input - ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput - ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput + ToRegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput() RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput + ToRegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutputWithContext(context.Context) RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput } -type regionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrType RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs - -func RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtr(v *RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput { - return (*regionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrType)(v) +type RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArgs struct { + // Name of the user-defined field, as given in the definition. + Name pulumi.StringPtrInput `pulumi:"name"` + // Matching values of the field. Each element can be a 32-bit unsigned decimal or hexadecimal (starting with "0x") number (e.g. "64") or range (e.g. "0x400-0x7ff"). + Values pulumi.StringArrayInput `pulumi:"values"` } -func (*regionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() +func (RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyRuleNetworkMatchUserDefinedField)(nil)).Elem() } -func (i *regionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrType) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return i.ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Background()) +func (i RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArgs) ToRegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput() RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput { + return i.ToRegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutputWithContext(context.Background()) } -func (i *regionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrType) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) +func (i RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArgs) ToRegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput) } -type RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput struct{ *pulumi.OutputState } +// RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayInput is an input type that accepts RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArray and RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayInput` via: +// +// RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArray{ RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArgs{...} } +type RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayInput interface { + pulumi.Input -func (RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() + ToRegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput() RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput + ToRegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutputWithContext(context.Context) RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput } -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput { - return o -} +type RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArray []RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldInput -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput { - return o +func (RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionSecurityPolicyRuleNetworkMatchUserDefinedField)(nil)).Elem() } -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return o.ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Background()) +func (i RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArray) ToRegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput() RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput { + return i.ToRegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutputWithContext(context.Background()) } -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) *RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay { - return &v - }).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) +func (i RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArray) ToRegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput) } -// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are -// represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) Nanos() pulumi.IntPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) *int { return v.Nanos }).(pulumi.IntPtrOutput) +type RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput struct{ *pulumi.OutputState } + +func (RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyRuleNetworkMatchUserDefinedField)(nil)).Elem() } -// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. -// Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) Seconds() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) *string { return v.Seconds }).(pulumi.StringPtrOutput) +func (o RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput) ToRegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput() RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput { + return o } -type RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput struct{ *pulumi.OutputState } +func (o RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput) ToRegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput { + return o +} -func (RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() +// Name of the user-defined field, as given in the definition. +func (o RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleNetworkMatchUserDefinedField) *string { return v.Name }).(pulumi.StringPtrOutput) } -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return o +// Matching values of the field. Each element can be a 32-bit unsigned decimal or hexadecimal (starting with "0x") number (e.g. "64") or range (e.g. "0x400-0x7ff"). +func (o RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput) Values() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleNetworkMatchUserDefinedField) []string { return v.Values }).(pulumi.StringArrayOutput) } -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return o +type RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput struct{ *pulumi.OutputState } + +func (RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionSecurityPolicyRuleNetworkMatchUserDefinedField)(nil)).Elem() } -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) Elem() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay { - if v != nil { - return *v - } - var ret RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay - return ret - }).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) +func (o RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput) ToRegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput() RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput { + return o } -// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are -// represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) Nanos() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) *int { - if v == nil { - return nil - } - return v.Nanos - }).(pulumi.IntPtrOutput) +func (o RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput) ToRegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput { + return o } -// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. -// Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years -func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) Seconds() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) *string { - if v == nil { - return nil - } - return v.Seconds - }).(pulumi.StringPtrOutput) +func (o RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArrayOutput) Index(i pulumi.IntInput) RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionSecurityPolicyRuleNetworkMatchUserDefinedField { + return vs[0].([]RegionSecurityPolicyRuleNetworkMatchUserDefinedField)[vs[1].(int)] + }).(RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldOutput) } -type RegionUrlMapDefaultRouteActionRequestMirrorPolicy struct { - // The full or partial URL to the RegionBackendService resource being mirrored to. - // The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map. - // Serverless NEG backends are not currently supported as a mirrored backend service. - BackendService *string `pulumi:"backendService"` +type RegionSecurityPolicyRulePreconfiguredWafConfig struct { + // An exclusion to apply during preconfigured WAF evaluation. + // Structure is documented below. + Exclusions []RegionSecurityPolicyRulePreconfiguredWafConfigExclusion `pulumi:"exclusions"` } -// RegionUrlMapDefaultRouteActionRequestMirrorPolicyInput is an input type that accepts RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs and RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput values. -// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionRequestMirrorPolicyInput` via: +// RegionSecurityPolicyRulePreconfiguredWafConfigInput is an input type that accepts RegionSecurityPolicyRulePreconfiguredWafConfigArgs and RegionSecurityPolicyRulePreconfiguredWafConfigOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyRulePreconfiguredWafConfigInput` via: // -// RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs{...} -type RegionUrlMapDefaultRouteActionRequestMirrorPolicyInput interface { +// RegionSecurityPolicyRulePreconfiguredWafConfigArgs{...} +type RegionSecurityPolicyRulePreconfiguredWafConfigInput interface { pulumi.Input - ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput() RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput - ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput + ToRegionSecurityPolicyRulePreconfiguredWafConfigOutput() RegionSecurityPolicyRulePreconfiguredWafConfigOutput + ToRegionSecurityPolicyRulePreconfiguredWafConfigOutputWithContext(context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigOutput } -type RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs struct { - // The full or partial URL to the RegionBackendService resource being mirrored to. - // The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map. - // Serverless NEG backends are not currently supported as a mirrored backend service. - BackendService pulumi.StringPtrInput `pulumi:"backendService"` +type RegionSecurityPolicyRulePreconfiguredWafConfigArgs struct { + // An exclusion to apply during preconfigured WAF evaluation. + // Structure is documented below. + Exclusions RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayInput `pulumi:"exclusions"` } -func (RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapDefaultRouteActionRequestMirrorPolicy)(nil)).Elem() +func (RegionSecurityPolicyRulePreconfiguredWafConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyRulePreconfiguredWafConfig)(nil)).Elem() } -func (i RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs) ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput() RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput { - return i.ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyOutputWithContext(context.Background()) +func (i RegionSecurityPolicyRulePreconfiguredWafConfigArgs) ToRegionSecurityPolicyRulePreconfiguredWafConfigOutput() RegionSecurityPolicyRulePreconfiguredWafConfigOutput { + return i.ToRegionSecurityPolicyRulePreconfiguredWafConfigOutputWithContext(context.Background()) } -func (i RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs) ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput) +func (i RegionSecurityPolicyRulePreconfiguredWafConfigArgs) ToRegionSecurityPolicyRulePreconfiguredWafConfigOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRulePreconfiguredWafConfigOutput) } -func (i RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs) ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput() RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput { - return i.ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Background()) +func (i RegionSecurityPolicyRulePreconfiguredWafConfigArgs) ToRegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput() RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput { + return i.ToRegionSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(context.Background()) } -func (i RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs) ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput).ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx) +func (i RegionSecurityPolicyRulePreconfiguredWafConfigArgs) ToRegionSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRulePreconfiguredWafConfigOutput).ToRegionSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(ctx) } -// RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrInput is an input type that accepts RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs, RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtr and RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrInput` via: +// RegionSecurityPolicyRulePreconfiguredWafConfigPtrInput is an input type that accepts RegionSecurityPolicyRulePreconfiguredWafConfigArgs, RegionSecurityPolicyRulePreconfiguredWafConfigPtr and RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyRulePreconfiguredWafConfigPtrInput` via: // -// RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs{...} +// RegionSecurityPolicyRulePreconfiguredWafConfigArgs{...} // // or: // // nil -type RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrInput interface { +type RegionSecurityPolicyRulePreconfiguredWafConfigPtrInput interface { pulumi.Input - ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput() RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput - ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput + ToRegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput() RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput + ToRegionSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput } -type regionUrlMapDefaultRouteActionRequestMirrorPolicyPtrType RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs +type regionSecurityPolicyRulePreconfiguredWafConfigPtrType RegionSecurityPolicyRulePreconfiguredWafConfigArgs -func RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtr(v *RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs) RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrInput { - return (*regionUrlMapDefaultRouteActionRequestMirrorPolicyPtrType)(v) +func RegionSecurityPolicyRulePreconfiguredWafConfigPtr(v *RegionSecurityPolicyRulePreconfiguredWafConfigArgs) RegionSecurityPolicyRulePreconfiguredWafConfigPtrInput { + return (*regionSecurityPolicyRulePreconfiguredWafConfigPtrType)(v) } -func (*regionUrlMapDefaultRouteActionRequestMirrorPolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapDefaultRouteActionRequestMirrorPolicy)(nil)).Elem() +func (*regionSecurityPolicyRulePreconfiguredWafConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionSecurityPolicyRulePreconfiguredWafConfig)(nil)).Elem() } -func (i *regionUrlMapDefaultRouteActionRequestMirrorPolicyPtrType) ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput() RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput { - return i.ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Background()) +func (i *regionSecurityPolicyRulePreconfiguredWafConfigPtrType) ToRegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput() RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput { + return i.ToRegionSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(context.Background()) } -func (i *regionUrlMapDefaultRouteActionRequestMirrorPolicyPtrType) ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput) +func (i *regionSecurityPolicyRulePreconfiguredWafConfigPtrType) ToRegionSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput) } -type RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput struct{ *pulumi.OutputState } +type RegionSecurityPolicyRulePreconfiguredWafConfigOutput struct{ *pulumi.OutputState } -func (RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapDefaultRouteActionRequestMirrorPolicy)(nil)).Elem() +func (RegionSecurityPolicyRulePreconfiguredWafConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyRulePreconfiguredWafConfig)(nil)).Elem() } -func (o RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput) ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput() RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput { +func (o RegionSecurityPolicyRulePreconfiguredWafConfigOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigOutput() RegionSecurityPolicyRulePreconfiguredWafConfigOutput { return o } -func (o RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput) ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput { +func (o RegionSecurityPolicyRulePreconfiguredWafConfigOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigOutput { return o } -func (o RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput) ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput() RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput { - return o.ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Background()) +func (o RegionSecurityPolicyRulePreconfiguredWafConfigOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput() RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput { + return o.ToRegionSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(context.Background()) } -func (o RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput) ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapDefaultRouteActionRequestMirrorPolicy) *RegionUrlMapDefaultRouteActionRequestMirrorPolicy { +func (o RegionSecurityPolicyRulePreconfiguredWafConfigOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionSecurityPolicyRulePreconfiguredWafConfig) *RegionSecurityPolicyRulePreconfiguredWafConfig { return &v - }).(RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput) + }).(RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput) } -// The full or partial URL to the RegionBackendService resource being mirrored to. -// The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map. -// Serverless NEG backends are not currently supported as a mirrored backend service. -func (o RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput) BackendService() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionRequestMirrorPolicy) *string { return v.BackendService }).(pulumi.StringPtrOutput) +// An exclusion to apply during preconfigured WAF evaluation. +// Structure is documented below. +func (o RegionSecurityPolicyRulePreconfiguredWafConfigOutput) Exclusions() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { + return o.ApplyT(func(v RegionSecurityPolicyRulePreconfiguredWafConfig) []RegionSecurityPolicyRulePreconfiguredWafConfigExclusion { + return v.Exclusions + }).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) } -type RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput struct{ *pulumi.OutputState } +type RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput struct{ *pulumi.OutputState } -func (RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapDefaultRouteActionRequestMirrorPolicy)(nil)).Elem() +func (RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionSecurityPolicyRulePreconfiguredWafConfig)(nil)).Elem() } -func (o RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput) ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput() RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput { +func (o RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput() RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput { return o } -func (o RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput) ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput { +func (o RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput { return o } -func (o RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput) Elem() RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionRequestMirrorPolicy) RegionUrlMapDefaultRouteActionRequestMirrorPolicy { +func (o RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput) Elem() RegionSecurityPolicyRulePreconfiguredWafConfigOutput { + return o.ApplyT(func(v *RegionSecurityPolicyRulePreconfiguredWafConfig) RegionSecurityPolicyRulePreconfiguredWafConfig { if v != nil { return *v } - var ret RegionUrlMapDefaultRouteActionRequestMirrorPolicy + var ret RegionSecurityPolicyRulePreconfiguredWafConfig return ret - }).(RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput) + }).(RegionSecurityPolicyRulePreconfiguredWafConfigOutput) } -// The full or partial URL to the RegionBackendService resource being mirrored to. -// The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map. -// Serverless NEG backends are not currently supported as a mirrored backend service. -func (o RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput) BackendService() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionRequestMirrorPolicy) *string { +// An exclusion to apply during preconfigured WAF evaluation. +// Structure is documented below. +func (o RegionSecurityPolicyRulePreconfiguredWafConfigPtrOutput) Exclusions() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { + return o.ApplyT(func(v *RegionSecurityPolicyRulePreconfiguredWafConfig) []RegionSecurityPolicyRulePreconfiguredWafConfigExclusion { if v == nil { return nil } - return v.BackendService - }).(pulumi.StringPtrOutput) + return v.Exclusions + }).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) } -type RegionUrlMapDefaultRouteActionRetryPolicy struct { - // Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. - NumRetries *int `pulumi:"numRetries"` - // Specifies a non-zero timeout per retry attempt. - // If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, - // will use the largest timeout among all backend services associated with the route. +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusion struct { + // Request cookie whose value will be excluded from inspection during preconfigured WAF evaluation. // Structure is documented below. - PerTryTimeout *RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout `pulumi:"perTryTimeout"` - // Specifies one or more conditions when this retry policy applies. - // Valid values are listed below. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true: cancelled, deadline-exceeded, internal, resource-exhausted, unavailable. - // - 5xx : retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. - // - gateway-error : Similar to 5xx, but only applies to response codes 502, 503 or 504. - // - connect-failure : a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. - // - retriable-4xx : a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. - // - refused-stream : a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. - // - cancelled : a retry is attempted if the gRPC status code in the response header is set to cancelled. - // - deadline-exceeded : a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. - // - internal : a retry is attempted if the gRPC status code in the response header is set to internal. - // - resource-exhausted : a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. - // - unavailable : a retry is attempted if the gRPC status code in the response header is set to unavailable. - RetryConditions []string `pulumi:"retryConditions"` + RequestCookies []RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky `pulumi:"requestCookies"` + // Request header whose value will be excluded from inspection during preconfigured WAF evaluation. + // Structure is documented below. + RequestHeaders []RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader `pulumi:"requestHeaders"` + // Request query parameter whose value will be excluded from inspection during preconfigured WAF evaluation. + // Note that the parameter can be in the query string or in the POST body. + // Structure is documented below. + RequestQueryParams []RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam `pulumi:"requestQueryParams"` + // Request URI from the request line to be excluded from inspection during preconfigured WAF evaluation. + // When specifying this field, the query or fragment part should be excluded. + // Structure is documented below. + RequestUris []RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri `pulumi:"requestUris"` + // A list of target rule IDs under the WAF rule set to apply the preconfigured WAF exclusion. + // If omitted, it refers to all the rule IDs under the WAF rule set. + TargetRuleIds []string `pulumi:"targetRuleIds"` + // Target WAF rule set to apply the preconfigured WAF exclusion. + TargetRuleSet string `pulumi:"targetRuleSet"` } -// RegionUrlMapDefaultRouteActionRetryPolicyInput is an input type that accepts RegionUrlMapDefaultRouteActionRetryPolicyArgs and RegionUrlMapDefaultRouteActionRetryPolicyOutput values. -// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionRetryPolicyInput` via: +// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionInput is an input type that accepts RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArgs and RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyRulePreconfiguredWafConfigExclusionInput` via: // -// RegionUrlMapDefaultRouteActionRetryPolicyArgs{...} -type RegionUrlMapDefaultRouteActionRetryPolicyInput interface { +// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArgs{...} +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionInput interface { pulumi.Input - ToRegionUrlMapDefaultRouteActionRetryPolicyOutput() RegionUrlMapDefaultRouteActionRetryPolicyOutput - ToRegionUrlMapDefaultRouteActionRetryPolicyOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionRetryPolicyOutput + ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput + ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutputWithContext(context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput } -type RegionUrlMapDefaultRouteActionRetryPolicyArgs struct { - // Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. - NumRetries pulumi.IntPtrInput `pulumi:"numRetries"` - // Specifies a non-zero timeout per retry attempt. - // If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, - // will use the largest timeout among all backend services associated with the route. +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArgs struct { + // Request cookie whose value will be excluded from inspection during preconfigured WAF evaluation. // Structure is documented below. - PerTryTimeout RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrInput `pulumi:"perTryTimeout"` - // Specifies one or more conditions when this retry policy applies. - // Valid values are listed below. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true: cancelled, deadline-exceeded, internal, resource-exhausted, unavailable. - // - 5xx : retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. - // - gateway-error : Similar to 5xx, but only applies to response codes 502, 503 or 504. - // - connect-failure : a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. - // - retriable-4xx : a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. - // - refused-stream : a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. - // - cancelled : a retry is attempted if the gRPC status code in the response header is set to cancelled. - // - deadline-exceeded : a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. - // - internal : a retry is attempted if the gRPC status code in the response header is set to internal. - // - resource-exhausted : a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. - // - unavailable : a retry is attempted if the gRPC status code in the response header is set to unavailable. - RetryConditions pulumi.StringArrayInput `pulumi:"retryConditions"` -} - -func (RegionUrlMapDefaultRouteActionRetryPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapDefaultRouteActionRetryPolicy)(nil)).Elem() -} - -func (i RegionUrlMapDefaultRouteActionRetryPolicyArgs) ToRegionUrlMapDefaultRouteActionRetryPolicyOutput() RegionUrlMapDefaultRouteActionRetryPolicyOutput { - return i.ToRegionUrlMapDefaultRouteActionRetryPolicyOutputWithContext(context.Background()) + RequestCookies RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayInput `pulumi:"requestCookies"` + // Request header whose value will be excluded from inspection during preconfigured WAF evaluation. + // Structure is documented below. + RequestHeaders RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayInput `pulumi:"requestHeaders"` + // Request query parameter whose value will be excluded from inspection during preconfigured WAF evaluation. + // Note that the parameter can be in the query string or in the POST body. + // Structure is documented below. + RequestQueryParams RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayInput `pulumi:"requestQueryParams"` + // Request URI from the request line to be excluded from inspection during preconfigured WAF evaluation. + // When specifying this field, the query or fragment part should be excluded. + // Structure is documented below. + RequestUris RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayInput `pulumi:"requestUris"` + // A list of target rule IDs under the WAF rule set to apply the preconfigured WAF exclusion. + // If omitted, it refers to all the rule IDs under the WAF rule set. + TargetRuleIds pulumi.StringArrayInput `pulumi:"targetRuleIds"` + // Target WAF rule set to apply the preconfigured WAF exclusion. + TargetRuleSet pulumi.StringInput `pulumi:"targetRuleSet"` } -func (i RegionUrlMapDefaultRouteActionRetryPolicyArgs) ToRegionUrlMapDefaultRouteActionRetryPolicyOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRetryPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionRetryPolicyOutput) +func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyRulePreconfiguredWafConfigExclusion)(nil)).Elem() } -func (i RegionUrlMapDefaultRouteActionRetryPolicyArgs) ToRegionUrlMapDefaultRouteActionRetryPolicyPtrOutput() RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput { - return i.ToRegionUrlMapDefaultRouteActionRetryPolicyPtrOutputWithContext(context.Background()) +func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArgs) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput { + return i.ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutputWithContext(context.Background()) } -func (i RegionUrlMapDefaultRouteActionRetryPolicyArgs) ToRegionUrlMapDefaultRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionRetryPolicyOutput).ToRegionUrlMapDefaultRouteActionRetryPolicyPtrOutputWithContext(ctx) +func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArgs) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput) } -// RegionUrlMapDefaultRouteActionRetryPolicyPtrInput is an input type that accepts RegionUrlMapDefaultRouteActionRetryPolicyArgs, RegionUrlMapDefaultRouteActionRetryPolicyPtr and RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionRetryPolicyPtrInput` via: -// -// RegionUrlMapDefaultRouteActionRetryPolicyArgs{...} -// -// or: +// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayInput is an input type that accepts RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArray and RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayInput` via: // -// nil -type RegionUrlMapDefaultRouteActionRetryPolicyPtrInput interface { +// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArray{ RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArgs{...} } +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayInput interface { pulumi.Input - ToRegionUrlMapDefaultRouteActionRetryPolicyPtrOutput() RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput - ToRegionUrlMapDefaultRouteActionRetryPolicyPtrOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput + ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput + ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutputWithContext(context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput } -type regionUrlMapDefaultRouteActionRetryPolicyPtrType RegionUrlMapDefaultRouteActionRetryPolicyArgs - -func RegionUrlMapDefaultRouteActionRetryPolicyPtr(v *RegionUrlMapDefaultRouteActionRetryPolicyArgs) RegionUrlMapDefaultRouteActionRetryPolicyPtrInput { - return (*regionUrlMapDefaultRouteActionRetryPolicyPtrType)(v) -} +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArray []RegionSecurityPolicyRulePreconfiguredWafConfigExclusionInput -func (*regionUrlMapDefaultRouteActionRetryPolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapDefaultRouteActionRetryPolicy)(nil)).Elem() +func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionSecurityPolicyRulePreconfiguredWafConfigExclusion)(nil)).Elem() } -func (i *regionUrlMapDefaultRouteActionRetryPolicyPtrType) ToRegionUrlMapDefaultRouteActionRetryPolicyPtrOutput() RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput { - return i.ToRegionUrlMapDefaultRouteActionRetryPolicyPtrOutputWithContext(context.Background()) +func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArray) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { + return i.ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutputWithContext(context.Background()) } -func (i *regionUrlMapDefaultRouteActionRetryPolicyPtrType) ToRegionUrlMapDefaultRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput) +func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArray) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) } -type RegionUrlMapDefaultRouteActionRetryPolicyOutput struct{ *pulumi.OutputState } +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput struct{ *pulumi.OutputState } -func (RegionUrlMapDefaultRouteActionRetryPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapDefaultRouteActionRetryPolicy)(nil)).Elem() +func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyRulePreconfiguredWafConfigExclusion)(nil)).Elem() } -func (o RegionUrlMapDefaultRouteActionRetryPolicyOutput) ToRegionUrlMapDefaultRouteActionRetryPolicyOutput() RegionUrlMapDefaultRouteActionRetryPolicyOutput { +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput { return o } -func (o RegionUrlMapDefaultRouteActionRetryPolicyOutput) ToRegionUrlMapDefaultRouteActionRetryPolicyOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRetryPolicyOutput { +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput { return o } -func (o RegionUrlMapDefaultRouteActionRetryPolicyOutput) ToRegionUrlMapDefaultRouteActionRetryPolicyPtrOutput() RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput { - return o.ToRegionUrlMapDefaultRouteActionRetryPolicyPtrOutputWithContext(context.Background()) +// Request cookie whose value will be excluded from inspection during preconfigured WAF evaluation. +// Structure is documented below. +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput) RequestCookies() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput { + return o.ApplyT(func(v RegionSecurityPolicyRulePreconfiguredWafConfigExclusion) []RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky { + return v.RequestCookies + }).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) } -func (o RegionUrlMapDefaultRouteActionRetryPolicyOutput) ToRegionUrlMapDefaultRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapDefaultRouteActionRetryPolicy) *RegionUrlMapDefaultRouteActionRetryPolicy { - return &v - }).(RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput) +// Request header whose value will be excluded from inspection during preconfigured WAF evaluation. +// Structure is documented below. +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput) RequestHeaders() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput { + return o.ApplyT(func(v RegionSecurityPolicyRulePreconfiguredWafConfigExclusion) []RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader { + return v.RequestHeaders + }).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) } -// Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. -func (o RegionUrlMapDefaultRouteActionRetryPolicyOutput) NumRetries() pulumi.IntPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionRetryPolicy) *int { return v.NumRetries }).(pulumi.IntPtrOutput) +// Request query parameter whose value will be excluded from inspection during preconfigured WAF evaluation. +// Note that the parameter can be in the query string or in the POST body. +// Structure is documented below. +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput) RequestQueryParams() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput { + return o.ApplyT(func(v RegionSecurityPolicyRulePreconfiguredWafConfigExclusion) []RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam { + return v.RequestQueryParams + }).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) } -// Specifies a non-zero timeout per retry attempt. -// If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, -// will use the largest timeout among all backend services associated with the route. +// Request URI from the request line to be excluded from inspection during preconfigured WAF evaluation. +// When specifying this field, the query or fragment part should be excluded. // Structure is documented below. -func (o RegionUrlMapDefaultRouteActionRetryPolicyOutput) PerTryTimeout() RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionRetryPolicy) *RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout { - return v.PerTryTimeout - }).(RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput) RequestUris() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput { + return o.ApplyT(func(v RegionSecurityPolicyRulePreconfiguredWafConfigExclusion) []RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri { + return v.RequestUris + }).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) } -// Specifies one or more conditions when this retry policy applies. -// Valid values are listed below. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true: cancelled, deadline-exceeded, internal, resource-exhausted, unavailable. -// - 5xx : retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. -// - gateway-error : Similar to 5xx, but only applies to response codes 502, 503 or 504. -// - connect-failure : a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. -// - retriable-4xx : a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. -// - refused-stream : a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. -// - cancelled : a retry is attempted if the gRPC status code in the response header is set to cancelled. -// - deadline-exceeded : a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. -// - internal : a retry is attempted if the gRPC status code in the response header is set to internal. -// - resource-exhausted : a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. -// - unavailable : a retry is attempted if the gRPC status code in the response header is set to unavailable. -func (o RegionUrlMapDefaultRouteActionRetryPolicyOutput) RetryConditions() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionRetryPolicy) []string { return v.RetryConditions }).(pulumi.StringArrayOutput) +// A list of target rule IDs under the WAF rule set to apply the preconfigured WAF exclusion. +// If omitted, it refers to all the rule IDs under the WAF rule set. +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput) TargetRuleIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionSecurityPolicyRulePreconfiguredWafConfigExclusion) []string { return v.TargetRuleIds }).(pulumi.StringArrayOutput) } -type RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput struct{ *pulumi.OutputState } - -func (RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapDefaultRouteActionRetryPolicy)(nil)).Elem() +// Target WAF rule set to apply the preconfigured WAF exclusion. +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput) TargetRuleSet() pulumi.StringOutput { + return o.ApplyT(func(v RegionSecurityPolicyRulePreconfiguredWafConfigExclusion) string { return v.TargetRuleSet }).(pulumi.StringOutput) } -func (o RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput) ToRegionUrlMapDefaultRouteActionRetryPolicyPtrOutput() RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput { - return o -} - -func (o RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput) ToRegionUrlMapDefaultRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput { - return o -} +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput struct{ *pulumi.OutputState } -func (o RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput) Elem() RegionUrlMapDefaultRouteActionRetryPolicyOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionRetryPolicy) RegionUrlMapDefaultRouteActionRetryPolicy { - if v != nil { - return *v - } - var ret RegionUrlMapDefaultRouteActionRetryPolicy - return ret - }).(RegionUrlMapDefaultRouteActionRetryPolicyOutput) +func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionSecurityPolicyRulePreconfiguredWafConfigExclusion)(nil)).Elem() } -// Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. -func (o RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput) NumRetries() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionRetryPolicy) *int { - if v == nil { - return nil - } - return v.NumRetries - }).(pulumi.IntPtrOutput) +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { + return o } -// Specifies a non-zero timeout per retry attempt. -// If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, -// will use the largest timeout among all backend services associated with the route. -// Structure is documented below. -func (o RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput) PerTryTimeout() RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionRetryPolicy) *RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout { - if v == nil { - return nil - } - return v.PerTryTimeout - }).(RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { + return o } -// Specifies one or more conditions when this retry policy applies. -// Valid values are listed below. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true: cancelled, deadline-exceeded, internal, resource-exhausted, unavailable. -// - 5xx : retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. -// - gateway-error : Similar to 5xx, but only applies to response codes 502, 503 or 504. -// - connect-failure : a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. -// - retriable-4xx : a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. -// - refused-stream : a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. -// - cancelled : a retry is attempted if the gRPC status code in the response header is set to cancelled. -// - deadline-exceeded : a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. -// - internal : a retry is attempted if the gRPC status code in the response header is set to internal. -// - resource-exhausted : a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. -// - unavailable : a retry is attempted if the gRPC status code in the response header is set to unavailable. -func (o RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput) RetryConditions() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionRetryPolicy) []string { - if v == nil { - return nil - } - return v.RetryConditions - }).(pulumi.StringArrayOutput) +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) Index(i pulumi.IntInput) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionSecurityPolicyRulePreconfiguredWafConfigExclusion { + return vs[0].([]RegionSecurityPolicyRulePreconfiguredWafConfigExclusion)[vs[1].(int)] + }).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionOutput) } -type RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout struct { - // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are - // represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. - Nanos *int `pulumi:"nanos"` - // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. - // Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years - Seconds *string `pulumi:"seconds"` +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky struct { + // You can specify an exact match or a partial match by using a field operator and a field value. + // Available options: + // EQUALS: The operator matches if the field value equals the specified value. + // STARTS_WITH: The operator matches if the field value starts with the specified value. + // ENDS_WITH: The operator matches if the field value ends with the specified value. + // CONTAINS: The operator matches if the field value contains the specified value. + // EQUALS_ANY: The operator matches if the field value is any value. + // Possible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`. + Operator string `pulumi:"operator"` + // A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. + // The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. + Value *string `pulumi:"value"` } -// RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutInput is an input type that accepts RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs and RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput values. -// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutInput` via: +// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyInput is an input type that accepts RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs and RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyInput` via: // -// RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs{...} -type RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutInput interface { +// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs{...} +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyInput interface { pulumi.Input - ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput() RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput - ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput -} - -type RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs struct { - // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are - // represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. - Nanos pulumi.IntPtrInput `pulumi:"nanos"` - // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. - // Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years - Seconds pulumi.StringPtrInput `pulumi:"seconds"` -} - -func (RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() + ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput + ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutputWithContext(context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput } -func (i RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs) ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput() RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput { - return i.ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutputWithContext(context.Background()) +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs struct { + // You can specify an exact match or a partial match by using a field operator and a field value. + // Available options: + // EQUALS: The operator matches if the field value equals the specified value. + // STARTS_WITH: The operator matches if the field value starts with the specified value. + // ENDS_WITH: The operator matches if the field value ends with the specified value. + // CONTAINS: The operator matches if the field value contains the specified value. + // EQUALS_ANY: The operator matches if the field value is any value. + // Possible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`. + Operator pulumi.StringInput `pulumi:"operator"` + // A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. + // The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. + Value pulumi.StringPtrInput `pulumi:"value"` } -func (i RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs) ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) +func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky)(nil)).Elem() } -func (i RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs) ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput() RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return i.ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Background()) +func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput { + return i.ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutputWithContext(context.Background()) } -func (i RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs) ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput).ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx) +func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) } -// RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrInput is an input type that accepts RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs, RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtr and RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrInput` via: -// -// RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs{...} -// -// or: +// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayInput is an input type that accepts RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray and RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayInput` via: // -// nil -type RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrInput interface { +// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray{ RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs{...} } +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayInput interface { pulumi.Input - ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput() RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput - ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput + ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput + ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutputWithContext(context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput } -type regionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrType RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs - -func RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtr(v *RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs) RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrInput { - return (*regionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrType)(v) -} +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray []RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyInput -func (*regionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() +func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky)(nil)).Elem() } -func (i *regionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrType) ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput() RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return i.ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Background()) +func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput { + return i.ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutputWithContext(context.Background()) } -func (i *regionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrType) ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) +func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) } -type RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput struct{ *pulumi.OutputState } +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput struct{ *pulumi.OutputState } -func (RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() +func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky)(nil)).Elem() } -func (o RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput() RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput { +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput { return o } -func (o RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput { +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput { return o } -func (o RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput() RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return o.ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Background()) -} - -func (o RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout) *RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout { - return &v - }).(RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) -} - -// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are -// represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. -func (o RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) Nanos() pulumi.IntPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout) *int { return v.Nanos }).(pulumi.IntPtrOutput) +// You can specify an exact match or a partial match by using a field operator and a field value. +// Available options: +// EQUALS: The operator matches if the field value equals the specified value. +// STARTS_WITH: The operator matches if the field value starts with the specified value. +// ENDS_WITH: The operator matches if the field value ends with the specified value. +// CONTAINS: The operator matches if the field value contains the specified value. +// EQUALS_ANY: The operator matches if the field value is any value. +// Possible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`. +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) Operator() pulumi.StringOutput { + return o.ApplyT(func(v RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky) string { return v.Operator }).(pulumi.StringOutput) } -// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. -// Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years -func (o RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) Seconds() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout) *string { return v.Seconds }).(pulumi.StringPtrOutput) +// A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. +// The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky) *string { return v.Value }).(pulumi.StringPtrOutput) } -type RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput struct{ *pulumi.OutputState } +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput struct{ *pulumi.OutputState } -func (RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() +func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky)(nil)).Elem() } -func (o RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput() RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput { return o } -func (o RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput { return o } -func (o RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) Elem() RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout) RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout { - if v != nil { - return *v - } - var ret RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout - return ret - }).(RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) -} - -// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are -// represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. -func (o RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) Nanos() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout) *int { - if v == nil { - return nil - } - return v.Nanos - }).(pulumi.IntPtrOutput) -} - -// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. -// Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years -func (o RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) Seconds() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout) *string { - if v == nil { - return nil - } - return v.Seconds - }).(pulumi.StringPtrOutput) +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) Index(i pulumi.IntInput) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky { + return vs[0].([]RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky)[vs[1].(int)] + }).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) } -type RegionUrlMapDefaultRouteActionTimeout struct { - // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. - Nanos *int `pulumi:"nanos"` - // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years - Seconds *string `pulumi:"seconds"` +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader struct { + // You can specify an exact match or a partial match by using a field operator and a field value. + // Available options: + // EQUALS: The operator matches if the field value equals the specified value. + // STARTS_WITH: The operator matches if the field value starts with the specified value. + // ENDS_WITH: The operator matches if the field value ends with the specified value. + // CONTAINS: The operator matches if the field value contains the specified value. + // EQUALS_ANY: The operator matches if the field value is any value. + // Possible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`. + Operator string `pulumi:"operator"` + // A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. + // The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. + Value *string `pulumi:"value"` } -// RegionUrlMapDefaultRouteActionTimeoutInput is an input type that accepts RegionUrlMapDefaultRouteActionTimeoutArgs and RegionUrlMapDefaultRouteActionTimeoutOutput values. -// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionTimeoutInput` via: +// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderInput is an input type that accepts RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs and RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderInput` via: // -// RegionUrlMapDefaultRouteActionTimeoutArgs{...} -type RegionUrlMapDefaultRouteActionTimeoutInput interface { +// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs{...} +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderInput interface { pulumi.Input - ToRegionUrlMapDefaultRouteActionTimeoutOutput() RegionUrlMapDefaultRouteActionTimeoutOutput - ToRegionUrlMapDefaultRouteActionTimeoutOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionTimeoutOutput -} - -type RegionUrlMapDefaultRouteActionTimeoutArgs struct { - // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. - Nanos pulumi.IntPtrInput `pulumi:"nanos"` - // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years - Seconds pulumi.StringPtrInput `pulumi:"seconds"` -} - -func (RegionUrlMapDefaultRouteActionTimeoutArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapDefaultRouteActionTimeout)(nil)).Elem() + ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput + ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutputWithContext(context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput } -func (i RegionUrlMapDefaultRouteActionTimeoutArgs) ToRegionUrlMapDefaultRouteActionTimeoutOutput() RegionUrlMapDefaultRouteActionTimeoutOutput { - return i.ToRegionUrlMapDefaultRouteActionTimeoutOutputWithContext(context.Background()) +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs struct { + // You can specify an exact match or a partial match by using a field operator and a field value. + // Available options: + // EQUALS: The operator matches if the field value equals the specified value. + // STARTS_WITH: The operator matches if the field value starts with the specified value. + // ENDS_WITH: The operator matches if the field value ends with the specified value. + // CONTAINS: The operator matches if the field value contains the specified value. + // EQUALS_ANY: The operator matches if the field value is any value. + // Possible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`. + Operator pulumi.StringInput `pulumi:"operator"` + // A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. + // The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. + Value pulumi.StringPtrInput `pulumi:"value"` } -func (i RegionUrlMapDefaultRouteActionTimeoutArgs) ToRegionUrlMapDefaultRouteActionTimeoutOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionTimeoutOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionTimeoutOutput) +func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader)(nil)).Elem() } -func (i RegionUrlMapDefaultRouteActionTimeoutArgs) ToRegionUrlMapDefaultRouteActionTimeoutPtrOutput() RegionUrlMapDefaultRouteActionTimeoutPtrOutput { - return i.ToRegionUrlMapDefaultRouteActionTimeoutPtrOutputWithContext(context.Background()) +func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput { + return i.ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutputWithContext(context.Background()) } -func (i RegionUrlMapDefaultRouteActionTimeoutArgs) ToRegionUrlMapDefaultRouteActionTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionTimeoutPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionTimeoutOutput).ToRegionUrlMapDefaultRouteActionTimeoutPtrOutputWithContext(ctx) +func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) } -// RegionUrlMapDefaultRouteActionTimeoutPtrInput is an input type that accepts RegionUrlMapDefaultRouteActionTimeoutArgs, RegionUrlMapDefaultRouteActionTimeoutPtr and RegionUrlMapDefaultRouteActionTimeoutPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionTimeoutPtrInput` via: -// -// RegionUrlMapDefaultRouteActionTimeoutArgs{...} -// -// or: +// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayInput is an input type that accepts RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray and RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayInput` via: // -// nil -type RegionUrlMapDefaultRouteActionTimeoutPtrInput interface { +// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray{ RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs{...} } +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayInput interface { pulumi.Input - ToRegionUrlMapDefaultRouteActionTimeoutPtrOutput() RegionUrlMapDefaultRouteActionTimeoutPtrOutput - ToRegionUrlMapDefaultRouteActionTimeoutPtrOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionTimeoutPtrOutput + ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput + ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutputWithContext(context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput } -type regionUrlMapDefaultRouteActionTimeoutPtrType RegionUrlMapDefaultRouteActionTimeoutArgs - -func RegionUrlMapDefaultRouteActionTimeoutPtr(v *RegionUrlMapDefaultRouteActionTimeoutArgs) RegionUrlMapDefaultRouteActionTimeoutPtrInput { - return (*regionUrlMapDefaultRouteActionTimeoutPtrType)(v) -} +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray []RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderInput -func (*regionUrlMapDefaultRouteActionTimeoutPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapDefaultRouteActionTimeout)(nil)).Elem() +func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader)(nil)).Elem() } -func (i *regionUrlMapDefaultRouteActionTimeoutPtrType) ToRegionUrlMapDefaultRouteActionTimeoutPtrOutput() RegionUrlMapDefaultRouteActionTimeoutPtrOutput { - return i.ToRegionUrlMapDefaultRouteActionTimeoutPtrOutputWithContext(context.Background()) +func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput { + return i.ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutputWithContext(context.Background()) } -func (i *regionUrlMapDefaultRouteActionTimeoutPtrType) ToRegionUrlMapDefaultRouteActionTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionTimeoutPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionTimeoutPtrOutput) +func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) } -type RegionUrlMapDefaultRouteActionTimeoutOutput struct{ *pulumi.OutputState } +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput struct{ *pulumi.OutputState } -func (RegionUrlMapDefaultRouteActionTimeoutOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapDefaultRouteActionTimeout)(nil)).Elem() +func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader)(nil)).Elem() } -func (o RegionUrlMapDefaultRouteActionTimeoutOutput) ToRegionUrlMapDefaultRouteActionTimeoutOutput() RegionUrlMapDefaultRouteActionTimeoutOutput { +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput { return o } -func (o RegionUrlMapDefaultRouteActionTimeoutOutput) ToRegionUrlMapDefaultRouteActionTimeoutOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionTimeoutOutput { +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput { return o } -func (o RegionUrlMapDefaultRouteActionTimeoutOutput) ToRegionUrlMapDefaultRouteActionTimeoutPtrOutput() RegionUrlMapDefaultRouteActionTimeoutPtrOutput { - return o.ToRegionUrlMapDefaultRouteActionTimeoutPtrOutputWithContext(context.Background()) +// You can specify an exact match or a partial match by using a field operator and a field value. +// Available options: +// EQUALS: The operator matches if the field value equals the specified value. +// STARTS_WITH: The operator matches if the field value starts with the specified value. +// ENDS_WITH: The operator matches if the field value ends with the specified value. +// CONTAINS: The operator matches if the field value contains the specified value. +// EQUALS_ANY: The operator matches if the field value is any value. +// Possible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`. +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) Operator() pulumi.StringOutput { + return o.ApplyT(func(v RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader) string { return v.Operator }).(pulumi.StringOutput) } -func (o RegionUrlMapDefaultRouteActionTimeoutOutput) ToRegionUrlMapDefaultRouteActionTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionTimeoutPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapDefaultRouteActionTimeout) *RegionUrlMapDefaultRouteActionTimeout { - return &v - }).(RegionUrlMapDefaultRouteActionTimeoutPtrOutput) +// A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. +// The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader) *string { return v.Value }).(pulumi.StringPtrOutput) } -// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. -func (o RegionUrlMapDefaultRouteActionTimeoutOutput) Nanos() pulumi.IntPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionTimeout) *int { return v.Nanos }).(pulumi.IntPtrOutput) +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput struct{ *pulumi.OutputState } + +func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader)(nil)).Elem() } -// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years -func (o RegionUrlMapDefaultRouteActionTimeoutOutput) Seconds() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionTimeout) *string { return v.Seconds }).(pulumi.StringPtrOutput) +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput { + return o } -type RegionUrlMapDefaultRouteActionTimeoutPtrOutput struct{ *pulumi.OutputState } +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput { + return o +} -func (RegionUrlMapDefaultRouteActionTimeoutPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapDefaultRouteActionTimeout)(nil)).Elem() +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) Index(i pulumi.IntInput) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader { + return vs[0].([]RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader)[vs[1].(int)] + }).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) } -func (o RegionUrlMapDefaultRouteActionTimeoutPtrOutput) ToRegionUrlMapDefaultRouteActionTimeoutPtrOutput() RegionUrlMapDefaultRouteActionTimeoutPtrOutput { - return o +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam struct { + // You can specify an exact match or a partial match by using a field operator and a field value. + // Available options: + // EQUALS: The operator matches if the field value equals the specified value. + // STARTS_WITH: The operator matches if the field value starts with the specified value. + // ENDS_WITH: The operator matches if the field value ends with the specified value. + // CONTAINS: The operator matches if the field value contains the specified value. + // EQUALS_ANY: The operator matches if the field value is any value. + // Possible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`. + Operator string `pulumi:"operator"` + // A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. + // The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. + Value *string `pulumi:"value"` } -func (o RegionUrlMapDefaultRouteActionTimeoutPtrOutput) ToRegionUrlMapDefaultRouteActionTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionTimeoutPtrOutput { - return o +// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamInput is an input type that accepts RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs and RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamInput` via: +// +// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs{...} +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamInput interface { + pulumi.Input + + ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput + ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutputWithContext(context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput } -func (o RegionUrlMapDefaultRouteActionTimeoutPtrOutput) Elem() RegionUrlMapDefaultRouteActionTimeoutOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionTimeout) RegionUrlMapDefaultRouteActionTimeout { - if v != nil { - return *v - } - var ret RegionUrlMapDefaultRouteActionTimeout - return ret - }).(RegionUrlMapDefaultRouteActionTimeoutOutput) +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs struct { + // You can specify an exact match or a partial match by using a field operator and a field value. + // Available options: + // EQUALS: The operator matches if the field value equals the specified value. + // STARTS_WITH: The operator matches if the field value starts with the specified value. + // ENDS_WITH: The operator matches if the field value ends with the specified value. + // CONTAINS: The operator matches if the field value contains the specified value. + // EQUALS_ANY: The operator matches if the field value is any value. + // Possible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`. + Operator pulumi.StringInput `pulumi:"operator"` + // A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. + // The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. + Value pulumi.StringPtrInput `pulumi:"value"` } -// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. -func (o RegionUrlMapDefaultRouteActionTimeoutPtrOutput) Nanos() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionTimeout) *int { - if v == nil { - return nil - } - return v.Nanos - }).(pulumi.IntPtrOutput) +func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam)(nil)).Elem() } -// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years -func (o RegionUrlMapDefaultRouteActionTimeoutPtrOutput) Seconds() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionTimeout) *string { - if v == nil { - return nil - } - return v.Seconds - }).(pulumi.StringPtrOutput) +func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput { + return i.ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutputWithContext(context.Background()) } -type RegionUrlMapDefaultRouteActionUrlRewrite struct { - // Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. - // The value must be from 1 to 255 characters. - HostRewrite *string `pulumi:"hostRewrite"` - // Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. - // The value must be from 1 to 1024 characters. - PathPrefixRewrite *string `pulumi:"pathPrefixRewrite"` +func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) } -// RegionUrlMapDefaultRouteActionUrlRewriteInput is an input type that accepts RegionUrlMapDefaultRouteActionUrlRewriteArgs and RegionUrlMapDefaultRouteActionUrlRewriteOutput values. -// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionUrlRewriteInput` via: +// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayInput is an input type that accepts RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray and RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayInput` via: // -// RegionUrlMapDefaultRouteActionUrlRewriteArgs{...} -type RegionUrlMapDefaultRouteActionUrlRewriteInput interface { +// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray{ RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs{...} } +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayInput interface { pulumi.Input - ToRegionUrlMapDefaultRouteActionUrlRewriteOutput() RegionUrlMapDefaultRouteActionUrlRewriteOutput - ToRegionUrlMapDefaultRouteActionUrlRewriteOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionUrlRewriteOutput + ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput + ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutputWithContext(context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput } -type RegionUrlMapDefaultRouteActionUrlRewriteArgs struct { - // Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. - // The value must be from 1 to 255 characters. - HostRewrite pulumi.StringPtrInput `pulumi:"hostRewrite"` - // Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. - // The value must be from 1 to 1024 characters. - PathPrefixRewrite pulumi.StringPtrInput `pulumi:"pathPrefixRewrite"` +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray []RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamInput + +func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam)(nil)).Elem() } -func (RegionUrlMapDefaultRouteActionUrlRewriteArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapDefaultRouteActionUrlRewrite)(nil)).Elem() +func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput { + return i.ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutputWithContext(context.Background()) } -func (i RegionUrlMapDefaultRouteActionUrlRewriteArgs) ToRegionUrlMapDefaultRouteActionUrlRewriteOutput() RegionUrlMapDefaultRouteActionUrlRewriteOutput { - return i.ToRegionUrlMapDefaultRouteActionUrlRewriteOutputWithContext(context.Background()) -} - -func (i RegionUrlMapDefaultRouteActionUrlRewriteArgs) ToRegionUrlMapDefaultRouteActionUrlRewriteOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionUrlRewriteOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionUrlRewriteOutput) -} - -func (i RegionUrlMapDefaultRouteActionUrlRewriteArgs) ToRegionUrlMapDefaultRouteActionUrlRewritePtrOutput() RegionUrlMapDefaultRouteActionUrlRewritePtrOutput { - return i.ToRegionUrlMapDefaultRouteActionUrlRewritePtrOutputWithContext(context.Background()) -} - -func (i RegionUrlMapDefaultRouteActionUrlRewriteArgs) ToRegionUrlMapDefaultRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionUrlRewritePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionUrlRewriteOutput).ToRegionUrlMapDefaultRouteActionUrlRewritePtrOutputWithContext(ctx) -} - -// RegionUrlMapDefaultRouteActionUrlRewritePtrInput is an input type that accepts RegionUrlMapDefaultRouteActionUrlRewriteArgs, RegionUrlMapDefaultRouteActionUrlRewritePtr and RegionUrlMapDefaultRouteActionUrlRewritePtrOutput values. -// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionUrlRewritePtrInput` via: -// -// RegionUrlMapDefaultRouteActionUrlRewriteArgs{...} -// -// or: -// -// nil -type RegionUrlMapDefaultRouteActionUrlRewritePtrInput interface { - pulumi.Input - - ToRegionUrlMapDefaultRouteActionUrlRewritePtrOutput() RegionUrlMapDefaultRouteActionUrlRewritePtrOutput - ToRegionUrlMapDefaultRouteActionUrlRewritePtrOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionUrlRewritePtrOutput -} - -type regionUrlMapDefaultRouteActionUrlRewritePtrType RegionUrlMapDefaultRouteActionUrlRewriteArgs - -func RegionUrlMapDefaultRouteActionUrlRewritePtr(v *RegionUrlMapDefaultRouteActionUrlRewriteArgs) RegionUrlMapDefaultRouteActionUrlRewritePtrInput { - return (*regionUrlMapDefaultRouteActionUrlRewritePtrType)(v) -} - -func (*regionUrlMapDefaultRouteActionUrlRewritePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapDefaultRouteActionUrlRewrite)(nil)).Elem() -} - -func (i *regionUrlMapDefaultRouteActionUrlRewritePtrType) ToRegionUrlMapDefaultRouteActionUrlRewritePtrOutput() RegionUrlMapDefaultRouteActionUrlRewritePtrOutput { - return i.ToRegionUrlMapDefaultRouteActionUrlRewritePtrOutputWithContext(context.Background()) -} - -func (i *regionUrlMapDefaultRouteActionUrlRewritePtrType) ToRegionUrlMapDefaultRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionUrlRewritePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionUrlRewritePtrOutput) +func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) } -type RegionUrlMapDefaultRouteActionUrlRewriteOutput struct{ *pulumi.OutputState } +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput struct{ *pulumi.OutputState } -func (RegionUrlMapDefaultRouteActionUrlRewriteOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapDefaultRouteActionUrlRewrite)(nil)).Elem() +func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam)(nil)).Elem() } -func (o RegionUrlMapDefaultRouteActionUrlRewriteOutput) ToRegionUrlMapDefaultRouteActionUrlRewriteOutput() RegionUrlMapDefaultRouteActionUrlRewriteOutput { +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput { return o } -func (o RegionUrlMapDefaultRouteActionUrlRewriteOutput) ToRegionUrlMapDefaultRouteActionUrlRewriteOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionUrlRewriteOutput { +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput { return o } -func (o RegionUrlMapDefaultRouteActionUrlRewriteOutput) ToRegionUrlMapDefaultRouteActionUrlRewritePtrOutput() RegionUrlMapDefaultRouteActionUrlRewritePtrOutput { - return o.ToRegionUrlMapDefaultRouteActionUrlRewritePtrOutputWithContext(context.Background()) -} - -func (o RegionUrlMapDefaultRouteActionUrlRewriteOutput) ToRegionUrlMapDefaultRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionUrlRewritePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapDefaultRouteActionUrlRewrite) *RegionUrlMapDefaultRouteActionUrlRewrite { - return &v - }).(RegionUrlMapDefaultRouteActionUrlRewritePtrOutput) -} - -// Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. -// The value must be from 1 to 255 characters. -func (o RegionUrlMapDefaultRouteActionUrlRewriteOutput) HostRewrite() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionUrlRewrite) *string { return v.HostRewrite }).(pulumi.StringPtrOutput) +// You can specify an exact match or a partial match by using a field operator and a field value. +// Available options: +// EQUALS: The operator matches if the field value equals the specified value. +// STARTS_WITH: The operator matches if the field value starts with the specified value. +// ENDS_WITH: The operator matches if the field value ends with the specified value. +// CONTAINS: The operator matches if the field value contains the specified value. +// EQUALS_ANY: The operator matches if the field value is any value. +// Possible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`. +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) Operator() pulumi.StringOutput { + return o.ApplyT(func(v RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam) string { + return v.Operator + }).(pulumi.StringOutput) } -// Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. -// The value must be from 1 to 1024 characters. -func (o RegionUrlMapDefaultRouteActionUrlRewriteOutput) PathPrefixRewrite() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionUrlRewrite) *string { return v.PathPrefixRewrite }).(pulumi.StringPtrOutput) +// A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. +// The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam) *string { + return v.Value + }).(pulumi.StringPtrOutput) } -type RegionUrlMapDefaultRouteActionUrlRewritePtrOutput struct{ *pulumi.OutputState } +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput struct{ *pulumi.OutputState } -func (RegionUrlMapDefaultRouteActionUrlRewritePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapDefaultRouteActionUrlRewrite)(nil)).Elem() +func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam)(nil)).Elem() } -func (o RegionUrlMapDefaultRouteActionUrlRewritePtrOutput) ToRegionUrlMapDefaultRouteActionUrlRewritePtrOutput() RegionUrlMapDefaultRouteActionUrlRewritePtrOutput { +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput { return o } -func (o RegionUrlMapDefaultRouteActionUrlRewritePtrOutput) ToRegionUrlMapDefaultRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionUrlRewritePtrOutput { +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput { return o } -func (o RegionUrlMapDefaultRouteActionUrlRewritePtrOutput) Elem() RegionUrlMapDefaultRouteActionUrlRewriteOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionUrlRewrite) RegionUrlMapDefaultRouteActionUrlRewrite { - if v != nil { - return *v - } - var ret RegionUrlMapDefaultRouteActionUrlRewrite - return ret - }).(RegionUrlMapDefaultRouteActionUrlRewriteOutput) -} - -// Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. -// The value must be from 1 to 255 characters. -func (o RegionUrlMapDefaultRouteActionUrlRewritePtrOutput) HostRewrite() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionUrlRewrite) *string { - if v == nil { - return nil - } - return v.HostRewrite - }).(pulumi.StringPtrOutput) -} - -// Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. -// The value must be from 1 to 1024 characters. -func (o RegionUrlMapDefaultRouteActionUrlRewritePtrOutput) PathPrefixRewrite() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionUrlRewrite) *string { - if v == nil { - return nil - } - return v.PathPrefixRewrite - }).(pulumi.StringPtrOutput) +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) Index(i pulumi.IntInput) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam { + return vs[0].([]RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam)[vs[1].(int)] + }).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) } -type RegionUrlMapDefaultRouteActionWeightedBackendService struct { - // The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the load balancer applies any relevant headerActions specified as part of this backendServiceWeight. - BackendService *string `pulumi:"backendService"` - // Specifies changes to request and response headers that need to take effect for the selected backendService. - // headerAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap. - // headerAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. - // Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. - // Structure is documented below. - HeaderAction *RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction `pulumi:"headerAction"` - // Specifies the fraction of traffic sent to a backend service, computed as weight / (sum of all weightedBackendService weights in routeAction) . - // The selection of a backend service is determined only for new traffic. Once a user's request has been directed to a backend service, subsequent requests are sent to the same backend service as determined by the backend service's session affinity policy. - // The value must be from 0 to 1000. - Weight *int `pulumi:"weight"` +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri struct { + // You can specify an exact match or a partial match by using a field operator and a field value. + // Available options: + // EQUALS: The operator matches if the field value equals the specified value. + // STARTS_WITH: The operator matches if the field value starts with the specified value. + // ENDS_WITH: The operator matches if the field value ends with the specified value. + // CONTAINS: The operator matches if the field value contains the specified value. + // EQUALS_ANY: The operator matches if the field value is any value. + // Possible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`. + Operator string `pulumi:"operator"` + // A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. + // The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. + Value *string `pulumi:"value"` } -// RegionUrlMapDefaultRouteActionWeightedBackendServiceInput is an input type that accepts RegionUrlMapDefaultRouteActionWeightedBackendServiceArgs and RegionUrlMapDefaultRouteActionWeightedBackendServiceOutput values. -// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionWeightedBackendServiceInput` via: +// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriInput is an input type that accepts RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs and RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriInput` via: // -// RegionUrlMapDefaultRouteActionWeightedBackendServiceArgs{...} -type RegionUrlMapDefaultRouteActionWeightedBackendServiceInput interface { +// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs{...} +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriInput interface { pulumi.Input - ToRegionUrlMapDefaultRouteActionWeightedBackendServiceOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceOutput - ToRegionUrlMapDefaultRouteActionWeightedBackendServiceOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceOutput + ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput + ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutputWithContext(context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput } -type RegionUrlMapDefaultRouteActionWeightedBackendServiceArgs struct { - // The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the load balancer applies any relevant headerActions specified as part of this backendServiceWeight. - BackendService pulumi.StringPtrInput `pulumi:"backendService"` - // Specifies changes to request and response headers that need to take effect for the selected backendService. - // headerAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap. - // headerAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. - // Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. - // Structure is documented below. - HeaderAction RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrInput `pulumi:"headerAction"` - // Specifies the fraction of traffic sent to a backend service, computed as weight / (sum of all weightedBackendService weights in routeAction) . - // The selection of a backend service is determined only for new traffic. Once a user's request has been directed to a backend service, subsequent requests are sent to the same backend service as determined by the backend service's session affinity policy. - // The value must be from 0 to 1000. - Weight pulumi.IntPtrInput `pulumi:"weight"` +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs struct { + // You can specify an exact match or a partial match by using a field operator and a field value. + // Available options: + // EQUALS: The operator matches if the field value equals the specified value. + // STARTS_WITH: The operator matches if the field value starts with the specified value. + // ENDS_WITH: The operator matches if the field value ends with the specified value. + // CONTAINS: The operator matches if the field value contains the specified value. + // EQUALS_ANY: The operator matches if the field value is any value. + // Possible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`. + Operator pulumi.StringInput `pulumi:"operator"` + // A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. + // The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. + Value pulumi.StringPtrInput `pulumi:"value"` } -func (RegionUrlMapDefaultRouteActionWeightedBackendServiceArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapDefaultRouteActionWeightedBackendService)(nil)).Elem() +func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri)(nil)).Elem() } -func (i RegionUrlMapDefaultRouteActionWeightedBackendServiceArgs) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceOutput { - return i.ToRegionUrlMapDefaultRouteActionWeightedBackendServiceOutputWithContext(context.Background()) +func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput { + return i.ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutputWithContext(context.Background()) } -func (i RegionUrlMapDefaultRouteActionWeightedBackendServiceArgs) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionWeightedBackendServiceOutput) +func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) } -// RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayInput is an input type that accepts RegionUrlMapDefaultRouteActionWeightedBackendServiceArray and RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput values. -// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayInput` via: +// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayInput is an input type that accepts RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray and RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayInput` via: // -// RegionUrlMapDefaultRouteActionWeightedBackendServiceArray{ RegionUrlMapDefaultRouteActionWeightedBackendServiceArgs{...} } -type RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayInput interface { +// RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray{ RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs{...} } +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayInput interface { pulumi.Input - ToRegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput - ToRegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput + ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput + ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutputWithContext(context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput } -type RegionUrlMapDefaultRouteActionWeightedBackendServiceArray []RegionUrlMapDefaultRouteActionWeightedBackendServiceInput +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray []RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriInput -func (RegionUrlMapDefaultRouteActionWeightedBackendServiceArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapDefaultRouteActionWeightedBackendService)(nil)).Elem() +func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri)(nil)).Elem() } -func (i RegionUrlMapDefaultRouteActionWeightedBackendServiceArray) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput { - return i.ToRegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutputWithContext(context.Background()) +func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput { + return i.ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutputWithContext(context.Background()) } -func (i RegionUrlMapDefaultRouteActionWeightedBackendServiceArray) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput) +func (i RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) } -type RegionUrlMapDefaultRouteActionWeightedBackendServiceOutput struct{ *pulumi.OutputState } +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput struct{ *pulumi.OutputState } -func (RegionUrlMapDefaultRouteActionWeightedBackendServiceOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapDefaultRouteActionWeightedBackendService)(nil)).Elem() +func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri)(nil)).Elem() } -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceOutput { +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput { return o } -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceOutput { +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput { return o } -// The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the load balancer applies any relevant headerActions specified as part of this backendServiceWeight. -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceOutput) BackendService() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionWeightedBackendService) *string { return v.BackendService }).(pulumi.StringPtrOutput) -} - -// Specifies changes to request and response headers that need to take effect for the selected backendService. -// headerAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap. -// headerAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. -// Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. -// Structure is documented below. -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceOutput) HeaderAction() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionWeightedBackendService) *RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction { - return v.HeaderAction - }).(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) +// You can specify an exact match or a partial match by using a field operator and a field value. +// Available options: +// EQUALS: The operator matches if the field value equals the specified value. +// STARTS_WITH: The operator matches if the field value starts with the specified value. +// ENDS_WITH: The operator matches if the field value ends with the specified value. +// CONTAINS: The operator matches if the field value contains the specified value. +// EQUALS_ANY: The operator matches if the field value is any value. +// Possible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`. +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) Operator() pulumi.StringOutput { + return o.ApplyT(func(v RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri) string { return v.Operator }).(pulumi.StringOutput) } -// Specifies the fraction of traffic sent to a backend service, computed as weight / (sum of all weightedBackendService weights in routeAction) . -// The selection of a backend service is determined only for new traffic. Once a user's request has been directed to a backend service, subsequent requests are sent to the same backend service as determined by the backend service's session affinity policy. -// The value must be from 0 to 1000. -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceOutput) Weight() pulumi.IntPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionWeightedBackendService) *int { return v.Weight }).(pulumi.IntPtrOutput) +// A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. +// The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri) *string { return v.Value }).(pulumi.StringPtrOutput) } -type RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput struct{ *pulumi.OutputState } +type RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput struct{ *pulumi.OutputState } -func (RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapDefaultRouteActionWeightedBackendService)(nil)).Elem() +func (RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri)(nil)).Elem() } -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput { +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput() RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput { return o } -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput { +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) ToRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutputWithContext(ctx context.Context) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput { return o } -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput) Index(i pulumi.IntInput) RegionUrlMapDefaultRouteActionWeightedBackendServiceOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapDefaultRouteActionWeightedBackendService { - return vs[0].([]RegionUrlMapDefaultRouteActionWeightedBackendService)[vs[1].(int)] - }).(RegionUrlMapDefaultRouteActionWeightedBackendServiceOutput) +func (o RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) Index(i pulumi.IntInput) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri { + return vs[0].([]RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri)[vs[1].(int)] + }).(RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) } -type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction struct { - // Headers to add to a matching request before forwarding the request to the backendService. +type RegionSecurityPolicyRuleRateLimitOptions struct { + // Can only be specified if the action for the rule is "rateBasedBan". + // If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold. + BanDurationSec *int `pulumi:"banDurationSec"` + // Can only be specified if the action for the rule is "rateBasedBan". + // If specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'. // Structure is documented below. - RequestHeadersToAdds []RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd `pulumi:"requestHeadersToAdds"` - // A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. - RequestHeadersToRemoves []string `pulumi:"requestHeadersToRemoves"` - // Headers to add the response before sending the response back to the client. + BanThreshold *RegionSecurityPolicyRuleRateLimitOptionsBanThreshold `pulumi:"banThreshold"` + // Action to take for requests that are under the configured rate limit threshold. + // Valid option is "allow" only. + ConformAction *string `pulumi:"conformAction"` + // Determines the key to enforce the rateLimitThreshold on. Possible values are: + // * ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKey" is not configured. + // * IP: The source IP address of the request is the key. Each IP has this limit enforced separately. + // * HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. + // * XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. + // * HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. + // * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. + // * SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. + // * REGION_CODE: The country/region from which the request originates. + // * TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. + // * USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP. + // Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. + EnforceOnKey *string `pulumi:"enforceOnKey"` + // If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced. + // You can specify up to 3 enforceOnKeyConfigs. + // If enforceOnKeyConfigs is specified, enforceOnKey must not be specified. // Structure is documented below. - ResponseHeadersToAdds []RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd `pulumi:"responseHeadersToAdds"` - // A list of header names for headers that need to be removed from the response before sending the response back to the client. - ResponseHeadersToRemoves []string `pulumi:"responseHeadersToRemoves"` + EnforceOnKeyConfigs []RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig `pulumi:"enforceOnKeyConfigs"` + // Rate limit key name applicable only for the following key types: + // HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. + // HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. + EnforceOnKeyName *string `pulumi:"enforceOnKeyName"` + // Action to take for requests that are above the configured rate limit threshold, to deny with a specified HTTP response code. + // Valid options are deny(STATUS), where valid values for STATUS are 403, 404, 429, and 502. + ExceedAction *string `pulumi:"exceedAction"` + // Threshold at which to begin ratelimiting. + // Structure is documented below. + RateLimitThreshold *RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold `pulumi:"rateLimitThreshold"` } -// RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionInput is an input type that accepts RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs and RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput values. -// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionInput` via: +// RegionSecurityPolicyRuleRateLimitOptionsInput is an input type that accepts RegionSecurityPolicyRuleRateLimitOptionsArgs and RegionSecurityPolicyRuleRateLimitOptionsOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyRuleRateLimitOptionsInput` via: // -// RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs{...} -type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionInput interface { +// RegionSecurityPolicyRuleRateLimitOptionsArgs{...} +type RegionSecurityPolicyRuleRateLimitOptionsInput interface { pulumi.Input - ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput - ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput + ToRegionSecurityPolicyRuleRateLimitOptionsOutput() RegionSecurityPolicyRuleRateLimitOptionsOutput + ToRegionSecurityPolicyRuleRateLimitOptionsOutputWithContext(context.Context) RegionSecurityPolicyRuleRateLimitOptionsOutput } -type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs struct { - // Headers to add to a matching request before forwarding the request to the backendService. +type RegionSecurityPolicyRuleRateLimitOptionsArgs struct { + // Can only be specified if the action for the rule is "rateBasedBan". + // If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold. + BanDurationSec pulumi.IntPtrInput `pulumi:"banDurationSec"` + // Can only be specified if the action for the rule is "rateBasedBan". + // If specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'. // Structure is documented below. - RequestHeadersToAdds RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput `pulumi:"requestHeadersToAdds"` - // A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. - RequestHeadersToRemoves pulumi.StringArrayInput `pulumi:"requestHeadersToRemoves"` - // Headers to add the response before sending the response back to the client. + BanThreshold RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrInput `pulumi:"banThreshold"` + // Action to take for requests that are under the configured rate limit threshold. + // Valid option is "allow" only. + ConformAction pulumi.StringPtrInput `pulumi:"conformAction"` + // Determines the key to enforce the rateLimitThreshold on. Possible values are: + // * ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKey" is not configured. + // * IP: The source IP address of the request is the key. Each IP has this limit enforced separately. + // * HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. + // * XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. + // * HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. + // * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. + // * SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. + // * REGION_CODE: The country/region from which the request originates. + // * TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. + // * USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP. + // Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. + EnforceOnKey pulumi.StringPtrInput `pulumi:"enforceOnKey"` + // If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced. + // You can specify up to 3 enforceOnKeyConfigs. + // If enforceOnKeyConfigs is specified, enforceOnKey must not be specified. // Structure is documented below. - ResponseHeadersToAdds RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput `pulumi:"responseHeadersToAdds"` - // A list of header names for headers that need to be removed from the response before sending the response back to the client. - ResponseHeadersToRemoves pulumi.StringArrayInput `pulumi:"responseHeadersToRemoves"` + EnforceOnKeyConfigs RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayInput `pulumi:"enforceOnKeyConfigs"` + // Rate limit key name applicable only for the following key types: + // HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. + // HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. + EnforceOnKeyName pulumi.StringPtrInput `pulumi:"enforceOnKeyName"` + // Action to take for requests that are above the configured rate limit threshold, to deny with a specified HTTP response code. + // Valid options are deny(STATUS), where valid values for STATUS are 403, 404, 429, and 502. + ExceedAction pulumi.StringPtrInput `pulumi:"exceedAction"` + // Threshold at which to begin ratelimiting. + // Structure is documented below. + RateLimitThreshold RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrInput `pulumi:"rateLimitThreshold"` } -func (RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() +func (RegionSecurityPolicyRuleRateLimitOptionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyRuleRateLimitOptions)(nil)).Elem() } -func (i RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput { - return i.ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutputWithContext(context.Background()) +func (i RegionSecurityPolicyRuleRateLimitOptionsArgs) ToRegionSecurityPolicyRuleRateLimitOptionsOutput() RegionSecurityPolicyRuleRateLimitOptionsOutput { + return i.ToRegionSecurityPolicyRuleRateLimitOptionsOutputWithContext(context.Background()) } -func (i RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) +func (i RegionSecurityPolicyRuleRateLimitOptionsArgs) ToRegionSecurityPolicyRuleRateLimitOptionsOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleRateLimitOptionsOutput) } -func (i RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return i.ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Background()) +func (i RegionSecurityPolicyRuleRateLimitOptionsArgs) ToRegionSecurityPolicyRuleRateLimitOptionsPtrOutput() RegionSecurityPolicyRuleRateLimitOptionsPtrOutput { + return i.ToRegionSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(context.Background()) } -func (i RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput).ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx) +func (i RegionSecurityPolicyRuleRateLimitOptionsArgs) ToRegionSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleRateLimitOptionsOutput).ToRegionSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx) } -// RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrInput is an input type that accepts RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs, RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtr and RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrInput` via: +// RegionSecurityPolicyRuleRateLimitOptionsPtrInput is an input type that accepts RegionSecurityPolicyRuleRateLimitOptionsArgs, RegionSecurityPolicyRuleRateLimitOptionsPtr and RegionSecurityPolicyRuleRateLimitOptionsPtrOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyRuleRateLimitOptionsPtrInput` via: // -// RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs{...} +// RegionSecurityPolicyRuleRateLimitOptionsArgs{...} // // or: // // nil -type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrInput interface { +type RegionSecurityPolicyRuleRateLimitOptionsPtrInput interface { pulumi.Input - ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput - ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput + ToRegionSecurityPolicyRuleRateLimitOptionsPtrOutput() RegionSecurityPolicyRuleRateLimitOptionsPtrOutput + ToRegionSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(context.Context) RegionSecurityPolicyRuleRateLimitOptionsPtrOutput } -type regionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrType RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs +type regionSecurityPolicyRuleRateLimitOptionsPtrType RegionSecurityPolicyRuleRateLimitOptionsArgs -func RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtr(v *RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrInput { - return (*regionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrType)(v) +func RegionSecurityPolicyRuleRateLimitOptionsPtr(v *RegionSecurityPolicyRuleRateLimitOptionsArgs) RegionSecurityPolicyRuleRateLimitOptionsPtrInput { + return (*regionSecurityPolicyRuleRateLimitOptionsPtrType)(v) } -func (*regionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() +func (*regionSecurityPolicyRuleRateLimitOptionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionSecurityPolicyRuleRateLimitOptions)(nil)).Elem() } -func (i *regionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrType) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return i.ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Background()) +func (i *regionSecurityPolicyRuleRateLimitOptionsPtrType) ToRegionSecurityPolicyRuleRateLimitOptionsPtrOutput() RegionSecurityPolicyRuleRateLimitOptionsPtrOutput { + return i.ToRegionSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(context.Background()) } -func (i *regionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrType) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) +func (i *regionSecurityPolicyRuleRateLimitOptionsPtrType) ToRegionSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleRateLimitOptionsPtrOutput) } -type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput struct{ *pulumi.OutputState } +type RegionSecurityPolicyRuleRateLimitOptionsOutput struct{ *pulumi.OutputState } -func (RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() +func (RegionSecurityPolicyRuleRateLimitOptionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyRuleRateLimitOptions)(nil)).Elem() } -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput { +func (o RegionSecurityPolicyRuleRateLimitOptionsOutput) ToRegionSecurityPolicyRuleRateLimitOptionsOutput() RegionSecurityPolicyRuleRateLimitOptionsOutput { return o } -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput { +func (o RegionSecurityPolicyRuleRateLimitOptionsOutput) ToRegionSecurityPolicyRuleRateLimitOptionsOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsOutput { return o } -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return o.ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Background()) +func (o RegionSecurityPolicyRuleRateLimitOptionsOutput) ToRegionSecurityPolicyRuleRateLimitOptionsPtrOutput() RegionSecurityPolicyRuleRateLimitOptionsPtrOutput { + return o.ToRegionSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(context.Background()) } -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction) *RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction { +func (o RegionSecurityPolicyRuleRateLimitOptionsOutput) ToRegionSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionSecurityPolicyRuleRateLimitOptions) *RegionSecurityPolicyRuleRateLimitOptions { return &v - }).(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) -} - -// Headers to add to a matching request before forwarding the request to the backendService. -// Structure is documented below. -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) RequestHeadersToAdds() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction) []RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd { - return v.RequestHeadersToAdds - }).(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) + }).(RegionSecurityPolicyRuleRateLimitOptionsPtrOutput) } -// A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) RequestHeadersToRemoves() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction) []string { - return v.RequestHeadersToRemoves - }).(pulumi.StringArrayOutput) +// Can only be specified if the action for the rule is "rateBasedBan". +// If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold. +func (o RegionSecurityPolicyRuleRateLimitOptionsOutput) BanDurationSec() pulumi.IntPtrOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleRateLimitOptions) *int { return v.BanDurationSec }).(pulumi.IntPtrOutput) } -// Headers to add the response before sending the response back to the client. +// Can only be specified if the action for the rule is "rateBasedBan". +// If specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'. // Structure is documented below. -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ResponseHeadersToAdds() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction) []RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd { - return v.ResponseHeadersToAdds - }).(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) +func (o RegionSecurityPolicyRuleRateLimitOptionsOutput) BanThreshold() RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleRateLimitOptions) *RegionSecurityPolicyRuleRateLimitOptionsBanThreshold { + return v.BanThreshold + }).(RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) } -// A list of header names for headers that need to be removed from the response before sending the response back to the client. -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ResponseHeadersToRemoves() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction) []string { - return v.ResponseHeadersToRemoves - }).(pulumi.StringArrayOutput) +// Action to take for requests that are under the configured rate limit threshold. +// Valid option is "allow" only. +func (o RegionSecurityPolicyRuleRateLimitOptionsOutput) ConformAction() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleRateLimitOptions) *string { return v.ConformAction }).(pulumi.StringPtrOutput) } -type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput struct{ *pulumi.OutputState } +// Determines the key to enforce the rateLimitThreshold on. Possible values are: +// - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKey" is not configured. +// - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. +// - HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. +// - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. +// - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. +// - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. +// - SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. +// - REGION_CODE: The country/region from which the request originates. +// - TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. +// - USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP. +// Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. +func (o RegionSecurityPolicyRuleRateLimitOptionsOutput) EnforceOnKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleRateLimitOptions) *string { return v.EnforceOnKey }).(pulumi.StringPtrOutput) +} -func (RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() +// If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced. +// You can specify up to 3 enforceOnKeyConfigs. +// If enforceOnKeyConfigs is specified, enforceOnKey must not be specified. +// Structure is documented below. +func (o RegionSecurityPolicyRuleRateLimitOptionsOutput) EnforceOnKeyConfigs() RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleRateLimitOptions) []RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig { + return v.EnforceOnKeyConfigs + }).(RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) } -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { +// Rate limit key name applicable only for the following key types: +// HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. +// HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. +func (o RegionSecurityPolicyRuleRateLimitOptionsOutput) EnforceOnKeyName() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleRateLimitOptions) *string { return v.EnforceOnKeyName }).(pulumi.StringPtrOutput) +} + +// Action to take for requests that are above the configured rate limit threshold, to deny with a specified HTTP response code. +// Valid options are deny(STATUS), where valid values for STATUS are 403, 404, 429, and 502. +func (o RegionSecurityPolicyRuleRateLimitOptionsOutput) ExceedAction() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleRateLimitOptions) *string { return v.ExceedAction }).(pulumi.StringPtrOutput) +} + +// Threshold at which to begin ratelimiting. +// Structure is documented below. +func (o RegionSecurityPolicyRuleRateLimitOptionsOutput) RateLimitThreshold() RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleRateLimitOptions) *RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold { + return v.RateLimitThreshold + }).(RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) +} + +type RegionSecurityPolicyRuleRateLimitOptionsPtrOutput struct{ *pulumi.OutputState } + +func (RegionSecurityPolicyRuleRateLimitOptionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionSecurityPolicyRuleRateLimitOptions)(nil)).Elem() +} + +func (o RegionSecurityPolicyRuleRateLimitOptionsPtrOutput) ToRegionSecurityPolicyRuleRateLimitOptionsPtrOutput() RegionSecurityPolicyRuleRateLimitOptionsPtrOutput { return o } -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { +func (o RegionSecurityPolicyRuleRateLimitOptionsPtrOutput) ToRegionSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsPtrOutput { return o } -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) Elem() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction { +func (o RegionSecurityPolicyRuleRateLimitOptionsPtrOutput) Elem() RegionSecurityPolicyRuleRateLimitOptionsOutput { + return o.ApplyT(func(v *RegionSecurityPolicyRuleRateLimitOptions) RegionSecurityPolicyRuleRateLimitOptions { if v != nil { return *v } - var ret RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction + var ret RegionSecurityPolicyRuleRateLimitOptions return ret - }).(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) + }).(RegionSecurityPolicyRuleRateLimitOptionsOutput) } -// Headers to add to a matching request before forwarding the request to the backendService. +// Can only be specified if the action for the rule is "rateBasedBan". +// If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold. +func (o RegionSecurityPolicyRuleRateLimitOptionsPtrOutput) BanDurationSec() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RegionSecurityPolicyRuleRateLimitOptions) *int { + if v == nil { + return nil + } + return v.BanDurationSec + }).(pulumi.IntPtrOutput) +} + +// Can only be specified if the action for the rule is "rateBasedBan". +// If specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'. // Structure is documented below. -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) RequestHeadersToAdds() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction) []RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd { +func (o RegionSecurityPolicyRuleRateLimitOptionsPtrOutput) BanThreshold() RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { + return o.ApplyT(func(v *RegionSecurityPolicyRuleRateLimitOptions) *RegionSecurityPolicyRuleRateLimitOptionsBanThreshold { if v == nil { return nil } - return v.RequestHeadersToAdds - }).(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) + return v.BanThreshold + }).(RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) } -// A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) RequestHeadersToRemoves() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction) []string { +// Action to take for requests that are under the configured rate limit threshold. +// Valid option is "allow" only. +func (o RegionSecurityPolicyRuleRateLimitOptionsPtrOutput) ConformAction() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionSecurityPolicyRuleRateLimitOptions) *string { if v == nil { return nil } - return v.RequestHeadersToRemoves - }).(pulumi.StringArrayOutput) + return v.ConformAction + }).(pulumi.StringPtrOutput) } -// Headers to add the response before sending the response back to the client. +// Determines the key to enforce the rateLimitThreshold on. Possible values are: +// - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKey" is not configured. +// - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. +// - HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. +// - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. +// - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. +// - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. +// - SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. +// - REGION_CODE: The country/region from which the request originates. +// - TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. +// - USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP. +// Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. +func (o RegionSecurityPolicyRuleRateLimitOptionsPtrOutput) EnforceOnKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionSecurityPolicyRuleRateLimitOptions) *string { + if v == nil { + return nil + } + return v.EnforceOnKey + }).(pulumi.StringPtrOutput) +} + +// If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced. +// You can specify up to 3 enforceOnKeyConfigs. +// If enforceOnKeyConfigs is specified, enforceOnKey must not be specified. // Structure is documented below. -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) ResponseHeadersToAdds() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction) []RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd { +func (o RegionSecurityPolicyRuleRateLimitOptionsPtrOutput) EnforceOnKeyConfigs() RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { + return o.ApplyT(func(v *RegionSecurityPolicyRuleRateLimitOptions) []RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig { if v == nil { return nil } - return v.ResponseHeadersToAdds - }).(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) + return v.EnforceOnKeyConfigs + }).(RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) } -// A list of header names for headers that need to be removed from the response before sending the response back to the client. -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) ResponseHeadersToRemoves() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction) []string { +// Rate limit key name applicable only for the following key types: +// HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. +// HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. +func (o RegionSecurityPolicyRuleRateLimitOptionsPtrOutput) EnforceOnKeyName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionSecurityPolicyRuleRateLimitOptions) *string { if v == nil { return nil } - return v.ResponseHeadersToRemoves - }).(pulumi.StringArrayOutput) + return v.EnforceOnKeyName + }).(pulumi.StringPtrOutput) } -type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd struct { - // The name of the header. - HeaderName *string `pulumi:"headerName"` - // The value of the header to add. - HeaderValue *string `pulumi:"headerValue"` - // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. - // The default value is false. - Replace *bool `pulumi:"replace"` +// Action to take for requests that are above the configured rate limit threshold, to deny with a specified HTTP response code. +// Valid options are deny(STATUS), where valid values for STATUS are 403, 404, 429, and 502. +func (o RegionSecurityPolicyRuleRateLimitOptionsPtrOutput) ExceedAction() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionSecurityPolicyRuleRateLimitOptions) *string { + if v == nil { + return nil + } + return v.ExceedAction + }).(pulumi.StringPtrOutput) } -// RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput is an input type that accepts RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs and RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput values. -// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput` via: +// Threshold at which to begin ratelimiting. +// Structure is documented below. +func (o RegionSecurityPolicyRuleRateLimitOptionsPtrOutput) RateLimitThreshold() RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { + return o.ApplyT(func(v *RegionSecurityPolicyRuleRateLimitOptions) *RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold { + if v == nil { + return nil + } + return v.RateLimitThreshold + }).(RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) +} + +type RegionSecurityPolicyRuleRateLimitOptionsBanThreshold struct { + // Number of HTTP(S) requests for calculating the threshold. + Count *int `pulumi:"count"` + // Interval over which the threshold is computed. + IntervalSec *int `pulumi:"intervalSec"` +} + +// RegionSecurityPolicyRuleRateLimitOptionsBanThresholdInput is an input type that accepts RegionSecurityPolicyRuleRateLimitOptionsBanThresholdArgs and RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyRuleRateLimitOptionsBanThresholdInput` via: // -// RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs{...} -type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput interface { +// RegionSecurityPolicyRuleRateLimitOptionsBanThresholdArgs{...} +type RegionSecurityPolicyRuleRateLimitOptionsBanThresholdInput interface { pulumi.Input - ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput - ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput + ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput() RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput + ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutputWithContext(context.Context) RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput } -type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs struct { - // The name of the header. - HeaderName pulumi.StringPtrInput `pulumi:"headerName"` - // The value of the header to add. - HeaderValue pulumi.StringPtrInput `pulumi:"headerValue"` - // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. - // The default value is false. - Replace pulumi.BoolPtrInput `pulumi:"replace"` +type RegionSecurityPolicyRuleRateLimitOptionsBanThresholdArgs struct { + // Number of HTTP(S) requests for calculating the threshold. + Count pulumi.IntPtrInput `pulumi:"count"` + // Interval over which the threshold is computed. + IntervalSec pulumi.IntPtrInput `pulumi:"intervalSec"` } -func (RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() +func (RegionSecurityPolicyRuleRateLimitOptionsBanThresholdArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyRuleRateLimitOptionsBanThreshold)(nil)).Elem() } -func (i RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { - return i.ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(context.Background()) +func (i RegionSecurityPolicyRuleRateLimitOptionsBanThresholdArgs) ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput() RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput { + return i.ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutputWithContext(context.Background()) } -func (i RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) +func (i RegionSecurityPolicyRuleRateLimitOptionsBanThresholdArgs) ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput) } -// RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput is an input type that accepts RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray and RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput values. -// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput` via: +func (i RegionSecurityPolicyRuleRateLimitOptionsBanThresholdArgs) ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput() RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { + return i.ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(context.Background()) +} + +func (i RegionSecurityPolicyRuleRateLimitOptionsBanThresholdArgs) ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput).ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(ctx) +} + +// RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrInput is an input type that accepts RegionSecurityPolicyRuleRateLimitOptionsBanThresholdArgs, RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtr and RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrInput` via: // -// RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray{ RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs{...} } -type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput interface { +// RegionSecurityPolicyRuleRateLimitOptionsBanThresholdArgs{...} +// +// or: +// +// nil +type RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrInput interface { pulumi.Input - ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput - ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput + ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput() RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput + ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(context.Context) RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput } -type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray []RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput +type regionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrType RegionSecurityPolicyRuleRateLimitOptionsBanThresholdArgs -func (RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() +func RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtr(v *RegionSecurityPolicyRuleRateLimitOptionsBanThresholdArgs) RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrInput { + return (*regionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrType)(v) } -func (i RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { - return i.ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Background()) +func (*regionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionSecurityPolicyRuleRateLimitOptionsBanThreshold)(nil)).Elem() } -func (i RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) +func (i *regionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrType) ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput() RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { + return i.ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(context.Background()) } -type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput struct{ *pulumi.OutputState } +func (i *regionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrType) ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) +} -func (RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() +type RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput struct{ *pulumi.OutputState } + +func (RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyRuleRateLimitOptionsBanThreshold)(nil)).Elem() } -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { +func (o RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput) ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput() RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput { return o } -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { +func (o RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput) ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput { return o } -// The name of the header. -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) HeaderName() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd) *string { - return v.HeaderName - }).(pulumi.StringPtrOutput) +func (o RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput) ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput() RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { + return o.ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(context.Background()) } -// The value of the header to add. -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) HeaderValue() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd) *string { - return v.HeaderValue - }).(pulumi.StringPtrOutput) +func (o RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput) ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionSecurityPolicyRuleRateLimitOptionsBanThreshold) *RegionSecurityPolicyRuleRateLimitOptionsBanThreshold { + return &v + }).(RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) } -// If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. -// The default value is false. -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) Replace() pulumi.BoolPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd) *bool { - return v.Replace - }).(pulumi.BoolPtrOutput) +// Number of HTTP(S) requests for calculating the threshold. +func (o RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput) Count() pulumi.IntPtrOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleRateLimitOptionsBanThreshold) *int { return v.Count }).(pulumi.IntPtrOutput) } -type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput struct{ *pulumi.OutputState } +// Interval over which the threshold is computed. +func (o RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput) IntervalSec() pulumi.IntPtrOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleRateLimitOptionsBanThreshold) *int { return v.IntervalSec }).(pulumi.IntPtrOutput) +} -func (RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() +type RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput struct{ *pulumi.OutputState } + +func (RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionSecurityPolicyRuleRateLimitOptionsBanThreshold)(nil)).Elem() } -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { +func (o RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput() RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { return o } -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { +func (o RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) ToRegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { return o } -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) Index(i pulumi.IntInput) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd { - return vs[0].([]RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)[vs[1].(int)] - }).(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) +func (o RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) Elem() RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput { + return o.ApplyT(func(v *RegionSecurityPolicyRuleRateLimitOptionsBanThreshold) RegionSecurityPolicyRuleRateLimitOptionsBanThreshold { + if v != nil { + return *v + } + var ret RegionSecurityPolicyRuleRateLimitOptionsBanThreshold + return ret + }).(RegionSecurityPolicyRuleRateLimitOptionsBanThresholdOutput) } -type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd struct { - // The name of the header. - HeaderName *string `pulumi:"headerName"` - // The value of the header to add. - HeaderValue *string `pulumi:"headerValue"` - // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. - // The default value is false. - Replace *bool `pulumi:"replace"` +// Number of HTTP(S) requests for calculating the threshold. +func (o RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) Count() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RegionSecurityPolicyRuleRateLimitOptionsBanThreshold) *int { + if v == nil { + return nil + } + return v.Count + }).(pulumi.IntPtrOutput) } -// RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput is an input type that accepts RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs and RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput values. -// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput` via: +// Interval over which the threshold is computed. +func (o RegionSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) IntervalSec() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RegionSecurityPolicyRuleRateLimitOptionsBanThreshold) *int { + if v == nil { + return nil + } + return v.IntervalSec + }).(pulumi.IntPtrOutput) +} + +type RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig struct { + // Rate limit key name applicable only for the following key types: + // HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. + // HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. + EnforceOnKeyName *string `pulumi:"enforceOnKeyName"` + // Determines the key to enforce the rateLimitThreshold on. Possible values are: + // * ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKeyConfigs" is not configured. + // * IP: The source IP address of the request is the key. Each IP has this limit enforced separately. + // * HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. + // * XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. + // * HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. + // * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. + // * SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. + // * REGION_CODE: The country/region from which the request originates. + // * TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. + // * USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP. + // Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. + EnforceOnKeyType *string `pulumi:"enforceOnKeyType"` +} + +// RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigInput is an input type that accepts RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs and RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigInput` via: // -// RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs{...} -type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput interface { +// RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs{...} +type RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigInput interface { pulumi.Input - ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput - ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput + ToRegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput() RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput + ToRegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutputWithContext(context.Context) RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput } -type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs struct { - // The name of the header. - HeaderName pulumi.StringPtrInput `pulumi:"headerName"` - // The value of the header to add. - HeaderValue pulumi.StringPtrInput `pulumi:"headerValue"` - // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. - // The default value is false. - Replace pulumi.BoolPtrInput `pulumi:"replace"` +type RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs struct { + // Rate limit key name applicable only for the following key types: + // HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. + // HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. + EnforceOnKeyName pulumi.StringPtrInput `pulumi:"enforceOnKeyName"` + // Determines the key to enforce the rateLimitThreshold on. Possible values are: + // * ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKeyConfigs" is not configured. + // * IP: The source IP address of the request is the key. Each IP has this limit enforced separately. + // * HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. + // * XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. + // * HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. + // * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. + // * SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. + // * REGION_CODE: The country/region from which the request originates. + // * TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. + // * USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP. + // Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. + EnforceOnKeyType pulumi.StringPtrInput `pulumi:"enforceOnKeyType"` } -func (RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() +func (RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig)(nil)).Elem() } -func (i RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { - return i.ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(context.Background()) +func (i RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs) ToRegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput() RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput { + return i.ToRegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutputWithContext(context.Background()) } -func (i RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) +func (i RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs) ToRegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) } -// RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput is an input type that accepts RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray and RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput values. -// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput` via: +// RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayInput is an input type that accepts RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray and RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayInput` via: // -// RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray{ RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs{...} } -type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput interface { +// RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray{ RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs{...} } +type RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayInput interface { pulumi.Input - ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput - ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput + ToRegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput() RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput + ToRegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutputWithContext(context.Context) RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput } -type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray []RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput +type RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray []RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigInput -func (RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() +func (RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig)(nil)).Elem() } -func (i RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { - return i.ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(context.Background()) +func (i RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray) ToRegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput() RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { + return i.ToRegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutputWithContext(context.Background()) } -func (i RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) +func (i RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray) ToRegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) } -type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput struct{ *pulumi.OutputState } +type RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput struct{ *pulumi.OutputState } -func (RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() +func (RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig)(nil)).Elem() } -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { +func (o RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) ToRegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput() RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput { return o } -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { +func (o RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) ToRegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput { return o } -// The name of the header. -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) HeaderName() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd) *string { - return v.HeaderName - }).(pulumi.StringPtrOutput) -} - -// The value of the header to add. -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) HeaderValue() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd) *string { - return v.HeaderValue - }).(pulumi.StringPtrOutput) +// Rate limit key name applicable only for the following key types: +// HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. +// HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. +func (o RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) EnforceOnKeyName() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig) *string { return v.EnforceOnKeyName }).(pulumi.StringPtrOutput) } -// If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. -// The default value is false. -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) Replace() pulumi.BoolPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd) *bool { - return v.Replace - }).(pulumi.BoolPtrOutput) +// Determines the key to enforce the rateLimitThreshold on. Possible values are: +// - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKeyConfigs" is not configured. +// - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. +// - HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. +// - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. +// - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. +// - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. +// - SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. +// - REGION_CODE: The country/region from which the request originates. +// - TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. +// - USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP. +// Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. +func (o RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) EnforceOnKeyType() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig) *string { return v.EnforceOnKeyType }).(pulumi.StringPtrOutput) } -type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput struct{ *pulumi.OutputState } +type RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput struct{ *pulumi.OutputState } -func (RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() +func (RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig)(nil)).Elem() } -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { +func (o RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) ToRegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput() RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { return o } -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { +func (o RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) ToRegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { return o } -func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) Index(i pulumi.IntInput) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd { - return vs[0].([]RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)[vs[1].(int)] - }).(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) +func (o RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) Index(i pulumi.IntInput) RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig { + return vs[0].([]RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig)[vs[1].(int)] + }).(RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) } -type RegionUrlMapDefaultUrlRedirect struct { - // The host that will be used in the redirect response instead of the one that was - // supplied in the request. The value must be between 1 and 255 characters. - HostRedirect *string `pulumi:"hostRedirect"` - // If set to true, the URL scheme in the redirected request is set to https. If set to - // false, the URL scheme of the redirected request will remain the same as that of the - // request. This must only be set for UrlMaps used in TargetHttpProxys. Setting this - // true for TargetHttpsProxy is not permitted. The default is set to false. - HttpsRedirect *bool `pulumi:"httpsRedirect"` - // The path that will be used in the redirect response instead of the one that was - // supplied in the request. pathRedirect cannot be supplied together with - // prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the - // original request will be used for the redirect. The value must be between 1 and 1024 - // characters. - PathRedirect *string `pulumi:"pathRedirect"` - // The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, - // retaining the remaining portion of the URL before redirecting the request. - // prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or - // neither. If neither is supplied, the path of the original request will be used for - // the redirect. The value must be between 1 and 1024 characters. - PrefixRedirect *string `pulumi:"prefixRedirect"` - // The HTTP Status code to use for this RedirectAction. Supported values are: - // * MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. - // * FOUND, which corresponds to 302. - // * SEE_OTHER which corresponds to 303. - // * TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method - // will be retained. - // * PERMANENT_REDIRECT, which corresponds to 308. In this case, - // the request method will be retained. - RedirectResponseCode *string `pulumi:"redirectResponseCode"` - // If set to true, any accompanying query portion of the original URL is removed prior - // to redirecting the request. If set to false, the query portion of the original URL is - // retained. - // This field is required to ensure an empty block is not set. The normal default value is false. - StripQuery bool `pulumi:"stripQuery"` +type RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold struct { + // Number of HTTP(S) requests for calculating the threshold. + Count *int `pulumi:"count"` + // Interval over which the threshold is computed. + IntervalSec *int `pulumi:"intervalSec"` } -// RegionUrlMapDefaultUrlRedirectInput is an input type that accepts RegionUrlMapDefaultUrlRedirectArgs and RegionUrlMapDefaultUrlRedirectOutput values. -// You can construct a concrete instance of `RegionUrlMapDefaultUrlRedirectInput` via: +// RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdInput is an input type that accepts RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs and RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdInput` via: // -// RegionUrlMapDefaultUrlRedirectArgs{...} -type RegionUrlMapDefaultUrlRedirectInput interface { +// RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs{...} +type RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdInput interface { pulumi.Input - ToRegionUrlMapDefaultUrlRedirectOutput() RegionUrlMapDefaultUrlRedirectOutput - ToRegionUrlMapDefaultUrlRedirectOutputWithContext(context.Context) RegionUrlMapDefaultUrlRedirectOutput + ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput() RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput + ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutputWithContext(context.Context) RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput } -type RegionUrlMapDefaultUrlRedirectArgs struct { - // The host that will be used in the redirect response instead of the one that was - // supplied in the request. The value must be between 1 and 255 characters. - HostRedirect pulumi.StringPtrInput `pulumi:"hostRedirect"` - // If set to true, the URL scheme in the redirected request is set to https. If set to - // false, the URL scheme of the redirected request will remain the same as that of the - // request. This must only be set for UrlMaps used in TargetHttpProxys. Setting this - // true for TargetHttpsProxy is not permitted. The default is set to false. - HttpsRedirect pulumi.BoolPtrInput `pulumi:"httpsRedirect"` - // The path that will be used in the redirect response instead of the one that was - // supplied in the request. pathRedirect cannot be supplied together with - // prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the - // original request will be used for the redirect. The value must be between 1 and 1024 - // characters. - PathRedirect pulumi.StringPtrInput `pulumi:"pathRedirect"` - // The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, - // retaining the remaining portion of the URL before redirecting the request. - // prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or - // neither. If neither is supplied, the path of the original request will be used for - // the redirect. The value must be between 1 and 1024 characters. - PrefixRedirect pulumi.StringPtrInput `pulumi:"prefixRedirect"` - // The HTTP Status code to use for this RedirectAction. Supported values are: - // * MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. - // * FOUND, which corresponds to 302. - // * SEE_OTHER which corresponds to 303. - // * TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method - // will be retained. - // * PERMANENT_REDIRECT, which corresponds to 308. In this case, - // the request method will be retained. - RedirectResponseCode pulumi.StringPtrInput `pulumi:"redirectResponseCode"` - // If set to true, any accompanying query portion of the original URL is removed prior - // to redirecting the request. If set to false, the query portion of the original URL is - // retained. - // This field is required to ensure an empty block is not set. The normal default value is false. - StripQuery pulumi.BoolInput `pulumi:"stripQuery"` +type RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs struct { + // Number of HTTP(S) requests for calculating the threshold. + Count pulumi.IntPtrInput `pulumi:"count"` + // Interval over which the threshold is computed. + IntervalSec pulumi.IntPtrInput `pulumi:"intervalSec"` } -func (RegionUrlMapDefaultUrlRedirectArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapDefaultUrlRedirect)(nil)).Elem() +func (RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold)(nil)).Elem() } -func (i RegionUrlMapDefaultUrlRedirectArgs) ToRegionUrlMapDefaultUrlRedirectOutput() RegionUrlMapDefaultUrlRedirectOutput { - return i.ToRegionUrlMapDefaultUrlRedirectOutputWithContext(context.Background()) +func (i RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput() RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput { + return i.ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutputWithContext(context.Background()) } -func (i RegionUrlMapDefaultUrlRedirectArgs) ToRegionUrlMapDefaultUrlRedirectOutputWithContext(ctx context.Context) RegionUrlMapDefaultUrlRedirectOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultUrlRedirectOutput) +func (i RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) } -func (i RegionUrlMapDefaultUrlRedirectArgs) ToRegionUrlMapDefaultUrlRedirectPtrOutput() RegionUrlMapDefaultUrlRedirectPtrOutput { - return i.ToRegionUrlMapDefaultUrlRedirectPtrOutputWithContext(context.Background()) +func (i RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput() RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { + return i.ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(context.Background()) } -func (i RegionUrlMapDefaultUrlRedirectArgs) ToRegionUrlMapDefaultUrlRedirectPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultUrlRedirectPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultUrlRedirectOutput).ToRegionUrlMapDefaultUrlRedirectPtrOutputWithContext(ctx) +func (i RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput).ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(ctx) } -// RegionUrlMapDefaultUrlRedirectPtrInput is an input type that accepts RegionUrlMapDefaultUrlRedirectArgs, RegionUrlMapDefaultUrlRedirectPtr and RegionUrlMapDefaultUrlRedirectPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapDefaultUrlRedirectPtrInput` via: +// RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrInput is an input type that accepts RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs, RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtr and RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrInput` via: // -// RegionUrlMapDefaultUrlRedirectArgs{...} +// RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs{...} // // or: // // nil -type RegionUrlMapDefaultUrlRedirectPtrInput interface { +type RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrInput interface { pulumi.Input - ToRegionUrlMapDefaultUrlRedirectPtrOutput() RegionUrlMapDefaultUrlRedirectPtrOutput - ToRegionUrlMapDefaultUrlRedirectPtrOutputWithContext(context.Context) RegionUrlMapDefaultUrlRedirectPtrOutput + ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput() RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput + ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(context.Context) RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput } -type regionUrlMapDefaultUrlRedirectPtrType RegionUrlMapDefaultUrlRedirectArgs +type regionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrType RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs -func RegionUrlMapDefaultUrlRedirectPtr(v *RegionUrlMapDefaultUrlRedirectArgs) RegionUrlMapDefaultUrlRedirectPtrInput { - return (*regionUrlMapDefaultUrlRedirectPtrType)(v) +func RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtr(v *RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrInput { + return (*regionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrType)(v) } -func (*regionUrlMapDefaultUrlRedirectPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapDefaultUrlRedirect)(nil)).Elem() +func (*regionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold)(nil)).Elem() } -func (i *regionUrlMapDefaultUrlRedirectPtrType) ToRegionUrlMapDefaultUrlRedirectPtrOutput() RegionUrlMapDefaultUrlRedirectPtrOutput { - return i.ToRegionUrlMapDefaultUrlRedirectPtrOutputWithContext(context.Background()) +func (i *regionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrType) ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput() RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { + return i.ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(context.Background()) } -func (i *regionUrlMapDefaultUrlRedirectPtrType) ToRegionUrlMapDefaultUrlRedirectPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultUrlRedirectPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultUrlRedirectPtrOutput) +func (i *regionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrType) ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) } -type RegionUrlMapDefaultUrlRedirectOutput struct{ *pulumi.OutputState } +type RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput struct{ *pulumi.OutputState } -func (RegionUrlMapDefaultUrlRedirectOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapDefaultUrlRedirect)(nil)).Elem() +func (RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold)(nil)).Elem() } -func (o RegionUrlMapDefaultUrlRedirectOutput) ToRegionUrlMapDefaultUrlRedirectOutput() RegionUrlMapDefaultUrlRedirectOutput { +func (o RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput() RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput { return o } -func (o RegionUrlMapDefaultUrlRedirectOutput) ToRegionUrlMapDefaultUrlRedirectOutputWithContext(ctx context.Context) RegionUrlMapDefaultUrlRedirectOutput { +func (o RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput { return o } -func (o RegionUrlMapDefaultUrlRedirectOutput) ToRegionUrlMapDefaultUrlRedirectPtrOutput() RegionUrlMapDefaultUrlRedirectPtrOutput { - return o.ToRegionUrlMapDefaultUrlRedirectPtrOutputWithContext(context.Background()) +func (o RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput() RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { + return o.ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(context.Background()) } -func (o RegionUrlMapDefaultUrlRedirectOutput) ToRegionUrlMapDefaultUrlRedirectPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultUrlRedirectPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapDefaultUrlRedirect) *RegionUrlMapDefaultUrlRedirect { +func (o RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold) *RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold { return &v - }).(RegionUrlMapDefaultUrlRedirectPtrOutput) -} - -// The host that will be used in the redirect response instead of the one that was -// supplied in the request. The value must be between 1 and 255 characters. -func (o RegionUrlMapDefaultUrlRedirectOutput) HostRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultUrlRedirect) *string { return v.HostRedirect }).(pulumi.StringPtrOutput) -} - -// If set to true, the URL scheme in the redirected request is set to https. If set to -// false, the URL scheme of the redirected request will remain the same as that of the -// request. This must only be set for UrlMaps used in TargetHttpProxys. Setting this -// true for TargetHttpsProxy is not permitted. The default is set to false. -func (o RegionUrlMapDefaultUrlRedirectOutput) HttpsRedirect() pulumi.BoolPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultUrlRedirect) *bool { return v.HttpsRedirect }).(pulumi.BoolPtrOutput) -} - -// The path that will be used in the redirect response instead of the one that was -// supplied in the request. pathRedirect cannot be supplied together with -// prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the -// original request will be used for the redirect. The value must be between 1 and 1024 -// characters. -func (o RegionUrlMapDefaultUrlRedirectOutput) PathRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultUrlRedirect) *string { return v.PathRedirect }).(pulumi.StringPtrOutput) -} - -// The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, -// retaining the remaining portion of the URL before redirecting the request. -// prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or -// neither. If neither is supplied, the path of the original request will be used for -// the redirect. The value must be between 1 and 1024 characters. -func (o RegionUrlMapDefaultUrlRedirectOutput) PrefixRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultUrlRedirect) *string { return v.PrefixRedirect }).(pulumi.StringPtrOutput) + }).(RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) } -// The HTTP Status code to use for this RedirectAction. Supported values are: -// - MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. -// - FOUND, which corresponds to 302. -// - SEE_OTHER which corresponds to 303. -// - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method -// will be retained. -// - PERMANENT_REDIRECT, which corresponds to 308. In this case, -// the request method will be retained. -func (o RegionUrlMapDefaultUrlRedirectOutput) RedirectResponseCode() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapDefaultUrlRedirect) *string { return v.RedirectResponseCode }).(pulumi.StringPtrOutput) +// Number of HTTP(S) requests for calculating the threshold. +func (o RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) Count() pulumi.IntPtrOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold) *int { return v.Count }).(pulumi.IntPtrOutput) } -// If set to true, any accompanying query portion of the original URL is removed prior -// to redirecting the request. If set to false, the query portion of the original URL is -// retained. -// This field is required to ensure an empty block is not set. The normal default value is false. -func (o RegionUrlMapDefaultUrlRedirectOutput) StripQuery() pulumi.BoolOutput { - return o.ApplyT(func(v RegionUrlMapDefaultUrlRedirect) bool { return v.StripQuery }).(pulumi.BoolOutput) +// Interval over which the threshold is computed. +func (o RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) IntervalSec() pulumi.IntPtrOutput { + return o.ApplyT(func(v RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold) *int { return v.IntervalSec }).(pulumi.IntPtrOutput) } -type RegionUrlMapDefaultUrlRedirectPtrOutput struct{ *pulumi.OutputState } +type RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput struct{ *pulumi.OutputState } -func (RegionUrlMapDefaultUrlRedirectPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapDefaultUrlRedirect)(nil)).Elem() +func (RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold)(nil)).Elem() } -func (o RegionUrlMapDefaultUrlRedirectPtrOutput) ToRegionUrlMapDefaultUrlRedirectPtrOutput() RegionUrlMapDefaultUrlRedirectPtrOutput { +func (o RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput() RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { return o } -func (o RegionUrlMapDefaultUrlRedirectPtrOutput) ToRegionUrlMapDefaultUrlRedirectPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultUrlRedirectPtrOutput { +func (o RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) ToRegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(ctx context.Context) RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { return o } -func (o RegionUrlMapDefaultUrlRedirectPtrOutput) Elem() RegionUrlMapDefaultUrlRedirectOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultUrlRedirect) RegionUrlMapDefaultUrlRedirect { +func (o RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) Elem() RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput { + return o.ApplyT(func(v *RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold) RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold { if v != nil { return *v } - var ret RegionUrlMapDefaultUrlRedirect + var ret RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold return ret - }).(RegionUrlMapDefaultUrlRedirectOutput) -} - -// The host that will be used in the redirect response instead of the one that was -// supplied in the request. The value must be between 1 and 255 characters. -func (o RegionUrlMapDefaultUrlRedirectPtrOutput) HostRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultUrlRedirect) *string { - if v == nil { - return nil - } - return v.HostRedirect - }).(pulumi.StringPtrOutput) -} - -// If set to true, the URL scheme in the redirected request is set to https. If set to -// false, the URL scheme of the redirected request will remain the same as that of the -// request. This must only be set for UrlMaps used in TargetHttpProxys. Setting this -// true for TargetHttpsProxy is not permitted. The default is set to false. -func (o RegionUrlMapDefaultUrlRedirectPtrOutput) HttpsRedirect() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultUrlRedirect) *bool { - if v == nil { - return nil - } - return v.HttpsRedirect - }).(pulumi.BoolPtrOutput) -} - -// The path that will be used in the redirect response instead of the one that was -// supplied in the request. pathRedirect cannot be supplied together with -// prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the -// original request will be used for the redirect. The value must be between 1 and 1024 -// characters. -func (o RegionUrlMapDefaultUrlRedirectPtrOutput) PathRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultUrlRedirect) *string { - if v == nil { - return nil - } - return v.PathRedirect - }).(pulumi.StringPtrOutput) -} - -// The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, -// retaining the remaining portion of the URL before redirecting the request. -// prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or -// neither. If neither is supplied, the path of the original request will be used for -// the redirect. The value must be between 1 and 1024 characters. -func (o RegionUrlMapDefaultUrlRedirectPtrOutput) PrefixRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultUrlRedirect) *string { - if v == nil { - return nil - } - return v.PrefixRedirect - }).(pulumi.StringPtrOutput) + }).(RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) } -// The HTTP Status code to use for this RedirectAction. Supported values are: -// - MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. -// - FOUND, which corresponds to 302. -// - SEE_OTHER which corresponds to 303. -// - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method -// will be retained. -// - PERMANENT_REDIRECT, which corresponds to 308. In this case, -// the request method will be retained. -func (o RegionUrlMapDefaultUrlRedirectPtrOutput) RedirectResponseCode() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultUrlRedirect) *string { +// Number of HTTP(S) requests for calculating the threshold. +func (o RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) Count() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold) *int { if v == nil { return nil } - return v.RedirectResponseCode - }).(pulumi.StringPtrOutput) + return v.Count + }).(pulumi.IntPtrOutput) } -// If set to true, any accompanying query portion of the original URL is removed prior -// to redirecting the request. If set to false, the query portion of the original URL is -// retained. -// This field is required to ensure an empty block is not set. The normal default value is false. -func (o RegionUrlMapDefaultUrlRedirectPtrOutput) StripQuery() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *RegionUrlMapDefaultUrlRedirect) *bool { +// Interval over which the threshold is computed. +func (o RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) IntervalSec() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold) *int { if v == nil { return nil } - return &v.StripQuery - }).(pulumi.BoolPtrOutput) + return v.IntervalSec + }).(pulumi.IntPtrOutput) } -type RegionUrlMapHostRule struct { - // An optional description of this HostRule. Provide this property - // when you create the resource. - Description *string `pulumi:"description"` - // The list of host patterns to match. They must be valid - // hostnames, except * will match any string of ([a-z0-9-.]*). In - // that case, * must be the first character and must be followed in - // the pattern by either - or .. - Hosts []string `pulumi:"hosts"` - // The name of the PathMatcher to use to match the path portion of - // the URL if the hostRule matches the URL's host portion. - PathMatcher string `pulumi:"pathMatcher"` +type RegionSecurityPolicyUserDefinedField struct { + // The base relative to which 'offset' is measured. Possible values are: + // - IPV4: Points to the beginning of the IPv4 header. + // - IPV6: Points to the beginning of the IPv6 header. + // - TCP: Points to the beginning of the TCP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments. + // - UDP: Points to the beginning of the UDP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments. + // Possible values are: `IPV4`, `IPV6`, `TCP`, `UDP`. + Base string `pulumi:"base"` + // If specified, apply this mask (bitwise AND) to the field to ignore bits before matching. + // Encoded as a hexadecimal number (starting with "0x"). + // The last byte of the field (in network byte order) corresponds to the least significant byte of the mask. + Mask *string `pulumi:"mask"` + // Name of the user-defined field, as given in the definition. + Name *string `pulumi:"name"` + // Offset of the first byte of the field (in network byte order) relative to 'base'. + Offset *int `pulumi:"offset"` + // Size of the field in bytes. Valid values: 1-4. + Size *int `pulumi:"size"` } -// RegionUrlMapHostRuleInput is an input type that accepts RegionUrlMapHostRuleArgs and RegionUrlMapHostRuleOutput values. -// You can construct a concrete instance of `RegionUrlMapHostRuleInput` via: +// RegionSecurityPolicyUserDefinedFieldInput is an input type that accepts RegionSecurityPolicyUserDefinedFieldArgs and RegionSecurityPolicyUserDefinedFieldOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyUserDefinedFieldInput` via: // -// RegionUrlMapHostRuleArgs{...} -type RegionUrlMapHostRuleInput interface { +// RegionSecurityPolicyUserDefinedFieldArgs{...} +type RegionSecurityPolicyUserDefinedFieldInput interface { pulumi.Input - ToRegionUrlMapHostRuleOutput() RegionUrlMapHostRuleOutput - ToRegionUrlMapHostRuleOutputWithContext(context.Context) RegionUrlMapHostRuleOutput + ToRegionSecurityPolicyUserDefinedFieldOutput() RegionSecurityPolicyUserDefinedFieldOutput + ToRegionSecurityPolicyUserDefinedFieldOutputWithContext(context.Context) RegionSecurityPolicyUserDefinedFieldOutput } -type RegionUrlMapHostRuleArgs struct { - // An optional description of this HostRule. Provide this property - // when you create the resource. - Description pulumi.StringPtrInput `pulumi:"description"` - // The list of host patterns to match. They must be valid - // hostnames, except * will match any string of ([a-z0-9-.]*). In - // that case, * must be the first character and must be followed in - // the pattern by either - or .. - Hosts pulumi.StringArrayInput `pulumi:"hosts"` - // The name of the PathMatcher to use to match the path portion of - // the URL if the hostRule matches the URL's host portion. - PathMatcher pulumi.StringInput `pulumi:"pathMatcher"` +type RegionSecurityPolicyUserDefinedFieldArgs struct { + // The base relative to which 'offset' is measured. Possible values are: + // - IPV4: Points to the beginning of the IPv4 header. + // - IPV6: Points to the beginning of the IPv6 header. + // - TCP: Points to the beginning of the TCP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments. + // - UDP: Points to the beginning of the UDP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments. + // Possible values are: `IPV4`, `IPV6`, `TCP`, `UDP`. + Base pulumi.StringInput `pulumi:"base"` + // If specified, apply this mask (bitwise AND) to the field to ignore bits before matching. + // Encoded as a hexadecimal number (starting with "0x"). + // The last byte of the field (in network byte order) corresponds to the least significant byte of the mask. + Mask pulumi.StringPtrInput `pulumi:"mask"` + // Name of the user-defined field, as given in the definition. + Name pulumi.StringPtrInput `pulumi:"name"` + // Offset of the first byte of the field (in network byte order) relative to 'base'. + Offset pulumi.IntPtrInput `pulumi:"offset"` + // Size of the field in bytes. Valid values: 1-4. + Size pulumi.IntPtrInput `pulumi:"size"` } -func (RegionUrlMapHostRuleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapHostRule)(nil)).Elem() +func (RegionSecurityPolicyUserDefinedFieldArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyUserDefinedField)(nil)).Elem() } -func (i RegionUrlMapHostRuleArgs) ToRegionUrlMapHostRuleOutput() RegionUrlMapHostRuleOutput { - return i.ToRegionUrlMapHostRuleOutputWithContext(context.Background()) +func (i RegionSecurityPolicyUserDefinedFieldArgs) ToRegionSecurityPolicyUserDefinedFieldOutput() RegionSecurityPolicyUserDefinedFieldOutput { + return i.ToRegionSecurityPolicyUserDefinedFieldOutputWithContext(context.Background()) } -func (i RegionUrlMapHostRuleArgs) ToRegionUrlMapHostRuleOutputWithContext(ctx context.Context) RegionUrlMapHostRuleOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapHostRuleOutput) +func (i RegionSecurityPolicyUserDefinedFieldArgs) ToRegionSecurityPolicyUserDefinedFieldOutputWithContext(ctx context.Context) RegionSecurityPolicyUserDefinedFieldOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyUserDefinedFieldOutput) } -// RegionUrlMapHostRuleArrayInput is an input type that accepts RegionUrlMapHostRuleArray and RegionUrlMapHostRuleArrayOutput values. -// You can construct a concrete instance of `RegionUrlMapHostRuleArrayInput` via: +// RegionSecurityPolicyUserDefinedFieldArrayInput is an input type that accepts RegionSecurityPolicyUserDefinedFieldArray and RegionSecurityPolicyUserDefinedFieldArrayOutput values. +// You can construct a concrete instance of `RegionSecurityPolicyUserDefinedFieldArrayInput` via: // -// RegionUrlMapHostRuleArray{ RegionUrlMapHostRuleArgs{...} } -type RegionUrlMapHostRuleArrayInput interface { +// RegionSecurityPolicyUserDefinedFieldArray{ RegionSecurityPolicyUserDefinedFieldArgs{...} } +type RegionSecurityPolicyUserDefinedFieldArrayInput interface { pulumi.Input - ToRegionUrlMapHostRuleArrayOutput() RegionUrlMapHostRuleArrayOutput - ToRegionUrlMapHostRuleArrayOutputWithContext(context.Context) RegionUrlMapHostRuleArrayOutput + ToRegionSecurityPolicyUserDefinedFieldArrayOutput() RegionSecurityPolicyUserDefinedFieldArrayOutput + ToRegionSecurityPolicyUserDefinedFieldArrayOutputWithContext(context.Context) RegionSecurityPolicyUserDefinedFieldArrayOutput } -type RegionUrlMapHostRuleArray []RegionUrlMapHostRuleInput +type RegionSecurityPolicyUserDefinedFieldArray []RegionSecurityPolicyUserDefinedFieldInput -func (RegionUrlMapHostRuleArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapHostRule)(nil)).Elem() +func (RegionSecurityPolicyUserDefinedFieldArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionSecurityPolicyUserDefinedField)(nil)).Elem() } -func (i RegionUrlMapHostRuleArray) ToRegionUrlMapHostRuleArrayOutput() RegionUrlMapHostRuleArrayOutput { - return i.ToRegionUrlMapHostRuleArrayOutputWithContext(context.Background()) +func (i RegionSecurityPolicyUserDefinedFieldArray) ToRegionSecurityPolicyUserDefinedFieldArrayOutput() RegionSecurityPolicyUserDefinedFieldArrayOutput { + return i.ToRegionSecurityPolicyUserDefinedFieldArrayOutputWithContext(context.Background()) } -func (i RegionUrlMapHostRuleArray) ToRegionUrlMapHostRuleArrayOutputWithContext(ctx context.Context) RegionUrlMapHostRuleArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapHostRuleArrayOutput) +func (i RegionSecurityPolicyUserDefinedFieldArray) ToRegionSecurityPolicyUserDefinedFieldArrayOutputWithContext(ctx context.Context) RegionSecurityPolicyUserDefinedFieldArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionSecurityPolicyUserDefinedFieldArrayOutput) } -type RegionUrlMapHostRuleOutput struct{ *pulumi.OutputState } +type RegionSecurityPolicyUserDefinedFieldOutput struct{ *pulumi.OutputState } -func (RegionUrlMapHostRuleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapHostRule)(nil)).Elem() +func (RegionSecurityPolicyUserDefinedFieldOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionSecurityPolicyUserDefinedField)(nil)).Elem() } -func (o RegionUrlMapHostRuleOutput) ToRegionUrlMapHostRuleOutput() RegionUrlMapHostRuleOutput { +func (o RegionSecurityPolicyUserDefinedFieldOutput) ToRegionSecurityPolicyUserDefinedFieldOutput() RegionSecurityPolicyUserDefinedFieldOutput { return o } -func (o RegionUrlMapHostRuleOutput) ToRegionUrlMapHostRuleOutputWithContext(ctx context.Context) RegionUrlMapHostRuleOutput { +func (o RegionSecurityPolicyUserDefinedFieldOutput) ToRegionSecurityPolicyUserDefinedFieldOutputWithContext(ctx context.Context) RegionSecurityPolicyUserDefinedFieldOutput { return o } -// An optional description of this HostRule. Provide this property -// when you create the resource. -func (o RegionUrlMapHostRuleOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapHostRule) *string { return v.Description }).(pulumi.StringPtrOutput) +// The base relative to which 'offset' is measured. Possible values are: +// - IPV4: Points to the beginning of the IPv4 header. +// - IPV6: Points to the beginning of the IPv6 header. +// - TCP: Points to the beginning of the TCP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments. +// - UDP: Points to the beginning of the UDP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments. +// Possible values are: `IPV4`, `IPV6`, `TCP`, `UDP`. +func (o RegionSecurityPolicyUserDefinedFieldOutput) Base() pulumi.StringOutput { + return o.ApplyT(func(v RegionSecurityPolicyUserDefinedField) string { return v.Base }).(pulumi.StringOutput) } -// The list of host patterns to match. They must be valid -// hostnames, except * will match any string of ([a-z0-9-.]*). In -// that case, * must be the first character and must be followed in -// the pattern by either - or .. -func (o RegionUrlMapHostRuleOutput) Hosts() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionUrlMapHostRule) []string { return v.Hosts }).(pulumi.StringArrayOutput) +// If specified, apply this mask (bitwise AND) to the field to ignore bits before matching. +// Encoded as a hexadecimal number (starting with "0x"). +// The last byte of the field (in network byte order) corresponds to the least significant byte of the mask. +func (o RegionSecurityPolicyUserDefinedFieldOutput) Mask() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionSecurityPolicyUserDefinedField) *string { return v.Mask }).(pulumi.StringPtrOutput) } -// The name of the PathMatcher to use to match the path portion of -// the URL if the hostRule matches the URL's host portion. -func (o RegionUrlMapHostRuleOutput) PathMatcher() pulumi.StringOutput { - return o.ApplyT(func(v RegionUrlMapHostRule) string { return v.PathMatcher }).(pulumi.StringOutput) +// Name of the user-defined field, as given in the definition. +func (o RegionSecurityPolicyUserDefinedFieldOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionSecurityPolicyUserDefinedField) *string { return v.Name }).(pulumi.StringPtrOutput) } -type RegionUrlMapHostRuleArrayOutput struct{ *pulumi.OutputState } +// Offset of the first byte of the field (in network byte order) relative to 'base'. +func (o RegionSecurityPolicyUserDefinedFieldOutput) Offset() pulumi.IntPtrOutput { + return o.ApplyT(func(v RegionSecurityPolicyUserDefinedField) *int { return v.Offset }).(pulumi.IntPtrOutput) +} -func (RegionUrlMapHostRuleArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapHostRule)(nil)).Elem() +// Size of the field in bytes. Valid values: 1-4. +func (o RegionSecurityPolicyUserDefinedFieldOutput) Size() pulumi.IntPtrOutput { + return o.ApplyT(func(v RegionSecurityPolicyUserDefinedField) *int { return v.Size }).(pulumi.IntPtrOutput) } -func (o RegionUrlMapHostRuleArrayOutput) ToRegionUrlMapHostRuleArrayOutput() RegionUrlMapHostRuleArrayOutput { +type RegionSecurityPolicyUserDefinedFieldArrayOutput struct{ *pulumi.OutputState } + +func (RegionSecurityPolicyUserDefinedFieldArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionSecurityPolicyUserDefinedField)(nil)).Elem() +} + +func (o RegionSecurityPolicyUserDefinedFieldArrayOutput) ToRegionSecurityPolicyUserDefinedFieldArrayOutput() RegionSecurityPolicyUserDefinedFieldArrayOutput { return o } -func (o RegionUrlMapHostRuleArrayOutput) ToRegionUrlMapHostRuleArrayOutputWithContext(ctx context.Context) RegionUrlMapHostRuleArrayOutput { +func (o RegionSecurityPolicyUserDefinedFieldArrayOutput) ToRegionSecurityPolicyUserDefinedFieldArrayOutputWithContext(ctx context.Context) RegionSecurityPolicyUserDefinedFieldArrayOutput { return o } -func (o RegionUrlMapHostRuleArrayOutput) Index(i pulumi.IntInput) RegionUrlMapHostRuleOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapHostRule { - return vs[0].([]RegionUrlMapHostRule)[vs[1].(int)] - }).(RegionUrlMapHostRuleOutput) +func (o RegionSecurityPolicyUserDefinedFieldArrayOutput) Index(i pulumi.IntInput) RegionSecurityPolicyUserDefinedFieldOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionSecurityPolicyUserDefinedField { + return vs[0].([]RegionSecurityPolicyUserDefinedField)[vs[1].(int)] + }).(RegionSecurityPolicyUserDefinedFieldOutput) } -type RegionUrlMapPathMatcher struct { - // A reference to a RegionBackendService resource. This will be used if - // none of the pathRules defined by this PathMatcher is matched by - // the URL's path portion. - DefaultService *string `pulumi:"defaultService"` - // When none of the specified hostRules match, the request is redirected to a URL specified - // by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or - // defaultRouteAction must not be set. - // Structure is documented below. - DefaultUrlRedirect *RegionUrlMapPathMatcherDefaultUrlRedirect `pulumi:"defaultUrlRedirect"` - // An optional description of this resource. - Description *string `pulumi:"description"` - // The name to which this PathMatcher is referred by the HostRule. - Name string `pulumi:"name"` - // The list of path rules. Use this list instead of routeRules when routing based - // on simple path matching is all that's required. The order by which path rules - // are specified does not matter. Matches are always done on the longest-path-first - // basis. For example: a pathRule with a path /a/b/c/* will match before /a/b/* - // irrespective of the order in which those paths appear in this list. Within a - // given pathMatcher, only one of pathRules or routeRules must be set. +type RegionUrlMapDefaultRouteAction struct { + // The specification for allowing client side cross-origin requests. Please see + // [W3C Recommendation for Cross Origin Resource Sharing](https://www.w3.org/TR/cors/) // Structure is documented below. - PathRules []RegionUrlMapPathMatcherPathRule `pulumi:"pathRules"` - // The list of ordered HTTP route rules. Use this list instead of pathRules when - // advanced route matching and routing actions are desired. The order of specifying - // routeRules matters: the first rule that matches will cause its specified routing - // action to take effect. Within a given pathMatcher, only one of pathRules or - // routeRules must be set. routeRules are not supported in UrlMaps intended for - // External load balancers. + CorsPolicy *RegionUrlMapDefaultRouteActionCorsPolicy `pulumi:"corsPolicy"` + // The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. + // As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. + // Similarly requests from clients can be aborted by the load balancer for a percentage of requests. + // timeout and retryPolicy is ignored by clients that are configured with a faultInjectionPolicy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection. + // Fault injection is not supported with the global external HTTP(S) load balancer (classic). To see which load balancers support fault injection, see Load balancing: [Routing and traffic management features](https://cloud.google.com/load-balancing/docs/features#routing-traffic-management). // Structure is documented below. - RouteRules []RegionUrlMapPathMatcherRouteRule `pulumi:"routeRules"` + FaultInjectionPolicy *RegionUrlMapDefaultRouteActionFaultInjectionPolicy `pulumi:"faultInjectionPolicy"` + // Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. + // The load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow. + // Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. + // Structure is documented below. + RequestMirrorPolicy *RegionUrlMapDefaultRouteActionRequestMirrorPolicy `pulumi:"requestMirrorPolicy"` + // Specifies the retry policy associated with this route. + // Structure is documented below. + RetryPolicy *RegionUrlMapDefaultRouteActionRetryPolicy `pulumi:"retryPolicy"` + // Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as end-of-stream) up until the response has been processed. Timeout includes all retries. + // If not specified, this field uses the largest timeout among all backend services associated with the route. + // Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. + // Structure is documented below. + Timeout *RegionUrlMapDefaultRouteActionTimeout `pulumi:"timeout"` + // The spec to modify the URL of the request, before forwarding the request to the matched service. + // urlRewrite is the only action supported in UrlMaps for external HTTP(S) load balancers. + // Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. + // Structure is documented below. + UrlRewrite *RegionUrlMapDefaultRouteActionUrlRewrite `pulumi:"urlRewrite"` + // A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. + // After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction. + // Structure is documented below. + WeightedBackendServices []RegionUrlMapDefaultRouteActionWeightedBackendService `pulumi:"weightedBackendServices"` } -// RegionUrlMapPathMatcherInput is an input type that accepts RegionUrlMapPathMatcherArgs and RegionUrlMapPathMatcherOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherInput` via: +// RegionUrlMapDefaultRouteActionInput is an input type that accepts RegionUrlMapDefaultRouteActionArgs and RegionUrlMapDefaultRouteActionOutput values. +// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionInput` via: // -// RegionUrlMapPathMatcherArgs{...} -type RegionUrlMapPathMatcherInput interface { +// RegionUrlMapDefaultRouteActionArgs{...} +type RegionUrlMapDefaultRouteActionInput interface { pulumi.Input - ToRegionUrlMapPathMatcherOutput() RegionUrlMapPathMatcherOutput - ToRegionUrlMapPathMatcherOutputWithContext(context.Context) RegionUrlMapPathMatcherOutput + ToRegionUrlMapDefaultRouteActionOutput() RegionUrlMapDefaultRouteActionOutput + ToRegionUrlMapDefaultRouteActionOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionOutput } -type RegionUrlMapPathMatcherArgs struct { - // A reference to a RegionBackendService resource. This will be used if - // none of the pathRules defined by this PathMatcher is matched by - // the URL's path portion. - DefaultService pulumi.StringPtrInput `pulumi:"defaultService"` - // When none of the specified hostRules match, the request is redirected to a URL specified - // by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or - // defaultRouteAction must not be set. +type RegionUrlMapDefaultRouteActionArgs struct { + // The specification for allowing client side cross-origin requests. Please see + // [W3C Recommendation for Cross Origin Resource Sharing](https://www.w3.org/TR/cors/) // Structure is documented below. - DefaultUrlRedirect RegionUrlMapPathMatcherDefaultUrlRedirectPtrInput `pulumi:"defaultUrlRedirect"` - // An optional description of this resource. - Description pulumi.StringPtrInput `pulumi:"description"` - // The name to which this PathMatcher is referred by the HostRule. - Name pulumi.StringInput `pulumi:"name"` - // The list of path rules. Use this list instead of routeRules when routing based - // on simple path matching is all that's required. The order by which path rules - // are specified does not matter. Matches are always done on the longest-path-first - // basis. For example: a pathRule with a path /a/b/c/* will match before /a/b/* - // irrespective of the order in which those paths appear in this list. Within a - // given pathMatcher, only one of pathRules or routeRules must be set. + CorsPolicy RegionUrlMapDefaultRouteActionCorsPolicyPtrInput `pulumi:"corsPolicy"` + // The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. + // As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. + // Similarly requests from clients can be aborted by the load balancer for a percentage of requests. + // timeout and retryPolicy is ignored by clients that are configured with a faultInjectionPolicy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection. + // Fault injection is not supported with the global external HTTP(S) load balancer (classic). To see which load balancers support fault injection, see Load balancing: [Routing and traffic management features](https://cloud.google.com/load-balancing/docs/features#routing-traffic-management). // Structure is documented below. - PathRules RegionUrlMapPathMatcherPathRuleArrayInput `pulumi:"pathRules"` - // The list of ordered HTTP route rules. Use this list instead of pathRules when - // advanced route matching and routing actions are desired. The order of specifying - // routeRules matters: the first rule that matches will cause its specified routing - // action to take effect. Within a given pathMatcher, only one of pathRules or - // routeRules must be set. routeRules are not supported in UrlMaps intended for - // External load balancers. + FaultInjectionPolicy RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrInput `pulumi:"faultInjectionPolicy"` + // Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. + // The load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow. + // Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. // Structure is documented below. - RouteRules RegionUrlMapPathMatcherRouteRuleArrayInput `pulumi:"routeRules"` + RequestMirrorPolicy RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrInput `pulumi:"requestMirrorPolicy"` + // Specifies the retry policy associated with this route. + // Structure is documented below. + RetryPolicy RegionUrlMapDefaultRouteActionRetryPolicyPtrInput `pulumi:"retryPolicy"` + // Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as end-of-stream) up until the response has been processed. Timeout includes all retries. + // If not specified, this field uses the largest timeout among all backend services associated with the route. + // Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. + // Structure is documented below. + Timeout RegionUrlMapDefaultRouteActionTimeoutPtrInput `pulumi:"timeout"` + // The spec to modify the URL of the request, before forwarding the request to the matched service. + // urlRewrite is the only action supported in UrlMaps for external HTTP(S) load balancers. + // Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. + // Structure is documented below. + UrlRewrite RegionUrlMapDefaultRouteActionUrlRewritePtrInput `pulumi:"urlRewrite"` + // A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. + // After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction. + // Structure is documented below. + WeightedBackendServices RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayInput `pulumi:"weightedBackendServices"` } -func (RegionUrlMapPathMatcherArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcher)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapDefaultRouteAction)(nil)).Elem() } -func (i RegionUrlMapPathMatcherArgs) ToRegionUrlMapPathMatcherOutput() RegionUrlMapPathMatcherOutput { - return i.ToRegionUrlMapPathMatcherOutputWithContext(context.Background()) +func (i RegionUrlMapDefaultRouteActionArgs) ToRegionUrlMapDefaultRouteActionOutput() RegionUrlMapDefaultRouteActionOutput { + return i.ToRegionUrlMapDefaultRouteActionOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherArgs) ToRegionUrlMapPathMatcherOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherOutput) +func (i RegionUrlMapDefaultRouteActionArgs) ToRegionUrlMapDefaultRouteActionOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionOutput) } -// RegionUrlMapPathMatcherArrayInput is an input type that accepts RegionUrlMapPathMatcherArray and RegionUrlMapPathMatcherArrayOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherArrayInput` via: +func (i RegionUrlMapDefaultRouteActionArgs) ToRegionUrlMapDefaultRouteActionPtrOutput() RegionUrlMapDefaultRouteActionPtrOutput { + return i.ToRegionUrlMapDefaultRouteActionPtrOutputWithContext(context.Background()) +} + +func (i RegionUrlMapDefaultRouteActionArgs) ToRegionUrlMapDefaultRouteActionPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionOutput).ToRegionUrlMapDefaultRouteActionPtrOutputWithContext(ctx) +} + +// RegionUrlMapDefaultRouteActionPtrInput is an input type that accepts RegionUrlMapDefaultRouteActionArgs, RegionUrlMapDefaultRouteActionPtr and RegionUrlMapDefaultRouteActionPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionPtrInput` via: // -// RegionUrlMapPathMatcherArray{ RegionUrlMapPathMatcherArgs{...} } -type RegionUrlMapPathMatcherArrayInput interface { +// RegionUrlMapDefaultRouteActionArgs{...} +// +// or: +// +// nil +type RegionUrlMapDefaultRouteActionPtrInput interface { pulumi.Input - ToRegionUrlMapPathMatcherArrayOutput() RegionUrlMapPathMatcherArrayOutput - ToRegionUrlMapPathMatcherArrayOutputWithContext(context.Context) RegionUrlMapPathMatcherArrayOutput + ToRegionUrlMapDefaultRouteActionPtrOutput() RegionUrlMapDefaultRouteActionPtrOutput + ToRegionUrlMapDefaultRouteActionPtrOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionPtrOutput } -type RegionUrlMapPathMatcherArray []RegionUrlMapPathMatcherInput +type regionUrlMapDefaultRouteActionPtrType RegionUrlMapDefaultRouteActionArgs -func (RegionUrlMapPathMatcherArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapPathMatcher)(nil)).Elem() +func RegionUrlMapDefaultRouteActionPtr(v *RegionUrlMapDefaultRouteActionArgs) RegionUrlMapDefaultRouteActionPtrInput { + return (*regionUrlMapDefaultRouteActionPtrType)(v) } -func (i RegionUrlMapPathMatcherArray) ToRegionUrlMapPathMatcherArrayOutput() RegionUrlMapPathMatcherArrayOutput { - return i.ToRegionUrlMapPathMatcherArrayOutputWithContext(context.Background()) +func (*regionUrlMapDefaultRouteActionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapDefaultRouteAction)(nil)).Elem() } -func (i RegionUrlMapPathMatcherArray) ToRegionUrlMapPathMatcherArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherArrayOutput) +func (i *regionUrlMapDefaultRouteActionPtrType) ToRegionUrlMapDefaultRouteActionPtrOutput() RegionUrlMapDefaultRouteActionPtrOutput { + return i.ToRegionUrlMapDefaultRouteActionPtrOutputWithContext(context.Background()) } -type RegionUrlMapPathMatcherOutput struct{ *pulumi.OutputState } +func (i *regionUrlMapDefaultRouteActionPtrType) ToRegionUrlMapDefaultRouteActionPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionPtrOutput) +} -func (RegionUrlMapPathMatcherOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcher)(nil)).Elem() +type RegionUrlMapDefaultRouteActionOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapDefaultRouteActionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapDefaultRouteAction)(nil)).Elem() } -func (o RegionUrlMapPathMatcherOutput) ToRegionUrlMapPathMatcherOutput() RegionUrlMapPathMatcherOutput { +func (o RegionUrlMapDefaultRouteActionOutput) ToRegionUrlMapDefaultRouteActionOutput() RegionUrlMapDefaultRouteActionOutput { return o } -func (o RegionUrlMapPathMatcherOutput) ToRegionUrlMapPathMatcherOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherOutput { +func (o RegionUrlMapDefaultRouteActionOutput) ToRegionUrlMapDefaultRouteActionOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionOutput { return o } -// A reference to a RegionBackendService resource. This will be used if -// none of the pathRules defined by this PathMatcher is matched by -// the URL's path portion. -func (o RegionUrlMapPathMatcherOutput) DefaultService() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcher) *string { return v.DefaultService }).(pulumi.StringPtrOutput) +func (o RegionUrlMapDefaultRouteActionOutput) ToRegionUrlMapDefaultRouteActionPtrOutput() RegionUrlMapDefaultRouteActionPtrOutput { + return o.ToRegionUrlMapDefaultRouteActionPtrOutputWithContext(context.Background()) } -// When none of the specified hostRules match, the request is redirected to a URL specified -// by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or -// defaultRouteAction must not be set. +func (o RegionUrlMapDefaultRouteActionOutput) ToRegionUrlMapDefaultRouteActionPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapDefaultRouteAction) *RegionUrlMapDefaultRouteAction { + return &v + }).(RegionUrlMapDefaultRouteActionPtrOutput) +} + +// The specification for allowing client side cross-origin requests. Please see +// [W3C Recommendation for Cross Origin Resource Sharing](https://www.w3.org/TR/cors/) // Structure is documented below. -func (o RegionUrlMapPathMatcherOutput) DefaultUrlRedirect() RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcher) *RegionUrlMapPathMatcherDefaultUrlRedirect { - return v.DefaultUrlRedirect - }).(RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput) +func (o RegionUrlMapDefaultRouteActionOutput) CorsPolicy() RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteAction) *RegionUrlMapDefaultRouteActionCorsPolicy { return v.CorsPolicy }).(RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput) } -// An optional description of this resource. -func (o RegionUrlMapPathMatcherOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcher) *string { return v.Description }).(pulumi.StringPtrOutput) +// The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. +// As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. +// Similarly requests from clients can be aborted by the load balancer for a percentage of requests. +// timeout and retryPolicy is ignored by clients that are configured with a faultInjectionPolicy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection. +// Fault injection is not supported with the global external HTTP(S) load balancer (classic). To see which load balancers support fault injection, see Load balancing: [Routing and traffic management features](https://cloud.google.com/load-balancing/docs/features#routing-traffic-management). +// Structure is documented below. +func (o RegionUrlMapDefaultRouteActionOutput) FaultInjectionPolicy() RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteAction) *RegionUrlMapDefaultRouteActionFaultInjectionPolicy { + return v.FaultInjectionPolicy + }).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput) } -// The name to which this PathMatcher is referred by the HostRule. -func (o RegionUrlMapPathMatcherOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcher) string { return v.Name }).(pulumi.StringOutput) +// Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. +// The load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow. +// Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. +// Structure is documented below. +func (o RegionUrlMapDefaultRouteActionOutput) RequestMirrorPolicy() RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteAction) *RegionUrlMapDefaultRouteActionRequestMirrorPolicy { + return v.RequestMirrorPolicy + }).(RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput) } -// The list of path rules. Use this list instead of routeRules when routing based -// on simple path matching is all that's required. The order by which path rules -// are specified does not matter. Matches are always done on the longest-path-first -// basis. For example: a pathRule with a path /a/b/c/* will match before /a/b/* -// irrespective of the order in which those paths appear in this list. Within a -// given pathMatcher, only one of pathRules or routeRules must be set. +// Specifies the retry policy associated with this route. // Structure is documented below. -func (o RegionUrlMapPathMatcherOutput) PathRules() RegionUrlMapPathMatcherPathRuleArrayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcher) []RegionUrlMapPathMatcherPathRule { return v.PathRules }).(RegionUrlMapPathMatcherPathRuleArrayOutput) +func (o RegionUrlMapDefaultRouteActionOutput) RetryPolicy() RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteAction) *RegionUrlMapDefaultRouteActionRetryPolicy { + return v.RetryPolicy + }).(RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput) } -// The list of ordered HTTP route rules. Use this list instead of pathRules when -// advanced route matching and routing actions are desired. The order of specifying -// routeRules matters: the first rule that matches will cause its specified routing -// action to take effect. Within a given pathMatcher, only one of pathRules or -// routeRules must be set. routeRules are not supported in UrlMaps intended for -// External load balancers. +// Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as end-of-stream) up until the response has been processed. Timeout includes all retries. +// If not specified, this field uses the largest timeout among all backend services associated with the route. +// Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. // Structure is documented below. -func (o RegionUrlMapPathMatcherOutput) RouteRules() RegionUrlMapPathMatcherRouteRuleArrayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcher) []RegionUrlMapPathMatcherRouteRule { return v.RouteRules }).(RegionUrlMapPathMatcherRouteRuleArrayOutput) +func (o RegionUrlMapDefaultRouteActionOutput) Timeout() RegionUrlMapDefaultRouteActionTimeoutPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteAction) *RegionUrlMapDefaultRouteActionTimeout { return v.Timeout }).(RegionUrlMapDefaultRouteActionTimeoutPtrOutput) } -type RegionUrlMapPathMatcherArrayOutput struct{ *pulumi.OutputState } +// The spec to modify the URL of the request, before forwarding the request to the matched service. +// urlRewrite is the only action supported in UrlMaps for external HTTP(S) load balancers. +// Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. +// Structure is documented below. +func (o RegionUrlMapDefaultRouteActionOutput) UrlRewrite() RegionUrlMapDefaultRouteActionUrlRewritePtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteAction) *RegionUrlMapDefaultRouteActionUrlRewrite { return v.UrlRewrite }).(RegionUrlMapDefaultRouteActionUrlRewritePtrOutput) +} -func (RegionUrlMapPathMatcherArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapPathMatcher)(nil)).Elem() +// A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. +// After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction. +// Structure is documented below. +func (o RegionUrlMapDefaultRouteActionOutput) WeightedBackendServices() RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteAction) []RegionUrlMapDefaultRouteActionWeightedBackendService { + return v.WeightedBackendServices + }).(RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput) } -func (o RegionUrlMapPathMatcherArrayOutput) ToRegionUrlMapPathMatcherArrayOutput() RegionUrlMapPathMatcherArrayOutput { - return o +type RegionUrlMapDefaultRouteActionPtrOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapDefaultRouteActionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapDefaultRouteAction)(nil)).Elem() } -func (o RegionUrlMapPathMatcherArrayOutput) ToRegionUrlMapPathMatcherArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherArrayOutput { +func (o RegionUrlMapDefaultRouteActionPtrOutput) ToRegionUrlMapDefaultRouteActionPtrOutput() RegionUrlMapDefaultRouteActionPtrOutput { return o } -func (o RegionUrlMapPathMatcherArrayOutput) Index(i pulumi.IntInput) RegionUrlMapPathMatcherOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapPathMatcher { - return vs[0].([]RegionUrlMapPathMatcher)[vs[1].(int)] - }).(RegionUrlMapPathMatcherOutput) +func (o RegionUrlMapDefaultRouteActionPtrOutput) ToRegionUrlMapDefaultRouteActionPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionPtrOutput { + return o } -type RegionUrlMapPathMatcherDefaultUrlRedirect struct { - // The host that will be used in the redirect response instead of the one that was - // supplied in the request. The value must be between 1 and 255 characters. - HostRedirect *string `pulumi:"hostRedirect"` - // If set to true, the URL scheme in the redirected request is set to https. If set to - // false, the URL scheme of the redirected request will remain the same as that of the - // request. This must only be set for UrlMaps used in TargetHttpProxys. Setting this - // true for TargetHttpsProxy is not permitted. The default is set to false. - HttpsRedirect *bool `pulumi:"httpsRedirect"` - // The path that will be used in the redirect response instead of the one that was - // supplied in the request. pathRedirect cannot be supplied together with - // prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the - // original request will be used for the redirect. The value must be between 1 and 1024 - // characters. - PathRedirect *string `pulumi:"pathRedirect"` - // The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, - // retaining the remaining portion of the URL before redirecting the request. - // prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or - // neither. If neither is supplied, the path of the original request will be used for - // the redirect. The value must be between 1 and 1024 characters. - PrefixRedirect *string `pulumi:"prefixRedirect"` - // The HTTP Status code to use for this RedirectAction. Supported values are: - // * MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. - // * FOUND, which corresponds to 302. - // * SEE_OTHER which corresponds to 303. - // * TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method - // will be retained. - // * PERMANENT_REDIRECT, which corresponds to 308. In this case, - // the request method will be retained. - RedirectResponseCode *string `pulumi:"redirectResponseCode"` - // If set to true, any accompanying query portion of the original URL is removed prior - // to redirecting the request. If set to false, the query portion of the original URL is - // retained. - // This field is required to ensure an empty block is not set. The normal default value is false. - StripQuery bool `pulumi:"stripQuery"` +func (o RegionUrlMapDefaultRouteActionPtrOutput) Elem() RegionUrlMapDefaultRouteActionOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteAction) RegionUrlMapDefaultRouteAction { + if v != nil { + return *v + } + var ret RegionUrlMapDefaultRouteAction + return ret + }).(RegionUrlMapDefaultRouteActionOutput) } -// RegionUrlMapPathMatcherDefaultUrlRedirectInput is an input type that accepts RegionUrlMapPathMatcherDefaultUrlRedirectArgs and RegionUrlMapPathMatcherDefaultUrlRedirectOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherDefaultUrlRedirectInput` via: -// -// RegionUrlMapPathMatcherDefaultUrlRedirectArgs{...} -type RegionUrlMapPathMatcherDefaultUrlRedirectInput interface { - pulumi.Input +// The specification for allowing client side cross-origin requests. Please see +// [W3C Recommendation for Cross Origin Resource Sharing](https://www.w3.org/TR/cors/) +// Structure is documented below. +func (o RegionUrlMapDefaultRouteActionPtrOutput) CorsPolicy() RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteAction) *RegionUrlMapDefaultRouteActionCorsPolicy { + if v == nil { + return nil + } + return v.CorsPolicy + }).(RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput) +} - ToRegionUrlMapPathMatcherDefaultUrlRedirectOutput() RegionUrlMapPathMatcherDefaultUrlRedirectOutput - ToRegionUrlMapPathMatcherDefaultUrlRedirectOutputWithContext(context.Context) RegionUrlMapPathMatcherDefaultUrlRedirectOutput +// The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. +// As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. +// Similarly requests from clients can be aborted by the load balancer for a percentage of requests. +// timeout and retryPolicy is ignored by clients that are configured with a faultInjectionPolicy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection. +// Fault injection is not supported with the global external HTTP(S) load balancer (classic). To see which load balancers support fault injection, see Load balancing: [Routing and traffic management features](https://cloud.google.com/load-balancing/docs/features#routing-traffic-management). +// Structure is documented below. +func (o RegionUrlMapDefaultRouteActionPtrOutput) FaultInjectionPolicy() RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteAction) *RegionUrlMapDefaultRouteActionFaultInjectionPolicy { + if v == nil { + return nil + } + return v.FaultInjectionPolicy + }).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput) } -type RegionUrlMapPathMatcherDefaultUrlRedirectArgs struct { - // The host that will be used in the redirect response instead of the one that was - // supplied in the request. The value must be between 1 and 255 characters. - HostRedirect pulumi.StringPtrInput `pulumi:"hostRedirect"` - // If set to true, the URL scheme in the redirected request is set to https. If set to - // false, the URL scheme of the redirected request will remain the same as that of the - // request. This must only be set for UrlMaps used in TargetHttpProxys. Setting this - // true for TargetHttpsProxy is not permitted. The default is set to false. - HttpsRedirect pulumi.BoolPtrInput `pulumi:"httpsRedirect"` - // The path that will be used in the redirect response instead of the one that was - // supplied in the request. pathRedirect cannot be supplied together with - // prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the - // original request will be used for the redirect. The value must be between 1 and 1024 - // characters. - PathRedirect pulumi.StringPtrInput `pulumi:"pathRedirect"` - // The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, - // retaining the remaining portion of the URL before redirecting the request. - // prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or - // neither. If neither is supplied, the path of the original request will be used for - // the redirect. The value must be between 1 and 1024 characters. - PrefixRedirect pulumi.StringPtrInput `pulumi:"prefixRedirect"` - // The HTTP Status code to use for this RedirectAction. Supported values are: - // * MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. - // * FOUND, which corresponds to 302. - // * SEE_OTHER which corresponds to 303. - // * TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method - // will be retained. - // * PERMANENT_REDIRECT, which corresponds to 308. In this case, - // the request method will be retained. - RedirectResponseCode pulumi.StringPtrInput `pulumi:"redirectResponseCode"` - // If set to true, any accompanying query portion of the original URL is removed prior - // to redirecting the request. If set to false, the query portion of the original URL is - // retained. - // This field is required to ensure an empty block is not set. The normal default value is false. - StripQuery pulumi.BoolInput `pulumi:"stripQuery"` +// Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. +// The load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow. +// Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. +// Structure is documented below. +func (o RegionUrlMapDefaultRouteActionPtrOutput) RequestMirrorPolicy() RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteAction) *RegionUrlMapDefaultRouteActionRequestMirrorPolicy { + if v == nil { + return nil + } + return v.RequestMirrorPolicy + }).(RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput) } -func (RegionUrlMapPathMatcherDefaultUrlRedirectArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherDefaultUrlRedirect)(nil)).Elem() +// Specifies the retry policy associated with this route. +// Structure is documented below. +func (o RegionUrlMapDefaultRouteActionPtrOutput) RetryPolicy() RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteAction) *RegionUrlMapDefaultRouteActionRetryPolicy { + if v == nil { + return nil + } + return v.RetryPolicy + }).(RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput) } -func (i RegionUrlMapPathMatcherDefaultUrlRedirectArgs) ToRegionUrlMapPathMatcherDefaultUrlRedirectOutput() RegionUrlMapPathMatcherDefaultUrlRedirectOutput { - return i.ToRegionUrlMapPathMatcherDefaultUrlRedirectOutputWithContext(context.Background()) +// Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as end-of-stream) up until the response has been processed. Timeout includes all retries. +// If not specified, this field uses the largest timeout among all backend services associated with the route. +// Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. +// Structure is documented below. +func (o RegionUrlMapDefaultRouteActionPtrOutput) Timeout() RegionUrlMapDefaultRouteActionTimeoutPtrOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteAction) *RegionUrlMapDefaultRouteActionTimeout { + if v == nil { + return nil + } + return v.Timeout + }).(RegionUrlMapDefaultRouteActionTimeoutPtrOutput) } -func (i RegionUrlMapPathMatcherDefaultUrlRedirectArgs) ToRegionUrlMapPathMatcherDefaultUrlRedirectOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherDefaultUrlRedirectOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherDefaultUrlRedirectOutput) +// The spec to modify the URL of the request, before forwarding the request to the matched service. +// urlRewrite is the only action supported in UrlMaps for external HTTP(S) load balancers. +// Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. +// Structure is documented below. +func (o RegionUrlMapDefaultRouteActionPtrOutput) UrlRewrite() RegionUrlMapDefaultRouteActionUrlRewritePtrOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteAction) *RegionUrlMapDefaultRouteActionUrlRewrite { + if v == nil { + return nil + } + return v.UrlRewrite + }).(RegionUrlMapDefaultRouteActionUrlRewritePtrOutput) } -func (i RegionUrlMapPathMatcherDefaultUrlRedirectArgs) ToRegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput() RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput { - return i.ToRegionUrlMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(context.Background()) +// A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. +// After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction. +// Structure is documented below. +func (o RegionUrlMapDefaultRouteActionPtrOutput) WeightedBackendServices() RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteAction) []RegionUrlMapDefaultRouteActionWeightedBackendService { + if v == nil { + return nil + } + return v.WeightedBackendServices + }).(RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput) } -func (i RegionUrlMapPathMatcherDefaultUrlRedirectArgs) ToRegionUrlMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherDefaultUrlRedirectOutput).ToRegionUrlMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(ctx) +type RegionUrlMapDefaultRouteActionCorsPolicy struct { + // In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. + // Default is false. + AllowCredentials *bool `pulumi:"allowCredentials"` + // Specifies the content for the Access-Control-Allow-Headers header. + AllowHeaders []string `pulumi:"allowHeaders"` + // Specifies the content for the Access-Control-Allow-Methods header. + AllowMethods []string `pulumi:"allowMethods"` + // Specifies the regualar expression patterns that match allowed origins. For regular expression grammar + // please see en.cppreference.com/w/cpp/regex/ecmascript + // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. + AllowOriginRegexes []string `pulumi:"allowOriginRegexes"` + // Specifies the list of origins that will be allowed to do CORS requests. + // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. + AllowOrigins []string `pulumi:"allowOrigins"` + // If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. + Disabled *bool `pulumi:"disabled"` + // Specifies the content for the Access-Control-Expose-Headers header. + ExposeHeaders []string `pulumi:"exposeHeaders"` + // Specifies how long results of a preflight request can be cached in seconds. + // This translates to the Access-Control-Max-Age header. + MaxAge *int `pulumi:"maxAge"` } -// RegionUrlMapPathMatcherDefaultUrlRedirectPtrInput is an input type that accepts RegionUrlMapPathMatcherDefaultUrlRedirectArgs, RegionUrlMapPathMatcherDefaultUrlRedirectPtr and RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherDefaultUrlRedirectPtrInput` via: -// -// RegionUrlMapPathMatcherDefaultUrlRedirectArgs{...} -// -// or: +// RegionUrlMapDefaultRouteActionCorsPolicyInput is an input type that accepts RegionUrlMapDefaultRouteActionCorsPolicyArgs and RegionUrlMapDefaultRouteActionCorsPolicyOutput values. +// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionCorsPolicyInput` via: // -// nil -type RegionUrlMapPathMatcherDefaultUrlRedirectPtrInput interface { +// RegionUrlMapDefaultRouteActionCorsPolicyArgs{...} +type RegionUrlMapDefaultRouteActionCorsPolicyInput interface { pulumi.Input - ToRegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput() RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput - ToRegionUrlMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput + ToRegionUrlMapDefaultRouteActionCorsPolicyOutput() RegionUrlMapDefaultRouteActionCorsPolicyOutput + ToRegionUrlMapDefaultRouteActionCorsPolicyOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionCorsPolicyOutput } -type regionUrlMapPathMatcherDefaultUrlRedirectPtrType RegionUrlMapPathMatcherDefaultUrlRedirectArgs - -func RegionUrlMapPathMatcherDefaultUrlRedirectPtr(v *RegionUrlMapPathMatcherDefaultUrlRedirectArgs) RegionUrlMapPathMatcherDefaultUrlRedirectPtrInput { - return (*regionUrlMapPathMatcherDefaultUrlRedirectPtrType)(v) +type RegionUrlMapDefaultRouteActionCorsPolicyArgs struct { + // In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. + // Default is false. + AllowCredentials pulumi.BoolPtrInput `pulumi:"allowCredentials"` + // Specifies the content for the Access-Control-Allow-Headers header. + AllowHeaders pulumi.StringArrayInput `pulumi:"allowHeaders"` + // Specifies the content for the Access-Control-Allow-Methods header. + AllowMethods pulumi.StringArrayInput `pulumi:"allowMethods"` + // Specifies the regualar expression patterns that match allowed origins. For regular expression grammar + // please see en.cppreference.com/w/cpp/regex/ecmascript + // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. + AllowOriginRegexes pulumi.StringArrayInput `pulumi:"allowOriginRegexes"` + // Specifies the list of origins that will be allowed to do CORS requests. + // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. + AllowOrigins pulumi.StringArrayInput `pulumi:"allowOrigins"` + // If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. + Disabled pulumi.BoolPtrInput `pulumi:"disabled"` + // Specifies the content for the Access-Control-Expose-Headers header. + ExposeHeaders pulumi.StringArrayInput `pulumi:"exposeHeaders"` + // Specifies how long results of a preflight request can be cached in seconds. + // This translates to the Access-Control-Max-Age header. + MaxAge pulumi.IntPtrInput `pulumi:"maxAge"` } -func (*regionUrlMapPathMatcherDefaultUrlRedirectPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherDefaultUrlRedirect)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionCorsPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapDefaultRouteActionCorsPolicy)(nil)).Elem() } -func (i *regionUrlMapPathMatcherDefaultUrlRedirectPtrType) ToRegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput() RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput { - return i.ToRegionUrlMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(context.Background()) +func (i RegionUrlMapDefaultRouteActionCorsPolicyArgs) ToRegionUrlMapDefaultRouteActionCorsPolicyOutput() RegionUrlMapDefaultRouteActionCorsPolicyOutput { + return i.ToRegionUrlMapDefaultRouteActionCorsPolicyOutputWithContext(context.Background()) } -func (i *regionUrlMapPathMatcherDefaultUrlRedirectPtrType) ToRegionUrlMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput) +func (i RegionUrlMapDefaultRouteActionCorsPolicyArgs) ToRegionUrlMapDefaultRouteActionCorsPolicyOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionCorsPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionCorsPolicyOutput) } -type RegionUrlMapPathMatcherDefaultUrlRedirectOutput struct{ *pulumi.OutputState } +func (i RegionUrlMapDefaultRouteActionCorsPolicyArgs) ToRegionUrlMapDefaultRouteActionCorsPolicyPtrOutput() RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput { + return i.ToRegionUrlMapDefaultRouteActionCorsPolicyPtrOutputWithContext(context.Background()) +} -func (RegionUrlMapPathMatcherDefaultUrlRedirectOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherDefaultUrlRedirect)(nil)).Elem() +func (i RegionUrlMapDefaultRouteActionCorsPolicyArgs) ToRegionUrlMapDefaultRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionCorsPolicyOutput).ToRegionUrlMapDefaultRouteActionCorsPolicyPtrOutputWithContext(ctx) } -func (o RegionUrlMapPathMatcherDefaultUrlRedirectOutput) ToRegionUrlMapPathMatcherDefaultUrlRedirectOutput() RegionUrlMapPathMatcherDefaultUrlRedirectOutput { +// RegionUrlMapDefaultRouteActionCorsPolicyPtrInput is an input type that accepts RegionUrlMapDefaultRouteActionCorsPolicyArgs, RegionUrlMapDefaultRouteActionCorsPolicyPtr and RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionCorsPolicyPtrInput` via: +// +// RegionUrlMapDefaultRouteActionCorsPolicyArgs{...} +// +// or: +// +// nil +type RegionUrlMapDefaultRouteActionCorsPolicyPtrInput interface { + pulumi.Input + + ToRegionUrlMapDefaultRouteActionCorsPolicyPtrOutput() RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput + ToRegionUrlMapDefaultRouteActionCorsPolicyPtrOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput +} + +type regionUrlMapDefaultRouteActionCorsPolicyPtrType RegionUrlMapDefaultRouteActionCorsPolicyArgs + +func RegionUrlMapDefaultRouteActionCorsPolicyPtr(v *RegionUrlMapDefaultRouteActionCorsPolicyArgs) RegionUrlMapDefaultRouteActionCorsPolicyPtrInput { + return (*regionUrlMapDefaultRouteActionCorsPolicyPtrType)(v) +} + +func (*regionUrlMapDefaultRouteActionCorsPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapDefaultRouteActionCorsPolicy)(nil)).Elem() +} + +func (i *regionUrlMapDefaultRouteActionCorsPolicyPtrType) ToRegionUrlMapDefaultRouteActionCorsPolicyPtrOutput() RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput { + return i.ToRegionUrlMapDefaultRouteActionCorsPolicyPtrOutputWithContext(context.Background()) +} + +func (i *regionUrlMapDefaultRouteActionCorsPolicyPtrType) ToRegionUrlMapDefaultRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput) +} + +type RegionUrlMapDefaultRouteActionCorsPolicyOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapDefaultRouteActionCorsPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapDefaultRouteActionCorsPolicy)(nil)).Elem() +} + +func (o RegionUrlMapDefaultRouteActionCorsPolicyOutput) ToRegionUrlMapDefaultRouteActionCorsPolicyOutput() RegionUrlMapDefaultRouteActionCorsPolicyOutput { return o } -func (o RegionUrlMapPathMatcherDefaultUrlRedirectOutput) ToRegionUrlMapPathMatcherDefaultUrlRedirectOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherDefaultUrlRedirectOutput { +func (o RegionUrlMapDefaultRouteActionCorsPolicyOutput) ToRegionUrlMapDefaultRouteActionCorsPolicyOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionCorsPolicyOutput { return o } -func (o RegionUrlMapPathMatcherDefaultUrlRedirectOutput) ToRegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput() RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput { - return o.ToRegionUrlMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(context.Background()) +func (o RegionUrlMapDefaultRouteActionCorsPolicyOutput) ToRegionUrlMapDefaultRouteActionCorsPolicyPtrOutput() RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput { + return o.ToRegionUrlMapDefaultRouteActionCorsPolicyPtrOutputWithContext(context.Background()) } -func (o RegionUrlMapPathMatcherDefaultUrlRedirectOutput) ToRegionUrlMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherDefaultUrlRedirect) *RegionUrlMapPathMatcherDefaultUrlRedirect { +func (o RegionUrlMapDefaultRouteActionCorsPolicyOutput) ToRegionUrlMapDefaultRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapDefaultRouteActionCorsPolicy) *RegionUrlMapDefaultRouteActionCorsPolicy { return &v - }).(RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput) + }).(RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput) } -// The host that will be used in the redirect response instead of the one that was -// supplied in the request. The value must be between 1 and 255 characters. -func (o RegionUrlMapPathMatcherDefaultUrlRedirectOutput) HostRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherDefaultUrlRedirect) *string { return v.HostRedirect }).(pulumi.StringPtrOutput) +// In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. +// Default is false. +func (o RegionUrlMapDefaultRouteActionCorsPolicyOutput) AllowCredentials() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionCorsPolicy) *bool { return v.AllowCredentials }).(pulumi.BoolPtrOutput) } -// If set to true, the URL scheme in the redirected request is set to https. If set to -// false, the URL scheme of the redirected request will remain the same as that of the -// request. This must only be set for UrlMaps used in TargetHttpProxys. Setting this -// true for TargetHttpsProxy is not permitted. The default is set to false. -func (o RegionUrlMapPathMatcherDefaultUrlRedirectOutput) HttpsRedirect() pulumi.BoolPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherDefaultUrlRedirect) *bool { return v.HttpsRedirect }).(pulumi.BoolPtrOutput) +// Specifies the content for the Access-Control-Allow-Headers header. +func (o RegionUrlMapDefaultRouteActionCorsPolicyOutput) AllowHeaders() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionCorsPolicy) []string { return v.AllowHeaders }).(pulumi.StringArrayOutput) } -// The path that will be used in the redirect response instead of the one that was -// supplied in the request. pathRedirect cannot be supplied together with -// prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the -// original request will be used for the redirect. The value must be between 1 and 1024 -// characters. -func (o RegionUrlMapPathMatcherDefaultUrlRedirectOutput) PathRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherDefaultUrlRedirect) *string { return v.PathRedirect }).(pulumi.StringPtrOutput) +// Specifies the content for the Access-Control-Allow-Methods header. +func (o RegionUrlMapDefaultRouteActionCorsPolicyOutput) AllowMethods() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionCorsPolicy) []string { return v.AllowMethods }).(pulumi.StringArrayOutput) } -// The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, -// retaining the remaining portion of the URL before redirecting the request. -// prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or -// neither. If neither is supplied, the path of the original request will be used for -// the redirect. The value must be between 1 and 1024 characters. -func (o RegionUrlMapPathMatcherDefaultUrlRedirectOutput) PrefixRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherDefaultUrlRedirect) *string { return v.PrefixRedirect }).(pulumi.StringPtrOutput) +// Specifies the regualar expression patterns that match allowed origins. For regular expression grammar +// please see en.cppreference.com/w/cpp/regex/ecmascript +// An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. +func (o RegionUrlMapDefaultRouteActionCorsPolicyOutput) AllowOriginRegexes() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionCorsPolicy) []string { return v.AllowOriginRegexes }).(pulumi.StringArrayOutput) } -// The HTTP Status code to use for this RedirectAction. Supported values are: -// - MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. -// - FOUND, which corresponds to 302. -// - SEE_OTHER which corresponds to 303. -// - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method -// will be retained. -// - PERMANENT_REDIRECT, which corresponds to 308. In this case, -// the request method will be retained. -func (o RegionUrlMapPathMatcherDefaultUrlRedirectOutput) RedirectResponseCode() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherDefaultUrlRedirect) *string { return v.RedirectResponseCode }).(pulumi.StringPtrOutput) +// Specifies the list of origins that will be allowed to do CORS requests. +// An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. +func (o RegionUrlMapDefaultRouteActionCorsPolicyOutput) AllowOrigins() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionCorsPolicy) []string { return v.AllowOrigins }).(pulumi.StringArrayOutput) } -// If set to true, any accompanying query portion of the original URL is removed prior -// to redirecting the request. If set to false, the query portion of the original URL is -// retained. -// This field is required to ensure an empty block is not set. The normal default value is false. -func (o RegionUrlMapPathMatcherDefaultUrlRedirectOutput) StripQuery() pulumi.BoolOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherDefaultUrlRedirect) bool { return v.StripQuery }).(pulumi.BoolOutput) +// If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. +func (o RegionUrlMapDefaultRouteActionCorsPolicyOutput) Disabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionCorsPolicy) *bool { return v.Disabled }).(pulumi.BoolPtrOutput) } -type RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput struct{ *pulumi.OutputState } +// Specifies the content for the Access-Control-Expose-Headers header. +func (o RegionUrlMapDefaultRouteActionCorsPolicyOutput) ExposeHeaders() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionCorsPolicy) []string { return v.ExposeHeaders }).(pulumi.StringArrayOutput) +} -func (RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherDefaultUrlRedirect)(nil)).Elem() +// Specifies how long results of a preflight request can be cached in seconds. +// This translates to the Access-Control-Max-Age header. +func (o RegionUrlMapDefaultRouteActionCorsPolicyOutput) MaxAge() pulumi.IntPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionCorsPolicy) *int { return v.MaxAge }).(pulumi.IntPtrOutput) } -func (o RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput) ToRegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput() RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput { +type RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapDefaultRouteActionCorsPolicy)(nil)).Elem() +} + +func (o RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput) ToRegionUrlMapDefaultRouteActionCorsPolicyPtrOutput() RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput { return o } -func (o RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput) ToRegionUrlMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput { +func (o RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput) ToRegionUrlMapDefaultRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput { return o } -func (o RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput) Elem() RegionUrlMapPathMatcherDefaultUrlRedirectOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherDefaultUrlRedirect) RegionUrlMapPathMatcherDefaultUrlRedirect { +func (o RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput) Elem() RegionUrlMapDefaultRouteActionCorsPolicyOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionCorsPolicy) RegionUrlMapDefaultRouteActionCorsPolicy { if v != nil { return *v } - var ret RegionUrlMapPathMatcherDefaultUrlRedirect + var ret RegionUrlMapDefaultRouteActionCorsPolicy return ret - }).(RegionUrlMapPathMatcherDefaultUrlRedirectOutput) + }).(RegionUrlMapDefaultRouteActionCorsPolicyOutput) } -// The host that will be used in the redirect response instead of the one that was -// supplied in the request. The value must be between 1 and 255 characters. -func (o RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput) HostRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherDefaultUrlRedirect) *string { +// In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. +// Default is false. +func (o RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput) AllowCredentials() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionCorsPolicy) *bool { if v == nil { return nil } - return v.HostRedirect - }).(pulumi.StringPtrOutput) + return v.AllowCredentials + }).(pulumi.BoolPtrOutput) } -// If set to true, the URL scheme in the redirected request is set to https. If set to -// false, the URL scheme of the redirected request will remain the same as that of the -// request. This must only be set for UrlMaps used in TargetHttpProxys. Setting this -// true for TargetHttpsProxy is not permitted. The default is set to false. -func (o RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput) HttpsRedirect() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherDefaultUrlRedirect) *bool { +// Specifies the content for the Access-Control-Allow-Headers header. +func (o RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput) AllowHeaders() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionCorsPolicy) []string { if v == nil { return nil } - return v.HttpsRedirect - }).(pulumi.BoolPtrOutput) + return v.AllowHeaders + }).(pulumi.StringArrayOutput) } -// The path that will be used in the redirect response instead of the one that was -// supplied in the request. pathRedirect cannot be supplied together with -// prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the -// original request will be used for the redirect. The value must be between 1 and 1024 -// characters. -func (o RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput) PathRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherDefaultUrlRedirect) *string { +// Specifies the content for the Access-Control-Allow-Methods header. +func (o RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput) AllowMethods() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionCorsPolicy) []string { if v == nil { return nil } - return v.PathRedirect - }).(pulumi.StringPtrOutput) + return v.AllowMethods + }).(pulumi.StringArrayOutput) } -// The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, -// retaining the remaining portion of the URL before redirecting the request. -// prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or -// neither. If neither is supplied, the path of the original request will be used for -// the redirect. The value must be between 1 and 1024 characters. -func (o RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput) PrefixRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherDefaultUrlRedirect) *string { +// Specifies the regualar expression patterns that match allowed origins. For regular expression grammar +// please see en.cppreference.com/w/cpp/regex/ecmascript +// An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. +func (o RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput) AllowOriginRegexes() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionCorsPolicy) []string { if v == nil { return nil } - return v.PrefixRedirect - }).(pulumi.StringPtrOutput) + return v.AllowOriginRegexes + }).(pulumi.StringArrayOutput) } -// The HTTP Status code to use for this RedirectAction. Supported values are: -// - MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. -// - FOUND, which corresponds to 302. -// - SEE_OTHER which corresponds to 303. -// - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method -// will be retained. -// - PERMANENT_REDIRECT, which corresponds to 308. In this case, -// the request method will be retained. -func (o RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput) RedirectResponseCode() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherDefaultUrlRedirect) *string { +// Specifies the list of origins that will be allowed to do CORS requests. +// An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. +func (o RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput) AllowOrigins() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionCorsPolicy) []string { if v == nil { return nil } - return v.RedirectResponseCode - }).(pulumi.StringPtrOutput) + return v.AllowOrigins + }).(pulumi.StringArrayOutput) } -// If set to true, any accompanying query portion of the original URL is removed prior -// to redirecting the request. If set to false, the query portion of the original URL is -// retained. -// This field is required to ensure an empty block is not set. The normal default value is false. -func (o RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput) StripQuery() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherDefaultUrlRedirect) *bool { +// If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. +func (o RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput) Disabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionCorsPolicy) *bool { if v == nil { return nil } - return &v.StripQuery + return v.Disabled }).(pulumi.BoolPtrOutput) } -type RegionUrlMapPathMatcherPathRule struct { - // The list of path patterns to match. Each must start with / and the only place a - // \* is allowed is at the end following a /. The string fed to the path matcher - // does not include any text after the first ? or #, and those chars are not - // allowed here. - Paths []string `pulumi:"paths"` - // In response to a matching path, the load balancer performs advanced routing - // actions like URL rewrites, header transformations, etc. prior to forwarding the - // request to the selected backend. If routeAction specifies any - // weightedBackendServices, service must not be set. Conversely if service is set, - // routeAction cannot contain any weightedBackendServices. Only one of routeAction - // or urlRedirect must be set. +// Specifies the content for the Access-Control-Expose-Headers header. +func (o RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput) ExposeHeaders() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionCorsPolicy) []string { + if v == nil { + return nil + } + return v.ExposeHeaders + }).(pulumi.StringArrayOutput) +} + +// Specifies how long results of a preflight request can be cached in seconds. +// This translates to the Access-Control-Max-Age header. +func (o RegionUrlMapDefaultRouteActionCorsPolicyPtrOutput) MaxAge() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionCorsPolicy) *int { + if v == nil { + return nil + } + return v.MaxAge + }).(pulumi.IntPtrOutput) +} + +type RegionUrlMapDefaultRouteActionFaultInjectionPolicy struct { + // The specification for how client requests are aborted as part of fault injection. // Structure is documented below. - RouteAction *RegionUrlMapPathMatcherPathRuleRouteAction `pulumi:"routeAction"` - // The region backend service resource to which traffic is - // directed if this rule is matched. If routeAction is additionally specified, - // advanced routing actions like URL Rewrites, etc. take effect prior to sending - // the request to the backend. However, if service is specified, routeAction cannot - // contain any weightedBackendService s. Conversely, if routeAction specifies any - // weightedBackendServices, service must not be specified. Only one of urlRedirect, - // service or routeAction.weightedBackendService must be set. - Service *string `pulumi:"service"` - // When a path pattern is matched, the request is redirected to a URL specified - // by urlRedirect. If urlRedirect is specified, service or routeAction must not - // be set. + Abort *RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort `pulumi:"abort"` + // The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. // Structure is documented below. - UrlRedirect *RegionUrlMapPathMatcherPathRuleUrlRedirect `pulumi:"urlRedirect"` + Delay *RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay `pulumi:"delay"` } -// RegionUrlMapPathMatcherPathRuleInput is an input type that accepts RegionUrlMapPathMatcherPathRuleArgs and RegionUrlMapPathMatcherPathRuleOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleInput` via: +// RegionUrlMapDefaultRouteActionFaultInjectionPolicyInput is an input type that accepts RegionUrlMapDefaultRouteActionFaultInjectionPolicyArgs and RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput values. +// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionFaultInjectionPolicyInput` via: // -// RegionUrlMapPathMatcherPathRuleArgs{...} -type RegionUrlMapPathMatcherPathRuleInput interface { +// RegionUrlMapDefaultRouteActionFaultInjectionPolicyArgs{...} +type RegionUrlMapDefaultRouteActionFaultInjectionPolicyInput interface { pulumi.Input - ToRegionUrlMapPathMatcherPathRuleOutput() RegionUrlMapPathMatcherPathRuleOutput - ToRegionUrlMapPathMatcherPathRuleOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleOutput + ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput + ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput } -type RegionUrlMapPathMatcherPathRuleArgs struct { - // The list of path patterns to match. Each must start with / and the only place a - // \* is allowed is at the end following a /. The string fed to the path matcher - // does not include any text after the first ? or #, and those chars are not - // allowed here. - Paths pulumi.StringArrayInput `pulumi:"paths"` - // In response to a matching path, the load balancer performs advanced routing - // actions like URL rewrites, header transformations, etc. prior to forwarding the - // request to the selected backend. If routeAction specifies any - // weightedBackendServices, service must not be set. Conversely if service is set, - // routeAction cannot contain any weightedBackendServices. Only one of routeAction - // or urlRedirect must be set. +type RegionUrlMapDefaultRouteActionFaultInjectionPolicyArgs struct { + // The specification for how client requests are aborted as part of fault injection. // Structure is documented below. - RouteAction RegionUrlMapPathMatcherPathRuleRouteActionPtrInput `pulumi:"routeAction"` - // The region backend service resource to which traffic is - // directed if this rule is matched. If routeAction is additionally specified, - // advanced routing actions like URL Rewrites, etc. take effect prior to sending - // the request to the backend. However, if service is specified, routeAction cannot - // contain any weightedBackendService s. Conversely, if routeAction specifies any - // weightedBackendServices, service must not be specified. Only one of urlRedirect, - // service or routeAction.weightedBackendService must be set. - Service pulumi.StringPtrInput `pulumi:"service"` - // When a path pattern is matched, the request is redirected to a URL specified - // by urlRedirect. If urlRedirect is specified, service or routeAction must not - // be set. + Abort RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrInput `pulumi:"abort"` + // The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. // Structure is documented below. - UrlRedirect RegionUrlMapPathMatcherPathRuleUrlRedirectPtrInput `pulumi:"urlRedirect"` + Delay RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrInput `pulumi:"delay"` } -func (RegionUrlMapPathMatcherPathRuleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherPathRule)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionFaultInjectionPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapDefaultRouteActionFaultInjectionPolicy)(nil)).Elem() } -func (i RegionUrlMapPathMatcherPathRuleArgs) ToRegionUrlMapPathMatcherPathRuleOutput() RegionUrlMapPathMatcherPathRuleOutput { - return i.ToRegionUrlMapPathMatcherPathRuleOutputWithContext(context.Background()) +func (i RegionUrlMapDefaultRouteActionFaultInjectionPolicyArgs) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput { + return i.ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherPathRuleArgs) ToRegionUrlMapPathMatcherPathRuleOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleOutput) +func (i RegionUrlMapDefaultRouteActionFaultInjectionPolicyArgs) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput) } -// RegionUrlMapPathMatcherPathRuleArrayInput is an input type that accepts RegionUrlMapPathMatcherPathRuleArray and RegionUrlMapPathMatcherPathRuleArrayOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleArrayInput` via: +func (i RegionUrlMapDefaultRouteActionFaultInjectionPolicyArgs) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput { + return i.ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Background()) +} + +func (i RegionUrlMapDefaultRouteActionFaultInjectionPolicyArgs) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput).ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx) +} + +// RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrInput is an input type that accepts RegionUrlMapDefaultRouteActionFaultInjectionPolicyArgs, RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtr and RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrInput` via: // -// RegionUrlMapPathMatcherPathRuleArray{ RegionUrlMapPathMatcherPathRuleArgs{...} } -type RegionUrlMapPathMatcherPathRuleArrayInput interface { +// RegionUrlMapDefaultRouteActionFaultInjectionPolicyArgs{...} +// +// or: +// +// nil +type RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrInput interface { pulumi.Input - ToRegionUrlMapPathMatcherPathRuleArrayOutput() RegionUrlMapPathMatcherPathRuleArrayOutput - ToRegionUrlMapPathMatcherPathRuleArrayOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleArrayOutput + ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput + ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput } -type RegionUrlMapPathMatcherPathRuleArray []RegionUrlMapPathMatcherPathRuleInput +type regionUrlMapDefaultRouteActionFaultInjectionPolicyPtrType RegionUrlMapDefaultRouteActionFaultInjectionPolicyArgs -func (RegionUrlMapPathMatcherPathRuleArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapPathMatcherPathRule)(nil)).Elem() +func RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtr(v *RegionUrlMapDefaultRouteActionFaultInjectionPolicyArgs) RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrInput { + return (*regionUrlMapDefaultRouteActionFaultInjectionPolicyPtrType)(v) } -func (i RegionUrlMapPathMatcherPathRuleArray) ToRegionUrlMapPathMatcherPathRuleArrayOutput() RegionUrlMapPathMatcherPathRuleArrayOutput { - return i.ToRegionUrlMapPathMatcherPathRuleArrayOutputWithContext(context.Background()) +func (*regionUrlMapDefaultRouteActionFaultInjectionPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapDefaultRouteActionFaultInjectionPolicy)(nil)).Elem() } -func (i RegionUrlMapPathMatcherPathRuleArray) ToRegionUrlMapPathMatcherPathRuleArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleArrayOutput) +func (i *regionUrlMapDefaultRouteActionFaultInjectionPolicyPtrType) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput { + return i.ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Background()) } -type RegionUrlMapPathMatcherPathRuleOutput struct{ *pulumi.OutputState } +func (i *regionUrlMapDefaultRouteActionFaultInjectionPolicyPtrType) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput) +} -func (RegionUrlMapPathMatcherPathRuleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherPathRule)(nil)).Elem() +type RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapDefaultRouteActionFaultInjectionPolicy)(nil)).Elem() } -func (o RegionUrlMapPathMatcherPathRuleOutput) ToRegionUrlMapPathMatcherPathRuleOutput() RegionUrlMapPathMatcherPathRuleOutput { +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleOutput) ToRegionUrlMapPathMatcherPathRuleOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleOutput { +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput { return o } -// The list of path patterns to match. Each must start with / and the only place a -// \* is allowed is at the end following a /. The string fed to the path matcher -// does not include any text after the first ? or #, and those chars are not -// allowed here. -func (o RegionUrlMapPathMatcherPathRuleOutput) Paths() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRule) []string { return v.Paths }).(pulumi.StringArrayOutput) +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput { + return o.ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Background()) } -// In response to a matching path, the load balancer performs advanced routing -// actions like URL rewrites, header transformations, etc. prior to forwarding the -// request to the selected backend. If routeAction specifies any -// weightedBackendServices, service must not be set. Conversely if service is set, -// routeAction cannot contain any weightedBackendServices. Only one of routeAction -// or urlRedirect must be set. -// Structure is documented below. -func (o RegionUrlMapPathMatcherPathRuleOutput) RouteAction() RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRule) *RegionUrlMapPathMatcherPathRuleRouteAction { - return v.RouteAction - }).(RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput) +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapDefaultRouteActionFaultInjectionPolicy) *RegionUrlMapDefaultRouteActionFaultInjectionPolicy { + return &v + }).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput) } -// The region backend service resource to which traffic is -// directed if this rule is matched. If routeAction is additionally specified, -// advanced routing actions like URL Rewrites, etc. take effect prior to sending -// the request to the backend. However, if service is specified, routeAction cannot -// contain any weightedBackendService s. Conversely, if routeAction specifies any -// weightedBackendServices, service must not be specified. Only one of urlRedirect, -// service or routeAction.weightedBackendService must be set. -func (o RegionUrlMapPathMatcherPathRuleOutput) Service() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRule) *string { return v.Service }).(pulumi.StringPtrOutput) +// The specification for how client requests are aborted as part of fault injection. +// Structure is documented below. +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput) Abort() RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionFaultInjectionPolicy) *RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort { + return v.Abort + }).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) } -// When a path pattern is matched, the request is redirected to a URL specified -// by urlRedirect. If urlRedirect is specified, service or routeAction must not -// be set. +// The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. // Structure is documented below. -func (o RegionUrlMapPathMatcherPathRuleOutput) UrlRedirect() RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRule) *RegionUrlMapPathMatcherPathRuleUrlRedirect { - return v.UrlRedirect - }).(RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput) +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput) Delay() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionFaultInjectionPolicy) *RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay { + return v.Delay + }).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) } -type RegionUrlMapPathMatcherPathRuleArrayOutput struct{ *pulumi.OutputState } +type RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherPathRuleArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapPathMatcherPathRule)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapDefaultRouteActionFaultInjectionPolicy)(nil)).Elem() } -func (o RegionUrlMapPathMatcherPathRuleArrayOutput) ToRegionUrlMapPathMatcherPathRuleArrayOutput() RegionUrlMapPathMatcherPathRuleArrayOutput { +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleArrayOutput) ToRegionUrlMapPathMatcherPathRuleArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleArrayOutput { +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleArrayOutput) Index(i pulumi.IntInput) RegionUrlMapPathMatcherPathRuleOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapPathMatcherPathRule { - return vs[0].([]RegionUrlMapPathMatcherPathRule)[vs[1].(int)] - }).(RegionUrlMapPathMatcherPathRuleOutput) +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput) Elem() RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionFaultInjectionPolicy) RegionUrlMapDefaultRouteActionFaultInjectionPolicy { + if v != nil { + return *v + } + var ret RegionUrlMapDefaultRouteActionFaultInjectionPolicy + return ret + }).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyOutput) } -type RegionUrlMapPathMatcherPathRuleRouteAction struct { - // The specification for allowing client side cross-origin requests. Please see W3C - // Recommendation for Cross Origin Resource Sharing - // Structure is documented below. - CorsPolicy *RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy `pulumi:"corsPolicy"` - // The specification for fault injection introduced into traffic to test the - // resiliency of clients to backend service failure. As part of fault injection, - // when clients send requests to a backend service, delays can be introduced by - // Loadbalancer on a percentage of requests before sending those request to the - // backend service. Similarly requests from clients can be aborted by the - // Loadbalancer for a percentage of requests. timeout and retryPolicy will be - // ignored by clients that are configured with a fault_injection_policy. - // Structure is documented below. - FaultInjectionPolicy *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy `pulumi:"faultInjectionPolicy"` - // Specifies the policy on how requests intended for the route's backends are - // shadowed to a separate mirrored backend service. Loadbalancer does not wait for - // responses from the shadow service. Prior to sending traffic to the shadow - // service, the host / authority header is suffixed with -shadow. - // Structure is documented below. - RequestMirrorPolicy *RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy `pulumi:"requestMirrorPolicy"` - // Specifies the retry policy associated with this route. - // Structure is documented below. - RetryPolicy *RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy `pulumi:"retryPolicy"` - // Specifies the timeout for the selected route. Timeout is computed from the time - // the request is has been fully processed (i.e. end-of-stream) up until the - // response has been completely processed. Timeout includes all retries. If not - // specified, the default value is 15 seconds. - // Structure is documented below. - Timeout *RegionUrlMapPathMatcherPathRuleRouteActionTimeout `pulumi:"timeout"` - // The spec to modify the URL of the request, prior to forwarding the request to - // the matched service - // Structure is documented below. - UrlRewrite *RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite `pulumi:"urlRewrite"` - // A list of weighted backend services to send traffic to when a route match - // occurs. The weights determine the fraction of traffic that flows to their - // corresponding backend service. If all traffic needs to go to a single backend - // service, there must be one weightedBackendService with weight set to a non 0 - // number. Once a backendService is identified and before forwarding the request to - // the backend service, advanced routing actions like Url rewrites and header - // transformations are applied depending on additional settings specified in this - // HttpRouteAction. - // Structure is documented below. - WeightedBackendServices []RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendService `pulumi:"weightedBackendServices"` +// The specification for how client requests are aborted as part of fault injection. +// Structure is documented below. +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput) Abort() RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionFaultInjectionPolicy) *RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort { + if v == nil { + return nil + } + return v.Abort + }).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) } -// RegionUrlMapPathMatcherPathRuleRouteActionInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionArgs and RegionUrlMapPathMatcherPathRuleRouteActionOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionInput` via: +// The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. +// Structure is documented below. +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyPtrOutput) Delay() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionFaultInjectionPolicy) *RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay { + if v == nil { + return nil + } + return v.Delay + }).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) +} + +type RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort struct { + // The HTTP status code used to abort the request. + // The value must be between 200 and 599 inclusive. + HttpStatus *int `pulumi:"httpStatus"` + // The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. + // The value must be between 0.0 and 100.0 inclusive. + Percentage *float64 `pulumi:"percentage"` +} + +// RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortInput is an input type that accepts RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortArgs and RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput values. +// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortInput` via: // -// RegionUrlMapPathMatcherPathRuleRouteActionArgs{...} -type RegionUrlMapPathMatcherPathRuleRouteActionInput interface { +// RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortArgs{...} +type RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortInput interface { pulumi.Input - ToRegionUrlMapPathMatcherPathRuleRouteActionOutput() RegionUrlMapPathMatcherPathRuleRouteActionOutput - ToRegionUrlMapPathMatcherPathRuleRouteActionOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionOutput + ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput + ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput } -type RegionUrlMapPathMatcherPathRuleRouteActionArgs struct { - // The specification for allowing client side cross-origin requests. Please see W3C - // Recommendation for Cross Origin Resource Sharing - // Structure is documented below. - CorsPolicy RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrInput `pulumi:"corsPolicy"` - // The specification for fault injection introduced into traffic to test the - // resiliency of clients to backend service failure. As part of fault injection, - // when clients send requests to a backend service, delays can be introduced by - // Loadbalancer on a percentage of requests before sending those request to the - // backend service. Similarly requests from clients can be aborted by the - // Loadbalancer for a percentage of requests. timeout and retryPolicy will be - // ignored by clients that are configured with a fault_injection_policy. - // Structure is documented below. - FaultInjectionPolicy RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrInput `pulumi:"faultInjectionPolicy"` - // Specifies the policy on how requests intended for the route's backends are - // shadowed to a separate mirrored backend service. Loadbalancer does not wait for - // responses from the shadow service. Prior to sending traffic to the shadow - // service, the host / authority header is suffixed with -shadow. - // Structure is documented below. - RequestMirrorPolicy RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrInput `pulumi:"requestMirrorPolicy"` - // Specifies the retry policy associated with this route. - // Structure is documented below. - RetryPolicy RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrInput `pulumi:"retryPolicy"` - // Specifies the timeout for the selected route. Timeout is computed from the time - // the request is has been fully processed (i.e. end-of-stream) up until the - // response has been completely processed. Timeout includes all retries. If not - // specified, the default value is 15 seconds. - // Structure is documented below. - Timeout RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrInput `pulumi:"timeout"` - // The spec to modify the URL of the request, prior to forwarding the request to - // the matched service - // Structure is documented below. - UrlRewrite RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrInput `pulumi:"urlRewrite"` - // A list of weighted backend services to send traffic to when a route match - // occurs. The weights determine the fraction of traffic that flows to their - // corresponding backend service. If all traffic needs to go to a single backend - // service, there must be one weightedBackendService with weight set to a non 0 - // number. Once a backendService is identified and before forwarding the request to - // the backend service, advanced routing actions like Url rewrites and header - // transformations are applied depending on additional settings specified in this - // HttpRouteAction. - // Structure is documented below. - WeightedBackendServices RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayInput `pulumi:"weightedBackendServices"` +type RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortArgs struct { + // The HTTP status code used to abort the request. + // The value must be between 200 and 599 inclusive. + HttpStatus pulumi.IntPtrInput `pulumi:"httpStatus"` + // The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. + // The value must be between 0.0 and 100.0 inclusive. + Percentage pulumi.Float64PtrInput `pulumi:"percentage"` } -func (RegionUrlMapPathMatcherPathRuleRouteActionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteAction)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort)(nil)).Elem() } -func (i RegionUrlMapPathMatcherPathRuleRouteActionArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionOutput() RegionUrlMapPathMatcherPathRuleRouteActionOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionOutputWithContext(context.Background()) +func (i RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortArgs) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput { + return i.ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionOutput) +func (i RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortArgs) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionPtrOutputWithContext(context.Background()) +func (i RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortArgs) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { + return i.ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionOutput).ToRegionUrlMapPathMatcherPathRuleRouteActionPtrOutputWithContext(ctx) +func (i RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortArgs) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput).ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx) } -// RegionUrlMapPathMatcherPathRuleRouteActionPtrInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionArgs, RegionUrlMapPathMatcherPathRuleRouteActionPtr and RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionPtrInput` via: +// RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrInput is an input type that accepts RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortArgs, RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtr and RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrInput` via: // -// RegionUrlMapPathMatcherPathRuleRouteActionArgs{...} +// RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortArgs{...} // // or: // // nil -type RegionUrlMapPathMatcherPathRuleRouteActionPtrInput interface { +type RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrInput interface { pulumi.Input - ToRegionUrlMapPathMatcherPathRuleRouteActionPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput - ToRegionUrlMapPathMatcherPathRuleRouteActionPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput + ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput + ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput } -type regionUrlMapPathMatcherPathRuleRouteActionPtrType RegionUrlMapPathMatcherPathRuleRouteActionArgs +type regionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrType RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortArgs -func RegionUrlMapPathMatcherPathRuleRouteActionPtr(v *RegionUrlMapPathMatcherPathRuleRouteActionArgs) RegionUrlMapPathMatcherPathRuleRouteActionPtrInput { - return (*regionUrlMapPathMatcherPathRuleRouteActionPtrType)(v) +func RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtr(v *RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortArgs) RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrInput { + return (*regionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrType)(v) } -func (*regionUrlMapPathMatcherPathRuleRouteActionPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteAction)(nil)).Elem() +func (*regionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort)(nil)).Elem() } -func (i *regionUrlMapPathMatcherPathRuleRouteActionPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionPtrOutputWithContext(context.Background()) +func (i *regionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrType) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { + return i.ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Background()) } -func (i *regionUrlMapPathMatcherPathRuleRouteActionPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput) +func (i *regionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrType) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionOutput struct{ *pulumi.OutputState } +type RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherPathRuleRouteActionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteAction)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort)(nil)).Elem() } -func (o RegionUrlMapPathMatcherPathRuleRouteActionOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionOutput() RegionUrlMapPathMatcherPathRuleRouteActionOutput { +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionOutput { +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput { - return o.ToRegionUrlMapPathMatcherPathRuleRouteActionPtrOutputWithContext(context.Background()) +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { + return o.ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Background()) } -func (o RegionUrlMapPathMatcherPathRuleRouteActionOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherPathRuleRouteAction) *RegionUrlMapPathMatcherPathRuleRouteAction { +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort) *RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort { return &v - }).(RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput) -} - -// The specification for allowing client side cross-origin requests. Please see W3C -// Recommendation for Cross Origin Resource Sharing -// Structure is documented below. -func (o RegionUrlMapPathMatcherPathRuleRouteActionOutput) CorsPolicy() RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteAction) *RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy { - return v.CorsPolicy - }).(RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput) -} - -// The specification for fault injection introduced into traffic to test the -// resiliency of clients to backend service failure. As part of fault injection, -// when clients send requests to a backend service, delays can be introduced by -// Loadbalancer on a percentage of requests before sending those request to the -// backend service. Similarly requests from clients can be aborted by the -// Loadbalancer for a percentage of requests. timeout and retryPolicy will be -// ignored by clients that are configured with a fault_injection_policy. -// Structure is documented below. -func (o RegionUrlMapPathMatcherPathRuleRouteActionOutput) FaultInjectionPolicy() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteAction) *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy { - return v.FaultInjectionPolicy - }).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput) -} - -// Specifies the policy on how requests intended for the route's backends are -// shadowed to a separate mirrored backend service. Loadbalancer does not wait for -// responses from the shadow service. Prior to sending traffic to the shadow -// service, the host / authority header is suffixed with -shadow. -// Structure is documented below. -func (o RegionUrlMapPathMatcherPathRuleRouteActionOutput) RequestMirrorPolicy() RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteAction) *RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy { - return v.RequestMirrorPolicy - }).(RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput) -} - -// Specifies the retry policy associated with this route. -// Structure is documented below. -func (o RegionUrlMapPathMatcherPathRuleRouteActionOutput) RetryPolicy() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteAction) *RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy { - return v.RetryPolicy - }).(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput) -} - -// Specifies the timeout for the selected route. Timeout is computed from the time -// the request is has been fully processed (i.e. end-of-stream) up until the -// response has been completely processed. Timeout includes all retries. If not -// specified, the default value is 15 seconds. -// Structure is documented below. -func (o RegionUrlMapPathMatcherPathRuleRouteActionOutput) Timeout() RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteAction) *RegionUrlMapPathMatcherPathRuleRouteActionTimeout { - return v.Timeout - }).(RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput) + }).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) } -// The spec to modify the URL of the request, prior to forwarding the request to -// the matched service -// Structure is documented below. -func (o RegionUrlMapPathMatcherPathRuleRouteActionOutput) UrlRewrite() RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteAction) *RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite { - return v.UrlRewrite - }).(RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput) +// The HTTP status code used to abort the request. +// The value must be between 200 and 599 inclusive. +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput) HttpStatus() pulumi.IntPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort) *int { return v.HttpStatus }).(pulumi.IntPtrOutput) } -// A list of weighted backend services to send traffic to when a route match -// occurs. The weights determine the fraction of traffic that flows to their -// corresponding backend service. If all traffic needs to go to a single backend -// service, there must be one weightedBackendService with weight set to a non 0 -// number. Once a backendService is identified and before forwarding the request to -// the backend service, advanced routing actions like Url rewrites and header -// transformations are applied depending on additional settings specified in this -// HttpRouteAction. -// Structure is documented below. -func (o RegionUrlMapPathMatcherPathRuleRouteActionOutput) WeightedBackendServices() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteAction) []RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendService { - return v.WeightedBackendServices - }).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput) +// The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. +// The value must be between 0.0 and 100.0 inclusive. +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput) Percentage() pulumi.Float64PtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort) *float64 { return v.Percentage }).(pulumi.Float64PtrOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput struct{ *pulumi.OutputState } +type RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteAction)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort)(nil)).Elem() } -func (o RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput { +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput { +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput) Elem() RegionUrlMapPathMatcherPathRuleRouteActionOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteAction) RegionUrlMapPathMatcherPathRuleRouteAction { +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) Elem() RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort) RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort { if v != nil { return *v } - var ret RegionUrlMapPathMatcherPathRuleRouteAction + var ret RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort return ret - }).(RegionUrlMapPathMatcherPathRuleRouteActionOutput) -} - -// The specification for allowing client side cross-origin requests. Please see W3C -// Recommendation for Cross Origin Resource Sharing -// Structure is documented below. -func (o RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput) CorsPolicy() RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteAction) *RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy { - if v == nil { - return nil - } - return v.CorsPolicy - }).(RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput) -} - -// The specification for fault injection introduced into traffic to test the -// resiliency of clients to backend service failure. As part of fault injection, -// when clients send requests to a backend service, delays can be introduced by -// Loadbalancer on a percentage of requests before sending those request to the -// backend service. Similarly requests from clients can be aborted by the -// Loadbalancer for a percentage of requests. timeout and retryPolicy will be -// ignored by clients that are configured with a fault_injection_policy. -// Structure is documented below. -func (o RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput) FaultInjectionPolicy() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteAction) *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy { - if v == nil { - return nil - } - return v.FaultInjectionPolicy - }).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput) -} - -// Specifies the policy on how requests intended for the route's backends are -// shadowed to a separate mirrored backend service. Loadbalancer does not wait for -// responses from the shadow service. Prior to sending traffic to the shadow -// service, the host / authority header is suffixed with -shadow. -// Structure is documented below. -func (o RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput) RequestMirrorPolicy() RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteAction) *RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy { - if v == nil { - return nil - } - return v.RequestMirrorPolicy - }).(RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput) -} - -// Specifies the retry policy associated with this route. -// Structure is documented below. -func (o RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput) RetryPolicy() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteAction) *RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy { - if v == nil { - return nil - } - return v.RetryPolicy - }).(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput) -} - -// Specifies the timeout for the selected route. Timeout is computed from the time -// the request is has been fully processed (i.e. end-of-stream) up until the -// response has been completely processed. Timeout includes all retries. If not -// specified, the default value is 15 seconds. -// Structure is documented below. -func (o RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput) Timeout() RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteAction) *RegionUrlMapPathMatcherPathRuleRouteActionTimeout { - if v == nil { - return nil - } - return v.Timeout - }).(RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput) + }).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortOutput) } -// The spec to modify the URL of the request, prior to forwarding the request to -// the matched service -// Structure is documented below. -func (o RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput) UrlRewrite() RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteAction) *RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite { +// The HTTP status code used to abort the request. +// The value must be between 200 and 599 inclusive. +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) HttpStatus() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort) *int { if v == nil { return nil } - return v.UrlRewrite - }).(RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput) + return v.HttpStatus + }).(pulumi.IntPtrOutput) } -// A list of weighted backend services to send traffic to when a route match -// occurs. The weights determine the fraction of traffic that flows to their -// corresponding backend service. If all traffic needs to go to a single backend -// service, there must be one weightedBackendService with weight set to a non 0 -// number. Once a backendService is identified and before forwarding the request to -// the backend service, advanced routing actions like Url rewrites and header -// transformations are applied depending on additional settings specified in this -// HttpRouteAction. -// Structure is documented below. -func (o RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput) WeightedBackendServices() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteAction) []RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendService { +// The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. +// The value must be between 0.0 and 100.0 inclusive. +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) Percentage() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort) *float64 { if v == nil { return nil } - return v.WeightedBackendServices - }).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput) + return v.Percentage + }).(pulumi.Float64PtrOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy struct { - // In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. - // Default is false. - AllowCredentials *bool `pulumi:"allowCredentials"` - // Specifies the content for the Access-Control-Allow-Headers header. - AllowHeaders []string `pulumi:"allowHeaders"` - // Specifies the content for the Access-Control-Allow-Methods header. - AllowMethods []string `pulumi:"allowMethods"` - // Specifies the regualar expression patterns that match allowed origins. For regular expression grammar - // please see en.cppreference.com/w/cpp/regex/ecmascript - // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. - AllowOriginRegexes []string `pulumi:"allowOriginRegexes"` - // Specifies the list of origins that will be allowed to do CORS requests. - // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. - AllowOrigins []string `pulumi:"allowOrigins"` - // If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. - Disabled bool `pulumi:"disabled"` - // Specifies the content for the Access-Control-Expose-Headers header. - ExposeHeaders []string `pulumi:"exposeHeaders"` - // Specifies how long results of a preflight request can be cached in seconds. - // This translates to the Access-Control-Max-Age header. - MaxAge *int `pulumi:"maxAge"` +type RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay struct { + // Specifies the value of the fixed delay interval. + // Structure is documented below. + FixedDelay *RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay `pulumi:"fixedDelay"` + // The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. + // The value must be between 0.0 and 100.0 inclusive. + Percentage *float64 `pulumi:"percentage"` } -// RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyArgs and RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyInput` via: +// RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayInput is an input type that accepts RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayArgs and RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput values. +// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayInput` via: // -// RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyArgs{...} -type RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyInput interface { +// RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayArgs{...} +type RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayInput interface { pulumi.Input - ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput() RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput - ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput + ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput + ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput } -type RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyArgs struct { - // In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. - // Default is false. - AllowCredentials pulumi.BoolPtrInput `pulumi:"allowCredentials"` - // Specifies the content for the Access-Control-Allow-Headers header. - AllowHeaders pulumi.StringArrayInput `pulumi:"allowHeaders"` - // Specifies the content for the Access-Control-Allow-Methods header. - AllowMethods pulumi.StringArrayInput `pulumi:"allowMethods"` - // Specifies the regualar expression patterns that match allowed origins. For regular expression grammar - // please see en.cppreference.com/w/cpp/regex/ecmascript - // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. - AllowOriginRegexes pulumi.StringArrayInput `pulumi:"allowOriginRegexes"` - // Specifies the list of origins that will be allowed to do CORS requests. - // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. - AllowOrigins pulumi.StringArrayInput `pulumi:"allowOrigins"` - // If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. - Disabled pulumi.BoolInput `pulumi:"disabled"` - // Specifies the content for the Access-Control-Expose-Headers header. - ExposeHeaders pulumi.StringArrayInput `pulumi:"exposeHeaders"` - // Specifies how long results of a preflight request can be cached in seconds. - // This translates to the Access-Control-Max-Age header. - MaxAge pulumi.IntPtrInput `pulumi:"maxAge"` +type RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayArgs struct { + // Specifies the value of the fixed delay interval. + // Structure is documented below. + FixedDelay RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput `pulumi:"fixedDelay"` + // The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. + // The value must be between 0.0 and 100.0 inclusive. + Percentage pulumi.Float64PtrInput `pulumi:"percentage"` } -func (RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay)(nil)).Elem() } -func (i RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput() RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutputWithContext(context.Background()) +func (i RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayArgs) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput { + return i.ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput) +func (i RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayArgs) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutputWithContext(context.Background()) +func (i RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayArgs) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { + return i.ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput).ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutputWithContext(ctx) +func (i RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayArgs) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput).ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx) } -// RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyArgs, RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtr and RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrInput` via: +// RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrInput is an input type that accepts RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayArgs, RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtr and RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrInput` via: // -// RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyArgs{...} +// RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayArgs{...} // // or: // // nil -type RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrInput interface { +type RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrInput interface { pulumi.Input - ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput - ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput + ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput + ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput } -type regionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrType RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyArgs +type regionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrType RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayArgs -func RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtr(v *RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyArgs) RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrInput { - return (*regionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrType)(v) +func RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtr(v *RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayArgs) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrInput { + return (*regionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrType)(v) } -func (*regionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy)(nil)).Elem() +func (*regionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay)(nil)).Elem() } -func (i *regionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutputWithContext(context.Background()) +func (i *regionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrType) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { + return i.ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Background()) } -func (i *regionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput) +func (i *regionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrType) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput struct{ *pulumi.OutputState } +type RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay)(nil)).Elem() } -func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput() RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput { +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput { +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput { - return o.ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutputWithContext(context.Background()) +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { + return o.ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Background()) } -func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) *RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy { +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay) *RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay { return &v - }).(RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput) + }).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) } -// In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. -// Default is false. -func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput) AllowCredentials() pulumi.BoolPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) *bool { return v.AllowCredentials }).(pulumi.BoolPtrOutput) -} - -// Specifies the content for the Access-Control-Allow-Headers header. -func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput) AllowHeaders() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) []string { return v.AllowHeaders }).(pulumi.StringArrayOutput) -} - -// Specifies the content for the Access-Control-Allow-Methods header. -func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput) AllowMethods() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) []string { return v.AllowMethods }).(pulumi.StringArrayOutput) -} - -// Specifies the regualar expression patterns that match allowed origins. For regular expression grammar -// please see en.cppreference.com/w/cpp/regex/ecmascript -// An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. -func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput) AllowOriginRegexes() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) []string { return v.AllowOriginRegexes }).(pulumi.StringArrayOutput) -} - -// Specifies the list of origins that will be allowed to do CORS requests. -// An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. -func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput) AllowOrigins() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) []string { return v.AllowOrigins }).(pulumi.StringArrayOutput) -} - -// If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. -func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput) Disabled() pulumi.BoolOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) bool { return v.Disabled }).(pulumi.BoolOutput) -} - -// Specifies the content for the Access-Control-Expose-Headers header. -func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput) ExposeHeaders() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) []string { return v.ExposeHeaders }).(pulumi.StringArrayOutput) +// Specifies the value of the fixed delay interval. +// Structure is documented below. +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput) FixedDelay() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay) *RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay { + return v.FixedDelay + }).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) } -// Specifies how long results of a preflight request can be cached in seconds. -// This translates to the Access-Control-Max-Age header. -func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput) MaxAge() pulumi.IntPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) *int { return v.MaxAge }).(pulumi.IntPtrOutput) +// The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. +// The value must be between 0.0 and 100.0 inclusive. +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput) Percentage() pulumi.Float64PtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay) *float64 { return v.Percentage }).(pulumi.Float64PtrOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput struct{ *pulumi.OutputState } +type RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay)(nil)).Elem() } -func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput { +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput { +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput) Elem() RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy { +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) Elem() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay { if v != nil { return *v } - var ret RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy + var ret RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay return ret - }).(RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput) -} - -// In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. -// Default is false. -func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput) AllowCredentials() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) *bool { - if v == nil { - return nil - } - return v.AllowCredentials - }).(pulumi.BoolPtrOutput) -} - -// Specifies the content for the Access-Control-Allow-Headers header. -func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput) AllowHeaders() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) []string { - if v == nil { - return nil - } - return v.AllowHeaders - }).(pulumi.StringArrayOutput) -} - -// Specifies the content for the Access-Control-Allow-Methods header. -func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput) AllowMethods() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) []string { - if v == nil { - return nil - } - return v.AllowMethods - }).(pulumi.StringArrayOutput) -} - -// Specifies the regualar expression patterns that match allowed origins. For regular expression grammar -// please see en.cppreference.com/w/cpp/regex/ecmascript -// An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. -func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput) AllowOriginRegexes() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) []string { - if v == nil { - return nil - } - return v.AllowOriginRegexes - }).(pulumi.StringArrayOutput) -} - -// Specifies the list of origins that will be allowed to do CORS requests. -// An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. -func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput) AllowOrigins() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) []string { - if v == nil { - return nil - } - return v.AllowOrigins - }).(pulumi.StringArrayOutput) -} - -// If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. -func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput) Disabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) *bool { - if v == nil { - return nil - } - return &v.Disabled - }).(pulumi.BoolPtrOutput) + }).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayOutput) } -// Specifies the content for the Access-Control-Expose-Headers header. -func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput) ExposeHeaders() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) []string { +// Specifies the value of the fixed delay interval. +// Structure is documented below. +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) FixedDelay() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay) *RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay { if v == nil { return nil } - return v.ExposeHeaders - }).(pulumi.StringArrayOutput) + return v.FixedDelay + }).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) } -// Specifies how long results of a preflight request can be cached in seconds. -// This translates to the Access-Control-Max-Age header. -func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput) MaxAge() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) *int { +// The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. +// The value must be between 0.0 and 100.0 inclusive. +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) Percentage() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay) *float64 { if v == nil { return nil } - return v.MaxAge - }).(pulumi.IntPtrOutput) + return v.Percentage + }).(pulumi.Float64PtrOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy struct { - // The specification for how client requests are aborted as part of fault injection. - // Structure is documented below. - Abort *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort `pulumi:"abort"` - // The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. - // Structure is documented below. - Delay *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay `pulumi:"delay"` +type RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay struct { + // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are + // represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. + Nanos *int `pulumi:"nanos"` + // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. + // Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years + Seconds *string `pulumi:"seconds"` } -// RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs and RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyInput` via: +// RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayInput is an input type that accepts RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs and RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput values. +// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayInput` via: // -// RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs{...} -type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyInput interface { +// RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs{...} +type RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayInput interface { pulumi.Input - ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput - ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput + ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput + ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput } -type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs struct { - // The specification for how client requests are aborted as part of fault injection. - // Structure is documented below. - Abort RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrInput `pulumi:"abort"` - // The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. - // Structure is documented below. - Delay RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrInput `pulumi:"delay"` +type RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs struct { + // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are + // represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. + Nanos pulumi.IntPtrInput `pulumi:"nanos"` + // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. + // Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years + Seconds pulumi.StringPtrInput `pulumi:"seconds"` } -func (RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() } -func (i RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutputWithContext(context.Background()) +func (i RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput { + return i.ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput) +func (i RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Background()) +func (i RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return i.ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput).ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx) +func (i RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput).ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx) } -// RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs, RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtr and RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrInput` via: +// RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput is an input type that accepts RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs, RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtr and RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput` via: // -// RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs{...} +// RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs{...} // // or: // // nil -type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrInput interface { +type RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput interface { pulumi.Input - ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput - ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput + ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput + ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput } -type regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrType RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs +type regionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrType RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs -func RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtr(v *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrInput { - return (*regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrType)(v) +func RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtr(v *RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput { + return (*regionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrType)(v) } -func (*regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy)(nil)).Elem() +func (*regionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() } -func (i *regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Background()) +func (i *regionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrType) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return i.ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Background()) } -func (i *regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput) +func (i *regionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrType) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput struct{ *pulumi.OutputState } +type RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() } -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput { +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput { +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput { - return o.ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Background()) +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return o.ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Background()) } -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy) *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy { +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) *RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay { return &v - }).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput) + }).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) } -// The specification for how client requests are aborted as part of fault injection. -// Structure is documented below. -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput) Abort() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy) *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort { - return v.Abort - }).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput) +// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are +// represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) *int { return v.Nanos }).(pulumi.IntPtrOutput) } -// The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. -// Structure is documented below. -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput) Delay() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy) *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay { - return v.Delay - }).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput) +// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. +// Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) Seconds() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) *string { return v.Seconds }).(pulumi.StringPtrOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput struct{ *pulumi.OutputState } +type RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() } -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput { +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput { +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) ToRegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput) Elem() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy { +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) Elem() RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay { if v != nil { return *v } - var ret RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy + var ret RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay return ret - }).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput) + }).(RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) } -// The specification for how client requests are aborted as part of fault injection. -// Structure is documented below. -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput) Abort() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy) *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort { +// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are +// represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) *int { if v == nil { return nil } - return v.Abort - }).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput) + return v.Nanos + }).(pulumi.IntPtrOutput) } -// The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. -// Structure is documented below. -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput) Delay() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy) *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay { +// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. +// Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years +func (o RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) Seconds() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) *string { if v == nil { return nil } - return v.Delay - }).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput) + return v.Seconds + }).(pulumi.StringPtrOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort struct { - // The HTTP status code used to abort the request. - // The value must be between 200 and 599 inclusive. - HttpStatus int `pulumi:"httpStatus"` - // The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. - // The value must be between 0.0 and 100.0 inclusive. - Percentage float64 `pulumi:"percentage"` +type RegionUrlMapDefaultRouteActionRequestMirrorPolicy struct { + // The full or partial URL to the RegionBackendService resource being mirrored to. + // The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map. + // Serverless NEG backends are not currently supported as a mirrored backend service. + BackendService *string `pulumi:"backendService"` } -// RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortArgs and RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortInput` via: +// RegionUrlMapDefaultRouteActionRequestMirrorPolicyInput is an input type that accepts RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs and RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput values. +// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionRequestMirrorPolicyInput` via: // -// RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortArgs{...} -type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortInput interface { +// RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs{...} +type RegionUrlMapDefaultRouteActionRequestMirrorPolicyInput interface { pulumi.Input - ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput - ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput + ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput() RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput + ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput } -type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortArgs struct { - // The HTTP status code used to abort the request. - // The value must be between 200 and 599 inclusive. - HttpStatus pulumi.IntInput `pulumi:"httpStatus"` - // The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. - // The value must be between 0.0 and 100.0 inclusive. - Percentage pulumi.Float64Input `pulumi:"percentage"` +type RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs struct { + // The full or partial URL to the RegionBackendService resource being mirrored to. + // The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map. + // Serverless NEG backends are not currently supported as a mirrored backend service. + BackendService pulumi.StringPtrInput `pulumi:"backendService"` } -func (RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapDefaultRouteActionRequestMirrorPolicy)(nil)).Elem() } -func (i RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutputWithContext(context.Background()) +func (i RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs) ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput() RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput { + return i.ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput) +func (i RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs) ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Background()) +func (i RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs) ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput() RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput { + return i.ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput).ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx) +func (i RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs) ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput).ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx) } -// RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortArgs, RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtr and RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrInput` via: +// RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrInput is an input type that accepts RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs, RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtr and RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrInput` via: // -// RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortArgs{...} +// RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs{...} // // or: // // nil -type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrInput interface { +type RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrInput interface { pulumi.Input - ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput - ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput + ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput() RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput + ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput } -type regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrType RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortArgs +type regionUrlMapDefaultRouteActionRequestMirrorPolicyPtrType RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs -func RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtr(v *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortArgs) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrInput { - return (*regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrType)(v) +func RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtr(v *RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs) RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrInput { + return (*regionUrlMapDefaultRouteActionRequestMirrorPolicyPtrType)(v) } -func (*regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort)(nil)).Elem() +func (*regionUrlMapDefaultRouteActionRequestMirrorPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapDefaultRouteActionRequestMirrorPolicy)(nil)).Elem() } -func (i *regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Background()) +func (i *regionUrlMapDefaultRouteActionRequestMirrorPolicyPtrType) ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput() RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput { + return i.ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Background()) } -func (i *regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput) +func (i *regionUrlMapDefaultRouteActionRequestMirrorPolicyPtrType) ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput struct{ *pulumi.OutputState } +type RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapDefaultRouteActionRequestMirrorPolicy)(nil)).Elem() } -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput { +func (o RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput) ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput() RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput { +func (o RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput) ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput { - return o.ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Background()) +func (o RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput) ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput() RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput { + return o.ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Background()) } -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort) *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort { +func (o RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput) ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapDefaultRouteActionRequestMirrorPolicy) *RegionUrlMapDefaultRouteActionRequestMirrorPolicy { return &v - }).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput) -} - -// The HTTP status code used to abort the request. -// The value must be between 200 and 599 inclusive. -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput) HttpStatus() pulumi.IntOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort) int { return v.HttpStatus }).(pulumi.IntOutput) + }).(RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput) } -// The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. -// The value must be between 0.0 and 100.0 inclusive. -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput) Percentage() pulumi.Float64Output { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort) float64 { - return v.Percentage - }).(pulumi.Float64Output) +// The full or partial URL to the RegionBackendService resource being mirrored to. +// The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map. +// Serverless NEG backends are not currently supported as a mirrored backend service. +func (o RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput) BackendService() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionRequestMirrorPolicy) *string { return v.BackendService }).(pulumi.StringPtrOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput struct{ *pulumi.OutputState } +type RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapDefaultRouteActionRequestMirrorPolicy)(nil)).Elem() } -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput { +func (o RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput) ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput() RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput { +func (o RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput) ToRegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput) Elem() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort { +func (o RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput) Elem() RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionRequestMirrorPolicy) RegionUrlMapDefaultRouteActionRequestMirrorPolicy { if v != nil { return *v } - var ret RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort + var ret RegionUrlMapDefaultRouteActionRequestMirrorPolicy return ret - }).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput) + }).(RegionUrlMapDefaultRouteActionRequestMirrorPolicyOutput) } -// The HTTP status code used to abort the request. -// The value must be between 200 and 599 inclusive. -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput) HttpStatus() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort) *int { +// The full or partial URL to the RegionBackendService resource being mirrored to. +// The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map. +// Serverless NEG backends are not currently supported as a mirrored backend service. +func (o RegionUrlMapDefaultRouteActionRequestMirrorPolicyPtrOutput) BackendService() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionRequestMirrorPolicy) *string { if v == nil { return nil } - return &v.HttpStatus - }).(pulumi.IntPtrOutput) + return v.BackendService + }).(pulumi.StringPtrOutput) } -// The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. -// The value must be between 0.0 and 100.0 inclusive. -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput) Percentage() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort) *float64 { - if v == nil { - return nil - } - return &v.Percentage - }).(pulumi.Float64PtrOutput) +type RegionUrlMapDefaultRouteActionRetryPolicy struct { + // Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. + NumRetries *int `pulumi:"numRetries"` + // Specifies a non-zero timeout per retry attempt. + // If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, + // will use the largest timeout among all backend services associated with the route. + // Structure is documented below. + PerTryTimeout *RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout `pulumi:"perTryTimeout"` + // Specifies one or more conditions when this retry policy applies. + // Valid values are listed below. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true: cancelled, deadline-exceeded, internal, resource-exhausted, unavailable. + // - 5xx : retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. + // - gateway-error : Similar to 5xx, but only applies to response codes 502, 503 or 504. + // - connect-failure : a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. + // - retriable-4xx : a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. + // - refused-stream : a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. + // - cancelled : a retry is attempted if the gRPC status code in the response header is set to cancelled. + // - deadline-exceeded : a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. + // - internal : a retry is attempted if the gRPC status code in the response header is set to internal. + // - resource-exhausted : a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. + // - unavailable : a retry is attempted if the gRPC status code in the response header is set to unavailable. + RetryConditions []string `pulumi:"retryConditions"` } -type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay struct { - // Specifies the value of the fixed delay interval. - // Structure is documented below. - FixedDelay RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay `pulumi:"fixedDelay"` - // The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. - // The value must be between 0.0 and 100.0 inclusive. - Percentage float64 `pulumi:"percentage"` -} - -// RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgs and RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayInput` via: +// RegionUrlMapDefaultRouteActionRetryPolicyInput is an input type that accepts RegionUrlMapDefaultRouteActionRetryPolicyArgs and RegionUrlMapDefaultRouteActionRetryPolicyOutput values. +// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionRetryPolicyInput` via: // -// RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgs{...} -type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayInput interface { +// RegionUrlMapDefaultRouteActionRetryPolicyArgs{...} +type RegionUrlMapDefaultRouteActionRetryPolicyInput interface { pulumi.Input - ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput - ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput + ToRegionUrlMapDefaultRouteActionRetryPolicyOutput() RegionUrlMapDefaultRouteActionRetryPolicyOutput + ToRegionUrlMapDefaultRouteActionRetryPolicyOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionRetryPolicyOutput } -type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgs struct { - // Specifies the value of the fixed delay interval. +type RegionUrlMapDefaultRouteActionRetryPolicyArgs struct { + // Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. + NumRetries pulumi.IntPtrInput `pulumi:"numRetries"` + // Specifies a non-zero timeout per retry attempt. + // If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, + // will use the largest timeout among all backend services associated with the route. // Structure is documented below. - FixedDelay RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayInput `pulumi:"fixedDelay"` - // The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. - // The value must be between 0.0 and 100.0 inclusive. - Percentage pulumi.Float64Input `pulumi:"percentage"` + PerTryTimeout RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrInput `pulumi:"perTryTimeout"` + // Specifies one or more conditions when this retry policy applies. + // Valid values are listed below. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true: cancelled, deadline-exceeded, internal, resource-exhausted, unavailable. + // - 5xx : retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. + // - gateway-error : Similar to 5xx, but only applies to response codes 502, 503 or 504. + // - connect-failure : a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. + // - retriable-4xx : a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. + // - refused-stream : a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. + // - cancelled : a retry is attempted if the gRPC status code in the response header is set to cancelled. + // - deadline-exceeded : a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. + // - internal : a retry is attempted if the gRPC status code in the response header is set to internal. + // - resource-exhausted : a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. + // - unavailable : a retry is attempted if the gRPC status code in the response header is set to unavailable. + RetryConditions pulumi.StringArrayInput `pulumi:"retryConditions"` } -func (RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionRetryPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapDefaultRouteActionRetryPolicy)(nil)).Elem() } -func (i RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutputWithContext(context.Background()) +func (i RegionUrlMapDefaultRouteActionRetryPolicyArgs) ToRegionUrlMapDefaultRouteActionRetryPolicyOutput() RegionUrlMapDefaultRouteActionRetryPolicyOutput { + return i.ToRegionUrlMapDefaultRouteActionRetryPolicyOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput) +func (i RegionUrlMapDefaultRouteActionRetryPolicyArgs) ToRegionUrlMapDefaultRouteActionRetryPolicyOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRetryPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionRetryPolicyOutput) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Background()) +func (i RegionUrlMapDefaultRouteActionRetryPolicyArgs) ToRegionUrlMapDefaultRouteActionRetryPolicyPtrOutput() RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput { + return i.ToRegionUrlMapDefaultRouteActionRetryPolicyPtrOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput).ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx) +func (i RegionUrlMapDefaultRouteActionRetryPolicyArgs) ToRegionUrlMapDefaultRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionRetryPolicyOutput).ToRegionUrlMapDefaultRouteActionRetryPolicyPtrOutputWithContext(ctx) } -// RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgs, RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtr and RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrInput` via: +// RegionUrlMapDefaultRouteActionRetryPolicyPtrInput is an input type that accepts RegionUrlMapDefaultRouteActionRetryPolicyArgs, RegionUrlMapDefaultRouteActionRetryPolicyPtr and RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionRetryPolicyPtrInput` via: // -// RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgs{...} +// RegionUrlMapDefaultRouteActionRetryPolicyArgs{...} // // or: // // nil -type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrInput interface { +type RegionUrlMapDefaultRouteActionRetryPolicyPtrInput interface { pulumi.Input - ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput - ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput + ToRegionUrlMapDefaultRouteActionRetryPolicyPtrOutput() RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput + ToRegionUrlMapDefaultRouteActionRetryPolicyPtrOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput } -type regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrType RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgs +type regionUrlMapDefaultRouteActionRetryPolicyPtrType RegionUrlMapDefaultRouteActionRetryPolicyArgs -func RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtr(v *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgs) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrInput { - return (*regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrType)(v) +func RegionUrlMapDefaultRouteActionRetryPolicyPtr(v *RegionUrlMapDefaultRouteActionRetryPolicyArgs) RegionUrlMapDefaultRouteActionRetryPolicyPtrInput { + return (*regionUrlMapDefaultRouteActionRetryPolicyPtrType)(v) } -func (*regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay)(nil)).Elem() +func (*regionUrlMapDefaultRouteActionRetryPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapDefaultRouteActionRetryPolicy)(nil)).Elem() } -func (i *regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Background()) +func (i *regionUrlMapDefaultRouteActionRetryPolicyPtrType) ToRegionUrlMapDefaultRouteActionRetryPolicyPtrOutput() RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput { + return i.ToRegionUrlMapDefaultRouteActionRetryPolicyPtrOutputWithContext(context.Background()) } -func (i *regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput) +func (i *regionUrlMapDefaultRouteActionRetryPolicyPtrType) ToRegionUrlMapDefaultRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput struct{ *pulumi.OutputState } +type RegionUrlMapDefaultRouteActionRetryPolicyOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionRetryPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapDefaultRouteActionRetryPolicy)(nil)).Elem() } -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput { +func (o RegionUrlMapDefaultRouteActionRetryPolicyOutput) ToRegionUrlMapDefaultRouteActionRetryPolicyOutput() RegionUrlMapDefaultRouteActionRetryPolicyOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput { +func (o RegionUrlMapDefaultRouteActionRetryPolicyOutput) ToRegionUrlMapDefaultRouteActionRetryPolicyOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRetryPolicyOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput { - return o.ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Background()) +func (o RegionUrlMapDefaultRouteActionRetryPolicyOutput) ToRegionUrlMapDefaultRouteActionRetryPolicyPtrOutput() RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput { + return o.ToRegionUrlMapDefaultRouteActionRetryPolicyPtrOutputWithContext(context.Background()) } -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay) *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay { +func (o RegionUrlMapDefaultRouteActionRetryPolicyOutput) ToRegionUrlMapDefaultRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapDefaultRouteActionRetryPolicy) *RegionUrlMapDefaultRouteActionRetryPolicy { return &v - }).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput) + }).(RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput) } -// Specifies the value of the fixed delay interval. +// Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. +func (o RegionUrlMapDefaultRouteActionRetryPolicyOutput) NumRetries() pulumi.IntPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionRetryPolicy) *int { return v.NumRetries }).(pulumi.IntPtrOutput) +} + +// Specifies a non-zero timeout per retry attempt. +// If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, +// will use the largest timeout among all backend services associated with the route. // Structure is documented below. -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput) FixedDelay() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay { - return v.FixedDelay - }).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) +func (o RegionUrlMapDefaultRouteActionRetryPolicyOutput) PerTryTimeout() RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionRetryPolicy) *RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout { + return v.PerTryTimeout + }).(RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) } -// The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. -// The value must be between 0.0 and 100.0 inclusive. -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput) Percentage() pulumi.Float64Output { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay) float64 { - return v.Percentage - }).(pulumi.Float64Output) +// Specifies one or more conditions when this retry policy applies. +// Valid values are listed below. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true: cancelled, deadline-exceeded, internal, resource-exhausted, unavailable. +// - 5xx : retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. +// - gateway-error : Similar to 5xx, but only applies to response codes 502, 503 or 504. +// - connect-failure : a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. +// - retriable-4xx : a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. +// - refused-stream : a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. +// - cancelled : a retry is attempted if the gRPC status code in the response header is set to cancelled. +// - deadline-exceeded : a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. +// - internal : a retry is attempted if the gRPC status code in the response header is set to internal. +// - resource-exhausted : a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. +// - unavailable : a retry is attempted if the gRPC status code in the response header is set to unavailable. +func (o RegionUrlMapDefaultRouteActionRetryPolicyOutput) RetryConditions() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionRetryPolicy) []string { return v.RetryConditions }).(pulumi.StringArrayOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput struct{ *pulumi.OutputState } +type RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapDefaultRouteActionRetryPolicy)(nil)).Elem() } -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput { +func (o RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput) ToRegionUrlMapDefaultRouteActionRetryPolicyPtrOutput() RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput { +func (o RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput) ToRegionUrlMapDefaultRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput) Elem() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay { +func (o RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput) Elem() RegionUrlMapDefaultRouteActionRetryPolicyOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionRetryPolicy) RegionUrlMapDefaultRouteActionRetryPolicy { if v != nil { return *v } - var ret RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay + var ret RegionUrlMapDefaultRouteActionRetryPolicy return ret - }).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput) + }).(RegionUrlMapDefaultRouteActionRetryPolicyOutput) } -// Specifies the value of the fixed delay interval. +// Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. +func (o RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput) NumRetries() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionRetryPolicy) *int { + if v == nil { + return nil + } + return v.NumRetries + }).(pulumi.IntPtrOutput) +} + +// Specifies a non-zero timeout per retry attempt. +// If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, +// will use the largest timeout among all backend services associated with the route. // Structure is documented below. -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput) FixedDelay() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay) *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay { +func (o RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput) PerTryTimeout() RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionRetryPolicy) *RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout { if v == nil { return nil } - return &v.FixedDelay - }).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) + return v.PerTryTimeout + }).(RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) } -// The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. -// The value must be between 0.0 and 100.0 inclusive. -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput) Percentage() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay) *float64 { +// Specifies one or more conditions when this retry policy applies. +// Valid values are listed below. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true: cancelled, deadline-exceeded, internal, resource-exhausted, unavailable. +// - 5xx : retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. +// - gateway-error : Similar to 5xx, but only applies to response codes 502, 503 or 504. +// - connect-failure : a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. +// - retriable-4xx : a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. +// - refused-stream : a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. +// - cancelled : a retry is attempted if the gRPC status code in the response header is set to cancelled. +// - deadline-exceeded : a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. +// - internal : a retry is attempted if the gRPC status code in the response header is set to internal. +// - resource-exhausted : a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. +// - unavailable : a retry is attempted if the gRPC status code in the response header is set to unavailable. +func (o RegionUrlMapDefaultRouteActionRetryPolicyPtrOutput) RetryConditions() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionRetryPolicy) []string { if v == nil { return nil } - return &v.Percentage - }).(pulumi.Float64PtrOutput) + return v.RetryConditions + }).(pulumi.StringArrayOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay struct { +type RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout struct { // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are // represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. Nanos *int `pulumi:"nanos"` // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. // Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years - Seconds string `pulumi:"seconds"` + Seconds *string `pulumi:"seconds"` } -// RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs and RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayInput` via: +// RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutInput is an input type that accepts RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs and RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput values. +// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutInput` via: // -// RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs{...} -type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayInput interface { +// RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs{...} +type RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutInput interface { pulumi.Input - ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput - ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput + ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput() RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput + ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput } -type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs struct { +type RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs struct { // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are // represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. Nanos pulumi.IntPtrInput `pulumi:"nanos"` // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. // Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years - Seconds pulumi.StringInput `pulumi:"seconds"` + Seconds pulumi.StringPtrInput `pulumi:"seconds"` } -func (RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() } -func (i RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(context.Background()) +func (i RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs) ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput() RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput { + return i.ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) +func (i RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs) ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Background()) +func (i RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs) ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput() RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return i.ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput).ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx) +func (i RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs) ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput).ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx) } -// RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs, RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtr and RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput` via: +// RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrInput is an input type that accepts RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs, RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtr and RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrInput` via: // -// RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs{...} +// RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs{...} // // or: // // nil -type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput interface { +type RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrInput interface { pulumi.Input - ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput - ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput + ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput() RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput + ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput } -type regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrType RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs +type regionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrType RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs -func RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtr(v *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput { - return (*regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrType)(v) +func RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtr(v *RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs) RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrInput { + return (*regionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrType)(v) } -func (*regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() +func (*regionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() } -func (i *regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Background()) +func (i *regionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrType) ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput() RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return i.ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Background()) } -func (i *regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) +func (i *regionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrType) ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput struct{ *pulumi.OutputState } +type RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() } -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput { +func (o RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput() RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput { +func (o RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return o.ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Background()) +func (o RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput() RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return o.ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Background()) } -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay) *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay { +func (o RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout) *RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout { return &v - }).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) + }).(RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) } // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are // represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) Nanos() pulumi.IntPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay) *int { - return v.Nanos - }).(pulumi.IntPtrOutput) +func (o RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout) *int { return v.Nanos }).(pulumi.IntPtrOutput) } // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. // Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) Seconds() pulumi.StringOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay) string { - return v.Seconds - }).(pulumi.StringOutput) +func (o RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) Seconds() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout) *string { return v.Seconds }).(pulumi.StringPtrOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput struct{ *pulumi.OutputState } +type RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() } -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { +func (o RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput() RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { +func (o RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) ToRegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) Elem() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay { +func (o RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) Elem() RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout) RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout { if v != nil { return *v } - var ret RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay + var ret RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout return ret - }).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) + }).(RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) } // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are // represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) Nanos() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay) *int { +func (o RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout) *int { if v == nil { return nil } @@ -69698,1495 +69326,1593 @@ func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixed // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. // Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years -func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) Seconds() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay) *string { +func (o RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) Seconds() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout) *string { if v == nil { return nil } - return &v.Seconds + return v.Seconds }).(pulumi.StringPtrOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy struct { - // The full or partial URL to the RegionBackendService resource being mirrored to. - // The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map. - // Serverless NEG backends are not currently supported as a mirrored backend service. - BackendService string `pulumi:"backendService"` +type RegionUrlMapDefaultRouteActionTimeout struct { + // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. + Nanos *int `pulumi:"nanos"` + // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years + Seconds *string `pulumi:"seconds"` } -// RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs and RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyInput` via: +// RegionUrlMapDefaultRouteActionTimeoutInput is an input type that accepts RegionUrlMapDefaultRouteActionTimeoutArgs and RegionUrlMapDefaultRouteActionTimeoutOutput values. +// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionTimeoutInput` via: // -// RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs{...} -type RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyInput interface { +// RegionUrlMapDefaultRouteActionTimeoutArgs{...} +type RegionUrlMapDefaultRouteActionTimeoutInput interface { pulumi.Input - ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput() RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput - ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput + ToRegionUrlMapDefaultRouteActionTimeoutOutput() RegionUrlMapDefaultRouteActionTimeoutOutput + ToRegionUrlMapDefaultRouteActionTimeoutOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionTimeoutOutput } -type RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs struct { - // The full or partial URL to the RegionBackendService resource being mirrored to. - // The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map. - // Serverless NEG backends are not currently supported as a mirrored backend service. - BackendService pulumi.StringInput `pulumi:"backendService"` +type RegionUrlMapDefaultRouteActionTimeoutArgs struct { + // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. + Nanos pulumi.IntPtrInput `pulumi:"nanos"` + // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years + Seconds pulumi.StringPtrInput `pulumi:"seconds"` } -func (RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionTimeoutArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapDefaultRouteActionTimeout)(nil)).Elem() } -func (i RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput() RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutputWithContext(context.Background()) +func (i RegionUrlMapDefaultRouteActionTimeoutArgs) ToRegionUrlMapDefaultRouteActionTimeoutOutput() RegionUrlMapDefaultRouteActionTimeoutOutput { + return i.ToRegionUrlMapDefaultRouteActionTimeoutOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput) +func (i RegionUrlMapDefaultRouteActionTimeoutArgs) ToRegionUrlMapDefaultRouteActionTimeoutOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionTimeoutOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionTimeoutOutput) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Background()) +func (i RegionUrlMapDefaultRouteActionTimeoutArgs) ToRegionUrlMapDefaultRouteActionTimeoutPtrOutput() RegionUrlMapDefaultRouteActionTimeoutPtrOutput { + return i.ToRegionUrlMapDefaultRouteActionTimeoutPtrOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput).ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx) +func (i RegionUrlMapDefaultRouteActionTimeoutArgs) ToRegionUrlMapDefaultRouteActionTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionTimeoutPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionTimeoutOutput).ToRegionUrlMapDefaultRouteActionTimeoutPtrOutputWithContext(ctx) } -// RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs, RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtr and RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrInput` via: +// RegionUrlMapDefaultRouteActionTimeoutPtrInput is an input type that accepts RegionUrlMapDefaultRouteActionTimeoutArgs, RegionUrlMapDefaultRouteActionTimeoutPtr and RegionUrlMapDefaultRouteActionTimeoutPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionTimeoutPtrInput` via: // -// RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs{...} +// RegionUrlMapDefaultRouteActionTimeoutArgs{...} // // or: // // nil -type RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrInput interface { +type RegionUrlMapDefaultRouteActionTimeoutPtrInput interface { pulumi.Input - ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput - ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput + ToRegionUrlMapDefaultRouteActionTimeoutPtrOutput() RegionUrlMapDefaultRouteActionTimeoutPtrOutput + ToRegionUrlMapDefaultRouteActionTimeoutPtrOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionTimeoutPtrOutput } -type regionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrType RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs +type regionUrlMapDefaultRouteActionTimeoutPtrType RegionUrlMapDefaultRouteActionTimeoutArgs -func RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtr(v *RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs) RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrInput { - return (*regionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrType)(v) +func RegionUrlMapDefaultRouteActionTimeoutPtr(v *RegionUrlMapDefaultRouteActionTimeoutArgs) RegionUrlMapDefaultRouteActionTimeoutPtrInput { + return (*regionUrlMapDefaultRouteActionTimeoutPtrType)(v) } -func (*regionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy)(nil)).Elem() +func (*regionUrlMapDefaultRouteActionTimeoutPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapDefaultRouteActionTimeout)(nil)).Elem() } -func (i *regionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Background()) +func (i *regionUrlMapDefaultRouteActionTimeoutPtrType) ToRegionUrlMapDefaultRouteActionTimeoutPtrOutput() RegionUrlMapDefaultRouteActionTimeoutPtrOutput { + return i.ToRegionUrlMapDefaultRouteActionTimeoutPtrOutputWithContext(context.Background()) } -func (i *regionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput) +func (i *regionUrlMapDefaultRouteActionTimeoutPtrType) ToRegionUrlMapDefaultRouteActionTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionTimeoutPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionTimeoutPtrOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput struct{ *pulumi.OutputState } +type RegionUrlMapDefaultRouteActionTimeoutOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionTimeoutOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapDefaultRouteActionTimeout)(nil)).Elem() } -func (o RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput() RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput { +func (o RegionUrlMapDefaultRouteActionTimeoutOutput) ToRegionUrlMapDefaultRouteActionTimeoutOutput() RegionUrlMapDefaultRouteActionTimeoutOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput { +func (o RegionUrlMapDefaultRouteActionTimeoutOutput) ToRegionUrlMapDefaultRouteActionTimeoutOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionTimeoutOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput { - return o.ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Background()) +func (o RegionUrlMapDefaultRouteActionTimeoutOutput) ToRegionUrlMapDefaultRouteActionTimeoutPtrOutput() RegionUrlMapDefaultRouteActionTimeoutPtrOutput { + return o.ToRegionUrlMapDefaultRouteActionTimeoutPtrOutputWithContext(context.Background()) } -func (o RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy) *RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy { +func (o RegionUrlMapDefaultRouteActionTimeoutOutput) ToRegionUrlMapDefaultRouteActionTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionTimeoutPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapDefaultRouteActionTimeout) *RegionUrlMapDefaultRouteActionTimeout { return &v - }).(RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput) + }).(RegionUrlMapDefaultRouteActionTimeoutPtrOutput) } -// The full or partial URL to the RegionBackendService resource being mirrored to. -// The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map. -// Serverless NEG backends are not currently supported as a mirrored backend service. -func (o RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput) BackendService() pulumi.StringOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy) string { return v.BackendService }).(pulumi.StringOutput) +// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. +func (o RegionUrlMapDefaultRouteActionTimeoutOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionTimeout) *int { return v.Nanos }).(pulumi.IntPtrOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput struct{ *pulumi.OutputState } +// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years +func (o RegionUrlMapDefaultRouteActionTimeoutOutput) Seconds() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionTimeout) *string { return v.Seconds }).(pulumi.StringPtrOutput) +} -func (RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy)(nil)).Elem() +type RegionUrlMapDefaultRouteActionTimeoutPtrOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapDefaultRouteActionTimeoutPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapDefaultRouteActionTimeout)(nil)).Elem() } -func (o RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput { +func (o RegionUrlMapDefaultRouteActionTimeoutPtrOutput) ToRegionUrlMapDefaultRouteActionTimeoutPtrOutput() RegionUrlMapDefaultRouteActionTimeoutPtrOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput { +func (o RegionUrlMapDefaultRouteActionTimeoutPtrOutput) ToRegionUrlMapDefaultRouteActionTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionTimeoutPtrOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput) Elem() RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy) RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy { +func (o RegionUrlMapDefaultRouteActionTimeoutPtrOutput) Elem() RegionUrlMapDefaultRouteActionTimeoutOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionTimeout) RegionUrlMapDefaultRouteActionTimeout { if v != nil { return *v } - var ret RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy + var ret RegionUrlMapDefaultRouteActionTimeout return ret - }).(RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput) + }).(RegionUrlMapDefaultRouteActionTimeoutOutput) } -// The full or partial URL to the RegionBackendService resource being mirrored to. -// The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map. -// Serverless NEG backends are not currently supported as a mirrored backend service. -func (o RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput) BackendService() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy) *string { +// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. +func (o RegionUrlMapDefaultRouteActionTimeoutPtrOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionTimeout) *int { if v == nil { return nil } - return &v.BackendService + return v.Nanos + }).(pulumi.IntPtrOutput) +} + +// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years +func (o RegionUrlMapDefaultRouteActionTimeoutPtrOutput) Seconds() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionTimeout) *string { + if v == nil { + return nil + } + return v.Seconds }).(pulumi.StringPtrOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy struct { - // Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. - NumRetries *int `pulumi:"numRetries"` - // Specifies a non-zero timeout per retry attempt. - // If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, - // will use the largest timeout among all backend services associated with the route. - // Structure is documented below. - PerTryTimeout *RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout `pulumi:"perTryTimeout"` - // Specifies one or more conditions when this retry policy applies. - // Valid values are listed below. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true: cancelled, deadline-exceeded, internal, resource-exhausted, unavailable. - // - 5xx : retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. - // - gateway-error : Similar to 5xx, but only applies to response codes 502, 503 or 504. - // - connect-failure : a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. - // - retriable-4xx : a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. - // - refused-stream : a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. - // - cancelled : a retry is attempted if the gRPC status code in the response header is set to cancelled. - // - deadline-exceeded : a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. - // - internal : a retry is attempted if the gRPC status code in the response header is set to internal. - // - resource-exhausted : a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. - // - unavailable : a retry is attempted if the gRPC status code in the response header is set to unavailable. - RetryConditions []string `pulumi:"retryConditions"` +type RegionUrlMapDefaultRouteActionUrlRewrite struct { + // Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. + // The value must be from 1 to 255 characters. + HostRewrite *string `pulumi:"hostRewrite"` + // Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. + // The value must be from 1 to 1024 characters. + PathPrefixRewrite *string `pulumi:"pathPrefixRewrite"` } -// RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs and RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyInput` via: +// RegionUrlMapDefaultRouteActionUrlRewriteInput is an input type that accepts RegionUrlMapDefaultRouteActionUrlRewriteArgs and RegionUrlMapDefaultRouteActionUrlRewriteOutput values. +// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionUrlRewriteInput` via: // -// RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs{...} -type RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyInput interface { +// RegionUrlMapDefaultRouteActionUrlRewriteArgs{...} +type RegionUrlMapDefaultRouteActionUrlRewriteInput interface { pulumi.Input - ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput - ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput + ToRegionUrlMapDefaultRouteActionUrlRewriteOutput() RegionUrlMapDefaultRouteActionUrlRewriteOutput + ToRegionUrlMapDefaultRouteActionUrlRewriteOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionUrlRewriteOutput } -type RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs struct { - // Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. - NumRetries pulumi.IntPtrInput `pulumi:"numRetries"` - // Specifies a non-zero timeout per retry attempt. - // If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, - // will use the largest timeout among all backend services associated with the route. - // Structure is documented below. - PerTryTimeout RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrInput `pulumi:"perTryTimeout"` - // Specifies one or more conditions when this retry policy applies. - // Valid values are listed below. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true: cancelled, deadline-exceeded, internal, resource-exhausted, unavailable. - // - 5xx : retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. - // - gateway-error : Similar to 5xx, but only applies to response codes 502, 503 or 504. - // - connect-failure : a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. - // - retriable-4xx : a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. - // - refused-stream : a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. - // - cancelled : a retry is attempted if the gRPC status code in the response header is set to cancelled. - // - deadline-exceeded : a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. - // - internal : a retry is attempted if the gRPC status code in the response header is set to internal. - // - resource-exhausted : a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. - // - unavailable : a retry is attempted if the gRPC status code in the response header is set to unavailable. - RetryConditions pulumi.StringArrayInput `pulumi:"retryConditions"` +type RegionUrlMapDefaultRouteActionUrlRewriteArgs struct { + // Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. + // The value must be from 1 to 255 characters. + HostRewrite pulumi.StringPtrInput `pulumi:"hostRewrite"` + // Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. + // The value must be from 1 to 1024 characters. + PathPrefixRewrite pulumi.StringPtrInput `pulumi:"pathPrefixRewrite"` } -func (RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionUrlRewriteArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapDefaultRouteActionUrlRewrite)(nil)).Elem() } -func (i RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutputWithContext(context.Background()) +func (i RegionUrlMapDefaultRouteActionUrlRewriteArgs) ToRegionUrlMapDefaultRouteActionUrlRewriteOutput() RegionUrlMapDefaultRouteActionUrlRewriteOutput { + return i.ToRegionUrlMapDefaultRouteActionUrlRewriteOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput) +func (i RegionUrlMapDefaultRouteActionUrlRewriteArgs) ToRegionUrlMapDefaultRouteActionUrlRewriteOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionUrlRewriteOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionUrlRewriteOutput) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutputWithContext(context.Background()) +func (i RegionUrlMapDefaultRouteActionUrlRewriteArgs) ToRegionUrlMapDefaultRouteActionUrlRewritePtrOutput() RegionUrlMapDefaultRouteActionUrlRewritePtrOutput { + return i.ToRegionUrlMapDefaultRouteActionUrlRewritePtrOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput).ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutputWithContext(ctx) +func (i RegionUrlMapDefaultRouteActionUrlRewriteArgs) ToRegionUrlMapDefaultRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionUrlRewritePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionUrlRewriteOutput).ToRegionUrlMapDefaultRouteActionUrlRewritePtrOutputWithContext(ctx) } -// RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs, RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtr and RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrInput` via: +// RegionUrlMapDefaultRouteActionUrlRewritePtrInput is an input type that accepts RegionUrlMapDefaultRouteActionUrlRewriteArgs, RegionUrlMapDefaultRouteActionUrlRewritePtr and RegionUrlMapDefaultRouteActionUrlRewritePtrOutput values. +// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionUrlRewritePtrInput` via: // -// RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs{...} +// RegionUrlMapDefaultRouteActionUrlRewriteArgs{...} // // or: // // nil -type RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrInput interface { +type RegionUrlMapDefaultRouteActionUrlRewritePtrInput interface { pulumi.Input - ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput - ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput + ToRegionUrlMapDefaultRouteActionUrlRewritePtrOutput() RegionUrlMapDefaultRouteActionUrlRewritePtrOutput + ToRegionUrlMapDefaultRouteActionUrlRewritePtrOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionUrlRewritePtrOutput } -type regionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrType RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs +type regionUrlMapDefaultRouteActionUrlRewritePtrType RegionUrlMapDefaultRouteActionUrlRewriteArgs -func RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtr(v *RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrInput { - return (*regionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrType)(v) +func RegionUrlMapDefaultRouteActionUrlRewritePtr(v *RegionUrlMapDefaultRouteActionUrlRewriteArgs) RegionUrlMapDefaultRouteActionUrlRewritePtrInput { + return (*regionUrlMapDefaultRouteActionUrlRewritePtrType)(v) } -func (*regionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy)(nil)).Elem() +func (*regionUrlMapDefaultRouteActionUrlRewritePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapDefaultRouteActionUrlRewrite)(nil)).Elem() } -func (i *regionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutputWithContext(context.Background()) +func (i *regionUrlMapDefaultRouteActionUrlRewritePtrType) ToRegionUrlMapDefaultRouteActionUrlRewritePtrOutput() RegionUrlMapDefaultRouteActionUrlRewritePtrOutput { + return i.ToRegionUrlMapDefaultRouteActionUrlRewritePtrOutputWithContext(context.Background()) } -func (i *regionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput) +func (i *regionUrlMapDefaultRouteActionUrlRewritePtrType) ToRegionUrlMapDefaultRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionUrlRewritePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionUrlRewritePtrOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput struct{ *pulumi.OutputState } +type RegionUrlMapDefaultRouteActionUrlRewriteOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionUrlRewriteOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapDefaultRouteActionUrlRewrite)(nil)).Elem() } -func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput { +func (o RegionUrlMapDefaultRouteActionUrlRewriteOutput) ToRegionUrlMapDefaultRouteActionUrlRewriteOutput() RegionUrlMapDefaultRouteActionUrlRewriteOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput { +func (o RegionUrlMapDefaultRouteActionUrlRewriteOutput) ToRegionUrlMapDefaultRouteActionUrlRewriteOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionUrlRewriteOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput { - return o.ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutputWithContext(context.Background()) +func (o RegionUrlMapDefaultRouteActionUrlRewriteOutput) ToRegionUrlMapDefaultRouteActionUrlRewritePtrOutput() RegionUrlMapDefaultRouteActionUrlRewritePtrOutput { + return o.ToRegionUrlMapDefaultRouteActionUrlRewritePtrOutputWithContext(context.Background()) } -func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy) *RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy { +func (o RegionUrlMapDefaultRouteActionUrlRewriteOutput) ToRegionUrlMapDefaultRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionUrlRewritePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapDefaultRouteActionUrlRewrite) *RegionUrlMapDefaultRouteActionUrlRewrite { return &v - }).(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput) -} - -// Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. -func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput) NumRetries() pulumi.IntPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy) *int { return v.NumRetries }).(pulumi.IntPtrOutput) + }).(RegionUrlMapDefaultRouteActionUrlRewritePtrOutput) } -// Specifies a non-zero timeout per retry attempt. -// If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, -// will use the largest timeout among all backend services associated with the route. -// Structure is documented below. -func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput) PerTryTimeout() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy) *RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout { - return v.PerTryTimeout - }).(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) +// Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. +// The value must be from 1 to 255 characters. +func (o RegionUrlMapDefaultRouteActionUrlRewriteOutput) HostRewrite() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionUrlRewrite) *string { return v.HostRewrite }).(pulumi.StringPtrOutput) } -// Specifies one or more conditions when this retry policy applies. -// Valid values are listed below. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true: cancelled, deadline-exceeded, internal, resource-exhausted, unavailable. -// - 5xx : retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. -// - gateway-error : Similar to 5xx, but only applies to response codes 502, 503 or 504. -// - connect-failure : a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. -// - retriable-4xx : a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. -// - refused-stream : a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. -// - cancelled : a retry is attempted if the gRPC status code in the response header is set to cancelled. -// - deadline-exceeded : a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. -// - internal : a retry is attempted if the gRPC status code in the response header is set to internal. -// - resource-exhausted : a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. -// - unavailable : a retry is attempted if the gRPC status code in the response header is set to unavailable. -func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput) RetryConditions() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy) []string { return v.RetryConditions }).(pulumi.StringArrayOutput) +// Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. +// The value must be from 1 to 1024 characters. +func (o RegionUrlMapDefaultRouteActionUrlRewriteOutput) PathPrefixRewrite() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionUrlRewrite) *string { return v.PathPrefixRewrite }).(pulumi.StringPtrOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput struct{ *pulumi.OutputState } +type RegionUrlMapDefaultRouteActionUrlRewritePtrOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionUrlRewritePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapDefaultRouteActionUrlRewrite)(nil)).Elem() } -func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput { +func (o RegionUrlMapDefaultRouteActionUrlRewritePtrOutput) ToRegionUrlMapDefaultRouteActionUrlRewritePtrOutput() RegionUrlMapDefaultRouteActionUrlRewritePtrOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput { +func (o RegionUrlMapDefaultRouteActionUrlRewritePtrOutput) ToRegionUrlMapDefaultRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionUrlRewritePtrOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput) Elem() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy { +func (o RegionUrlMapDefaultRouteActionUrlRewritePtrOutput) Elem() RegionUrlMapDefaultRouteActionUrlRewriteOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionUrlRewrite) RegionUrlMapDefaultRouteActionUrlRewrite { if v != nil { return *v } - var ret RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy + var ret RegionUrlMapDefaultRouteActionUrlRewrite return ret - }).(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput) -} - -// Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. -func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput) NumRetries() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy) *int { - if v == nil { - return nil - } - return v.NumRetries - }).(pulumi.IntPtrOutput) + }).(RegionUrlMapDefaultRouteActionUrlRewriteOutput) } -// Specifies a non-zero timeout per retry attempt. -// If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, -// will use the largest timeout among all backend services associated with the route. -// Structure is documented below. -func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput) PerTryTimeout() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy) *RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout { +// Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. +// The value must be from 1 to 255 characters. +func (o RegionUrlMapDefaultRouteActionUrlRewritePtrOutput) HostRewrite() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionUrlRewrite) *string { if v == nil { return nil } - return v.PerTryTimeout - }).(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) + return v.HostRewrite + }).(pulumi.StringPtrOutput) } -// Specifies one or more conditions when this retry policy applies. -// Valid values are listed below. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true: cancelled, deadline-exceeded, internal, resource-exhausted, unavailable. -// - 5xx : retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. -// - gateway-error : Similar to 5xx, but only applies to response codes 502, 503 or 504. -// - connect-failure : a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. -// - retriable-4xx : a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. -// - refused-stream : a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. -// - cancelled : a retry is attempted if the gRPC status code in the response header is set to cancelled. -// - deadline-exceeded : a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. -// - internal : a retry is attempted if the gRPC status code in the response header is set to internal. -// - resource-exhausted : a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. -// - unavailable : a retry is attempted if the gRPC status code in the response header is set to unavailable. -func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput) RetryConditions() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy) []string { +// Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. +// The value must be from 1 to 1024 characters. +func (o RegionUrlMapDefaultRouteActionUrlRewritePtrOutput) PathPrefixRewrite() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionUrlRewrite) *string { if v == nil { return nil } - return v.RetryConditions - }).(pulumi.StringArrayOutput) + return v.PathPrefixRewrite + }).(pulumi.StringPtrOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout struct { - // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are - // represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. - Nanos *int `pulumi:"nanos"` - // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. - // Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years - Seconds string `pulumi:"seconds"` +type RegionUrlMapDefaultRouteActionWeightedBackendService struct { + // The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the load balancer applies any relevant headerActions specified as part of this backendServiceWeight. + BackendService *string `pulumi:"backendService"` + // Specifies changes to request and response headers that need to take effect for the selected backendService. + // headerAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap. + // headerAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. + // Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. + // Structure is documented below. + HeaderAction *RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction `pulumi:"headerAction"` + // Specifies the fraction of traffic sent to a backend service, computed as weight / (sum of all weightedBackendService weights in routeAction) . + // The selection of a backend service is determined only for new traffic. Once a user's request has been directed to a backend service, subsequent requests are sent to the same backend service as determined by the backend service's session affinity policy. + // The value must be from 0 to 1000. + Weight *int `pulumi:"weight"` } -// RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs and RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutInput` via: +// RegionUrlMapDefaultRouteActionWeightedBackendServiceInput is an input type that accepts RegionUrlMapDefaultRouteActionWeightedBackendServiceArgs and RegionUrlMapDefaultRouteActionWeightedBackendServiceOutput values. +// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionWeightedBackendServiceInput` via: // -// RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs{...} -type RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutInput interface { +// RegionUrlMapDefaultRouteActionWeightedBackendServiceArgs{...} +type RegionUrlMapDefaultRouteActionWeightedBackendServiceInput interface { pulumi.Input - ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput - ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput -} - -type RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs struct { - // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are - // represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. - Nanos pulumi.IntPtrInput `pulumi:"nanos"` - // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. - // Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years - Seconds pulumi.StringInput `pulumi:"seconds"` -} - -func (RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() + ToRegionUrlMapDefaultRouteActionWeightedBackendServiceOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceOutput + ToRegionUrlMapDefaultRouteActionWeightedBackendServiceOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceOutput } -func (i RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutputWithContext(context.Background()) +type RegionUrlMapDefaultRouteActionWeightedBackendServiceArgs struct { + // The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the load balancer applies any relevant headerActions specified as part of this backendServiceWeight. + BackendService pulumi.StringPtrInput `pulumi:"backendService"` + // Specifies changes to request and response headers that need to take effect for the selected backendService. + // headerAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap. + // headerAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. + // Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. + // Structure is documented below. + HeaderAction RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrInput `pulumi:"headerAction"` + // Specifies the fraction of traffic sent to a backend service, computed as weight / (sum of all weightedBackendService weights in routeAction) . + // The selection of a backend service is determined only for new traffic. Once a user's request has been directed to a backend service, subsequent requests are sent to the same backend service as determined by the backend service's session affinity policy. + // The value must be from 0 to 1000. + Weight pulumi.IntPtrInput `pulumi:"weight"` } -func (i RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput) +func (RegionUrlMapDefaultRouteActionWeightedBackendServiceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapDefaultRouteActionWeightedBackendService)(nil)).Elem() } -func (i RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Background()) +func (i RegionUrlMapDefaultRouteActionWeightedBackendServiceArgs) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceOutput { + return i.ToRegionUrlMapDefaultRouteActionWeightedBackendServiceOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput).ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx) +func (i RegionUrlMapDefaultRouteActionWeightedBackendServiceArgs) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionWeightedBackendServiceOutput) } -// RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs, RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtr and RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrInput` via: -// -// RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs{...} -// -// or: +// RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayInput is an input type that accepts RegionUrlMapDefaultRouteActionWeightedBackendServiceArray and RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput values. +// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayInput` via: // -// nil -type RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrInput interface { +// RegionUrlMapDefaultRouteActionWeightedBackendServiceArray{ RegionUrlMapDefaultRouteActionWeightedBackendServiceArgs{...} } +type RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayInput interface { pulumi.Input - ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput - ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput + ToRegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput + ToRegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput } -type regionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrType RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs - -func RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtr(v *RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrInput { - return (*regionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrType)(v) -} +type RegionUrlMapDefaultRouteActionWeightedBackendServiceArray []RegionUrlMapDefaultRouteActionWeightedBackendServiceInput -func (*regionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionWeightedBackendServiceArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapDefaultRouteActionWeightedBackendService)(nil)).Elem() } -func (i *regionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Background()) +func (i RegionUrlMapDefaultRouteActionWeightedBackendServiceArray) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput { + return i.ToRegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutputWithContext(context.Background()) } -func (i *regionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) +func (i RegionUrlMapDefaultRouteActionWeightedBackendServiceArray) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput struct{ *pulumi.OutputState } +type RegionUrlMapDefaultRouteActionWeightedBackendServiceOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionWeightedBackendServiceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapDefaultRouteActionWeightedBackendService)(nil)).Elem() } -func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput { +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput { +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return o.ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Background()) -} - -func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout) *RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout { - return &v - }).(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) +// The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the load balancer applies any relevant headerActions specified as part of this backendServiceWeight. +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceOutput) BackendService() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionWeightedBackendService) *string { return v.BackendService }).(pulumi.StringPtrOutput) } -// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are -// represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. -func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput) Nanos() pulumi.IntPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout) *int { return v.Nanos }).(pulumi.IntPtrOutput) +// Specifies changes to request and response headers that need to take effect for the selected backendService. +// headerAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap. +// headerAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. +// Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. +// Structure is documented below. +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceOutput) HeaderAction() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionWeightedBackendService) *RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction { + return v.HeaderAction + }).(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) } -// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. -// Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years -func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput) Seconds() pulumi.StringOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout) string { return v.Seconds }).(pulumi.StringOutput) +// Specifies the fraction of traffic sent to a backend service, computed as weight / (sum of all weightedBackendService weights in routeAction) . +// The selection of a backend service is determined only for new traffic. Once a user's request has been directed to a backend service, subsequent requests are sent to the same backend service as determined by the backend service's session affinity policy. +// The value must be from 0 to 1000. +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceOutput) Weight() pulumi.IntPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionWeightedBackendService) *int { return v.Weight }).(pulumi.IntPtrOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput struct{ *pulumi.OutputState } +type RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapDefaultRouteActionWeightedBackendService)(nil)).Elem() } -func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) Elem() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout { - if v != nil { - return *v - } - var ret RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout - return ret - }).(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput) -} - -// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are -// represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. -func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) Nanos() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout) *int { - if v == nil { - return nil - } - return v.Nanos - }).(pulumi.IntPtrOutput) -} - -// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. -// Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years -func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) Seconds() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout) *string { - if v == nil { - return nil - } - return &v.Seconds - }).(pulumi.StringPtrOutput) +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceArrayOutput) Index(i pulumi.IntInput) RegionUrlMapDefaultRouteActionWeightedBackendServiceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapDefaultRouteActionWeightedBackendService { + return vs[0].([]RegionUrlMapDefaultRouteActionWeightedBackendService)[vs[1].(int)] + }).(RegionUrlMapDefaultRouteActionWeightedBackendServiceOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionTimeout struct { - // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. - Nanos *int `pulumi:"nanos"` - // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years - Seconds string `pulumi:"seconds"` +type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction struct { + // Headers to add to a matching request before forwarding the request to the backendService. + // Structure is documented below. + RequestHeadersToAdds []RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd `pulumi:"requestHeadersToAdds"` + // A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. + RequestHeadersToRemoves []string `pulumi:"requestHeadersToRemoves"` + // Headers to add the response before sending the response back to the client. + // Structure is documented below. + ResponseHeadersToAdds []RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd `pulumi:"responseHeadersToAdds"` + // A list of header names for headers that need to be removed from the response before sending the response back to the client. + ResponseHeadersToRemoves []string `pulumi:"responseHeadersToRemoves"` } -// RegionUrlMapPathMatcherPathRuleRouteActionTimeoutInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs and RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionTimeoutInput` via: +// RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionInput is an input type that accepts RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs and RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput values. +// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionInput` via: // -// RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs{...} -type RegionUrlMapPathMatcherPathRuleRouteActionTimeoutInput interface { +// RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs{...} +type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionInput interface { pulumi.Input - ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput() RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput - ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput + ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput + ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput } -type RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs struct { - // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. - Nanos pulumi.IntPtrInput `pulumi:"nanos"` - // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years - Seconds pulumi.StringInput `pulumi:"seconds"` +type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs struct { + // Headers to add to a matching request before forwarding the request to the backendService. + // Structure is documented below. + RequestHeadersToAdds RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput `pulumi:"requestHeadersToAdds"` + // A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. + RequestHeadersToRemoves pulumi.StringArrayInput `pulumi:"requestHeadersToRemoves"` + // Headers to add the response before sending the response back to the client. + // Structure is documented below. + ResponseHeadersToAdds RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput `pulumi:"responseHeadersToAdds"` + // A list of header names for headers that need to be removed from the response before sending the response back to the client. + ResponseHeadersToRemoves pulumi.StringArrayInput `pulumi:"responseHeadersToRemoves"` } -func (RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionTimeout)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() } -func (i RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput() RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutputWithContext(context.Background()) +func (i RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput { + return i.ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput) +func (i RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutputWithContext(context.Background()) +func (i RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return i.ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput).ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutputWithContext(ctx) +func (i RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput).ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx) } -// RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs, RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtr and RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrInput` via: +// RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrInput is an input type that accepts RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs, RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtr and RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrInput` via: // -// RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs{...} +// RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs{...} // // or: // // nil -type RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrInput interface { +type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrInput interface { pulumi.Input - ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput - ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput + ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput + ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput } -type regionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrType RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs +type regionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrType RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs -func RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtr(v *RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs) RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrInput { - return (*regionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrType)(v) +func RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtr(v *RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrInput { + return (*regionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrType)(v) } -func (*regionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionTimeout)(nil)).Elem() +func (*regionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() } -func (i *regionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutputWithContext(context.Background()) +func (i *regionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrType) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return i.ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Background()) } -func (i *regionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput) +func (i *regionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrType) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput struct{ *pulumi.OutputState } +type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionTimeout)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() } -func (o RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput() RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput { +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput { +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput { - return o.ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutputWithContext(context.Background()) +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return o.ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Background()) } -func (o RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherPathRuleRouteActionTimeout) *RegionUrlMapPathMatcherPathRuleRouteActionTimeout { +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction) *RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction { return &v - }).(RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput) + }).(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) } -// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. -func (o RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput) Nanos() pulumi.IntPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionTimeout) *int { return v.Nanos }).(pulumi.IntPtrOutput) +// Headers to add to a matching request before forwarding the request to the backendService. +// Structure is documented below. +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) RequestHeadersToAdds() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction) []RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd { + return v.RequestHeadersToAdds + }).(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) } -// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years -func (o RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput) Seconds() pulumi.StringOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionTimeout) string { return v.Seconds }).(pulumi.StringOutput) +// A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) RequestHeadersToRemoves() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction) []string { + return v.RequestHeadersToRemoves + }).(pulumi.StringArrayOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput struct{ *pulumi.OutputState } +// Headers to add the response before sending the response back to the client. +// Structure is documented below. +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ResponseHeadersToAdds() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction) []RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd { + return v.ResponseHeadersToAdds + }).(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) +} -func (RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionTimeout)(nil)).Elem() +// A list of header names for headers that need to be removed from the response before sending the response back to the client. +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ResponseHeadersToRemoves() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction) []string { + return v.ResponseHeadersToRemoves + }).(pulumi.StringArrayOutput) } -func (o RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput { +type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() +} + +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput { +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput) Elem() RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionTimeout) RegionUrlMapPathMatcherPathRuleRouteActionTimeout { +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) Elem() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction { if v != nil { return *v } - var ret RegionUrlMapPathMatcherPathRuleRouteActionTimeout + var ret RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction return ret - }).(RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput) + }).(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) } -// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. -func (o RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput) Nanos() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionTimeout) *int { +// Headers to add to a matching request before forwarding the request to the backendService. +// Structure is documented below. +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) RequestHeadersToAdds() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction) []RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd { if v == nil { return nil } - return v.Nanos - }).(pulumi.IntPtrOutput) + return v.RequestHeadersToAdds + }).(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) } -// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years -func (o RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput) Seconds() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionTimeout) *string { +// A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) RequestHeadersToRemoves() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction) []string { if v == nil { return nil } - return &v.Seconds - }).(pulumi.StringPtrOutput) + return v.RequestHeadersToRemoves + }).(pulumi.StringArrayOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite struct { - // Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. - // The value must be from 1 to 255 characters. - HostRewrite *string `pulumi:"hostRewrite"` - // Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. - // The value must be from 1 to 1024 characters. - PathPrefixRewrite *string `pulumi:"pathPrefixRewrite"` +// Headers to add the response before sending the response back to the client. +// Structure is documented below. +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) ResponseHeadersToAdds() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction) []RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd { + if v == nil { + return nil + } + return v.ResponseHeadersToAdds + }).(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) } -// RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs and RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteInput` via: -// -// RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs{...} -type RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteInput interface { - pulumi.Input - - ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput() RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput - ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput +// A list of header names for headers that need to be removed from the response before sending the response back to the client. +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) ResponseHeadersToRemoves() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction) []string { + if v == nil { + return nil + } + return v.ResponseHeadersToRemoves + }).(pulumi.StringArrayOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs struct { - // Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. - // The value must be from 1 to 255 characters. - HostRewrite pulumi.StringPtrInput `pulumi:"hostRewrite"` - // Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. - // The value must be from 1 to 1024 characters. - PathPrefixRewrite pulumi.StringPtrInput `pulumi:"pathPrefixRewrite"` +type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd struct { + // The name of the header. + HeaderName *string `pulumi:"headerName"` + // The value of the header to add. + HeaderValue *string `pulumi:"headerValue"` + // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. + // The default value is false. + Replace *bool `pulumi:"replace"` } -func (RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite)(nil)).Elem() +// RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput is an input type that accepts RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs and RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput values. +// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput` via: +// +// RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs{...} +type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput interface { + pulumi.Input + + ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput + ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput } -func (i RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput() RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutputWithContext(context.Background()) +type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs struct { + // The name of the header. + HeaderName pulumi.StringPtrInput `pulumi:"headerName"` + // The value of the header to add. + HeaderValue pulumi.StringPtrInput `pulumi:"headerValue"` + // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. + // The default value is false. + Replace pulumi.BoolPtrInput `pulumi:"replace"` } -func (i RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput) +func (RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() } -func (i RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutputWithContext(context.Background()) +func (i RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { + return i.ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput).ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutputWithContext(ctx) +func (i RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) } -// RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs, RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtr and RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrInput` via: -// -// RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs{...} -// -// or: +// RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput is an input type that accepts RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray and RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput values. +// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput` via: // -// nil -type RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrInput interface { +// RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray{ RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs{...} } +type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput interface { pulumi.Input - ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput - ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput + ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput + ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput } -type regionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrType RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs - -func RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtr(v *RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs) RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrInput { - return (*regionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrType)(v) -} +type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray []RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput -func (*regionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() } -func (i *regionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutputWithContext(context.Background()) +func (i RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { + return i.ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Background()) } -func (i *regionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput) +func (i RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput struct{ *pulumi.OutputState } +type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() } -func (o RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput() RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput { +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput { +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput { - return o.ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutputWithContext(context.Background()) -} - -func (o RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite) *RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite { - return &v - }).(RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput) +// The name of the header. +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) HeaderName() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd) *string { + return v.HeaderName + }).(pulumi.StringPtrOutput) } -// Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. -// The value must be from 1 to 255 characters. -func (o RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput) HostRewrite() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite) *string { return v.HostRewrite }).(pulumi.StringPtrOutput) +// The value of the header to add. +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) HeaderValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd) *string { + return v.HeaderValue + }).(pulumi.StringPtrOutput) } -// Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. -// The value must be from 1 to 1024 characters. -func (o RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput) PathPrefixRewrite() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite) *string { return v.PathPrefixRewrite }).(pulumi.StringPtrOutput) +// If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. +// The default value is false. +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) Replace() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd) *bool { + return v.Replace + }).(pulumi.BoolPtrOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput struct{ *pulumi.OutputState } +type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() } -func (o RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput { +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput { +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput) Elem() RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite) RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite { - if v != nil { - return *v - } - var ret RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite - return ret - }).(RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput) -} - -// Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. -// The value must be from 1 to 255 characters. -func (o RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput) HostRewrite() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite) *string { - if v == nil { - return nil - } - return v.HostRewrite - }).(pulumi.StringPtrOutput) -} - -// Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. -// The value must be from 1 to 1024 characters. -func (o RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput) PathPrefixRewrite() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite) *string { - if v == nil { - return nil - } - return v.PathPrefixRewrite - }).(pulumi.StringPtrOutput) +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) Index(i pulumi.IntInput) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd { + return vs[0].([]RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)[vs[1].(int)] + }).(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendService struct { - // The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the load balancer applies any relevant headerActions specified as part of this backendServiceWeight. - BackendService string `pulumi:"backendService"` - // Specifies changes to request and response headers that need to take effect for the selected backendService. - // headerAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap. - // headerAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. - // Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. - // Structure is documented below. - HeaderAction *RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction `pulumi:"headerAction"` - // Specifies the fraction of traffic sent to a backend service, computed as weight / (sum of all weightedBackendService weights in routeAction) . - // The selection of a backend service is determined only for new traffic. Once a user's request has been directed to a backend service, subsequent requests are sent to the same backend service as determined by the backend service's session affinity policy. - // The value must be from 0 to 1000. - Weight int `pulumi:"weight"` +type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd struct { + // The name of the header. + HeaderName *string `pulumi:"headerName"` + // The value of the header to add. + HeaderValue *string `pulumi:"headerValue"` + // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. + // The default value is false. + Replace *bool `pulumi:"replace"` } -// RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArgs and RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceInput` via: +// RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput is an input type that accepts RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs and RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput values. +// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput` via: // -// RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArgs{...} -type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceInput interface { +// RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs{...} +type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput interface { pulumi.Input - ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput - ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput + ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput + ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput } -type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArgs struct { - // The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the load balancer applies any relevant headerActions specified as part of this backendServiceWeight. - BackendService pulumi.StringInput `pulumi:"backendService"` - // Specifies changes to request and response headers that need to take effect for the selected backendService. - // headerAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap. - // headerAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. - // Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. - // Structure is documented below. - HeaderAction RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrInput `pulumi:"headerAction"` - // Specifies the fraction of traffic sent to a backend service, computed as weight / (sum of all weightedBackendService weights in routeAction) . - // The selection of a backend service is determined only for new traffic. Once a user's request has been directed to a backend service, subsequent requests are sent to the same backend service as determined by the backend service's session affinity policy. - // The value must be from 0 to 1000. - Weight pulumi.IntInput `pulumi:"weight"` +type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs struct { + // The name of the header. + HeaderName pulumi.StringPtrInput `pulumi:"headerName"` + // The value of the header to add. + HeaderValue pulumi.StringPtrInput `pulumi:"headerValue"` + // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. + // The default value is false. + Replace pulumi.BoolPtrInput `pulumi:"replace"` } -func (RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendService)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() } -func (i RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutputWithContext(context.Background()) +func (i RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { + return i.ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput) +func (i RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) } -// RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArray and RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayInput` via: +// RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput is an input type that accepts RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray and RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput values. +// You can construct a concrete instance of `RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput` via: // -// RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArray{ RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArgs{...} } -type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayInput interface { +// RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray{ RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs{...} } +type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput interface { pulumi.Input - ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput - ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput + ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput + ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput } -type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArray []RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceInput +type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray []RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput -func (RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendService)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() } -func (i RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArray) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutputWithContext(context.Background()) +func (i RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { + return i.ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArray) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput) +func (i RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput struct{ *pulumi.OutputState } +type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendService)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() } -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput { +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput { +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { return o } -// The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the load balancer applies any relevant headerActions specified as part of this backendServiceWeight. -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput) BackendService() pulumi.StringOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendService) string { - return v.BackendService - }).(pulumi.StringOutput) +// The name of the header. +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) HeaderName() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd) *string { + return v.HeaderName + }).(pulumi.StringPtrOutput) } -// Specifies changes to request and response headers that need to take effect for the selected backendService. -// headerAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap. -// headerAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. -// Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. -// Structure is documented below. -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput) HeaderAction() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendService) *RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction { - return v.HeaderAction - }).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) +// The value of the header to add. +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) HeaderValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd) *string { + return v.HeaderValue + }).(pulumi.StringPtrOutput) } -// Specifies the fraction of traffic sent to a backend service, computed as weight / (sum of all weightedBackendService weights in routeAction) . -// The selection of a backend service is determined only for new traffic. Once a user's request has been directed to a backend service, subsequent requests are sent to the same backend service as determined by the backend service's session affinity policy. -// The value must be from 0 to 1000. -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput) Weight() pulumi.IntOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendService) int { return v.Weight }).(pulumi.IntOutput) +// If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. +// The default value is false. +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) Replace() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd) *bool { + return v.Replace + }).(pulumi.BoolPtrOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput struct{ *pulumi.OutputState } +type RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendService)(nil)).Elem() +func (RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() } -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput { +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput() RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput { +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) ToRegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(ctx context.Context) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput) Index(i pulumi.IntInput) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendService { - return vs[0].([]RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendService)[vs[1].(int)] - }).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput) +func (o RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) Index(i pulumi.IntInput) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd { + return vs[0].([]RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)[vs[1].(int)] + }).(RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction struct { - // Headers to add to a matching request before forwarding the request to the backendService. - // Structure is documented below. - RequestHeadersToAdds []RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd `pulumi:"requestHeadersToAdds"` - // A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. - RequestHeadersToRemoves []string `pulumi:"requestHeadersToRemoves"` - // Headers to add the response before sending the response back to the client. - // Structure is documented below. - ResponseHeadersToAdds []RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd `pulumi:"responseHeadersToAdds"` - // A list of header names for headers that need to be removed from the response before sending the response back to the client. - ResponseHeadersToRemoves []string `pulumi:"responseHeadersToRemoves"` +type RegionUrlMapDefaultUrlRedirect struct { + // The host that will be used in the redirect response instead of the one that was + // supplied in the request. The value must be between 1 and 255 characters. + HostRedirect *string `pulumi:"hostRedirect"` + // If set to true, the URL scheme in the redirected request is set to https. If set to + // false, the URL scheme of the redirected request will remain the same as that of the + // request. This must only be set for UrlMaps used in TargetHttpProxys. Setting this + // true for TargetHttpsProxy is not permitted. The default is set to false. + HttpsRedirect *bool `pulumi:"httpsRedirect"` + // The path that will be used in the redirect response instead of the one that was + // supplied in the request. pathRedirect cannot be supplied together with + // prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the + // original request will be used for the redirect. The value must be between 1 and 1024 + // characters. + PathRedirect *string `pulumi:"pathRedirect"` + // The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, + // retaining the remaining portion of the URL before redirecting the request. + // prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or + // neither. If neither is supplied, the path of the original request will be used for + // the redirect. The value must be between 1 and 1024 characters. + PrefixRedirect *string `pulumi:"prefixRedirect"` + // The HTTP Status code to use for this RedirectAction. Supported values are: + // * MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. + // * FOUND, which corresponds to 302. + // * SEE_OTHER which corresponds to 303. + // * TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method + // will be retained. + // * PERMANENT_REDIRECT, which corresponds to 308. In this case, + // the request method will be retained. + RedirectResponseCode *string `pulumi:"redirectResponseCode"` + // If set to true, any accompanying query portion of the original URL is removed prior + // to redirecting the request. If set to false, the query portion of the original URL is + // retained. + // This field is required to ensure an empty block is not set. The normal default value is false. + StripQuery bool `pulumi:"stripQuery"` } -// RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs and RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionInput` via: +// RegionUrlMapDefaultUrlRedirectInput is an input type that accepts RegionUrlMapDefaultUrlRedirectArgs and RegionUrlMapDefaultUrlRedirectOutput values. +// You can construct a concrete instance of `RegionUrlMapDefaultUrlRedirectInput` via: // -// RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs{...} -type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionInput interface { +// RegionUrlMapDefaultUrlRedirectArgs{...} +type RegionUrlMapDefaultUrlRedirectInput interface { pulumi.Input - ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput - ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput -} - -type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs struct { - // Headers to add to a matching request before forwarding the request to the backendService. - // Structure is documented below. - RequestHeadersToAdds RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput `pulumi:"requestHeadersToAdds"` - // A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. - RequestHeadersToRemoves pulumi.StringArrayInput `pulumi:"requestHeadersToRemoves"` - // Headers to add the response before sending the response back to the client. - // Structure is documented below. - ResponseHeadersToAdds RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput `pulumi:"responseHeadersToAdds"` - // A list of header names for headers that need to be removed from the response before sending the response back to the client. - ResponseHeadersToRemoves pulumi.StringArrayInput `pulumi:"responseHeadersToRemoves"` + ToRegionUrlMapDefaultUrlRedirectOutput() RegionUrlMapDefaultUrlRedirectOutput + ToRegionUrlMapDefaultUrlRedirectOutputWithContext(context.Context) RegionUrlMapDefaultUrlRedirectOutput } -func (RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() +type RegionUrlMapDefaultUrlRedirectArgs struct { + // The host that will be used in the redirect response instead of the one that was + // supplied in the request. The value must be between 1 and 255 characters. + HostRedirect pulumi.StringPtrInput `pulumi:"hostRedirect"` + // If set to true, the URL scheme in the redirected request is set to https. If set to + // false, the URL scheme of the redirected request will remain the same as that of the + // request. This must only be set for UrlMaps used in TargetHttpProxys. Setting this + // true for TargetHttpsProxy is not permitted. The default is set to false. + HttpsRedirect pulumi.BoolPtrInput `pulumi:"httpsRedirect"` + // The path that will be used in the redirect response instead of the one that was + // supplied in the request. pathRedirect cannot be supplied together with + // prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the + // original request will be used for the redirect. The value must be between 1 and 1024 + // characters. + PathRedirect pulumi.StringPtrInput `pulumi:"pathRedirect"` + // The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, + // retaining the remaining portion of the URL before redirecting the request. + // prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or + // neither. If neither is supplied, the path of the original request will be used for + // the redirect. The value must be between 1 and 1024 characters. + PrefixRedirect pulumi.StringPtrInput `pulumi:"prefixRedirect"` + // The HTTP Status code to use for this RedirectAction. Supported values are: + // * MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. + // * FOUND, which corresponds to 302. + // * SEE_OTHER which corresponds to 303. + // * TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method + // will be retained. + // * PERMANENT_REDIRECT, which corresponds to 308. In this case, + // the request method will be retained. + RedirectResponseCode pulumi.StringPtrInput `pulumi:"redirectResponseCode"` + // If set to true, any accompanying query portion of the original URL is removed prior + // to redirecting the request. If set to false, the query portion of the original URL is + // retained. + // This field is required to ensure an empty block is not set. The normal default value is false. + StripQuery pulumi.BoolInput `pulumi:"stripQuery"` } -func (i RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutputWithContext(context.Background()) +func (RegionUrlMapDefaultUrlRedirectArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapDefaultUrlRedirect)(nil)).Elem() } -func (i RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput) +func (i RegionUrlMapDefaultUrlRedirectArgs) ToRegionUrlMapDefaultUrlRedirectOutput() RegionUrlMapDefaultUrlRedirectOutput { + return i.ToRegionUrlMapDefaultUrlRedirectOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Background()) +func (i RegionUrlMapDefaultUrlRedirectArgs) ToRegionUrlMapDefaultUrlRedirectOutputWithContext(ctx context.Context) RegionUrlMapDefaultUrlRedirectOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultUrlRedirectOutput) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput).ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx) +func (i RegionUrlMapDefaultUrlRedirectArgs) ToRegionUrlMapDefaultUrlRedirectPtrOutput() RegionUrlMapDefaultUrlRedirectPtrOutput { + return i.ToRegionUrlMapDefaultUrlRedirectPtrOutputWithContext(context.Background()) } -// RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs, RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtr and RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrInput` via: +func (i RegionUrlMapDefaultUrlRedirectArgs) ToRegionUrlMapDefaultUrlRedirectPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultUrlRedirectPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultUrlRedirectOutput).ToRegionUrlMapDefaultUrlRedirectPtrOutputWithContext(ctx) +} + +// RegionUrlMapDefaultUrlRedirectPtrInput is an input type that accepts RegionUrlMapDefaultUrlRedirectArgs, RegionUrlMapDefaultUrlRedirectPtr and RegionUrlMapDefaultUrlRedirectPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapDefaultUrlRedirectPtrInput` via: // -// RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs{...} +// RegionUrlMapDefaultUrlRedirectArgs{...} // // or: // // nil -type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrInput interface { +type RegionUrlMapDefaultUrlRedirectPtrInput interface { pulumi.Input - ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput - ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput + ToRegionUrlMapDefaultUrlRedirectPtrOutput() RegionUrlMapDefaultUrlRedirectPtrOutput + ToRegionUrlMapDefaultUrlRedirectPtrOutputWithContext(context.Context) RegionUrlMapDefaultUrlRedirectPtrOutput } -type regionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrType RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs +type regionUrlMapDefaultUrlRedirectPtrType RegionUrlMapDefaultUrlRedirectArgs -func RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtr(v *RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrInput { - return (*regionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrType)(v) +func RegionUrlMapDefaultUrlRedirectPtr(v *RegionUrlMapDefaultUrlRedirectArgs) RegionUrlMapDefaultUrlRedirectPtrInput { + return (*regionUrlMapDefaultUrlRedirectPtrType)(v) } -func (*regionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() +func (*regionUrlMapDefaultUrlRedirectPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapDefaultUrlRedirect)(nil)).Elem() } -func (i *regionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Background()) +func (i *regionUrlMapDefaultUrlRedirectPtrType) ToRegionUrlMapDefaultUrlRedirectPtrOutput() RegionUrlMapDefaultUrlRedirectPtrOutput { + return i.ToRegionUrlMapDefaultUrlRedirectPtrOutputWithContext(context.Background()) } -func (i *regionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) +func (i *regionUrlMapDefaultUrlRedirectPtrType) ToRegionUrlMapDefaultUrlRedirectPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultUrlRedirectPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapDefaultUrlRedirectPtrOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput struct{ *pulumi.OutputState } +type RegionUrlMapDefaultUrlRedirectOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() +func (RegionUrlMapDefaultUrlRedirectOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapDefaultUrlRedirect)(nil)).Elem() } -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput { +func (o RegionUrlMapDefaultUrlRedirectOutput) ToRegionUrlMapDefaultUrlRedirectOutput() RegionUrlMapDefaultUrlRedirectOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput { +func (o RegionUrlMapDefaultUrlRedirectOutput) ToRegionUrlMapDefaultUrlRedirectOutputWithContext(ctx context.Context) RegionUrlMapDefaultUrlRedirectOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return o.ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Background()) +func (o RegionUrlMapDefaultUrlRedirectOutput) ToRegionUrlMapDefaultUrlRedirectPtrOutput() RegionUrlMapDefaultUrlRedirectPtrOutput { + return o.ToRegionUrlMapDefaultUrlRedirectPtrOutputWithContext(context.Background()) } -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction) *RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction { +func (o RegionUrlMapDefaultUrlRedirectOutput) ToRegionUrlMapDefaultUrlRedirectPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultUrlRedirectPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapDefaultUrlRedirect) *RegionUrlMapDefaultUrlRedirect { return &v - }).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) + }).(RegionUrlMapDefaultUrlRedirectPtrOutput) } -// Headers to add to a matching request before forwarding the request to the backendService. -// Structure is documented below. -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput) RequestHeadersToAdds() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction) []RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd { - return v.RequestHeadersToAdds - }).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) +// The host that will be used in the redirect response instead of the one that was +// supplied in the request. The value must be between 1 and 255 characters. +func (o RegionUrlMapDefaultUrlRedirectOutput) HostRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultUrlRedirect) *string { return v.HostRedirect }).(pulumi.StringPtrOutput) } -// A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput) RequestHeadersToRemoves() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction) []string { - return v.RequestHeadersToRemoves - }).(pulumi.StringArrayOutput) +// If set to true, the URL scheme in the redirected request is set to https. If set to +// false, the URL scheme of the redirected request will remain the same as that of the +// request. This must only be set for UrlMaps used in TargetHttpProxys. Setting this +// true for TargetHttpsProxy is not permitted. The default is set to false. +func (o RegionUrlMapDefaultUrlRedirectOutput) HttpsRedirect() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultUrlRedirect) *bool { return v.HttpsRedirect }).(pulumi.BoolPtrOutput) } -// Headers to add the response before sending the response back to the client. -// Structure is documented below. -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput) ResponseHeadersToAdds() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction) []RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd { - return v.ResponseHeadersToAdds - }).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) +// The path that will be used in the redirect response instead of the one that was +// supplied in the request. pathRedirect cannot be supplied together with +// prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the +// original request will be used for the redirect. The value must be between 1 and 1024 +// characters. +func (o RegionUrlMapDefaultUrlRedirectOutput) PathRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultUrlRedirect) *string { return v.PathRedirect }).(pulumi.StringPtrOutput) } -// A list of header names for headers that need to be removed from the response before sending the response back to the client. -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput) ResponseHeadersToRemoves() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction) []string { - return v.ResponseHeadersToRemoves - }).(pulumi.StringArrayOutput) +// The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, +// retaining the remaining portion of the URL before redirecting the request. +// prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or +// neither. If neither is supplied, the path of the original request will be used for +// the redirect. The value must be between 1 and 1024 characters. +func (o RegionUrlMapDefaultUrlRedirectOutput) PrefixRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultUrlRedirect) *string { return v.PrefixRedirect }).(pulumi.StringPtrOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput struct{ *pulumi.OutputState } +// The HTTP Status code to use for this RedirectAction. Supported values are: +// - MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. +// - FOUND, which corresponds to 302. +// - SEE_OTHER which corresponds to 303. +// - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method +// will be retained. +// - PERMANENT_REDIRECT, which corresponds to 308. In this case, +// the request method will be retained. +func (o RegionUrlMapDefaultUrlRedirectOutput) RedirectResponseCode() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapDefaultUrlRedirect) *string { return v.RedirectResponseCode }).(pulumi.StringPtrOutput) +} -func (RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() +// If set to true, any accompanying query portion of the original URL is removed prior +// to redirecting the request. If set to false, the query portion of the original URL is +// retained. +// This field is required to ensure an empty block is not set. The normal default value is false. +func (o RegionUrlMapDefaultUrlRedirectOutput) StripQuery() pulumi.BoolOutput { + return o.ApplyT(func(v RegionUrlMapDefaultUrlRedirect) bool { return v.StripQuery }).(pulumi.BoolOutput) } -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { +type RegionUrlMapDefaultUrlRedirectPtrOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapDefaultUrlRedirectPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapDefaultUrlRedirect)(nil)).Elem() +} + +func (o RegionUrlMapDefaultUrlRedirectPtrOutput) ToRegionUrlMapDefaultUrlRedirectPtrOutput() RegionUrlMapDefaultUrlRedirectPtrOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { +func (o RegionUrlMapDefaultUrlRedirectPtrOutput) ToRegionUrlMapDefaultUrlRedirectPtrOutputWithContext(ctx context.Context) RegionUrlMapDefaultUrlRedirectPtrOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) Elem() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction { +func (o RegionUrlMapDefaultUrlRedirectPtrOutput) Elem() RegionUrlMapDefaultUrlRedirectOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultUrlRedirect) RegionUrlMapDefaultUrlRedirect { if v != nil { return *v } - var ret RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction + var ret RegionUrlMapDefaultUrlRedirect return ret - }).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput) + }).(RegionUrlMapDefaultUrlRedirectOutput) } -// Headers to add to a matching request before forwarding the request to the backendService. -// Structure is documented below. -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) RequestHeadersToAdds() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction) []RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd { +// The host that will be used in the redirect response instead of the one that was +// supplied in the request. The value must be between 1 and 255 characters. +func (o RegionUrlMapDefaultUrlRedirectPtrOutput) HostRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultUrlRedirect) *string { if v == nil { return nil } - return v.RequestHeadersToAdds - }).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) + return v.HostRedirect + }).(pulumi.StringPtrOutput) } -// A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) RequestHeadersToRemoves() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction) []string { +// If set to true, the URL scheme in the redirected request is set to https. If set to +// false, the URL scheme of the redirected request will remain the same as that of the +// request. This must only be set for UrlMaps used in TargetHttpProxys. Setting this +// true for TargetHttpsProxy is not permitted. The default is set to false. +func (o RegionUrlMapDefaultUrlRedirectPtrOutput) HttpsRedirect() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultUrlRedirect) *bool { if v == nil { return nil } - return v.RequestHeadersToRemoves - }).(pulumi.StringArrayOutput) + return v.HttpsRedirect + }).(pulumi.BoolPtrOutput) } -// Headers to add the response before sending the response back to the client. -// Structure is documented below. -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) ResponseHeadersToAdds() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction) []RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd { +// The path that will be used in the redirect response instead of the one that was +// supplied in the request. pathRedirect cannot be supplied together with +// prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the +// original request will be used for the redirect. The value must be between 1 and 1024 +// characters. +func (o RegionUrlMapDefaultUrlRedirectPtrOutput) PathRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultUrlRedirect) *string { if v == nil { return nil } - return v.ResponseHeadersToAdds - }).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) + return v.PathRedirect + }).(pulumi.StringPtrOutput) } -// A list of header names for headers that need to be removed from the response before sending the response back to the client. -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) ResponseHeadersToRemoves() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction) []string { +// The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, +// retaining the remaining portion of the URL before redirecting the request. +// prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or +// neither. If neither is supplied, the path of the original request will be used for +// the redirect. The value must be between 1 and 1024 characters. +func (o RegionUrlMapDefaultUrlRedirectPtrOutput) PrefixRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultUrlRedirect) *string { if v == nil { return nil } - return v.ResponseHeadersToRemoves - }).(pulumi.StringArrayOutput) + return v.PrefixRedirect + }).(pulumi.StringPtrOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd struct { - // The name of the header. - HeaderName string `pulumi:"headerName"` - // The value of the header to add. - HeaderValue string `pulumi:"headerValue"` - // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. - // The default value is false. - Replace bool `pulumi:"replace"` +// The HTTP Status code to use for this RedirectAction. Supported values are: +// - MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. +// - FOUND, which corresponds to 302. +// - SEE_OTHER which corresponds to 303. +// - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method +// will be retained. +// - PERMANENT_REDIRECT, which corresponds to 308. In this case, +// the request method will be retained. +func (o RegionUrlMapDefaultUrlRedirectPtrOutput) RedirectResponseCode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultUrlRedirect) *string { + if v == nil { + return nil + } + return v.RedirectResponseCode + }).(pulumi.StringPtrOutput) } -// RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs and RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput` via: +// If set to true, any accompanying query portion of the original URL is removed prior +// to redirecting the request. If set to false, the query portion of the original URL is +// retained. +// This field is required to ensure an empty block is not set. The normal default value is false. +func (o RegionUrlMapDefaultUrlRedirectPtrOutput) StripQuery() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RegionUrlMapDefaultUrlRedirect) *bool { + if v == nil { + return nil + } + return &v.StripQuery + }).(pulumi.BoolPtrOutput) +} + +type RegionUrlMapHostRule struct { + // An optional description of this HostRule. Provide this property + // when you create the resource. + Description *string `pulumi:"description"` + // The list of host patterns to match. They must be valid + // hostnames, except * will match any string of ([a-z0-9-.]*). In + // that case, * must be the first character and must be followed in + // the pattern by either - or .. + Hosts []string `pulumi:"hosts"` + // The name of the PathMatcher to use to match the path portion of + // the URL if the hostRule matches the URL's host portion. + PathMatcher string `pulumi:"pathMatcher"` +} + +// RegionUrlMapHostRuleInput is an input type that accepts RegionUrlMapHostRuleArgs and RegionUrlMapHostRuleOutput values. +// You can construct a concrete instance of `RegionUrlMapHostRuleInput` via: // -// RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs{...} -type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput interface { +// RegionUrlMapHostRuleArgs{...} +type RegionUrlMapHostRuleInput interface { pulumi.Input - ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput - ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput + ToRegionUrlMapHostRuleOutput() RegionUrlMapHostRuleOutput + ToRegionUrlMapHostRuleOutputWithContext(context.Context) RegionUrlMapHostRuleOutput } -type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs struct { - // The name of the header. - HeaderName pulumi.StringInput `pulumi:"headerName"` - // The value of the header to add. - HeaderValue pulumi.StringInput `pulumi:"headerValue"` - // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. - // The default value is false. - Replace pulumi.BoolInput `pulumi:"replace"` +type RegionUrlMapHostRuleArgs struct { + // An optional description of this HostRule. Provide this property + // when you create the resource. + Description pulumi.StringPtrInput `pulumi:"description"` + // The list of host patterns to match. They must be valid + // hostnames, except * will match any string of ([a-z0-9-.]*). In + // that case, * must be the first character and must be followed in + // the pattern by either - or .. + Hosts pulumi.StringArrayInput `pulumi:"hosts"` + // The name of the PathMatcher to use to match the path portion of + // the URL if the hostRule matches the URL's host portion. + PathMatcher pulumi.StringInput `pulumi:"pathMatcher"` } -func (RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() +func (RegionUrlMapHostRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapHostRule)(nil)).Elem() } -func (i RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(context.Background()) +func (i RegionUrlMapHostRuleArgs) ToRegionUrlMapHostRuleOutput() RegionUrlMapHostRuleOutput { + return i.ToRegionUrlMapHostRuleOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) +func (i RegionUrlMapHostRuleArgs) ToRegionUrlMapHostRuleOutputWithContext(ctx context.Context) RegionUrlMapHostRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapHostRuleOutput) } -// RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray and RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput` via: +// RegionUrlMapHostRuleArrayInput is an input type that accepts RegionUrlMapHostRuleArray and RegionUrlMapHostRuleArrayOutput values. +// You can construct a concrete instance of `RegionUrlMapHostRuleArrayInput` via: // -// RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray{ RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs{...} } -type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput interface { +// RegionUrlMapHostRuleArray{ RegionUrlMapHostRuleArgs{...} } +type RegionUrlMapHostRuleArrayInput interface { pulumi.Input - ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput - ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput + ToRegionUrlMapHostRuleArrayOutput() RegionUrlMapHostRuleArrayOutput + ToRegionUrlMapHostRuleArrayOutputWithContext(context.Context) RegionUrlMapHostRuleArrayOutput } -type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray []RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput +type RegionUrlMapHostRuleArray []RegionUrlMapHostRuleInput -func (RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() +func (RegionUrlMapHostRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapHostRule)(nil)).Elem() } -func (i RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Background()) +func (i RegionUrlMapHostRuleArray) ToRegionUrlMapHostRuleArrayOutput() RegionUrlMapHostRuleArrayOutput { + return i.ToRegionUrlMapHostRuleArrayOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) +func (i RegionUrlMapHostRuleArray) ToRegionUrlMapHostRuleArrayOutputWithContext(ctx context.Context) RegionUrlMapHostRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapHostRuleArrayOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput struct{ *pulumi.OutputState } +type RegionUrlMapHostRuleOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() +func (RegionUrlMapHostRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapHostRule)(nil)).Elem() } -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { +func (o RegionUrlMapHostRuleOutput) ToRegionUrlMapHostRuleOutput() RegionUrlMapHostRuleOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { +func (o RegionUrlMapHostRuleOutput) ToRegionUrlMapHostRuleOutputWithContext(ctx context.Context) RegionUrlMapHostRuleOutput { return o } -// The name of the header. -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) HeaderName() pulumi.StringOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd) string { - return v.HeaderName - }).(pulumi.StringOutput) +// An optional description of this HostRule. Provide this property +// when you create the resource. +func (o RegionUrlMapHostRuleOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapHostRule) *string { return v.Description }).(pulumi.StringPtrOutput) } -// The value of the header to add. -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) HeaderValue() pulumi.StringOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd) string { - return v.HeaderValue - }).(pulumi.StringOutput) +// The list of host patterns to match. They must be valid +// hostnames, except * will match any string of ([a-z0-9-.]*). In +// that case, * must be the first character and must be followed in +// the pattern by either - or .. +func (o RegionUrlMapHostRuleOutput) Hosts() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionUrlMapHostRule) []string { return v.Hosts }).(pulumi.StringArrayOutput) } -// If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. -// The default value is false. -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) Replace() pulumi.BoolOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd) bool { - return v.Replace - }).(pulumi.BoolOutput) +// The name of the PathMatcher to use to match the path portion of +// the URL if the hostRule matches the URL's host portion. +func (o RegionUrlMapHostRuleOutput) PathMatcher() pulumi.StringOutput { + return o.ApplyT(func(v RegionUrlMapHostRule) string { return v.PathMatcher }).(pulumi.StringOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput struct{ *pulumi.OutputState } +type RegionUrlMapHostRuleArrayOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() +func (RegionUrlMapHostRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapHostRule)(nil)).Elem() } -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { +func (o RegionUrlMapHostRuleArrayOutput) ToRegionUrlMapHostRuleArrayOutput() RegionUrlMapHostRuleArrayOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { +func (o RegionUrlMapHostRuleArrayOutput) ToRegionUrlMapHostRuleArrayOutputWithContext(ctx context.Context) RegionUrlMapHostRuleArrayOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) Index(i pulumi.IntInput) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd { - return vs[0].([]RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)[vs[1].(int)] - }).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) +func (o RegionUrlMapHostRuleArrayOutput) Index(i pulumi.IntInput) RegionUrlMapHostRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapHostRule { + return vs[0].([]RegionUrlMapHostRule)[vs[1].(int)] + }).(RegionUrlMapHostRuleOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd struct { - // The name of the header. - HeaderName string `pulumi:"headerName"` - // The value of the header to add. - HeaderValue string `pulumi:"headerValue"` - // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. - // The default value is false. - Replace bool `pulumi:"replace"` +type RegionUrlMapPathMatcher struct { + // A reference to a RegionBackendService resource. This will be used if + // none of the pathRules defined by this PathMatcher is matched by + // the URL's path portion. + DefaultService *string `pulumi:"defaultService"` + // When none of the specified hostRules match, the request is redirected to a URL specified + // by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or + // defaultRouteAction must not be set. + // Structure is documented below. + DefaultUrlRedirect *RegionUrlMapPathMatcherDefaultUrlRedirect `pulumi:"defaultUrlRedirect"` + // An optional description of this resource. + Description *string `pulumi:"description"` + // The name to which this PathMatcher is referred by the HostRule. + Name string `pulumi:"name"` + // The list of path rules. Use this list instead of routeRules when routing based + // on simple path matching is all that's required. The order by which path rules + // are specified does not matter. Matches are always done on the longest-path-first + // basis. For example: a pathRule with a path /a/b/c/* will match before /a/b/* + // irrespective of the order in which those paths appear in this list. Within a + // given pathMatcher, only one of pathRules or routeRules must be set. + // Structure is documented below. + PathRules []RegionUrlMapPathMatcherPathRule `pulumi:"pathRules"` + // The list of ordered HTTP route rules. Use this list instead of pathRules when + // advanced route matching and routing actions are desired. The order of specifying + // routeRules matters: the first rule that matches will cause its specified routing + // action to take effect. Within a given pathMatcher, only one of pathRules or + // routeRules must be set. routeRules are not supported in UrlMaps intended for + // External load balancers. + // Structure is documented below. + RouteRules []RegionUrlMapPathMatcherRouteRule `pulumi:"routeRules"` } -// RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs and RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput` via: +// RegionUrlMapPathMatcherInput is an input type that accepts RegionUrlMapPathMatcherArgs and RegionUrlMapPathMatcherOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherInput` via: // -// RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs{...} -type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput interface { +// RegionUrlMapPathMatcherArgs{...} +type RegionUrlMapPathMatcherInput interface { pulumi.Input - ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput - ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput + ToRegionUrlMapPathMatcherOutput() RegionUrlMapPathMatcherOutput + ToRegionUrlMapPathMatcherOutputWithContext(context.Context) RegionUrlMapPathMatcherOutput } -type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs struct { - // The name of the header. - HeaderName pulumi.StringInput `pulumi:"headerName"` - // The value of the header to add. - HeaderValue pulumi.StringInput `pulumi:"headerValue"` - // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. - // The default value is false. - Replace pulumi.BoolInput `pulumi:"replace"` +type RegionUrlMapPathMatcherArgs struct { + // A reference to a RegionBackendService resource. This will be used if + // none of the pathRules defined by this PathMatcher is matched by + // the URL's path portion. + DefaultService pulumi.StringPtrInput `pulumi:"defaultService"` + // When none of the specified hostRules match, the request is redirected to a URL specified + // by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or + // defaultRouteAction must not be set. + // Structure is documented below. + DefaultUrlRedirect RegionUrlMapPathMatcherDefaultUrlRedirectPtrInput `pulumi:"defaultUrlRedirect"` + // An optional description of this resource. + Description pulumi.StringPtrInput `pulumi:"description"` + // The name to which this PathMatcher is referred by the HostRule. + Name pulumi.StringInput `pulumi:"name"` + // The list of path rules. Use this list instead of routeRules when routing based + // on simple path matching is all that's required. The order by which path rules + // are specified does not matter. Matches are always done on the longest-path-first + // basis. For example: a pathRule with a path /a/b/c/* will match before /a/b/* + // irrespective of the order in which those paths appear in this list. Within a + // given pathMatcher, only one of pathRules or routeRules must be set. + // Structure is documented below. + PathRules RegionUrlMapPathMatcherPathRuleArrayInput `pulumi:"pathRules"` + // The list of ordered HTTP route rules. Use this list instead of pathRules when + // advanced route matching and routing actions are desired. The order of specifying + // routeRules matters: the first rule that matches will cause its specified routing + // action to take effect. Within a given pathMatcher, only one of pathRules or + // routeRules must be set. routeRules are not supported in UrlMaps intended for + // External load balancers. + // Structure is documented below. + RouteRules RegionUrlMapPathMatcherRouteRuleArrayInput `pulumi:"routeRules"` } -func (RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() +func (RegionUrlMapPathMatcherArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcher)(nil)).Elem() } -func (i RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherArgs) ToRegionUrlMapPathMatcherOutput() RegionUrlMapPathMatcherOutput { + return i.ToRegionUrlMapPathMatcherOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) +func (i RegionUrlMapPathMatcherArgs) ToRegionUrlMapPathMatcherOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherOutput) } -// RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray and RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput` via: +// RegionUrlMapPathMatcherArrayInput is an input type that accepts RegionUrlMapPathMatcherArray and RegionUrlMapPathMatcherArrayOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherArrayInput` via: // -// RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray{ RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs{...} } -type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput interface { +// RegionUrlMapPathMatcherArray{ RegionUrlMapPathMatcherArgs{...} } +type RegionUrlMapPathMatcherArrayInput interface { pulumi.Input - ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput - ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput + ToRegionUrlMapPathMatcherArrayOutput() RegionUrlMapPathMatcherArrayOutput + ToRegionUrlMapPathMatcherArrayOutputWithContext(context.Context) RegionUrlMapPathMatcherArrayOutput } -type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray []RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput +type RegionUrlMapPathMatcherArray []RegionUrlMapPathMatcherInput -func (RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() +func (RegionUrlMapPathMatcherArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapPathMatcher)(nil)).Elem() } -func (i RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { - return i.ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherArray) ToRegionUrlMapPathMatcherArrayOutput() RegionUrlMapPathMatcherArrayOutput { + return i.ToRegionUrlMapPathMatcherArrayOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) +func (i RegionUrlMapPathMatcherArray) ToRegionUrlMapPathMatcherArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherArrayOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() +func (RegionUrlMapPathMatcherOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcher)(nil)).Elem() } -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { +func (o RegionUrlMapPathMatcherOutput) ToRegionUrlMapPathMatcherOutput() RegionUrlMapPathMatcherOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { +func (o RegionUrlMapPathMatcherOutput) ToRegionUrlMapPathMatcherOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherOutput { return o } -// The name of the header. -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) HeaderName() pulumi.StringOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd) string { - return v.HeaderName - }).(pulumi.StringOutput) +// A reference to a RegionBackendService resource. This will be used if +// none of the pathRules defined by this PathMatcher is matched by +// the URL's path portion. +func (o RegionUrlMapPathMatcherOutput) DefaultService() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcher) *string { return v.DefaultService }).(pulumi.StringPtrOutput) } -// The value of the header to add. -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) HeaderValue() pulumi.StringOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd) string { - return v.HeaderValue - }).(pulumi.StringOutput) +// When none of the specified hostRules match, the request is redirected to a URL specified +// by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or +// defaultRouteAction must not be set. +// Structure is documented below. +func (o RegionUrlMapPathMatcherOutput) DefaultUrlRedirect() RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcher) *RegionUrlMapPathMatcherDefaultUrlRedirect { + return v.DefaultUrlRedirect + }).(RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput) } -// If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. -// The default value is false. -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) Replace() pulumi.BoolOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd) bool { - return v.Replace - }).(pulumi.BoolOutput) +// An optional description of this resource. +func (o RegionUrlMapPathMatcherOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcher) *string { return v.Description }).(pulumi.StringPtrOutput) } -type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput struct{ *pulumi.OutputState } +// The name to which this PathMatcher is referred by the HostRule. +func (o RegionUrlMapPathMatcherOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcher) string { return v.Name }).(pulumi.StringOutput) +} -func (RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() +// The list of path rules. Use this list instead of routeRules when routing based +// on simple path matching is all that's required. The order by which path rules +// are specified does not matter. Matches are always done on the longest-path-first +// basis. For example: a pathRule with a path /a/b/c/* will match before /a/b/* +// irrespective of the order in which those paths appear in this list. Within a +// given pathMatcher, only one of pathRules or routeRules must be set. +// Structure is documented below. +func (o RegionUrlMapPathMatcherOutput) PathRules() RegionUrlMapPathMatcherPathRuleArrayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcher) []RegionUrlMapPathMatcherPathRule { return v.PathRules }).(RegionUrlMapPathMatcherPathRuleArrayOutput) } -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { +// The list of ordered HTTP route rules. Use this list instead of pathRules when +// advanced route matching and routing actions are desired. The order of specifying +// routeRules matters: the first rule that matches will cause its specified routing +// action to take effect. Within a given pathMatcher, only one of pathRules or +// routeRules must be set. routeRules are not supported in UrlMaps intended for +// External load balancers. +// Structure is documented below. +func (o RegionUrlMapPathMatcherOutput) RouteRules() RegionUrlMapPathMatcherRouteRuleArrayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcher) []RegionUrlMapPathMatcherRouteRule { return v.RouteRules }).(RegionUrlMapPathMatcherRouteRuleArrayOutput) +} + +type RegionUrlMapPathMatcherArrayOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapPathMatcherArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapPathMatcher)(nil)).Elem() +} + +func (o RegionUrlMapPathMatcherArrayOutput) ToRegionUrlMapPathMatcherArrayOutput() RegionUrlMapPathMatcherArrayOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { +func (o RegionUrlMapPathMatcherArrayOutput) ToRegionUrlMapPathMatcherArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherArrayOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) Index(i pulumi.IntInput) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd { - return vs[0].([]RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)[vs[1].(int)] - }).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) +func (o RegionUrlMapPathMatcherArrayOutput) Index(i pulumi.IntInput) RegionUrlMapPathMatcherOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapPathMatcher { + return vs[0].([]RegionUrlMapPathMatcher)[vs[1].(int)] + }).(RegionUrlMapPathMatcherOutput) } -type RegionUrlMapPathMatcherPathRuleUrlRedirect struct { - // The host that will be used in the redirect response instead of the one - // that was supplied in the request. The value must be between 1 and 255 - // characters. +type RegionUrlMapPathMatcherDefaultUrlRedirect struct { + // The host that will be used in the redirect response instead of the one that was + // supplied in the request. The value must be between 1 and 255 characters. HostRedirect *string `pulumi:"hostRedirect"` - // If set to true, the URL scheme in the redirected request is set to https. - // If set to false, the URL scheme of the redirected request will remain the - // same as that of the request. This must only be set for UrlMaps used in - // TargetHttpProxys. Setting this true for TargetHttpsProxy is not - // permitted. The default is set to false. + // If set to true, the URL scheme in the redirected request is set to https. If set to + // false, the URL scheme of the redirected request will remain the same as that of the + // request. This must only be set for UrlMaps used in TargetHttpProxys. Setting this + // true for TargetHttpsProxy is not permitted. The default is set to false. HttpsRedirect *bool `pulumi:"httpsRedirect"` - // The path that will be used in the redirect response instead of the one - // that was supplied in the request. pathRedirect cannot be supplied - // together with prefixRedirect. Supply one alone or neither. If neither is - // supplied, the path of the original request will be used for the redirect. - // The value must be between 1 and 1024 characters. + // The path that will be used in the redirect response instead of the one that was + // supplied in the request. pathRedirect cannot be supplied together with + // prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the + // original request will be used for the redirect. The value must be between 1 and 1024 + // characters. PathRedirect *string `pulumi:"pathRedirect"` - // The prefix that replaces the prefixMatch specified in the - // HttpRouteRuleMatch, retaining the remaining portion of the URL before - // redirecting the request. prefixRedirect cannot be supplied together with - // pathRedirect. Supply one alone or neither. If neither is supplied, the - // path of the original request will be used for the redirect. The value - // must be between 1 and 1024 characters. + // The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, + // retaining the remaining portion of the URL before redirecting the request. + // prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or + // neither. If neither is supplied, the path of the original request will be used for + // the redirect. The value must be between 1 and 1024 characters. PrefixRedirect *string `pulumi:"prefixRedirect"` // The HTTP Status code to use for this RedirectAction. Supported values are: // * MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. @@ -71197,47 +70923,44 @@ type RegionUrlMapPathMatcherPathRuleUrlRedirect struct { // * PERMANENT_REDIRECT, which corresponds to 308. In this case, // the request method will be retained. RedirectResponseCode *string `pulumi:"redirectResponseCode"` - // If set to true, any accompanying query portion of the original URL is removed - // prior to redirecting the request. If set to false, the query portion of the - // original URL is retained. + // If set to true, any accompanying query portion of the original URL is removed prior + // to redirecting the request. If set to false, the query portion of the original URL is + // retained. // This field is required to ensure an empty block is not set. The normal default value is false. StripQuery bool `pulumi:"stripQuery"` } -// RegionUrlMapPathMatcherPathRuleUrlRedirectInput is an input type that accepts RegionUrlMapPathMatcherPathRuleUrlRedirectArgs and RegionUrlMapPathMatcherPathRuleUrlRedirectOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleUrlRedirectInput` via: +// RegionUrlMapPathMatcherDefaultUrlRedirectInput is an input type that accepts RegionUrlMapPathMatcherDefaultUrlRedirectArgs and RegionUrlMapPathMatcherDefaultUrlRedirectOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherDefaultUrlRedirectInput` via: // -// RegionUrlMapPathMatcherPathRuleUrlRedirectArgs{...} -type RegionUrlMapPathMatcherPathRuleUrlRedirectInput interface { +// RegionUrlMapPathMatcherDefaultUrlRedirectArgs{...} +type RegionUrlMapPathMatcherDefaultUrlRedirectInput interface { pulumi.Input - ToRegionUrlMapPathMatcherPathRuleUrlRedirectOutput() RegionUrlMapPathMatcherPathRuleUrlRedirectOutput - ToRegionUrlMapPathMatcherPathRuleUrlRedirectOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleUrlRedirectOutput + ToRegionUrlMapPathMatcherDefaultUrlRedirectOutput() RegionUrlMapPathMatcherDefaultUrlRedirectOutput + ToRegionUrlMapPathMatcherDefaultUrlRedirectOutputWithContext(context.Context) RegionUrlMapPathMatcherDefaultUrlRedirectOutput } -type RegionUrlMapPathMatcherPathRuleUrlRedirectArgs struct { - // The host that will be used in the redirect response instead of the one - // that was supplied in the request. The value must be between 1 and 255 - // characters. +type RegionUrlMapPathMatcherDefaultUrlRedirectArgs struct { + // The host that will be used in the redirect response instead of the one that was + // supplied in the request. The value must be between 1 and 255 characters. HostRedirect pulumi.StringPtrInput `pulumi:"hostRedirect"` - // If set to true, the URL scheme in the redirected request is set to https. - // If set to false, the URL scheme of the redirected request will remain the - // same as that of the request. This must only be set for UrlMaps used in - // TargetHttpProxys. Setting this true for TargetHttpsProxy is not - // permitted. The default is set to false. + // If set to true, the URL scheme in the redirected request is set to https. If set to + // false, the URL scheme of the redirected request will remain the same as that of the + // request. This must only be set for UrlMaps used in TargetHttpProxys. Setting this + // true for TargetHttpsProxy is not permitted. The default is set to false. HttpsRedirect pulumi.BoolPtrInput `pulumi:"httpsRedirect"` - // The path that will be used in the redirect response instead of the one - // that was supplied in the request. pathRedirect cannot be supplied - // together with prefixRedirect. Supply one alone or neither. If neither is - // supplied, the path of the original request will be used for the redirect. - // The value must be between 1 and 1024 characters. + // The path that will be used in the redirect response instead of the one that was + // supplied in the request. pathRedirect cannot be supplied together with + // prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the + // original request will be used for the redirect. The value must be between 1 and 1024 + // characters. PathRedirect pulumi.StringPtrInput `pulumi:"pathRedirect"` - // The prefix that replaces the prefixMatch specified in the - // HttpRouteRuleMatch, retaining the remaining portion of the URL before - // redirecting the request. prefixRedirect cannot be supplied together with - // pathRedirect. Supply one alone or neither. If neither is supplied, the - // path of the original request will be used for the redirect. The value - // must be between 1 and 1024 characters. + // The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, + // retaining the remaining portion of the URL before redirecting the request. + // prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or + // neither. If neither is supplied, the path of the original request will be used for + // the redirect. The value must be between 1 and 1024 characters. PrefixRedirect pulumi.StringPtrInput `pulumi:"prefixRedirect"` // The HTTP Status code to use for this RedirectAction. Supported values are: // * MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. @@ -71248,123 +70971,120 @@ type RegionUrlMapPathMatcherPathRuleUrlRedirectArgs struct { // * PERMANENT_REDIRECT, which corresponds to 308. In this case, // the request method will be retained. RedirectResponseCode pulumi.StringPtrInput `pulumi:"redirectResponseCode"` - // If set to true, any accompanying query portion of the original URL is removed - // prior to redirecting the request. If set to false, the query portion of the - // original URL is retained. + // If set to true, any accompanying query portion of the original URL is removed prior + // to redirecting the request. If set to false, the query portion of the original URL is + // retained. // This field is required to ensure an empty block is not set. The normal default value is false. StripQuery pulumi.BoolInput `pulumi:"stripQuery"` } -func (RegionUrlMapPathMatcherPathRuleUrlRedirectArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleUrlRedirect)(nil)).Elem() +func (RegionUrlMapPathMatcherDefaultUrlRedirectArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherDefaultUrlRedirect)(nil)).Elem() } -func (i RegionUrlMapPathMatcherPathRuleUrlRedirectArgs) ToRegionUrlMapPathMatcherPathRuleUrlRedirectOutput() RegionUrlMapPathMatcherPathRuleUrlRedirectOutput { - return i.ToRegionUrlMapPathMatcherPathRuleUrlRedirectOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherDefaultUrlRedirectArgs) ToRegionUrlMapPathMatcherDefaultUrlRedirectOutput() RegionUrlMapPathMatcherDefaultUrlRedirectOutput { + return i.ToRegionUrlMapPathMatcherDefaultUrlRedirectOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherPathRuleUrlRedirectArgs) ToRegionUrlMapPathMatcherPathRuleUrlRedirectOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleUrlRedirectOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleUrlRedirectOutput) +func (i RegionUrlMapPathMatcherDefaultUrlRedirectArgs) ToRegionUrlMapPathMatcherDefaultUrlRedirectOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherDefaultUrlRedirectOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherDefaultUrlRedirectOutput) } -func (i RegionUrlMapPathMatcherPathRuleUrlRedirectArgs) ToRegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput() RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput { - return i.ToRegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherDefaultUrlRedirectArgs) ToRegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput() RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput { + return i.ToRegionUrlMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherPathRuleUrlRedirectArgs) ToRegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleUrlRedirectOutput).ToRegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutputWithContext(ctx) +func (i RegionUrlMapPathMatcherDefaultUrlRedirectArgs) ToRegionUrlMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherDefaultUrlRedirectOutput).ToRegionUrlMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(ctx) } -// RegionUrlMapPathMatcherPathRuleUrlRedirectPtrInput is an input type that accepts RegionUrlMapPathMatcherPathRuleUrlRedirectArgs, RegionUrlMapPathMatcherPathRuleUrlRedirectPtr and RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleUrlRedirectPtrInput` via: +// RegionUrlMapPathMatcherDefaultUrlRedirectPtrInput is an input type that accepts RegionUrlMapPathMatcherDefaultUrlRedirectArgs, RegionUrlMapPathMatcherDefaultUrlRedirectPtr and RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherDefaultUrlRedirectPtrInput` via: // -// RegionUrlMapPathMatcherPathRuleUrlRedirectArgs{...} +// RegionUrlMapPathMatcherDefaultUrlRedirectArgs{...} // // or: // // nil -type RegionUrlMapPathMatcherPathRuleUrlRedirectPtrInput interface { +type RegionUrlMapPathMatcherDefaultUrlRedirectPtrInput interface { pulumi.Input - ToRegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput() RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput - ToRegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput + ToRegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput() RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput + ToRegionUrlMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput } -type regionUrlMapPathMatcherPathRuleUrlRedirectPtrType RegionUrlMapPathMatcherPathRuleUrlRedirectArgs +type regionUrlMapPathMatcherDefaultUrlRedirectPtrType RegionUrlMapPathMatcherDefaultUrlRedirectArgs -func RegionUrlMapPathMatcherPathRuleUrlRedirectPtr(v *RegionUrlMapPathMatcherPathRuleUrlRedirectArgs) RegionUrlMapPathMatcherPathRuleUrlRedirectPtrInput { - return (*regionUrlMapPathMatcherPathRuleUrlRedirectPtrType)(v) +func RegionUrlMapPathMatcherDefaultUrlRedirectPtr(v *RegionUrlMapPathMatcherDefaultUrlRedirectArgs) RegionUrlMapPathMatcherDefaultUrlRedirectPtrInput { + return (*regionUrlMapPathMatcherDefaultUrlRedirectPtrType)(v) } -func (*regionUrlMapPathMatcherPathRuleUrlRedirectPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleUrlRedirect)(nil)).Elem() +func (*regionUrlMapPathMatcherDefaultUrlRedirectPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherDefaultUrlRedirect)(nil)).Elem() } -func (i *regionUrlMapPathMatcherPathRuleUrlRedirectPtrType) ToRegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput() RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput { - return i.ToRegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutputWithContext(context.Background()) +func (i *regionUrlMapPathMatcherDefaultUrlRedirectPtrType) ToRegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput() RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput { + return i.ToRegionUrlMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(context.Background()) } -func (i *regionUrlMapPathMatcherPathRuleUrlRedirectPtrType) ToRegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput) +func (i *regionUrlMapPathMatcherDefaultUrlRedirectPtrType) ToRegionUrlMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput) } -type RegionUrlMapPathMatcherPathRuleUrlRedirectOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherDefaultUrlRedirectOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherPathRuleUrlRedirectOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleUrlRedirect)(nil)).Elem() +func (RegionUrlMapPathMatcherDefaultUrlRedirectOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherDefaultUrlRedirect)(nil)).Elem() } -func (o RegionUrlMapPathMatcherPathRuleUrlRedirectOutput) ToRegionUrlMapPathMatcherPathRuleUrlRedirectOutput() RegionUrlMapPathMatcherPathRuleUrlRedirectOutput { +func (o RegionUrlMapPathMatcherDefaultUrlRedirectOutput) ToRegionUrlMapPathMatcherDefaultUrlRedirectOutput() RegionUrlMapPathMatcherDefaultUrlRedirectOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleUrlRedirectOutput) ToRegionUrlMapPathMatcherPathRuleUrlRedirectOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleUrlRedirectOutput { +func (o RegionUrlMapPathMatcherDefaultUrlRedirectOutput) ToRegionUrlMapPathMatcherDefaultUrlRedirectOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherDefaultUrlRedirectOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleUrlRedirectOutput) ToRegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput() RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput { - return o.ToRegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutputWithContext(context.Background()) +func (o RegionUrlMapPathMatcherDefaultUrlRedirectOutput) ToRegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput() RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput { + return o.ToRegionUrlMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(context.Background()) } -func (o RegionUrlMapPathMatcherPathRuleUrlRedirectOutput) ToRegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherPathRuleUrlRedirect) *RegionUrlMapPathMatcherPathRuleUrlRedirect { +func (o RegionUrlMapPathMatcherDefaultUrlRedirectOutput) ToRegionUrlMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherDefaultUrlRedirect) *RegionUrlMapPathMatcherDefaultUrlRedirect { return &v - }).(RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput) + }).(RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput) } -// The host that will be used in the redirect response instead of the one -// that was supplied in the request. The value must be between 1 and 255 -// characters. -func (o RegionUrlMapPathMatcherPathRuleUrlRedirectOutput) HostRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleUrlRedirect) *string { return v.HostRedirect }).(pulumi.StringPtrOutput) +// The host that will be used in the redirect response instead of the one that was +// supplied in the request. The value must be between 1 and 255 characters. +func (o RegionUrlMapPathMatcherDefaultUrlRedirectOutput) HostRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherDefaultUrlRedirect) *string { return v.HostRedirect }).(pulumi.StringPtrOutput) } -// If set to true, the URL scheme in the redirected request is set to https. -// If set to false, the URL scheme of the redirected request will remain the -// same as that of the request. This must only be set for UrlMaps used in -// TargetHttpProxys. Setting this true for TargetHttpsProxy is not -// permitted. The default is set to false. -func (o RegionUrlMapPathMatcherPathRuleUrlRedirectOutput) HttpsRedirect() pulumi.BoolPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleUrlRedirect) *bool { return v.HttpsRedirect }).(pulumi.BoolPtrOutput) +// If set to true, the URL scheme in the redirected request is set to https. If set to +// false, the URL scheme of the redirected request will remain the same as that of the +// request. This must only be set for UrlMaps used in TargetHttpProxys. Setting this +// true for TargetHttpsProxy is not permitted. The default is set to false. +func (o RegionUrlMapPathMatcherDefaultUrlRedirectOutput) HttpsRedirect() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherDefaultUrlRedirect) *bool { return v.HttpsRedirect }).(pulumi.BoolPtrOutput) } -// The path that will be used in the redirect response instead of the one -// that was supplied in the request. pathRedirect cannot be supplied -// together with prefixRedirect. Supply one alone or neither. If neither is -// supplied, the path of the original request will be used for the redirect. -// The value must be between 1 and 1024 characters. -func (o RegionUrlMapPathMatcherPathRuleUrlRedirectOutput) PathRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleUrlRedirect) *string { return v.PathRedirect }).(pulumi.StringPtrOutput) +// The path that will be used in the redirect response instead of the one that was +// supplied in the request. pathRedirect cannot be supplied together with +// prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the +// original request will be used for the redirect. The value must be between 1 and 1024 +// characters. +func (o RegionUrlMapPathMatcherDefaultUrlRedirectOutput) PathRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherDefaultUrlRedirect) *string { return v.PathRedirect }).(pulumi.StringPtrOutput) } -// The prefix that replaces the prefixMatch specified in the -// HttpRouteRuleMatch, retaining the remaining portion of the URL before -// redirecting the request. prefixRedirect cannot be supplied together with -// pathRedirect. Supply one alone or neither. If neither is supplied, the -// path of the original request will be used for the redirect. The value -// must be between 1 and 1024 characters. -func (o RegionUrlMapPathMatcherPathRuleUrlRedirectOutput) PrefixRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleUrlRedirect) *string { return v.PrefixRedirect }).(pulumi.StringPtrOutput) +// The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, +// retaining the remaining portion of the URL before redirecting the request. +// prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or +// neither. If neither is supplied, the path of the original request will be used for +// the redirect. The value must be between 1 and 1024 characters. +func (o RegionUrlMapPathMatcherDefaultUrlRedirectOutput) PrefixRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherDefaultUrlRedirect) *string { return v.PrefixRedirect }).(pulumi.StringPtrOutput) } // The HTTP Status code to use for this RedirectAction. Supported values are: @@ -71375,47 +71095,46 @@ func (o RegionUrlMapPathMatcherPathRuleUrlRedirectOutput) PrefixRedirect() pulum // will be retained. // - PERMANENT_REDIRECT, which corresponds to 308. In this case, // the request method will be retained. -func (o RegionUrlMapPathMatcherPathRuleUrlRedirectOutput) RedirectResponseCode() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleUrlRedirect) *string { return v.RedirectResponseCode }).(pulumi.StringPtrOutput) +func (o RegionUrlMapPathMatcherDefaultUrlRedirectOutput) RedirectResponseCode() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherDefaultUrlRedirect) *string { return v.RedirectResponseCode }).(pulumi.StringPtrOutput) } -// If set to true, any accompanying query portion of the original URL is removed -// prior to redirecting the request. If set to false, the query portion of the -// original URL is retained. +// If set to true, any accompanying query portion of the original URL is removed prior +// to redirecting the request. If set to false, the query portion of the original URL is +// retained. // This field is required to ensure an empty block is not set. The normal default value is false. -func (o RegionUrlMapPathMatcherPathRuleUrlRedirectOutput) StripQuery() pulumi.BoolOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleUrlRedirect) bool { return v.StripQuery }).(pulumi.BoolOutput) +func (o RegionUrlMapPathMatcherDefaultUrlRedirectOutput) StripQuery() pulumi.BoolOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherDefaultUrlRedirect) bool { return v.StripQuery }).(pulumi.BoolOutput) } -type RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleUrlRedirect)(nil)).Elem() +func (RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherDefaultUrlRedirect)(nil)).Elem() } -func (o RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput) ToRegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput() RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput { +func (o RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput) ToRegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput() RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput) ToRegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput { +func (o RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput) ToRegionUrlMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput { return o } -func (o RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput) Elem() RegionUrlMapPathMatcherPathRuleUrlRedirectOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleUrlRedirect) RegionUrlMapPathMatcherPathRuleUrlRedirect { +func (o RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput) Elem() RegionUrlMapPathMatcherDefaultUrlRedirectOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherDefaultUrlRedirect) RegionUrlMapPathMatcherDefaultUrlRedirect { if v != nil { return *v } - var ret RegionUrlMapPathMatcherPathRuleUrlRedirect + var ret RegionUrlMapPathMatcherDefaultUrlRedirect return ret - }).(RegionUrlMapPathMatcherPathRuleUrlRedirectOutput) + }).(RegionUrlMapPathMatcherDefaultUrlRedirectOutput) } -// The host that will be used in the redirect response instead of the one -// that was supplied in the request. The value must be between 1 and 255 -// characters. -func (o RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput) HostRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleUrlRedirect) *string { +// The host that will be used in the redirect response instead of the one that was +// supplied in the request. The value must be between 1 and 255 characters. +func (o RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput) HostRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherDefaultUrlRedirect) *string { if v == nil { return nil } @@ -71423,13 +71142,12 @@ func (o RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput) HostRedirect() pulu }).(pulumi.StringPtrOutput) } -// If set to true, the URL scheme in the redirected request is set to https. -// If set to false, the URL scheme of the redirected request will remain the -// same as that of the request. This must only be set for UrlMaps used in -// TargetHttpProxys. Setting this true for TargetHttpsProxy is not -// permitted. The default is set to false. -func (o RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput) HttpsRedirect() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleUrlRedirect) *bool { +// If set to true, the URL scheme in the redirected request is set to https. If set to +// false, the URL scheme of the redirected request will remain the same as that of the +// request. This must only be set for UrlMaps used in TargetHttpProxys. Setting this +// true for TargetHttpsProxy is not permitted. The default is set to false. +func (o RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput) HttpsRedirect() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherDefaultUrlRedirect) *bool { if v == nil { return nil } @@ -71437,13 +71155,13 @@ func (o RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput) HttpsRedirect() pul }).(pulumi.BoolPtrOutput) } -// The path that will be used in the redirect response instead of the one -// that was supplied in the request. pathRedirect cannot be supplied -// together with prefixRedirect. Supply one alone or neither. If neither is -// supplied, the path of the original request will be used for the redirect. -// The value must be between 1 and 1024 characters. -func (o RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput) PathRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleUrlRedirect) *string { +// The path that will be used in the redirect response instead of the one that was +// supplied in the request. pathRedirect cannot be supplied together with +// prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the +// original request will be used for the redirect. The value must be between 1 and 1024 +// characters. +func (o RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput) PathRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherDefaultUrlRedirect) *string { if v == nil { return nil } @@ -71451,14 +71169,13 @@ func (o RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput) PathRedirect() pulu }).(pulumi.StringPtrOutput) } -// The prefix that replaces the prefixMatch specified in the -// HttpRouteRuleMatch, retaining the remaining portion of the URL before -// redirecting the request. prefixRedirect cannot be supplied together with -// pathRedirect. Supply one alone or neither. If neither is supplied, the -// path of the original request will be used for the redirect. The value -// must be between 1 and 1024 characters. -func (o RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput) PrefixRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleUrlRedirect) *string { +// The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, +// retaining the remaining portion of the URL before redirecting the request. +// prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or +// neither. If neither is supplied, the path of the original request will be used for +// the redirect. The value must be between 1 and 1024 characters. +func (o RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput) PrefixRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherDefaultUrlRedirect) *string { if v == nil { return nil } @@ -71474,8 +71191,8 @@ func (o RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput) PrefixRedirect() pu // will be retained. // - PERMANENT_REDIRECT, which corresponds to 308. In this case, // the request method will be retained. -func (o RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput) RedirectResponseCode() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleUrlRedirect) *string { +func (o RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput) RedirectResponseCode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherDefaultUrlRedirect) *string { if v == nil { return nil } @@ -71483,12 +71200,12 @@ func (o RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput) RedirectResponseCod }).(pulumi.StringPtrOutput) } -// If set to true, any accompanying query portion of the original URL is removed -// prior to redirecting the request. If set to false, the query portion of the -// original URL is retained. +// If set to true, any accompanying query portion of the original URL is removed prior +// to redirecting the request. If set to false, the query portion of the original URL is +// retained. // This field is required to ensure an empty block is not set. The normal default value is false. -func (o RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput) StripQuery() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleUrlRedirect) *bool { +func (o RegionUrlMapPathMatcherDefaultUrlRedirectPtrOutput) StripQuery() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherDefaultUrlRedirect) *bool { if v == nil { return nil } @@ -71496,38 +71213,20 @@ func (o RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput) StripQuery() pulumi }).(pulumi.BoolPtrOutput) } -type RegionUrlMapPathMatcherRouteRule struct { - // Specifies changes to request and response headers that need to take effect for - // the selected backendService. The headerAction specified here are applied before - // the matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].r - // outeAction.weightedBackendService.backendServiceWeightAction[].headerAction - // Structure is documented below. - HeaderAction *RegionUrlMapPathMatcherRouteRuleHeaderAction `pulumi:"headerAction"` - // The rules for determining a match. - // Structure is documented below. - MatchRules []RegionUrlMapPathMatcherRouteRuleMatchRule `pulumi:"matchRules"` - // For routeRules within a given pathMatcher, priority determines the order - // in which load balancer will interpret routeRules. RouteRules are evaluated - // in order of priority, from the lowest to highest number. The priority of - // a rule decreases as its number increases (1, 2, 3, N+1). The first rule - // that matches the request is applied. - // You cannot configure two or more routeRules with the same priority. - // Priority for each rule must be set to a number between 0 and - // 2147483647 inclusive. - // Priority numbers can have gaps, which enable you to add or remove rules - // in the future without affecting the rest of the rules. For example, - // 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to which - // you could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the - // future without any impact on existing rules. - Priority int `pulumi:"priority"` - // In response to a matching matchRule, the load balancer performs advanced routing +type RegionUrlMapPathMatcherPathRule struct { + // The list of path patterns to match. Each must start with / and the only place a + // \* is allowed is at the end following a /. The string fed to the path matcher + // does not include any text after the first ? or #, and those chars are not + // allowed here. + Paths []string `pulumi:"paths"` + // In response to a matching path, the load balancer performs advanced routing // actions like URL rewrites, header transformations, etc. prior to forwarding the - // request to the selected backend. If routeAction specifies any + // request to the selected backend. If routeAction specifies any // weightedBackendServices, service must not be set. Conversely if service is set, // routeAction cannot contain any weightedBackendServices. Only one of routeAction // or urlRedirect must be set. // Structure is documented below. - RouteAction *RegionUrlMapPathMatcherRouteRuleRouteAction `pulumi:"routeAction"` + RouteAction *RegionUrlMapPathMatcherPathRuleRouteAction `pulumi:"routeAction"` // The region backend service resource to which traffic is // directed if this rule is matched. If routeAction is additionally specified, // advanced routing actions like URL Rewrites, etc. take effect prior to sending @@ -71536,56 +71235,38 @@ type RegionUrlMapPathMatcherRouteRule struct { // weightedBackendServices, service must not be specified. Only one of urlRedirect, // service or routeAction.weightedBackendService must be set. Service *string `pulumi:"service"` - // When this rule is matched, the request is redirected to a URL specified by - // urlRedirect. If urlRedirect is specified, service or routeAction must not be - // set. + // When a path pattern is matched, the request is redirected to a URL specified + // by urlRedirect. If urlRedirect is specified, service or routeAction must not + // be set. // Structure is documented below. - UrlRedirect *RegionUrlMapPathMatcherRouteRuleUrlRedirect `pulumi:"urlRedirect"` + UrlRedirect *RegionUrlMapPathMatcherPathRuleUrlRedirect `pulumi:"urlRedirect"` } -// RegionUrlMapPathMatcherRouteRuleInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleArgs and RegionUrlMapPathMatcherRouteRuleOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleInput` via: +// RegionUrlMapPathMatcherPathRuleInput is an input type that accepts RegionUrlMapPathMatcherPathRuleArgs and RegionUrlMapPathMatcherPathRuleOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleInput` via: // -// RegionUrlMapPathMatcherRouteRuleArgs{...} -type RegionUrlMapPathMatcherRouteRuleInput interface { +// RegionUrlMapPathMatcherPathRuleArgs{...} +type RegionUrlMapPathMatcherPathRuleInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleOutput() RegionUrlMapPathMatcherRouteRuleOutput - ToRegionUrlMapPathMatcherRouteRuleOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleOutput + ToRegionUrlMapPathMatcherPathRuleOutput() RegionUrlMapPathMatcherPathRuleOutput + ToRegionUrlMapPathMatcherPathRuleOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleOutput } -type RegionUrlMapPathMatcherRouteRuleArgs struct { - // Specifies changes to request and response headers that need to take effect for - // the selected backendService. The headerAction specified here are applied before - // the matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].r - // outeAction.weightedBackendService.backendServiceWeightAction[].headerAction - // Structure is documented below. - HeaderAction RegionUrlMapPathMatcherRouteRuleHeaderActionPtrInput `pulumi:"headerAction"` - // The rules for determining a match. - // Structure is documented below. - MatchRules RegionUrlMapPathMatcherRouteRuleMatchRuleArrayInput `pulumi:"matchRules"` - // For routeRules within a given pathMatcher, priority determines the order - // in which load balancer will interpret routeRules. RouteRules are evaluated - // in order of priority, from the lowest to highest number. The priority of - // a rule decreases as its number increases (1, 2, 3, N+1). The first rule - // that matches the request is applied. - // You cannot configure two or more routeRules with the same priority. - // Priority for each rule must be set to a number between 0 and - // 2147483647 inclusive. - // Priority numbers can have gaps, which enable you to add or remove rules - // in the future without affecting the rest of the rules. For example, - // 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to which - // you could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the - // future without any impact on existing rules. - Priority pulumi.IntInput `pulumi:"priority"` - // In response to a matching matchRule, the load balancer performs advanced routing +type RegionUrlMapPathMatcherPathRuleArgs struct { + // The list of path patterns to match. Each must start with / and the only place a + // \* is allowed is at the end following a /. The string fed to the path matcher + // does not include any text after the first ? or #, and those chars are not + // allowed here. + Paths pulumi.StringArrayInput `pulumi:"paths"` + // In response to a matching path, the load balancer performs advanced routing // actions like URL rewrites, header transformations, etc. prior to forwarding the - // request to the selected backend. If routeAction specifies any + // request to the selected backend. If routeAction specifies any // weightedBackendServices, service must not be set. Conversely if service is set, // routeAction cannot contain any weightedBackendServices. Only one of routeAction // or urlRedirect must be set. // Structure is documented below. - RouteAction RegionUrlMapPathMatcherRouteRuleRouteActionPtrInput `pulumi:"routeAction"` + RouteAction RegionUrlMapPathMatcherPathRuleRouteActionPtrInput `pulumi:"routeAction"` // The region backend service resource to which traffic is // directed if this rule is matched. If routeAction is additionally specified, // advanced routing actions like URL Rewrites, etc. take effect prior to sending @@ -71594,111 +71275,83 @@ type RegionUrlMapPathMatcherRouteRuleArgs struct { // weightedBackendServices, service must not be specified. Only one of urlRedirect, // service or routeAction.weightedBackendService must be set. Service pulumi.StringPtrInput `pulumi:"service"` - // When this rule is matched, the request is redirected to a URL specified by - // urlRedirect. If urlRedirect is specified, service or routeAction must not be - // set. + // When a path pattern is matched, the request is redirected to a URL specified + // by urlRedirect. If urlRedirect is specified, service or routeAction must not + // be set. // Structure is documented below. - UrlRedirect RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrInput `pulumi:"urlRedirect"` + UrlRedirect RegionUrlMapPathMatcherPathRuleUrlRedirectPtrInput `pulumi:"urlRedirect"` } -func (RegionUrlMapPathMatcherRouteRuleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRule)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherPathRule)(nil)).Elem() } -func (i RegionUrlMapPathMatcherRouteRuleArgs) ToRegionUrlMapPathMatcherRouteRuleOutput() RegionUrlMapPathMatcherRouteRuleOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherPathRuleArgs) ToRegionUrlMapPathMatcherPathRuleOutput() RegionUrlMapPathMatcherPathRuleOutput { + return i.ToRegionUrlMapPathMatcherPathRuleOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherRouteRuleArgs) ToRegionUrlMapPathMatcherRouteRuleOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleOutput) +func (i RegionUrlMapPathMatcherPathRuleArgs) ToRegionUrlMapPathMatcherPathRuleOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleOutput) } -// RegionUrlMapPathMatcherRouteRuleArrayInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleArray and RegionUrlMapPathMatcherRouteRuleArrayOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleArrayInput` via: +// RegionUrlMapPathMatcherPathRuleArrayInput is an input type that accepts RegionUrlMapPathMatcherPathRuleArray and RegionUrlMapPathMatcherPathRuleArrayOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleArrayInput` via: // -// RegionUrlMapPathMatcherRouteRuleArray{ RegionUrlMapPathMatcherRouteRuleArgs{...} } -type RegionUrlMapPathMatcherRouteRuleArrayInput interface { +// RegionUrlMapPathMatcherPathRuleArray{ RegionUrlMapPathMatcherPathRuleArgs{...} } +type RegionUrlMapPathMatcherPathRuleArrayInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleArrayOutput() RegionUrlMapPathMatcherRouteRuleArrayOutput - ToRegionUrlMapPathMatcherRouteRuleArrayOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleArrayOutput + ToRegionUrlMapPathMatcherPathRuleArrayOutput() RegionUrlMapPathMatcherPathRuleArrayOutput + ToRegionUrlMapPathMatcherPathRuleArrayOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleArrayOutput } -type RegionUrlMapPathMatcherRouteRuleArray []RegionUrlMapPathMatcherRouteRuleInput +type RegionUrlMapPathMatcherPathRuleArray []RegionUrlMapPathMatcherPathRuleInput -func (RegionUrlMapPathMatcherRouteRuleArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRule)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapPathMatcherPathRule)(nil)).Elem() } -func (i RegionUrlMapPathMatcherRouteRuleArray) ToRegionUrlMapPathMatcherRouteRuleArrayOutput() RegionUrlMapPathMatcherRouteRuleArrayOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleArrayOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherPathRuleArray) ToRegionUrlMapPathMatcherPathRuleArrayOutput() RegionUrlMapPathMatcherPathRuleArrayOutput { + return i.ToRegionUrlMapPathMatcherPathRuleArrayOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherRouteRuleArray) ToRegionUrlMapPathMatcherRouteRuleArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleArrayOutput) +func (i RegionUrlMapPathMatcherPathRuleArray) ToRegionUrlMapPathMatcherPathRuleArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleArrayOutput) } -type RegionUrlMapPathMatcherRouteRuleOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherPathRuleOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherRouteRuleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRule)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherPathRule)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleOutput) ToRegionUrlMapPathMatcherRouteRuleOutput() RegionUrlMapPathMatcherRouteRuleOutput { +func (o RegionUrlMapPathMatcherPathRuleOutput) ToRegionUrlMapPathMatcherPathRuleOutput() RegionUrlMapPathMatcherPathRuleOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleOutput) ToRegionUrlMapPathMatcherRouteRuleOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleOutput { +func (o RegionUrlMapPathMatcherPathRuleOutput) ToRegionUrlMapPathMatcherPathRuleOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleOutput { return o } -// Specifies changes to request and response headers that need to take effect for -// the selected backendService. The headerAction specified here are applied before -// the matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].r -// outeAction.weightedBackendService.backendServiceWeightAction[].headerAction -// Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleOutput) HeaderAction() RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRule) *RegionUrlMapPathMatcherRouteRuleHeaderAction { - return v.HeaderAction - }).(RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput) -} - -// The rules for determining a match. -// Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleOutput) MatchRules() RegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRule) []RegionUrlMapPathMatcherRouteRuleMatchRule { - return v.MatchRules - }).(RegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput) -} - -// For routeRules within a given pathMatcher, priority determines the order -// in which load balancer will interpret routeRules. RouteRules are evaluated -// in order of priority, from the lowest to highest number. The priority of -// a rule decreases as its number increases (1, 2, 3, N+1). The first rule -// that matches the request is applied. -// You cannot configure two or more routeRules with the same priority. -// Priority for each rule must be set to a number between 0 and -// 2147483647 inclusive. -// Priority numbers can have gaps, which enable you to add or remove rules -// in the future without affecting the rest of the rules. For example, -// 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to which -// you could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the -// future without any impact on existing rules. -func (o RegionUrlMapPathMatcherRouteRuleOutput) Priority() pulumi.IntOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRule) int { return v.Priority }).(pulumi.IntOutput) +// The list of path patterns to match. Each must start with / and the only place a +// \* is allowed is at the end following a /. The string fed to the path matcher +// does not include any text after the first ? or #, and those chars are not +// allowed here. +func (o RegionUrlMapPathMatcherPathRuleOutput) Paths() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRule) []string { return v.Paths }).(pulumi.StringArrayOutput) } -// In response to a matching matchRule, the load balancer performs advanced routing +// In response to a matching path, the load balancer performs advanced routing // actions like URL rewrites, header transformations, etc. prior to forwarding the -// request to the selected backend. If routeAction specifies any +// request to the selected backend. If routeAction specifies any // weightedBackendServices, service must not be set. Conversely if service is set, // routeAction cannot contain any weightedBackendServices. Only one of routeAction // or urlRedirect must be set. // Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleOutput) RouteAction() RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRule) *RegionUrlMapPathMatcherRouteRuleRouteAction { +func (o RegionUrlMapPathMatcherPathRuleOutput) RouteAction() RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRule) *RegionUrlMapPathMatcherPathRuleRouteAction { return v.RouteAction - }).(RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput) + }).(RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput) } // The region backend service resource to which traffic is @@ -71708,17887 +71361,17571 @@ func (o RegionUrlMapPathMatcherRouteRuleOutput) RouteAction() RegionUrlMapPathMa // contain any weightedBackendService s. Conversely, if routeAction specifies any // weightedBackendServices, service must not be specified. Only one of urlRedirect, // service or routeAction.weightedBackendService must be set. -func (o RegionUrlMapPathMatcherRouteRuleOutput) Service() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRule) *string { return v.Service }).(pulumi.StringPtrOutput) +func (o RegionUrlMapPathMatcherPathRuleOutput) Service() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRule) *string { return v.Service }).(pulumi.StringPtrOutput) } -// When this rule is matched, the request is redirected to a URL specified by -// urlRedirect. If urlRedirect is specified, service or routeAction must not be -// set. +// When a path pattern is matched, the request is redirected to a URL specified +// by urlRedirect. If urlRedirect is specified, service or routeAction must not +// be set. // Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleOutput) UrlRedirect() RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRule) *RegionUrlMapPathMatcherRouteRuleUrlRedirect { +func (o RegionUrlMapPathMatcherPathRuleOutput) UrlRedirect() RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRule) *RegionUrlMapPathMatcherPathRuleUrlRedirect { return v.UrlRedirect - }).(RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput) + }).(RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput) } -type RegionUrlMapPathMatcherRouteRuleArrayOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherPathRuleArrayOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherRouteRuleArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRule)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapPathMatcherPathRule)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleArrayOutput) ToRegionUrlMapPathMatcherRouteRuleArrayOutput() RegionUrlMapPathMatcherRouteRuleArrayOutput { +func (o RegionUrlMapPathMatcherPathRuleArrayOutput) ToRegionUrlMapPathMatcherPathRuleArrayOutput() RegionUrlMapPathMatcherPathRuleArrayOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleArrayOutput) ToRegionUrlMapPathMatcherRouteRuleArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleArrayOutput { +func (o RegionUrlMapPathMatcherPathRuleArrayOutput) ToRegionUrlMapPathMatcherPathRuleArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleArrayOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleArrayOutput) Index(i pulumi.IntInput) RegionUrlMapPathMatcherRouteRuleOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapPathMatcherRouteRule { - return vs[0].([]RegionUrlMapPathMatcherRouteRule)[vs[1].(int)] - }).(RegionUrlMapPathMatcherRouteRuleOutput) +func (o RegionUrlMapPathMatcherPathRuleArrayOutput) Index(i pulumi.IntInput) RegionUrlMapPathMatcherPathRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapPathMatcherPathRule { + return vs[0].([]RegionUrlMapPathMatcherPathRule)[vs[1].(int)] + }).(RegionUrlMapPathMatcherPathRuleOutput) } -type RegionUrlMapPathMatcherRouteRuleHeaderAction struct { - // Headers to add to a matching request before forwarding the request to the backendService. +type RegionUrlMapPathMatcherPathRuleRouteAction struct { + // The specification for allowing client side cross-origin requests. Please see W3C + // Recommendation for Cross Origin Resource Sharing // Structure is documented below. - RequestHeadersToAdds []RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd `pulumi:"requestHeadersToAdds"` - // A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. - RequestHeadersToRemoves []string `pulumi:"requestHeadersToRemoves"` - // Headers to add the response before sending the response back to the client. + CorsPolicy *RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy `pulumi:"corsPolicy"` + // The specification for fault injection introduced into traffic to test the + // resiliency of clients to backend service failure. As part of fault injection, + // when clients send requests to a backend service, delays can be introduced by + // Loadbalancer on a percentage of requests before sending those request to the + // backend service. Similarly requests from clients can be aborted by the + // Loadbalancer for a percentage of requests. timeout and retryPolicy will be + // ignored by clients that are configured with a fault_injection_policy. // Structure is documented below. - ResponseHeadersToAdds []RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd `pulumi:"responseHeadersToAdds"` - // A list of header names for headers that need to be removed from the response before sending the response back to the client. - ResponseHeadersToRemoves []string `pulumi:"responseHeadersToRemoves"` + FaultInjectionPolicy *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy `pulumi:"faultInjectionPolicy"` + // Specifies the policy on how requests intended for the route's backends are + // shadowed to a separate mirrored backend service. Loadbalancer does not wait for + // responses from the shadow service. Prior to sending traffic to the shadow + // service, the host / authority header is suffixed with -shadow. + // Structure is documented below. + RequestMirrorPolicy *RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy `pulumi:"requestMirrorPolicy"` + // Specifies the retry policy associated with this route. + // Structure is documented below. + RetryPolicy *RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy `pulumi:"retryPolicy"` + // Specifies the timeout for the selected route. Timeout is computed from the time + // the request is has been fully processed (i.e. end-of-stream) up until the + // response has been completely processed. Timeout includes all retries. If not + // specified, the default value is 15 seconds. + // Structure is documented below. + Timeout *RegionUrlMapPathMatcherPathRuleRouteActionTimeout `pulumi:"timeout"` + // The spec to modify the URL of the request, prior to forwarding the request to + // the matched service + // Structure is documented below. + UrlRewrite *RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite `pulumi:"urlRewrite"` + // A list of weighted backend services to send traffic to when a route match + // occurs. The weights determine the fraction of traffic that flows to their + // corresponding backend service. If all traffic needs to go to a single backend + // service, there must be one weightedBackendService with weight set to a non 0 + // number. Once a backendService is identified and before forwarding the request to + // the backend service, advanced routing actions like Url rewrites and header + // transformations are applied depending on additional settings specified in this + // HttpRouteAction. + // Structure is documented below. + WeightedBackendServices []RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendService `pulumi:"weightedBackendServices"` } -// RegionUrlMapPathMatcherRouteRuleHeaderActionInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleHeaderActionArgs and RegionUrlMapPathMatcherRouteRuleHeaderActionOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleHeaderActionInput` via: +// RegionUrlMapPathMatcherPathRuleRouteActionInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionArgs and RegionUrlMapPathMatcherPathRuleRouteActionOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionInput` via: // -// RegionUrlMapPathMatcherRouteRuleHeaderActionArgs{...} -type RegionUrlMapPathMatcherRouteRuleHeaderActionInput interface { +// RegionUrlMapPathMatcherPathRuleRouteActionArgs{...} +type RegionUrlMapPathMatcherPathRuleRouteActionInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleHeaderActionOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionOutput - ToRegionUrlMapPathMatcherRouteRuleHeaderActionOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionOutput() RegionUrlMapPathMatcherPathRuleRouteActionOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionOutput } -type RegionUrlMapPathMatcherRouteRuleHeaderActionArgs struct { - // Headers to add to a matching request before forwarding the request to the backendService. +type RegionUrlMapPathMatcherPathRuleRouteActionArgs struct { + // The specification for allowing client side cross-origin requests. Please see W3C + // Recommendation for Cross Origin Resource Sharing // Structure is documented below. - RequestHeadersToAdds RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayInput `pulumi:"requestHeadersToAdds"` - // A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. - RequestHeadersToRemoves pulumi.StringArrayInput `pulumi:"requestHeadersToRemoves"` - // Headers to add the response before sending the response back to the client. + CorsPolicy RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrInput `pulumi:"corsPolicy"` + // The specification for fault injection introduced into traffic to test the + // resiliency of clients to backend service failure. As part of fault injection, + // when clients send requests to a backend service, delays can be introduced by + // Loadbalancer on a percentage of requests before sending those request to the + // backend service. Similarly requests from clients can be aborted by the + // Loadbalancer for a percentage of requests. timeout and retryPolicy will be + // ignored by clients that are configured with a fault_injection_policy. // Structure is documented below. - ResponseHeadersToAdds RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayInput `pulumi:"responseHeadersToAdds"` - // A list of header names for headers that need to be removed from the response before sending the response back to the client. - ResponseHeadersToRemoves pulumi.StringArrayInput `pulumi:"responseHeadersToRemoves"` + FaultInjectionPolicy RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrInput `pulumi:"faultInjectionPolicy"` + // Specifies the policy on how requests intended for the route's backends are + // shadowed to a separate mirrored backend service. Loadbalancer does not wait for + // responses from the shadow service. Prior to sending traffic to the shadow + // service, the host / authority header is suffixed with -shadow. + // Structure is documented below. + RequestMirrorPolicy RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrInput `pulumi:"requestMirrorPolicy"` + // Specifies the retry policy associated with this route. + // Structure is documented below. + RetryPolicy RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrInput `pulumi:"retryPolicy"` + // Specifies the timeout for the selected route. Timeout is computed from the time + // the request is has been fully processed (i.e. end-of-stream) up until the + // response has been completely processed. Timeout includes all retries. If not + // specified, the default value is 15 seconds. + // Structure is documented below. + Timeout RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrInput `pulumi:"timeout"` + // The spec to modify the URL of the request, prior to forwarding the request to + // the matched service + // Structure is documented below. + UrlRewrite RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrInput `pulumi:"urlRewrite"` + // A list of weighted backend services to send traffic to when a route match + // occurs. The weights determine the fraction of traffic that flows to their + // corresponding backend service. If all traffic needs to go to a single backend + // service, there must be one weightedBackendService with weight set to a non 0 + // number. Once a backendService is identified and before forwarding the request to + // the backend service, advanced routing actions like Url rewrites and header + // transformations are applied depending on additional settings specified in this + // HttpRouteAction. + // Structure is documented below. + WeightedBackendServices RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayInput `pulumi:"weightedBackendServices"` } -func (RegionUrlMapPathMatcherRouteRuleHeaderActionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleHeaderAction)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleRouteActionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteAction)(nil)).Elem() } -func (i RegionUrlMapPathMatcherRouteRuleHeaderActionArgs) ToRegionUrlMapPathMatcherRouteRuleHeaderActionOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleHeaderActionOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherPathRuleRouteActionArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionOutput() RegionUrlMapPathMatcherPathRuleRouteActionOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherRouteRuleHeaderActionArgs) ToRegionUrlMapPathMatcherRouteRuleHeaderActionOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleHeaderActionOutput) +func (i RegionUrlMapPathMatcherPathRuleRouteActionArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionOutput) } -func (i RegionUrlMapPathMatcherRouteRuleHeaderActionArgs) ToRegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherPathRuleRouteActionArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionPtrOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherRouteRuleHeaderActionArgs) ToRegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleHeaderActionOutput).ToRegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutputWithContext(ctx) +func (i RegionUrlMapPathMatcherPathRuleRouteActionArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionOutput).ToRegionUrlMapPathMatcherPathRuleRouteActionPtrOutputWithContext(ctx) } -// RegionUrlMapPathMatcherRouteRuleHeaderActionPtrInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleHeaderActionArgs, RegionUrlMapPathMatcherRouteRuleHeaderActionPtr and RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleHeaderActionPtrInput` via: +// RegionUrlMapPathMatcherPathRuleRouteActionPtrInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionArgs, RegionUrlMapPathMatcherPathRuleRouteActionPtr and RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionPtrInput` via: // -// RegionUrlMapPathMatcherRouteRuleHeaderActionArgs{...} +// RegionUrlMapPathMatcherPathRuleRouteActionArgs{...} // // or: // // nil -type RegionUrlMapPathMatcherRouteRuleHeaderActionPtrInput interface { +type RegionUrlMapPathMatcherPathRuleRouteActionPtrInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput - ToRegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput } -type regionUrlMapPathMatcherRouteRuleHeaderActionPtrType RegionUrlMapPathMatcherRouteRuleHeaderActionArgs +type regionUrlMapPathMatcherPathRuleRouteActionPtrType RegionUrlMapPathMatcherPathRuleRouteActionArgs -func RegionUrlMapPathMatcherRouteRuleHeaderActionPtr(v *RegionUrlMapPathMatcherRouteRuleHeaderActionArgs) RegionUrlMapPathMatcherRouteRuleHeaderActionPtrInput { - return (*regionUrlMapPathMatcherRouteRuleHeaderActionPtrType)(v) +func RegionUrlMapPathMatcherPathRuleRouteActionPtr(v *RegionUrlMapPathMatcherPathRuleRouteActionArgs) RegionUrlMapPathMatcherPathRuleRouteActionPtrInput { + return (*regionUrlMapPathMatcherPathRuleRouteActionPtrType)(v) } -func (*regionUrlMapPathMatcherRouteRuleHeaderActionPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleHeaderAction)(nil)).Elem() +func (*regionUrlMapPathMatcherPathRuleRouteActionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteAction)(nil)).Elem() } -func (i *regionUrlMapPathMatcherRouteRuleHeaderActionPtrType) ToRegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutputWithContext(context.Background()) +func (i *regionUrlMapPathMatcherPathRuleRouteActionPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionPtrOutputWithContext(context.Background()) } -func (i *regionUrlMapPathMatcherRouteRuleHeaderActionPtrType) ToRegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput) +func (i *regionUrlMapPathMatcherPathRuleRouteActionPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput) } -type RegionUrlMapPathMatcherRouteRuleHeaderActionOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherPathRuleRouteActionOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherRouteRuleHeaderActionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleHeaderAction)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleRouteActionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteAction)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleHeaderActionOutput) ToRegionUrlMapPathMatcherRouteRuleHeaderActionOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionOutput() RegionUrlMapPathMatcherPathRuleRouteActionOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleHeaderActionOutput) ToRegionUrlMapPathMatcherRouteRuleHeaderActionOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleHeaderActionOutput) ToRegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput { - return o.ToRegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutputWithContext(context.Background()) +func (o RegionUrlMapPathMatcherPathRuleRouteActionOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput { + return o.ToRegionUrlMapPathMatcherPathRuleRouteActionPtrOutputWithContext(context.Background()) } -func (o RegionUrlMapPathMatcherRouteRuleHeaderActionOutput) ToRegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherRouteRuleHeaderAction) *RegionUrlMapPathMatcherRouteRuleHeaderAction { +func (o RegionUrlMapPathMatcherPathRuleRouteActionOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherPathRuleRouteAction) *RegionUrlMapPathMatcherPathRuleRouteAction { return &v - }).(RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput) + }).(RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput) } -// Headers to add to a matching request before forwarding the request to the backendService. +// The specification for allowing client side cross-origin requests. Please see W3C +// Recommendation for Cross Origin Resource Sharing // Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleHeaderActionOutput) RequestHeadersToAdds() RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleHeaderAction) []RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd { - return v.RequestHeadersToAdds - }).(RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput) +func (o RegionUrlMapPathMatcherPathRuleRouteActionOutput) CorsPolicy() RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteAction) *RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy { + return v.CorsPolicy + }).(RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput) } -// A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. -func (o RegionUrlMapPathMatcherRouteRuleHeaderActionOutput) RequestHeadersToRemoves() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleHeaderAction) []string { return v.RequestHeadersToRemoves }).(pulumi.StringArrayOutput) +// The specification for fault injection introduced into traffic to test the +// resiliency of clients to backend service failure. As part of fault injection, +// when clients send requests to a backend service, delays can be introduced by +// Loadbalancer on a percentage of requests before sending those request to the +// backend service. Similarly requests from clients can be aborted by the +// Loadbalancer for a percentage of requests. timeout and retryPolicy will be +// ignored by clients that are configured with a fault_injection_policy. +// Structure is documented below. +func (o RegionUrlMapPathMatcherPathRuleRouteActionOutput) FaultInjectionPolicy() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteAction) *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy { + return v.FaultInjectionPolicy + }).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput) } -// Headers to add the response before sending the response back to the client. +// Specifies the policy on how requests intended for the route's backends are +// shadowed to a separate mirrored backend service. Loadbalancer does not wait for +// responses from the shadow service. Prior to sending traffic to the shadow +// service, the host / authority header is suffixed with -shadow. // Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleHeaderActionOutput) ResponseHeadersToAdds() RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleHeaderAction) []RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd { - return v.ResponseHeadersToAdds - }).(RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput) +func (o RegionUrlMapPathMatcherPathRuleRouteActionOutput) RequestMirrorPolicy() RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteAction) *RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy { + return v.RequestMirrorPolicy + }).(RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput) } -// A list of header names for headers that need to be removed from the response before sending the response back to the client. -func (o RegionUrlMapPathMatcherRouteRuleHeaderActionOutput) ResponseHeadersToRemoves() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleHeaderAction) []string { return v.ResponseHeadersToRemoves }).(pulumi.StringArrayOutput) +// Specifies the retry policy associated with this route. +// Structure is documented below. +func (o RegionUrlMapPathMatcherPathRuleRouteActionOutput) RetryPolicy() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteAction) *RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy { + return v.RetryPolicy + }).(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput) } -type RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput struct{ *pulumi.OutputState } +// Specifies the timeout for the selected route. Timeout is computed from the time +// the request is has been fully processed (i.e. end-of-stream) up until the +// response has been completely processed. Timeout includes all retries. If not +// specified, the default value is 15 seconds. +// Structure is documented below. +func (o RegionUrlMapPathMatcherPathRuleRouteActionOutput) Timeout() RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteAction) *RegionUrlMapPathMatcherPathRuleRouteActionTimeout { + return v.Timeout + }).(RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput) +} -func (RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleHeaderAction)(nil)).Elem() +// The spec to modify the URL of the request, prior to forwarding the request to +// the matched service +// Structure is documented below. +func (o RegionUrlMapPathMatcherPathRuleRouteActionOutput) UrlRewrite() RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteAction) *RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite { + return v.UrlRewrite + }).(RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput) } -func (o RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput) ToRegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput { +// A list of weighted backend services to send traffic to when a route match +// occurs. The weights determine the fraction of traffic that flows to their +// corresponding backend service. If all traffic needs to go to a single backend +// service, there must be one weightedBackendService with weight set to a non 0 +// number. Once a backendService is identified and before forwarding the request to +// the backend service, advanced routing actions like Url rewrites and header +// transformations are applied depending on additional settings specified in this +// HttpRouteAction. +// Structure is documented below. +func (o RegionUrlMapPathMatcherPathRuleRouteActionOutput) WeightedBackendServices() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteAction) []RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendService { + return v.WeightedBackendServices + }).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput) +} + +type RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteAction)(nil)).Elem() +} + +func (o RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput) ToRegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput) Elem() RegionUrlMapPathMatcherRouteRuleHeaderActionOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleHeaderAction) RegionUrlMapPathMatcherRouteRuleHeaderAction { +func (o RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput) Elem() RegionUrlMapPathMatcherPathRuleRouteActionOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteAction) RegionUrlMapPathMatcherPathRuleRouteAction { if v != nil { return *v } - var ret RegionUrlMapPathMatcherRouteRuleHeaderAction + var ret RegionUrlMapPathMatcherPathRuleRouteAction return ret - }).(RegionUrlMapPathMatcherRouteRuleHeaderActionOutput) + }).(RegionUrlMapPathMatcherPathRuleRouteActionOutput) } -// Headers to add to a matching request before forwarding the request to the backendService. +// The specification for allowing client side cross-origin requests. Please see W3C +// Recommendation for Cross Origin Resource Sharing // Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput) RequestHeadersToAdds() RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleHeaderAction) []RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd { +func (o RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput) CorsPolicy() RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteAction) *RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy { if v == nil { return nil } - return v.RequestHeadersToAdds - }).(RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput) + return v.CorsPolicy + }).(RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput) } -// A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. -func (o RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput) RequestHeadersToRemoves() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleHeaderAction) []string { +// The specification for fault injection introduced into traffic to test the +// resiliency of clients to backend service failure. As part of fault injection, +// when clients send requests to a backend service, delays can be introduced by +// Loadbalancer on a percentage of requests before sending those request to the +// backend service. Similarly requests from clients can be aborted by the +// Loadbalancer for a percentage of requests. timeout and retryPolicy will be +// ignored by clients that are configured with a fault_injection_policy. +// Structure is documented below. +func (o RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput) FaultInjectionPolicy() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteAction) *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy { if v == nil { return nil } - return v.RequestHeadersToRemoves - }).(pulumi.StringArrayOutput) + return v.FaultInjectionPolicy + }).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput) } -// Headers to add the response before sending the response back to the client. +// Specifies the policy on how requests intended for the route's backends are +// shadowed to a separate mirrored backend service. Loadbalancer does not wait for +// responses from the shadow service. Prior to sending traffic to the shadow +// service, the host / authority header is suffixed with -shadow. // Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput) ResponseHeadersToAdds() RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleHeaderAction) []RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd { +func (o RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput) RequestMirrorPolicy() RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteAction) *RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy { if v == nil { return nil } - return v.ResponseHeadersToAdds - }).(RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput) + return v.RequestMirrorPolicy + }).(RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput) } -// A list of header names for headers that need to be removed from the response before sending the response back to the client. -func (o RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput) ResponseHeadersToRemoves() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleHeaderAction) []string { +// Specifies the retry policy associated with this route. +// Structure is documented below. +func (o RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput) RetryPolicy() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteAction) *RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy { if v == nil { return nil } - return v.ResponseHeadersToRemoves - }).(pulumi.StringArrayOutput) -} - -type RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd struct { - // The name of the header. - HeaderName string `pulumi:"headerName"` - // The value of the header to add. - HeaderValue string `pulumi:"headerValue"` - // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. - // The default value is false. - Replace bool `pulumi:"replace"` + return v.RetryPolicy + }).(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput) } -// RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArgs and RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddInput` via: -// -// RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArgs{...} -type RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddInput interface { - pulumi.Input - - ToRegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput - ToRegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput -} - -type RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArgs struct { - // The name of the header. - HeaderName pulumi.StringInput `pulumi:"headerName"` - // The value of the header to add. - HeaderValue pulumi.StringInput `pulumi:"headerValue"` - // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. - // The default value is false. - Replace pulumi.BoolInput `pulumi:"replace"` +// Specifies the timeout for the selected route. Timeout is computed from the time +// the request is has been fully processed (i.e. end-of-stream) up until the +// response has been completely processed. Timeout includes all retries. If not +// specified, the default value is 15 seconds. +// Structure is documented below. +func (o RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput) Timeout() RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteAction) *RegionUrlMapPathMatcherPathRuleRouteActionTimeout { + if v == nil { + return nil + } + return v.Timeout + }).(RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput) } -func (RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd)(nil)).Elem() +// The spec to modify the URL of the request, prior to forwarding the request to +// the matched service +// Structure is documented below. +func (o RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput) UrlRewrite() RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteAction) *RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite { + if v == nil { + return nil + } + return v.UrlRewrite + }).(RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput) } -func (i RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArgs) ToRegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutputWithContext(context.Background()) +// A list of weighted backend services to send traffic to when a route match +// occurs. The weights determine the fraction of traffic that flows to their +// corresponding backend service. If all traffic needs to go to a single backend +// service, there must be one weightedBackendService with weight set to a non 0 +// number. Once a backendService is identified and before forwarding the request to +// the backend service, advanced routing actions like Url rewrites and header +// transformations are applied depending on additional settings specified in this +// HttpRouteAction. +// Structure is documented below. +func (o RegionUrlMapPathMatcherPathRuleRouteActionPtrOutput) WeightedBackendServices() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteAction) []RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendService { + if v == nil { + return nil + } + return v.WeightedBackendServices + }).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput) } -func (i RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArgs) ToRegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput) +type RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy struct { + // In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. + // Default is false. + AllowCredentials *bool `pulumi:"allowCredentials"` + // Specifies the content for the Access-Control-Allow-Headers header. + AllowHeaders []string `pulumi:"allowHeaders"` + // Specifies the content for the Access-Control-Allow-Methods header. + AllowMethods []string `pulumi:"allowMethods"` + // Specifies the regualar expression patterns that match allowed origins. For regular expression grammar + // please see en.cppreference.com/w/cpp/regex/ecmascript + // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. + AllowOriginRegexes []string `pulumi:"allowOriginRegexes"` + // Specifies the list of origins that will be allowed to do CORS requests. + // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. + AllowOrigins []string `pulumi:"allowOrigins"` + // If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. + Disabled bool `pulumi:"disabled"` + // Specifies the content for the Access-Control-Expose-Headers header. + ExposeHeaders []string `pulumi:"exposeHeaders"` + // Specifies how long results of a preflight request can be cached in seconds. + // This translates to the Access-Control-Max-Age header. + MaxAge *int `pulumi:"maxAge"` } -// RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArray and RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayInput` via: +// RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyArgs and RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyInput` via: // -// RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArray{ RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArgs{...} } -type RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayInput interface { +// RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyArgs{...} +type RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput - ToRegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput() RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput } -type RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArray []RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddInput +type RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyArgs struct { + // In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. + // Default is false. + AllowCredentials pulumi.BoolPtrInput `pulumi:"allowCredentials"` + // Specifies the content for the Access-Control-Allow-Headers header. + AllowHeaders pulumi.StringArrayInput `pulumi:"allowHeaders"` + // Specifies the content for the Access-Control-Allow-Methods header. + AllowMethods pulumi.StringArrayInput `pulumi:"allowMethods"` + // Specifies the regualar expression patterns that match allowed origins. For regular expression grammar + // please see en.cppreference.com/w/cpp/regex/ecmascript + // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. + AllowOriginRegexes pulumi.StringArrayInput `pulumi:"allowOriginRegexes"` + // Specifies the list of origins that will be allowed to do CORS requests. + // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. + AllowOrigins pulumi.StringArrayInput `pulumi:"allowOrigins"` + // If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. + Disabled pulumi.BoolInput `pulumi:"disabled"` + // Specifies the content for the Access-Control-Expose-Headers header. + ExposeHeaders pulumi.StringArrayInput `pulumi:"exposeHeaders"` + // Specifies how long results of a preflight request can be cached in seconds. + // This translates to the Access-Control-Max-Age header. + MaxAge pulumi.IntPtrInput `pulumi:"maxAge"` +} -func (RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy)(nil)).Elem() } -func (i RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArray) ToRegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput() RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArray) ToRegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput) +func (i RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput) } -type RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput struct{ *pulumi.OutputState } +func (i RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutputWithContext(context.Background()) +} -func (RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd)(nil)).Elem() +func (i RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput).ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutputWithContext(ctx) } -func (o RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput) ToRegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput { - return o +// RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyArgs, RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtr and RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrInput` via: +// +// RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyArgs{...} +// +// or: +// +// nil +type RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrInput interface { + pulumi.Input + + ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput } -func (o RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput) ToRegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput { - return o +type regionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrType RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyArgs + +func RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtr(v *RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyArgs) RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrInput { + return (*regionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrType)(v) } -// The name of the header. -func (o RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput) HeaderName() pulumi.StringOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd) string { return v.HeaderName }).(pulumi.StringOutput) +func (*regionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy)(nil)).Elem() } -// The value of the header to add. -func (o RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput) HeaderValue() pulumi.StringOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd) string { return v.HeaderValue }).(pulumi.StringOutput) +func (i *regionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutputWithContext(context.Background()) } -// If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. -// The default value is false. -func (o RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput) Replace() pulumi.BoolOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd) bool { return v.Replace }).(pulumi.BoolOutput) +func (i *regionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput) } -type RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput) ToRegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput() RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput) ToRegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput) Index(i pulumi.IntInput) RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd { - return vs[0].([]RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd)[vs[1].(int)] - }).(RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput) -} - -type RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd struct { - // The name of the header. - HeaderName string `pulumi:"headerName"` - // The value of the header to add. - HeaderValue string `pulumi:"headerValue"` - // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. - // The default value is false. - Replace bool `pulumi:"replace"` +func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput { + return o.ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutputWithContext(context.Background()) } -// RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArgs and RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddInput` via: -// -// RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArgs{...} -type RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddInput interface { - pulumi.Input - - ToRegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput - ToRegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput +func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) *RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy { + return &v + }).(RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput) } -type RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArgs struct { - // The name of the header. - HeaderName pulumi.StringInput `pulumi:"headerName"` - // The value of the header to add. - HeaderValue pulumi.StringInput `pulumi:"headerValue"` - // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. - // The default value is false. - Replace pulumi.BoolInput `pulumi:"replace"` +// In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. +// Default is false. +func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput) AllowCredentials() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) *bool { return v.AllowCredentials }).(pulumi.BoolPtrOutput) } -func (RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd)(nil)).Elem() +// Specifies the content for the Access-Control-Allow-Headers header. +func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput) AllowHeaders() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) []string { return v.AllowHeaders }).(pulumi.StringArrayOutput) } -func (i RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArgs) ToRegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutputWithContext(context.Background()) +// Specifies the content for the Access-Control-Allow-Methods header. +func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput) AllowMethods() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) []string { return v.AllowMethods }).(pulumi.StringArrayOutput) } -func (i RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArgs) ToRegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput) +// Specifies the regualar expression patterns that match allowed origins. For regular expression grammar +// please see en.cppreference.com/w/cpp/regex/ecmascript +// An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. +func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput) AllowOriginRegexes() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) []string { return v.AllowOriginRegexes }).(pulumi.StringArrayOutput) } -// RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArray and RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayInput` via: -// -// RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArray{ RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArgs{...} } -type RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayInput interface { - pulumi.Input - - ToRegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput - ToRegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput +// Specifies the list of origins that will be allowed to do CORS requests. +// An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. +func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput) AllowOrigins() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) []string { return v.AllowOrigins }).(pulumi.StringArrayOutput) } -type RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArray []RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddInput - -func (RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd)(nil)).Elem() +// If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. +func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput) Disabled() pulumi.BoolOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) bool { return v.Disabled }).(pulumi.BoolOutput) } -func (i RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArray) ToRegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutputWithContext(context.Background()) +// Specifies the content for the Access-Control-Expose-Headers header. +func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput) ExposeHeaders() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) []string { return v.ExposeHeaders }).(pulumi.StringArrayOutput) } -func (i RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArray) ToRegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput) +// Specifies how long results of a preflight request can be cached in seconds. +// This translates to the Access-Control-Max-Age header. +func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput) MaxAge() pulumi.IntPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) *int { return v.MaxAge }).(pulumi.IntPtrOutput) } -type RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput) ToRegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput) ToRegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput { return o } -// The name of the header. -func (o RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput) HeaderName() pulumi.StringOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd) string { return v.HeaderName }).(pulumi.StringOutput) +func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput) Elem() RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy { + if v != nil { + return *v + } + var ret RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy + return ret + }).(RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyOutput) } -// The value of the header to add. -func (o RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput) HeaderValue() pulumi.StringOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd) string { return v.HeaderValue }).(pulumi.StringOutput) +// In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. +// Default is false. +func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput) AllowCredentials() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) *bool { + if v == nil { + return nil + } + return v.AllowCredentials + }).(pulumi.BoolPtrOutput) } -// If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. -// The default value is false. -func (o RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput) Replace() pulumi.BoolOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd) bool { return v.Replace }).(pulumi.BoolOutput) +// Specifies the content for the Access-Control-Allow-Headers header. +func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput) AllowHeaders() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) []string { + if v == nil { + return nil + } + return v.AllowHeaders + }).(pulumi.StringArrayOutput) } -type RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput struct{ *pulumi.OutputState } +// Specifies the content for the Access-Control-Allow-Methods header. +func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput) AllowMethods() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) []string { + if v == nil { + return nil + } + return v.AllowMethods + }).(pulumi.StringArrayOutput) +} -func (RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd)(nil)).Elem() +// Specifies the regualar expression patterns that match allowed origins. For regular expression grammar +// please see en.cppreference.com/w/cpp/regex/ecmascript +// An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. +func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput) AllowOriginRegexes() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) []string { + if v == nil { + return nil + } + return v.AllowOriginRegexes + }).(pulumi.StringArrayOutput) } -func (o RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput) ToRegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput { - return o +// Specifies the list of origins that will be allowed to do CORS requests. +// An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. +func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput) AllowOrigins() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) []string { + if v == nil { + return nil + } + return v.AllowOrigins + }).(pulumi.StringArrayOutput) } -func (o RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput) ToRegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput { - return o +// If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. +func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput) Disabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) *bool { + if v == nil { + return nil + } + return &v.Disabled + }).(pulumi.BoolPtrOutput) } -func (o RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput) Index(i pulumi.IntInput) RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd { - return vs[0].([]RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd)[vs[1].(int)] - }).(RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput) +// Specifies the content for the Access-Control-Expose-Headers header. +func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput) ExposeHeaders() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) []string { + if v == nil { + return nil + } + return v.ExposeHeaders + }).(pulumi.StringArrayOutput) } -type RegionUrlMapPathMatcherRouteRuleMatchRule struct { - // For satisfying the matchRule condition, the path of the request must exactly - // match the value specified in fullPathMatch after removing any query parameters - // and anchor that may be part of the original URL. FullPathMatch must be between 1 - // and 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must - // be specified. - FullPathMatch *string `pulumi:"fullPathMatch"` - // Specifies a list of header match criteria, all of which must match corresponding - // headers in the request. - // Structure is documented below. - HeaderMatches []RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch `pulumi:"headerMatches"` - // Specifies that prefixMatch and fullPathMatch matches are case sensitive. - // Defaults to false. - IgnoreCase *bool `pulumi:"ignoreCase"` - // Opaque filter criteria used by Loadbalancer to restrict routing configuration to - // a limited set xDS compliant clients. In their xDS requests to Loadbalancer, xDS - // clients present node metadata. If a match takes place, the relevant routing - // configuration is made available to those proxies. For each metadataFilter in - // this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the - // filterLabels must match the corresponding label provided in the metadata. If its - // filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match - // with corresponding labels in the provided metadata. metadataFilters specified - // here can be overrides those specified in ForwardingRule that refers to this - // UrlMap. metadataFilters only applies to Loadbalancers that have their - // loadBalancingScheme set to INTERNAL_SELF_MANAGED. +// Specifies how long results of a preflight request can be cached in seconds. +// This translates to the Access-Control-Max-Age header. +func (o RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicyPtrOutput) MaxAge() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy) *int { + if v == nil { + return nil + } + return v.MaxAge + }).(pulumi.IntPtrOutput) +} + +type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy struct { + // The specification for how client requests are aborted as part of fault injection. // Structure is documented below. - MetadataFilters []RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilter `pulumi:"metadataFilters"` - // For satisfying the matchRule condition, the path of the request - // must match the wildcard pattern specified in pathTemplateMatch - // after removing any query parameters and anchor that may be part - // of the original URL. - // pathTemplateMatch must be between 1 and 255 characters - // (inclusive). The pattern specified by pathTemplateMatch may - // have at most 5 wildcard operators and at most 5 variable - // captures in total. - PathTemplateMatch *string `pulumi:"pathTemplateMatch"` - // For satisfying the matchRule condition, the request's path must begin with the - // specified prefixMatch. prefixMatch must begin with a /. The value must be - // between 1 and 1024 characters. Only one of prefixMatch, fullPathMatch or - // regexMatch must be specified. - PrefixMatch *string `pulumi:"prefixMatch"` - // Specifies a list of query parameter match criteria, all of which must match - // corresponding query parameters in the request. + Abort *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort `pulumi:"abort"` + // The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. // Structure is documented below. - QueryParameterMatches []RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatch `pulumi:"queryParameterMatches"` - // For satisfying the matchRule condition, the path of the request must satisfy the - // regular expression specified in regexMatch after removing any query parameters - // and anchor supplied with the original URL. For regular expression grammar please - // see en.cppreference.com/w/cpp/regex/ecmascript Only one of prefixMatch, - // fullPathMatch or regexMatch must be specified. - RegexMatch *string `pulumi:"regexMatch"` + Delay *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay `pulumi:"delay"` } -// RegionUrlMapPathMatcherRouteRuleMatchRuleInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleMatchRuleArgs and RegionUrlMapPathMatcherRouteRuleMatchRuleOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleMatchRuleInput` via: +// RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs and RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyInput` via: // -// RegionUrlMapPathMatcherRouteRuleMatchRuleArgs{...} -type RegionUrlMapPathMatcherRouteRuleMatchRuleInput interface { +// RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs{...} +type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleMatchRuleOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleOutput - ToRegionUrlMapPathMatcherRouteRuleMatchRuleOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput } -type RegionUrlMapPathMatcherRouteRuleMatchRuleArgs struct { - // For satisfying the matchRule condition, the path of the request must exactly - // match the value specified in fullPathMatch after removing any query parameters - // and anchor that may be part of the original URL. FullPathMatch must be between 1 - // and 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must - // be specified. - FullPathMatch pulumi.StringPtrInput `pulumi:"fullPathMatch"` - // Specifies a list of header match criteria, all of which must match corresponding - // headers in the request. - // Structure is documented below. - HeaderMatches RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayInput `pulumi:"headerMatches"` - // Specifies that prefixMatch and fullPathMatch matches are case sensitive. - // Defaults to false. - IgnoreCase pulumi.BoolPtrInput `pulumi:"ignoreCase"` - // Opaque filter criteria used by Loadbalancer to restrict routing configuration to - // a limited set xDS compliant clients. In their xDS requests to Loadbalancer, xDS - // clients present node metadata. If a match takes place, the relevant routing - // configuration is made available to those proxies. For each metadataFilter in - // this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the - // filterLabels must match the corresponding label provided in the metadata. If its - // filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match - // with corresponding labels in the provided metadata. metadataFilters specified - // here can be overrides those specified in ForwardingRule that refers to this - // UrlMap. metadataFilters only applies to Loadbalancers that have their - // loadBalancingScheme set to INTERNAL_SELF_MANAGED. +type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs struct { + // The specification for how client requests are aborted as part of fault injection. // Structure is documented below. - MetadataFilters RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayInput `pulumi:"metadataFilters"` - // For satisfying the matchRule condition, the path of the request - // must match the wildcard pattern specified in pathTemplateMatch - // after removing any query parameters and anchor that may be part - // of the original URL. - // pathTemplateMatch must be between 1 and 255 characters - // (inclusive). The pattern specified by pathTemplateMatch may - // have at most 5 wildcard operators and at most 5 variable - // captures in total. - PathTemplateMatch pulumi.StringPtrInput `pulumi:"pathTemplateMatch"` - // For satisfying the matchRule condition, the request's path must begin with the - // specified prefixMatch. prefixMatch must begin with a /. The value must be - // between 1 and 1024 characters. Only one of prefixMatch, fullPathMatch or - // regexMatch must be specified. - PrefixMatch pulumi.StringPtrInput `pulumi:"prefixMatch"` - // Specifies a list of query parameter match criteria, all of which must match - // corresponding query parameters in the request. + Abort RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrInput `pulumi:"abort"` + // The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. // Structure is documented below. - QueryParameterMatches RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayInput `pulumi:"queryParameterMatches"` - // For satisfying the matchRule condition, the path of the request must satisfy the - // regular expression specified in regexMatch after removing any query parameters - // and anchor supplied with the original URL. For regular expression grammar please - // see en.cppreference.com/w/cpp/regex/ecmascript Only one of prefixMatch, - // fullPathMatch or regexMatch must be specified. - RegexMatch pulumi.StringPtrInput `pulumi:"regexMatch"` + Delay RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrInput `pulumi:"delay"` } -func (RegionUrlMapPathMatcherRouteRuleMatchRuleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleMatchRule)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy)(nil)).Elem() } -func (i RegionUrlMapPathMatcherRouteRuleMatchRuleArgs) ToRegionUrlMapPathMatcherRouteRuleMatchRuleOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleMatchRuleOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherRouteRuleMatchRuleArgs) ToRegionUrlMapPathMatcherRouteRuleMatchRuleOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleMatchRuleOutput) -} +func (i RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput) +} -// RegionUrlMapPathMatcherRouteRuleMatchRuleArrayInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleMatchRuleArray and RegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleMatchRuleArrayInput` via: +func (i RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Background()) +} + +func (i RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput).ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx) +} + +// RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs, RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtr and RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrInput` via: // -// RegionUrlMapPathMatcherRouteRuleMatchRuleArray{ RegionUrlMapPathMatcherRouteRuleMatchRuleArgs{...} } -type RegionUrlMapPathMatcherRouteRuleMatchRuleArrayInput interface { +// RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs{...} +// +// or: +// +// nil +type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput - ToRegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput } -type RegionUrlMapPathMatcherRouteRuleMatchRuleArray []RegionUrlMapPathMatcherRouteRuleMatchRuleInput +type regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrType RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs -func (RegionUrlMapPathMatcherRouteRuleMatchRuleArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleMatchRule)(nil)).Elem() +func RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtr(v *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrInput { + return (*regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrType)(v) } -func (i RegionUrlMapPathMatcherRouteRuleMatchRuleArray) ToRegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutputWithContext(context.Background()) +func (*regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy)(nil)).Elem() } -func (i RegionUrlMapPathMatcherRouteRuleMatchRuleArray) ToRegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput) +func (i *regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Background()) } -type RegionUrlMapPathMatcherRouteRuleMatchRuleOutput struct{ *pulumi.OutputState } - -func (RegionUrlMapPathMatcherRouteRuleMatchRuleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleMatchRule)(nil)).Elem() +func (i *regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput) } -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleOutput { - return o +type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput { return o } -// For satisfying the matchRule condition, the path of the request must exactly -// match the value specified in fullPathMatch after removing any query parameters -// and anchor that may be part of the original URL. FullPathMatch must be between 1 -// and 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must -// be specified. -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleOutput) FullPathMatch() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRule) *string { return v.FullPathMatch }).(pulumi.StringPtrOutput) +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput { + return o } -// Specifies a list of header match criteria, all of which must match corresponding -// headers in the request. -// Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleOutput) HeaderMatches() RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRule) []RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch { - return v.HeaderMatches - }).(RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput) +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput { + return o.ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Background()) } -// Specifies that prefixMatch and fullPathMatch matches are case sensitive. -// Defaults to false. -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleOutput) IgnoreCase() pulumi.BoolPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRule) *bool { return v.IgnoreCase }).(pulumi.BoolPtrOutput) +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy) *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy { + return &v + }).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput) } -// Opaque filter criteria used by Loadbalancer to restrict routing configuration to -// a limited set xDS compliant clients. In their xDS requests to Loadbalancer, xDS -// clients present node metadata. If a match takes place, the relevant routing -// configuration is made available to those proxies. For each metadataFilter in -// this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the -// filterLabels must match the corresponding label provided in the metadata. If its -// filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match -// with corresponding labels in the provided metadata. metadataFilters specified -// here can be overrides those specified in ForwardingRule that refers to this -// UrlMap. metadataFilters only applies to Loadbalancers that have their -// loadBalancingScheme set to INTERNAL_SELF_MANAGED. +// The specification for how client requests are aborted as part of fault injection. // Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleOutput) MetadataFilters() RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRule) []RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilter { - return v.MetadataFilters - }).(RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput) +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput) Abort() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy) *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort { + return v.Abort + }).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput) } -// For satisfying the matchRule condition, the path of the request -// must match the wildcard pattern specified in pathTemplateMatch -// after removing any query parameters and anchor that may be part -// of the original URL. -// pathTemplateMatch must be between 1 and 255 characters -// (inclusive). The pattern specified by pathTemplateMatch may -// have at most 5 wildcard operators and at most 5 variable -// captures in total. -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleOutput) PathTemplateMatch() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRule) *string { return v.PathTemplateMatch }).(pulumi.StringPtrOutput) +// The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. +// Structure is documented below. +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput) Delay() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy) *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay { + return v.Delay + }).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput) } -// For satisfying the matchRule condition, the request's path must begin with the -// specified prefixMatch. prefixMatch must begin with a /. The value must be -// between 1 and 1024 characters. Only one of prefixMatch, fullPathMatch or -// regexMatch must be specified. -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleOutput) PrefixMatch() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRule) *string { return v.PrefixMatch }).(pulumi.StringPtrOutput) -} +type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput struct{ *pulumi.OutputState } -// Specifies a list of query parameter match criteria, all of which must match -// corresponding query parameters in the request. -// Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleOutput) QueryParameterMatches() RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRule) []RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatch { - return v.QueryParameterMatches - }).(RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput) +func (RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy)(nil)).Elem() } -// For satisfying the matchRule condition, the path of the request must satisfy the -// regular expression specified in regexMatch after removing any query parameters -// and anchor supplied with the original URL. For regular expression grammar please -// see en.cppreference.com/w/cpp/regex/ecmascript Only one of prefixMatch, -// fullPathMatch or regexMatch must be specified. -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleOutput) RegexMatch() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRule) *string { return v.RegexMatch }).(pulumi.StringPtrOutput) +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput { + return o } -type RegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput struct{ *pulumi.OutputState } - -func (RegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleMatchRule)(nil)).Elem() +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput { + return o } -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput { - return o +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput) Elem() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy { + if v != nil { + return *v + } + var ret RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy + return ret + }).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyOutput) } -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput { - return o +// The specification for how client requests are aborted as part of fault injection. +// Structure is documented below. +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput) Abort() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy) *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort { + if v == nil { + return nil + } + return v.Abort + }).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput) } -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput) Index(i pulumi.IntInput) RegionUrlMapPathMatcherRouteRuleMatchRuleOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapPathMatcherRouteRuleMatchRule { - return vs[0].([]RegionUrlMapPathMatcherRouteRuleMatchRule)[vs[1].(int)] - }).(RegionUrlMapPathMatcherRouteRuleMatchRuleOutput) +// The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. +// Structure is documented below. +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyPtrOutput) Delay() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy) *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay { + if v == nil { + return nil + } + return v.Delay + }).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput) } -type RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch struct { - // The value should exactly match contents of exactMatch. Only one of exactMatch, - // prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. - ExactMatch *string `pulumi:"exactMatch"` - // The name of the HTTP header to match. For matching against the HTTP request's - // authority, use a headerMatch with the header name ":authority". For matching a - // request's method, use the headerName ":method". - HeaderName string `pulumi:"headerName"` - // If set to false, the headerMatch is considered a match if the match criteria - // above are met. If set to true, the headerMatch is considered a match if the - // match criteria above are NOT met. Defaults to false. - InvertMatch *bool `pulumi:"invertMatch"` - // The value of the header must start with the contents of prefixMatch. Only one of - // exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch - // must be set. - PrefixMatch *string `pulumi:"prefixMatch"` - // A header with the contents of headerName must exist. The match takes place - // whether or not the request's header has a value or not. Only one of exactMatch, - // prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. - PresentMatch *bool `pulumi:"presentMatch"` - // The header value must be an integer and its value must be in the range specified - // in rangeMatch. If the header does not contain an integer, number or is empty, - // the match fails. For example for a range [-5, 0] - // * -3 will match - // * 0 will not match - // * 0.25 will not match - // * -3someString will not match. - // Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or - // rangeMatch must be set. - // Structure is documented below. - RangeMatch *RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch `pulumi:"rangeMatch"` - // The value of the header must match the regular expression specified in - // regexMatch. For regular expression grammar, please see: - // en.cppreference.com/w/cpp/regex/ecmascript For matching against a port - // specified in the HTTP request, use a headerMatch with headerName set to PORT and - // a regular expression that satisfies the RFC2616 Host header's port specifier. - // Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or - // rangeMatch must be set. - RegexMatch *string `pulumi:"regexMatch"` - // The value of the header must end with the contents of suffixMatch. Only one of - // exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch - // must be set. - SuffixMatch *string `pulumi:"suffixMatch"` +type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort struct { + // The HTTP status code used to abort the request. + // The value must be between 200 and 599 inclusive. + HttpStatus int `pulumi:"httpStatus"` + // The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. + // The value must be between 0.0 and 100.0 inclusive. + Percentage float64 `pulumi:"percentage"` } -// RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs and RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchInput` via: +// RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortArgs and RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortInput` via: // -// RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs{...} -type RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchInput interface { +// RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortArgs{...} +type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput - ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput } -type RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs struct { - // The value should exactly match contents of exactMatch. Only one of exactMatch, - // prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. - ExactMatch pulumi.StringPtrInput `pulumi:"exactMatch"` - // The name of the HTTP header to match. For matching against the HTTP request's - // authority, use a headerMatch with the header name ":authority". For matching a - // request's method, use the headerName ":method". - HeaderName pulumi.StringInput `pulumi:"headerName"` - // If set to false, the headerMatch is considered a match if the match criteria - // above are met. If set to true, the headerMatch is considered a match if the - // match criteria above are NOT met. Defaults to false. - InvertMatch pulumi.BoolPtrInput `pulumi:"invertMatch"` - // The value of the header must start with the contents of prefixMatch. Only one of - // exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch - // must be set. - PrefixMatch pulumi.StringPtrInput `pulumi:"prefixMatch"` - // A header with the contents of headerName must exist. The match takes place - // whether or not the request's header has a value or not. Only one of exactMatch, - // prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. - PresentMatch pulumi.BoolPtrInput `pulumi:"presentMatch"` - // The header value must be an integer and its value must be in the range specified - // in rangeMatch. If the header does not contain an integer, number or is empty, - // the match fails. For example for a range [-5, 0] - // * -3 will match - // * 0 will not match - // * 0.25 will not match - // * -3someString will not match. - // Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or - // rangeMatch must be set. - // Structure is documented below. - RangeMatch RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrInput `pulumi:"rangeMatch"` - // The value of the header must match the regular expression specified in - // regexMatch. For regular expression grammar, please see: - // en.cppreference.com/w/cpp/regex/ecmascript For matching against a port - // specified in the HTTP request, use a headerMatch with headerName set to PORT and - // a regular expression that satisfies the RFC2616 Host header's port specifier. - // Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or - // rangeMatch must be set. - RegexMatch pulumi.StringPtrInput `pulumi:"regexMatch"` - // The value of the header must end with the contents of suffixMatch. Only one of - // exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch - // must be set. - SuffixMatch pulumi.StringPtrInput `pulumi:"suffixMatch"` +type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortArgs struct { + // The HTTP status code used to abort the request. + // The value must be between 200 and 599 inclusive. + HttpStatus pulumi.IntInput `pulumi:"httpStatus"` + // The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. + // The value must be between 0.0 and 100.0 inclusive. + Percentage pulumi.Float64Input `pulumi:"percentage"` } -func (RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort)(nil)).Elem() } -func (i RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput) +func (i RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput) } -// RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArray and RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayInput` via: +func (i RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Background()) +} + +func (i RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput).ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx) +} + +// RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortArgs, RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtr and RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrInput` via: // -// RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArray{ RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs{...} } -type RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayInput interface { +// RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortArgs{...} +// +// or: +// +// nil +type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput - ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput } -type RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArray []RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchInput +type regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrType RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortArgs -func (RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch)(nil)).Elem() +func RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtr(v *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortArgs) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrInput { + return (*regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrType)(v) } -func (i RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArray) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutputWithContext(context.Background()) +func (*regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort)(nil)).Elem() } -func (i RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArray) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput) +func (i *regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Background()) } -type RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput struct{ *pulumi.OutputState } - -func (RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch)(nil)).Elem() +func (i *regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput) } -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput { - return o +type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput { return o } -// The value should exactly match contents of exactMatch. Only one of exactMatch, -// prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput) ExactMatch() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch) *string { return v.ExactMatch }).(pulumi.StringPtrOutput) +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput { + return o } -// The name of the HTTP header to match. For matching against the HTTP request's -// authority, use a headerMatch with the header name ":authority". For matching a -// request's method, use the headerName ":method". -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput) HeaderName() pulumi.StringOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch) string { return v.HeaderName }).(pulumi.StringOutput) +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput { + return o.ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Background()) } -// If set to false, the headerMatch is considered a match if the match criteria -// above are met. If set to true, the headerMatch is considered a match if the -// match criteria above are NOT met. Defaults to false. -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput) InvertMatch() pulumi.BoolPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch) *bool { return v.InvertMatch }).(pulumi.BoolPtrOutput) +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort) *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort { + return &v + }).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput) } -// The value of the header must start with the contents of prefixMatch. Only one of -// exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch -// must be set. -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput) PrefixMatch() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch) *string { return v.PrefixMatch }).(pulumi.StringPtrOutput) +// The HTTP status code used to abort the request. +// The value must be between 200 and 599 inclusive. +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput) HttpStatus() pulumi.IntOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort) int { return v.HttpStatus }).(pulumi.IntOutput) } -// A header with the contents of headerName must exist. The match takes place -// whether or not the request's header has a value or not. Only one of exactMatch, -// prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput) PresentMatch() pulumi.BoolPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch) *bool { return v.PresentMatch }).(pulumi.BoolPtrOutput) +// The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. +// The value must be between 0.0 and 100.0 inclusive. +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput) Percentage() pulumi.Float64Output { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort) float64 { + return v.Percentage + }).(pulumi.Float64Output) } -// The header value must be an integer and its value must be in the range specified -// in rangeMatch. If the header does not contain an integer, number or is empty, -// the match fails. For example for a range [-5, 0] -// - -3 will match -// - 0 will not match -// - 0.25 will not match -// - -3someString will not match. -// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or -// rangeMatch must be set. -// Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput) RangeMatch() RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch) *RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch { - return v.RangeMatch - }).(RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput) -} +type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput struct{ *pulumi.OutputState } -// The value of the header must match the regular expression specified in -// regexMatch. For regular expression grammar, please see: -// en.cppreference.com/w/cpp/regex/ecmascript For matching against a port -// specified in the HTTP request, use a headerMatch with headerName set to PORT and -// a regular expression that satisfies the RFC2616 Host header's port specifier. -// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or -// rangeMatch must be set. -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput) RegexMatch() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch) *string { return v.RegexMatch }).(pulumi.StringPtrOutput) +func (RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort)(nil)).Elem() } -// The value of the header must end with the contents of suffixMatch. Only one of -// exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch -// must be set. -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput) SuffixMatch() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch) *string { return v.SuffixMatch }).(pulumi.StringPtrOutput) +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput { + return o } -type RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput struct{ *pulumi.OutputState } - -func (RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch)(nil)).Elem() +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput { + return o } -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput { - return o +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput) Elem() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort { + if v != nil { + return *v + } + var ret RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort + return ret + }).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortOutput) } -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput { - return o +// The HTTP status code used to abort the request. +// The value must be between 200 and 599 inclusive. +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput) HttpStatus() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort) *int { + if v == nil { + return nil + } + return &v.HttpStatus + }).(pulumi.IntPtrOutput) } -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput) Index(i pulumi.IntInput) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch { - return vs[0].([]RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch)[vs[1].(int)] - }).(RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput) +// The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. +// The value must be between 0.0 and 100.0 inclusive. +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortPtrOutput) Percentage() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort) *float64 { + if v == nil { + return nil + } + return &v.Percentage + }).(pulumi.Float64PtrOutput) } -type RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch struct { - // The end of the range (exclusive). - RangeEnd int `pulumi:"rangeEnd"` - // The start of the range (inclusive). - RangeStart int `pulumi:"rangeStart"` +type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay struct { + // Specifies the value of the fixed delay interval. + // Structure is documented below. + FixedDelay RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay `pulumi:"fixedDelay"` + // The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. + // The value must be between 0.0 and 100.0 inclusive. + Percentage float64 `pulumi:"percentage"` } -// RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchArgs and RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchInput` via: +// RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgs and RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayInput` via: // -// RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchArgs{...} -type RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchInput interface { +// RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgs{...} +type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput - ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput } -type RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchArgs struct { - // The end of the range (exclusive). - RangeEnd pulumi.IntInput `pulumi:"rangeEnd"` - // The start of the range (inclusive). - RangeStart pulumi.IntInput `pulumi:"rangeStart"` +type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgs struct { + // Specifies the value of the fixed delay interval. + // Structure is documented below. + FixedDelay RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayInput `pulumi:"fixedDelay"` + // The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. + // The value must be between 0.0 and 100.0 inclusive. + Percentage pulumi.Float64Input `pulumi:"percentage"` } -func (RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay)(nil)).Elem() } -func (i RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchArgs) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchArgs) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput) +func (i RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput) } -func (i RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchArgs) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchArgs) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput).ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutputWithContext(ctx) +func (i RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput).ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx) } -// RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchArgs, RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtr and RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrInput` via: +// RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgs, RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtr and RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrInput` via: // -// RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchArgs{...} +// RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgs{...} // // or: // // nil -type RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrInput interface { +type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput - ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput } -type regionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrType RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchArgs +type regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrType RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgs -func RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtr(v *RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchArgs) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrInput { - return (*regionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrType)(v) +func RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtr(v *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgs) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrInput { + return (*regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrType)(v) } -func (*regionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch)(nil)).Elem() +func (*regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay)(nil)).Elem() } -func (i *regionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrType) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutputWithContext(context.Background()) +func (i *regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Background()) } -func (i *regionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrType) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput) +func (i *regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput) } -type RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput { - return o.ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutputWithContext(context.Background()) +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput { + return o.ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Background()) } -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch) *RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch { +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay) *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay { return &v - }).(RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput) + }).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput) } -// The end of the range (exclusive). -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput) RangeEnd() pulumi.IntOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch) int { return v.RangeEnd }).(pulumi.IntOutput) +// Specifies the value of the fixed delay interval. +// Structure is documented below. +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput) FixedDelay() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay { + return v.FixedDelay + }).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) } -// The start of the range (inclusive). -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput) RangeStart() pulumi.IntOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch) int { return v.RangeStart }).(pulumi.IntOutput) +// The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. +// The value must be between 0.0 and 100.0 inclusive. +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput) Percentage() pulumi.Float64Output { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay) float64 { + return v.Percentage + }).(pulumi.Float64Output) } -type RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput) Elem() RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch { +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput) Elem() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay { if v != nil { return *v } - var ret RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch + var ret RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay return ret - }).(RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput) + }).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayOutput) } -// The end of the range (exclusive). -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput) RangeEnd() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch) *int { +// Specifies the value of the fixed delay interval. +// Structure is documented below. +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput) FixedDelay() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay) *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay { if v == nil { return nil } - return &v.RangeEnd - }).(pulumi.IntPtrOutput) + return &v.FixedDelay + }).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) } -// The start of the range (inclusive). -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput) RangeStart() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch) *int { +// The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. +// The value must be between 0.0 and 100.0 inclusive. +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayPtrOutput) Percentage() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay) *float64 { if v == nil { return nil } - return &v.RangeStart - }).(pulumi.IntPtrOutput) + return &v.Percentage + }).(pulumi.Float64PtrOutput) } -type RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilter struct { - // The list of label value pairs that must match labels in the provided metadata - // based on filterMatchCriteria This list must not be empty and can have at the - // most 64 entries. - // Structure is documented below. - FilterLabels []RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabel `pulumi:"filterLabels"` - // Specifies how individual filterLabel matches within the list of filterLabels - // contribute towards the overall metadataFilter match. Supported values are: - // * MATCH_ANY: At least one of the filterLabels must have a matching label in the - // provided metadata. - // * MATCH_ALL: All filterLabels must have matching labels in - // the provided metadata. - // Possible values are: `MATCH_ALL`, `MATCH_ANY`. - FilterMatchCriteria string `pulumi:"filterMatchCriteria"` +type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay struct { + // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are + // represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. + Nanos *int `pulumi:"nanos"` + // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. + // Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years + Seconds string `pulumi:"seconds"` } -// RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArgs and RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterInput` via: +// RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs and RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayInput` via: // -// RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArgs{...} -type RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterInput interface { +// RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs{...} +type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput - ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput } -type RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArgs struct { - // The list of label value pairs that must match labels in the provided metadata - // based on filterMatchCriteria This list must not be empty and can have at the - // most 64 entries. - // Structure is documented below. - FilterLabels RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayInput `pulumi:"filterLabels"` - // Specifies how individual filterLabel matches within the list of filterLabels - // contribute towards the overall metadataFilter match. Supported values are: - // * MATCH_ANY: At least one of the filterLabels must have a matching label in the - // provided metadata. - // * MATCH_ALL: All filterLabels must have matching labels in - // the provided metadata. - // Possible values are: `MATCH_ALL`, `MATCH_ANY`. - FilterMatchCriteria pulumi.StringInput `pulumi:"filterMatchCriteria"` +type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs struct { + // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are + // represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. + Nanos pulumi.IntPtrInput `pulumi:"nanos"` + // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. + // Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years + Seconds pulumi.StringInput `pulumi:"seconds"` } -func (RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilter)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() } -func (i RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArgs) ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArgs) ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput) +func (i RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) } -// RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArray and RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayInput` via: +func (i RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Background()) +} + +func (i RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput).ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx) +} + +// RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs, RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtr and RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput` via: // -// RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArray{ RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArgs{...} } -type RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayInput interface { +// RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs{...} +// +// or: +// +// nil +type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput - ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput } -type RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArray []RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterInput +type regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrType RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs -func (RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilter)(nil)).Elem() +func RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtr(v *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput { + return (*regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrType)(v) } -func (i RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArray) ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutputWithContext(context.Background()) +func (*regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() } -func (i RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArray) ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput) +func (i *regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Background()) } -type RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput struct{ *pulumi.OutputState } +func (i *regionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) +} -func (RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilter)(nil)).Elem() +type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput { return o } -// The list of label value pairs that must match labels in the provided metadata -// based on filterMatchCriteria This list must not be empty and can have at the -// most 64 entries. -// Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput) FilterLabels() RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilter) []RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabel { - return v.FilterLabels - }).(RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput) +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return o.ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Background()) } -// Specifies how individual filterLabel matches within the list of filterLabels -// contribute towards the overall metadataFilter match. Supported values are: -// - MATCH_ANY: At least one of the filterLabels must have a matching label in the -// provided metadata. -// - MATCH_ALL: All filterLabels must have matching labels in -// the provided metadata. -// Possible values are: `MATCH_ALL`, `MATCH_ANY`. -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput) FilterMatchCriteria() pulumi.StringOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilter) string { return v.FilterMatchCriteria }).(pulumi.StringOutput) +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay) *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay { + return &v + }).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) } -type RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput struct{ *pulumi.OutputState } +// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are +// represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay) *int { + return v.Nanos + }).(pulumi.IntPtrOutput) +} -func (RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilter)(nil)).Elem() +// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. +// Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) Seconds() pulumi.StringOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay) string { + return v.Seconds + }).(pulumi.StringOutput) } -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput { +type RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() +} + +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput) Index(i pulumi.IntInput) RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilter { - return vs[0].([]RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilter)[vs[1].(int)] - }).(RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput) +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) Elem() RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay) RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay { + if v != nil { + return *v + } + var ret RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay + return ret + }).(RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) } -type RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabel struct { - // Name of metadata label. The name can have a maximum length of 1024 characters - // and must be at least 1 character long. - Name string `pulumi:"name"` - // The value of the label must match the specified value. value can have a maximum - // length of 1024 characters. - Value string `pulumi:"value"` +// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are +// represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay) *int { + if v == nil { + return nil + } + return v.Nanos + }).(pulumi.IntPtrOutput) } -// RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArgs and RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelInput` via: +// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. +// Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years +func (o RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) Seconds() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay) *string { + if v == nil { + return nil + } + return &v.Seconds + }).(pulumi.StringPtrOutput) +} + +type RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy struct { + // The full or partial URL to the RegionBackendService resource being mirrored to. + // The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map. + // Serverless NEG backends are not currently supported as a mirrored backend service. + BackendService string `pulumi:"backendService"` +} + +// RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs and RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyInput` via: // -// RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArgs{...} -type RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelInput interface { +// RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs{...} +type RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput - ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput() RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput } -type RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArgs struct { - // Name of metadata label. The name can have a maximum length of 1024 characters - // and must be at least 1 character long. - Name pulumi.StringInput `pulumi:"name"` - // The value of the label must match the specified value. value can have a maximum - // length of 1024 characters. - Value pulumi.StringInput `pulumi:"value"` +type RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs struct { + // The full or partial URL to the RegionBackendService resource being mirrored to. + // The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map. + // Serverless NEG backends are not currently supported as a mirrored backend service. + BackendService pulumi.StringInput `pulumi:"backendService"` } -func (RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabel)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy)(nil)).Elem() } -func (i RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArgs) ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput() RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArgs) ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput) +func (i RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput) } -// RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArray and RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayInput` via: +func (i RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Background()) +} + +func (i RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput).ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx) +} + +// RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs, RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtr and RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrInput` via: // -// RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArray{ RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArgs{...} } -type RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayInput interface { +// RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs{...} +// +// or: +// +// nil +type RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput - ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput } -type RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArray []RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelInput +type regionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrType RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs -func (RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabel)(nil)).Elem() +func RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtr(v *RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs) RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrInput { + return (*regionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrType)(v) } -func (i RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArray) ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutputWithContext(context.Background()) +func (*regionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy)(nil)).Elem() } -func (i RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArray) ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput) +func (i *regionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Background()) } -type RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput struct{ *pulumi.OutputState } +func (i *regionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput) +} -func (RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabel)(nil)).Elem() +type RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput() RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput { return o } -// Name of metadata label. The name can have a maximum length of 1024 characters -// and must be at least 1 character long. -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabel) string { return v.Name }).(pulumi.StringOutput) +func (o RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput { + return o.ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Background()) } -// The value of the label must match the specified value. value can have a maximum -// length of 1024 characters. -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput) Value() pulumi.StringOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabel) string { return v.Value }).(pulumi.StringOutput) +func (o RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy) *RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy { + return &v + }).(RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput) } -type RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput struct{ *pulumi.OutputState } - -func (RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabel)(nil)).Elem() +// The full or partial URL to the RegionBackendService resource being mirrored to. +// The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map. +// Serverless NEG backends are not currently supported as a mirrored backend service. +func (o RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput) BackendService() pulumi.StringOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy) string { return v.BackendService }).(pulumi.StringOutput) } -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput { - return o +type RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput) Index(i pulumi.IntInput) RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabel { - return vs[0].([]RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabel)[vs[1].(int)] - }).(RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput) +func (o RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput { + return o } -type RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatch struct { - // The queryParameterMatch matches if the value of the parameter exactly matches - // the contents of exactMatch. Only one of presentMatch, exactMatch and regexMatch - // must be set. - ExactMatch *string `pulumi:"exactMatch"` - // The name of the query parameter to match. The query parameter must exist in the - // request, in the absence of which the request match fails. - Name string `pulumi:"name"` - // Specifies that the queryParameterMatch matches if the request contains the query - // parameter, irrespective of whether the parameter has a value or not. Only one of - // presentMatch, exactMatch and regexMatch must be set. - PresentMatch *bool `pulumi:"presentMatch"` - // The queryParameterMatch matches if the value of the parameter matches the - // regular expression specified by regexMatch. For the regular expression grammar, - // please see en.cppreference.com/w/cpp/regex/ecmascript Only one of presentMatch, - // exactMatch and regexMatch must be set. - RegexMatch *string `pulumi:"regexMatch"` +func (o RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput) Elem() RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy) RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy { + if v != nil { + return *v + } + var ret RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy + return ret + }).(RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyOutput) } -// RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs and RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchInput` via: -// -// RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs{...} -type RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchInput interface { - pulumi.Input - - ToRegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput - ToRegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput +// The full or partial URL to the RegionBackendService resource being mirrored to. +// The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map. +// Serverless NEG backends are not currently supported as a mirrored backend service. +func (o RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyPtrOutput) BackendService() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy) *string { + if v == nil { + return nil + } + return &v.BackendService + }).(pulumi.StringPtrOutput) } -type RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs struct { - // The queryParameterMatch matches if the value of the parameter exactly matches - // the contents of exactMatch. Only one of presentMatch, exactMatch and regexMatch - // must be set. - ExactMatch pulumi.StringPtrInput `pulumi:"exactMatch"` - // The name of the query parameter to match. The query parameter must exist in the - // request, in the absence of which the request match fails. - Name pulumi.StringInput `pulumi:"name"` - // Specifies that the queryParameterMatch matches if the request contains the query - // parameter, irrespective of whether the parameter has a value or not. Only one of - // presentMatch, exactMatch and regexMatch must be set. - PresentMatch pulumi.BoolPtrInput `pulumi:"presentMatch"` - // The queryParameterMatch matches if the value of the parameter matches the - // regular expression specified by regexMatch. For the regular expression grammar, - // please see en.cppreference.com/w/cpp/regex/ecmascript Only one of presentMatch, - // exactMatch and regexMatch must be set. - RegexMatch pulumi.StringPtrInput `pulumi:"regexMatch"` +type RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy struct { + // Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. + NumRetries *int `pulumi:"numRetries"` + // Specifies a non-zero timeout per retry attempt. + // If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, + // will use the largest timeout among all backend services associated with the route. + // Structure is documented below. + PerTryTimeout *RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout `pulumi:"perTryTimeout"` + // Specifies one or more conditions when this retry policy applies. + // Valid values are listed below. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true: cancelled, deadline-exceeded, internal, resource-exhausted, unavailable. + // - 5xx : retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. + // - gateway-error : Similar to 5xx, but only applies to response codes 502, 503 or 504. + // - connect-failure : a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. + // - retriable-4xx : a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. + // - refused-stream : a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. + // - cancelled : a retry is attempted if the gRPC status code in the response header is set to cancelled. + // - deadline-exceeded : a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. + // - internal : a retry is attempted if the gRPC status code in the response header is set to internal. + // - resource-exhausted : a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. + // - unavailable : a retry is attempted if the gRPC status code in the response header is set to unavailable. + RetryConditions []string `pulumi:"retryConditions"` } -func (RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatch)(nil)).Elem() +// RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs and RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyInput` via: +// +// RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs{...} +type RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyInput interface { + pulumi.Input + + ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput } -func (i RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs) ToRegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutputWithContext(context.Background()) +type RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs struct { + // Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. + NumRetries pulumi.IntPtrInput `pulumi:"numRetries"` + // Specifies a non-zero timeout per retry attempt. + // If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, + // will use the largest timeout among all backend services associated with the route. + // Structure is documented below. + PerTryTimeout RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrInput `pulumi:"perTryTimeout"` + // Specifies one or more conditions when this retry policy applies. + // Valid values are listed below. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true: cancelled, deadline-exceeded, internal, resource-exhausted, unavailable. + // - 5xx : retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. + // - gateway-error : Similar to 5xx, but only applies to response codes 502, 503 or 504. + // - connect-failure : a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. + // - retriable-4xx : a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. + // - refused-stream : a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. + // - cancelled : a retry is attempted if the gRPC status code in the response header is set to cancelled. + // - deadline-exceeded : a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. + // - internal : a retry is attempted if the gRPC status code in the response header is set to internal. + // - resource-exhausted : a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. + // - unavailable : a retry is attempted if the gRPC status code in the response header is set to unavailable. + RetryConditions pulumi.StringArrayInput `pulumi:"retryConditions"` } -func (i RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs) ToRegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput) +func (RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy)(nil)).Elem() } -// RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArray and RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayInput` via: +func (i RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutputWithContext(context.Background()) +} + +func (i RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput) +} + +func (i RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutputWithContext(context.Background()) +} + +func (i RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput).ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutputWithContext(ctx) +} + +// RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs, RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtr and RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrInput` via: // -// RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArray{ RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs{...} } -type RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayInput interface { +// RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs{...} +// +// or: +// +// nil +type RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput - ToRegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput } -type RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArray []RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchInput +type regionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrType RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs -func (RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatch)(nil)).Elem() +func RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtr(v *RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgs) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrInput { + return (*regionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrType)(v) } -func (i RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArray) ToRegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutputWithContext(context.Background()) +func (*regionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy)(nil)).Elem() } -func (i RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArray) ToRegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput) +func (i *regionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutputWithContext(context.Background()) } -type RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput struct{ *pulumi.OutputState } +func (i *regionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput) +} -func (RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatch)(nil)).Elem() +type RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput { return o } -// The queryParameterMatch matches if the value of the parameter exactly matches -// the contents of exactMatch. Only one of presentMatch, exactMatch and regexMatch -// must be set. -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput) ExactMatch() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatch) *string { return v.ExactMatch }).(pulumi.StringPtrOutput) +func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput { + return o.ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutputWithContext(context.Background()) } -// The name of the query parameter to match. The query parameter must exist in the -// request, in the absence of which the request match fails. -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatch) string { return v.Name }).(pulumi.StringOutput) +func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy) *RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy { + return &v + }).(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput) } -// Specifies that the queryParameterMatch matches if the request contains the query -// parameter, irrespective of whether the parameter has a value or not. Only one of -// presentMatch, exactMatch and regexMatch must be set. -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput) PresentMatch() pulumi.BoolPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatch) *bool { return v.PresentMatch }).(pulumi.BoolPtrOutput) +// Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. +func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput) NumRetries() pulumi.IntPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy) *int { return v.NumRetries }).(pulumi.IntPtrOutput) } -// The queryParameterMatch matches if the value of the parameter matches the -// regular expression specified by regexMatch. For the regular expression grammar, -// please see en.cppreference.com/w/cpp/regex/ecmascript Only one of presentMatch, -// exactMatch and regexMatch must be set. -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput) RegexMatch() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatch) *string { return v.RegexMatch }).(pulumi.StringPtrOutput) +// Specifies a non-zero timeout per retry attempt. +// If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, +// will use the largest timeout among all backend services associated with the route. +// Structure is documented below. +func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput) PerTryTimeout() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy) *RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout { + return v.PerTryTimeout + }).(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) } -type RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput struct{ *pulumi.OutputState } +// Specifies one or more conditions when this retry policy applies. +// Valid values are listed below. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true: cancelled, deadline-exceeded, internal, resource-exhausted, unavailable. +// - 5xx : retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. +// - gateway-error : Similar to 5xx, but only applies to response codes 502, 503 or 504. +// - connect-failure : a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. +// - retriable-4xx : a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. +// - refused-stream : a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. +// - cancelled : a retry is attempted if the gRPC status code in the response header is set to cancelled. +// - deadline-exceeded : a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. +// - internal : a retry is attempted if the gRPC status code in the response header is set to internal. +// - resource-exhausted : a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. +// - unavailable : a retry is attempted if the gRPC status code in the response header is set to unavailable. +func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput) RetryConditions() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy) []string { return v.RetryConditions }).(pulumi.StringArrayOutput) +} -func (RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatch)(nil)).Elem() +type RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput) Index(i pulumi.IntInput) RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatch { - return vs[0].([]RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatch)[vs[1].(int)] - }).(RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput) +func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput) Elem() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy { + if v != nil { + return *v + } + var ret RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy + return ret + }).(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteAction struct { - // The specification for allowing client side cross-origin requests. Please see W3C - // Recommendation for Cross Origin Resource Sharing - // Structure is documented below. - CorsPolicy *RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy `pulumi:"corsPolicy"` - // The specification for fault injection introduced into traffic to test the - // resiliency of clients to backend service failure. As part of fault injection, - // when clients send requests to a backend service, delays can be introduced by - // Loadbalancer on a percentage of requests before sending those request to the - // backend service. Similarly requests from clients can be aborted by the - // Loadbalancer for a percentage of requests. timeout and retryPolicy will be - // ignored by clients that are configured with a fault_injection_policy. - // Structure is documented below. - FaultInjectionPolicy *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy `pulumi:"faultInjectionPolicy"` - // Specifies the policy on how requests intended for the route's backends are - // shadowed to a separate mirrored backend service. Loadbalancer does not wait for - // responses from the shadow service. Prior to sending traffic to the shadow - // service, the host / authority header is suffixed with -shadow. - // Structure is documented below. - RequestMirrorPolicy *RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy `pulumi:"requestMirrorPolicy"` - // Specifies the retry policy associated with this route. - // Structure is documented below. - RetryPolicy *RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy `pulumi:"retryPolicy"` - // Specifies the timeout for the selected route. Timeout is computed from the time - // the request is has been fully processed (i.e. end-of-stream) up until the - // response has been completely processed. Timeout includes all retries. If not - // specified, the default value is 15 seconds. - // Structure is documented below. - Timeout *RegionUrlMapPathMatcherRouteRuleRouteActionTimeout `pulumi:"timeout"` - // The spec to modify the URL of the request, prior to forwarding the request to - // the matched service - // Structure is documented below. - UrlRewrite *RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite `pulumi:"urlRewrite"` - // A list of weighted backend services to send traffic to when a route match - // occurs. The weights determine the fraction of traffic that flows to their - // corresponding backend service. If all traffic needs to go to a single backend - // service, there must be one weightedBackendService with weight set to a non 0 - // number. Once a backendService is identified and before forwarding the request to - // the backend service, advanced routing actions like Url rewrites and header - // transformations are applied depending on additional settings specified in this - // HttpRouteAction. - // Structure is documented below. - WeightedBackendServices []RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendService `pulumi:"weightedBackendServices"` +// Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. +func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput) NumRetries() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy) *int { + if v == nil { + return nil + } + return v.NumRetries + }).(pulumi.IntPtrOutput) } -// RegionUrlMapPathMatcherRouteRuleRouteActionInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionArgs and RegionUrlMapPathMatcherRouteRuleRouteActionOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionInput` via: +// Specifies a non-zero timeout per retry attempt. +// If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, +// will use the largest timeout among all backend services associated with the route. +// Structure is documented below. +func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput) PerTryTimeout() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy) *RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout { + if v == nil { + return nil + } + return v.PerTryTimeout + }).(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) +} + +// Specifies one or more conditions when this retry policy applies. +// Valid values are listed below. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true: cancelled, deadline-exceeded, internal, resource-exhausted, unavailable. +// - 5xx : retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. +// - gateway-error : Similar to 5xx, but only applies to response codes 502, 503 or 504. +// - connect-failure : a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. +// - retriable-4xx : a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. +// - refused-stream : a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. +// - cancelled : a retry is attempted if the gRPC status code in the response header is set to cancelled. +// - deadline-exceeded : a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. +// - internal : a retry is attempted if the gRPC status code in the response header is set to internal. +// - resource-exhausted : a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. +// - unavailable : a retry is attempted if the gRPC status code in the response header is set to unavailable. +func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPtrOutput) RetryConditions() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy) []string { + if v == nil { + return nil + } + return v.RetryConditions + }).(pulumi.StringArrayOutput) +} + +type RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout struct { + // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are + // represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. + Nanos *int `pulumi:"nanos"` + // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. + // Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years + Seconds string `pulumi:"seconds"` +} + +// RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs and RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutInput` via: // -// RegionUrlMapPathMatcherRouteRuleRouteActionArgs{...} -type RegionUrlMapPathMatcherRouteRuleRouteActionInput interface { +// RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs{...} +type RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleRouteActionOutput() RegionUrlMapPathMatcherRouteRuleRouteActionOutput - ToRegionUrlMapPathMatcherRouteRuleRouteActionOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput } -type RegionUrlMapPathMatcherRouteRuleRouteActionArgs struct { - // The specification for allowing client side cross-origin requests. Please see W3C - // Recommendation for Cross Origin Resource Sharing - // Structure is documented below. - CorsPolicy RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrInput `pulumi:"corsPolicy"` - // The specification for fault injection introduced into traffic to test the - // resiliency of clients to backend service failure. As part of fault injection, - // when clients send requests to a backend service, delays can be introduced by - // Loadbalancer on a percentage of requests before sending those request to the - // backend service. Similarly requests from clients can be aborted by the - // Loadbalancer for a percentage of requests. timeout and retryPolicy will be - // ignored by clients that are configured with a fault_injection_policy. - // Structure is documented below. - FaultInjectionPolicy RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrInput `pulumi:"faultInjectionPolicy"` - // Specifies the policy on how requests intended for the route's backends are - // shadowed to a separate mirrored backend service. Loadbalancer does not wait for - // responses from the shadow service. Prior to sending traffic to the shadow - // service, the host / authority header is suffixed with -shadow. - // Structure is documented below. - RequestMirrorPolicy RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrInput `pulumi:"requestMirrorPolicy"` - // Specifies the retry policy associated with this route. - // Structure is documented below. - RetryPolicy RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrInput `pulumi:"retryPolicy"` - // Specifies the timeout for the selected route. Timeout is computed from the time - // the request is has been fully processed (i.e. end-of-stream) up until the - // response has been completely processed. Timeout includes all retries. If not - // specified, the default value is 15 seconds. - // Structure is documented below. - Timeout RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrInput `pulumi:"timeout"` - // The spec to modify the URL of the request, prior to forwarding the request to - // the matched service - // Structure is documented below. - UrlRewrite RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrInput `pulumi:"urlRewrite"` - // A list of weighted backend services to send traffic to when a route match - // occurs. The weights determine the fraction of traffic that flows to their - // corresponding backend service. If all traffic needs to go to a single backend - // service, there must be one weightedBackendService with weight set to a non 0 - // number. Once a backendService is identified and before forwarding the request to - // the backend service, advanced routing actions like Url rewrites and header - // transformations are applied depending on additional settings specified in this - // HttpRouteAction. - // Structure is documented below. - WeightedBackendServices RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayInput `pulumi:"weightedBackendServices"` +type RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs struct { + // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are + // represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. + Nanos pulumi.IntPtrInput `pulumi:"nanos"` + // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. + // Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years + Seconds pulumi.StringInput `pulumi:"seconds"` } -func (RegionUrlMapPathMatcherRouteRuleRouteActionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteAction)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionOutput() RegionUrlMapPathMatcherRouteRuleRouteActionOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionOutput) +func (i RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput) } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionPtrOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionOutput).ToRegionUrlMapPathMatcherRouteRuleRouteActionPtrOutputWithContext(ctx) +func (i RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput).ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx) } -// RegionUrlMapPathMatcherRouteRuleRouteActionPtrInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionArgs, RegionUrlMapPathMatcherRouteRuleRouteActionPtr and RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionPtrInput` via: +// RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs, RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtr and RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrInput` via: // -// RegionUrlMapPathMatcherRouteRuleRouteActionArgs{...} +// RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs{...} // // or: // // nil -type RegionUrlMapPathMatcherRouteRuleRouteActionPtrInput interface { +type RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput - ToRegionUrlMapPathMatcherRouteRuleRouteActionPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput } -type regionUrlMapPathMatcherRouteRuleRouteActionPtrType RegionUrlMapPathMatcherRouteRuleRouteActionArgs +type regionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrType RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs -func RegionUrlMapPathMatcherRouteRuleRouteActionPtr(v *RegionUrlMapPathMatcherRouteRuleRouteActionArgs) RegionUrlMapPathMatcherRouteRuleRouteActionPtrInput { - return (*regionUrlMapPathMatcherRouteRuleRouteActionPtrType)(v) +func RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtr(v *RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrInput { + return (*regionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrType)(v) } -func (*regionUrlMapPathMatcherRouteRuleRouteActionPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteAction)(nil)).Elem() +func (*regionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() } -func (i *regionUrlMapPathMatcherRouteRuleRouteActionPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionPtrOutputWithContext(context.Background()) +func (i *regionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Background()) } -func (i *regionUrlMapPathMatcherRouteRuleRouteActionPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput) +func (i *regionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherRouteRuleRouteActionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteAction)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionOutput() RegionUrlMapPathMatcherRouteRuleRouteActionOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput { - return o.ToRegionUrlMapPathMatcherRouteRuleRouteActionPtrOutputWithContext(context.Background()) +func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return o.ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Background()) } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherRouteRuleRouteAction) *RegionUrlMapPathMatcherRouteRuleRouteAction { +func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout) *RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout { return &v - }).(RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput) + }).(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) } -// The specification for allowing client side cross-origin requests. Please see W3C -// Recommendation for Cross Origin Resource Sharing -// Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionOutput) CorsPolicy() RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteAction) *RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy { - return v.CorsPolicy - }).(RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput) +// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are +// represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. +func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout) *int { return v.Nanos }).(pulumi.IntPtrOutput) } -// The specification for fault injection introduced into traffic to test the -// resiliency of clients to backend service failure. As part of fault injection, -// when clients send requests to a backend service, delays can be introduced by -// Loadbalancer on a percentage of requests before sending those request to the -// backend service. Similarly requests from clients can be aborted by the -// Loadbalancer for a percentage of requests. timeout and retryPolicy will be -// ignored by clients that are configured with a fault_injection_policy. -// Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionOutput) FaultInjectionPolicy() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteAction) *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy { - return v.FaultInjectionPolicy - }).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput) +// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. +// Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years +func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput) Seconds() pulumi.StringOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout) string { return v.Seconds }).(pulumi.StringOutput) } -// Specifies the policy on how requests intended for the route's backends are -// shadowed to a separate mirrored backend service. Loadbalancer does not wait for -// responses from the shadow service. Prior to sending traffic to the shadow -// service, the host / authority header is suffixed with -shadow. -// Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionOutput) RequestMirrorPolicy() RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteAction) *RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy { - return v.RequestMirrorPolicy - }).(RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput) +type RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() } -// Specifies the retry policy associated with this route. -// Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionOutput) RetryPolicy() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteAction) *RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy { - return v.RetryPolicy - }).(RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput) +func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return o } -// Specifies the timeout for the selected route. Timeout is computed from the time -// the request is has been fully processed (i.e. end-of-stream) up until the -// response has been completely processed. Timeout includes all retries. If not -// specified, the default value is 15 seconds. -// Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionOutput) Timeout() RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteAction) *RegionUrlMapPathMatcherRouteRuleRouteActionTimeout { - return v.Timeout - }).(RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput) +func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return o } -// The spec to modify the URL of the request, prior to forwarding the request to -// the matched service -// Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionOutput) UrlRewrite() RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteAction) *RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite { - return v.UrlRewrite - }).(RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput) +func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) Elem() RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout) RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout { + if v != nil { + return *v + } + var ret RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout + return ret + }).(RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutOutput) } -// A list of weighted backend services to send traffic to when a route match -// occurs. The weights determine the fraction of traffic that flows to their -// corresponding backend service. If all traffic needs to go to a single backend -// service, there must be one weightedBackendService with weight set to a non 0 -// number. Once a backendService is identified and before forwarding the request to -// the backend service, advanced routing actions like Url rewrites and header -// transformations are applied depending on additional settings specified in this -// HttpRouteAction. -// Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionOutput) WeightedBackendServices() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteAction) []RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendService { - return v.WeightedBackendServices - }).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput) -} - -type RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput struct{ *pulumi.OutputState } - -func (RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteAction)(nil)).Elem() -} - -func (o RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput { - return o -} - -func (o RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput { - return o -} - -func (o RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput) Elem() RegionUrlMapPathMatcherRouteRuleRouteActionOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteAction) RegionUrlMapPathMatcherRouteRuleRouteAction { - if v != nil { - return *v - } - var ret RegionUrlMapPathMatcherRouteRuleRouteAction - return ret - }).(RegionUrlMapPathMatcherRouteRuleRouteActionOutput) -} - -// The specification for allowing client side cross-origin requests. Please see W3C -// Recommendation for Cross Origin Resource Sharing -// Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput) CorsPolicy() RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteAction) *RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy { - if v == nil { - return nil - } - return v.CorsPolicy - }).(RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput) -} - -// The specification for fault injection introduced into traffic to test the -// resiliency of clients to backend service failure. As part of fault injection, -// when clients send requests to a backend service, delays can be introduced by -// Loadbalancer on a percentage of requests before sending those request to the -// backend service. Similarly requests from clients can be aborted by the -// Loadbalancer for a percentage of requests. timeout and retryPolicy will be -// ignored by clients that are configured with a fault_injection_policy. -// Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput) FaultInjectionPolicy() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteAction) *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy { - if v == nil { - return nil - } - return v.FaultInjectionPolicy - }).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput) -} - -// Specifies the policy on how requests intended for the route's backends are -// shadowed to a separate mirrored backend service. Loadbalancer does not wait for -// responses from the shadow service. Prior to sending traffic to the shadow -// service, the host / authority header is suffixed with -shadow. -// Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput) RequestMirrorPolicy() RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteAction) *RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy { - if v == nil { - return nil - } - return v.RequestMirrorPolicy - }).(RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput) -} - -// Specifies the retry policy associated with this route. -// Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput) RetryPolicy() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteAction) *RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy { - if v == nil { - return nil - } - return v.RetryPolicy - }).(RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput) -} - -// Specifies the timeout for the selected route. Timeout is computed from the time -// the request is has been fully processed (i.e. end-of-stream) up until the -// response has been completely processed. Timeout includes all retries. If not -// specified, the default value is 15 seconds. -// Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput) Timeout() RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteAction) *RegionUrlMapPathMatcherRouteRuleRouteActionTimeout { - if v == nil { - return nil - } - return v.Timeout - }).(RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput) -} - -// The spec to modify the URL of the request, prior to forwarding the request to -// the matched service -// Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput) UrlRewrite() RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteAction) *RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite { +// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are +// represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. +func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout) *int { if v == nil { return nil } - return v.UrlRewrite - }).(RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput) + return v.Nanos + }).(pulumi.IntPtrOutput) } -// A list of weighted backend services to send traffic to when a route match -// occurs. The weights determine the fraction of traffic that flows to their -// corresponding backend service. If all traffic needs to go to a single backend -// service, there must be one weightedBackendService with weight set to a non 0 -// number. Once a backendService is identified and before forwarding the request to -// the backend service, advanced routing actions like Url rewrites and header -// transformations are applied depending on additional settings specified in this -// HttpRouteAction. -// Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput) WeightedBackendServices() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteAction) []RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendService { +// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. +// Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years +func (o RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) Seconds() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout) *string { if v == nil { return nil } - return v.WeightedBackendServices - }).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput) + return &v.Seconds + }).(pulumi.StringPtrOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy struct { - // In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. - // Default is false. - AllowCredentials *bool `pulumi:"allowCredentials"` - // Specifies the content for the Access-Control-Allow-Headers header. - AllowHeaders []string `pulumi:"allowHeaders"` - // Specifies the content for the Access-Control-Allow-Methods header. - AllowMethods []string `pulumi:"allowMethods"` - // Specifies the regualar expression patterns that match allowed origins. For regular expression grammar - // please see en.cppreference.com/w/cpp/regex/ecmascript - // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. - AllowOriginRegexes []string `pulumi:"allowOriginRegexes"` - // Specifies the list of origins that will be allowed to do CORS requests. - // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. - AllowOrigins []string `pulumi:"allowOrigins"` - // If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. - Disabled *bool `pulumi:"disabled"` - // Specifies the content for the Access-Control-Expose-Headers header. - ExposeHeaders []string `pulumi:"exposeHeaders"` - // Specifies how long results of a preflight request can be cached in seconds. - // This translates to the Access-Control-Max-Age header. - MaxAge *int `pulumi:"maxAge"` +type RegionUrlMapPathMatcherPathRuleRouteActionTimeout struct { + // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. + Nanos *int `pulumi:"nanos"` + // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years + Seconds string `pulumi:"seconds"` } -// RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyArgs and RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyInput` via: +// RegionUrlMapPathMatcherPathRuleRouteActionTimeoutInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs and RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionTimeoutInput` via: // -// RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyArgs{...} -type RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyInput interface { +// RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs{...} +type RegionUrlMapPathMatcherPathRuleRouteActionTimeoutInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput() RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput - ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput() RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput } -type RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyArgs struct { - // In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. - // Default is false. - AllowCredentials pulumi.BoolPtrInput `pulumi:"allowCredentials"` - // Specifies the content for the Access-Control-Allow-Headers header. - AllowHeaders pulumi.StringArrayInput `pulumi:"allowHeaders"` - // Specifies the content for the Access-Control-Allow-Methods header. - AllowMethods pulumi.StringArrayInput `pulumi:"allowMethods"` - // Specifies the regualar expression patterns that match allowed origins. For regular expression grammar - // please see en.cppreference.com/w/cpp/regex/ecmascript - // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. - AllowOriginRegexes pulumi.StringArrayInput `pulumi:"allowOriginRegexes"` - // Specifies the list of origins that will be allowed to do CORS requests. - // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. - AllowOrigins pulumi.StringArrayInput `pulumi:"allowOrigins"` - // If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. - Disabled pulumi.BoolPtrInput `pulumi:"disabled"` - // Specifies the content for the Access-Control-Expose-Headers header. - ExposeHeaders pulumi.StringArrayInput `pulumi:"exposeHeaders"` - // Specifies how long results of a preflight request can be cached in seconds. - // This translates to the Access-Control-Max-Age header. - MaxAge pulumi.IntPtrInput `pulumi:"maxAge"` +type RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs struct { + // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. + Nanos pulumi.IntPtrInput `pulumi:"nanos"` + // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years + Seconds pulumi.StringInput `pulumi:"seconds"` } -func (RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionTimeout)(nil)).Elem() } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput() RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput() RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput) +func (i RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput) } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput).ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutputWithContext(ctx) +func (i RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput).ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutputWithContext(ctx) } -// RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyArgs, RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtr and RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrInput` via: +// RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs, RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtr and RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrInput` via: // -// RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyArgs{...} +// RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs{...} // // or: // // nil -type RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrInput interface { +type RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput - ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput } -type regionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrType RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyArgs +type regionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrType RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs -func RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtr(v *RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyArgs) RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrInput { - return (*regionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrType)(v) +func RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtr(v *RegionUrlMapPathMatcherPathRuleRouteActionTimeoutArgs) RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrInput { + return (*regionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrType)(v) } -func (*regionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy)(nil)).Elem() +func (*regionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionTimeout)(nil)).Elem() } -func (i *regionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutputWithContext(context.Background()) +func (i *regionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutputWithContext(context.Background()) } -func (i *regionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput) +func (i *regionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionTimeout)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput() RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput() RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput { - return o.ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutputWithContext(context.Background()) +func (o RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput { + return o.ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutputWithContext(context.Background()) } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) *RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy { +func (o RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherPathRuleRouteActionTimeout) *RegionUrlMapPathMatcherPathRuleRouteActionTimeout { return &v - }).(RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput) -} - -// In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. -// Default is false. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput) AllowCredentials() pulumi.BoolPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) *bool { return v.AllowCredentials }).(pulumi.BoolPtrOutput) -} - -// Specifies the content for the Access-Control-Allow-Headers header. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput) AllowHeaders() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) []string { return v.AllowHeaders }).(pulumi.StringArrayOutput) -} - -// Specifies the content for the Access-Control-Allow-Methods header. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput) AllowMethods() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) []string { return v.AllowMethods }).(pulumi.StringArrayOutput) -} - -// Specifies the regualar expression patterns that match allowed origins. For regular expression grammar -// please see en.cppreference.com/w/cpp/regex/ecmascript -// An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput) AllowOriginRegexes() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) []string { return v.AllowOriginRegexes }).(pulumi.StringArrayOutput) -} - -// Specifies the list of origins that will be allowed to do CORS requests. -// An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput) AllowOrigins() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) []string { return v.AllowOrigins }).(pulumi.StringArrayOutput) -} - -// If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput) Disabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) *bool { return v.Disabled }).(pulumi.BoolPtrOutput) + }).(RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput) } -// Specifies the content for the Access-Control-Expose-Headers header. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput) ExposeHeaders() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) []string { return v.ExposeHeaders }).(pulumi.StringArrayOutput) +// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. +func (o RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionTimeout) *int { return v.Nanos }).(pulumi.IntPtrOutput) } -// Specifies how long results of a preflight request can be cached in seconds. -// This translates to the Access-Control-Max-Age header. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput) MaxAge() pulumi.IntPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) *int { return v.MaxAge }).(pulumi.IntPtrOutput) +// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years +func (o RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput) Seconds() pulumi.StringOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionTimeout) string { return v.Seconds }).(pulumi.StringOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionTimeout)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput) Elem() RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy { +func (o RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput) Elem() RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionTimeout) RegionUrlMapPathMatcherPathRuleRouteActionTimeout { if v != nil { return *v } - var ret RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy + var ret RegionUrlMapPathMatcherPathRuleRouteActionTimeout return ret - }).(RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput) -} - -// In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. -// Default is false. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput) AllowCredentials() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) *bool { - if v == nil { - return nil - } - return v.AllowCredentials - }).(pulumi.BoolPtrOutput) -} - -// Specifies the content for the Access-Control-Allow-Headers header. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput) AllowHeaders() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) []string { - if v == nil { - return nil - } - return v.AllowHeaders - }).(pulumi.StringArrayOutput) -} - -// Specifies the content for the Access-Control-Allow-Methods header. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput) AllowMethods() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) []string { - if v == nil { - return nil - } - return v.AllowMethods - }).(pulumi.StringArrayOutput) -} - -// Specifies the regualar expression patterns that match allowed origins. For regular expression grammar -// please see en.cppreference.com/w/cpp/regex/ecmascript -// An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput) AllowOriginRegexes() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) []string { - if v == nil { - return nil - } - return v.AllowOriginRegexes - }).(pulumi.StringArrayOutput) -} - -// Specifies the list of origins that will be allowed to do CORS requests. -// An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput) AllowOrigins() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) []string { - if v == nil { - return nil - } - return v.AllowOrigins - }).(pulumi.StringArrayOutput) -} - -// If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput) Disabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) *bool { - if v == nil { - return nil - } - return v.Disabled - }).(pulumi.BoolPtrOutput) + }).(RegionUrlMapPathMatcherPathRuleRouteActionTimeoutOutput) } -// Specifies the content for the Access-Control-Expose-Headers header. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput) ExposeHeaders() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) []string { +// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. +func (o RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionTimeout) *int { if v == nil { return nil } - return v.ExposeHeaders - }).(pulumi.StringArrayOutput) + return v.Nanos + }).(pulumi.IntPtrOutput) } -// Specifies how long results of a preflight request can be cached in seconds. -// This translates to the Access-Control-Max-Age header. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput) MaxAge() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) *int { +// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years +func (o RegionUrlMapPathMatcherPathRuleRouteActionTimeoutPtrOutput) Seconds() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionTimeout) *string { if v == nil { return nil } - return v.MaxAge - }).(pulumi.IntPtrOutput) + return &v.Seconds + }).(pulumi.StringPtrOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy struct { - // The specification for how client requests are aborted as part of fault injection. - // Structure is documented below. - Abort *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort `pulumi:"abort"` - // The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. - // Structure is documented below. - Delay *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay `pulumi:"delay"` +type RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite struct { + // Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. + // The value must be from 1 to 255 characters. + HostRewrite *string `pulumi:"hostRewrite"` + // Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. + // The value must be from 1 to 1024 characters. + PathPrefixRewrite *string `pulumi:"pathPrefixRewrite"` } -// RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyArgs and RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyInput` via: +// RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs and RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteInput` via: // -// RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyArgs{...} -type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyInput interface { +// RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs{...} +type RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput - ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput() RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput } -type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyArgs struct { - // The specification for how client requests are aborted as part of fault injection. - // Structure is documented below. - Abort RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrInput `pulumi:"abort"` - // The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. - // Structure is documented below. - Delay RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrInput `pulumi:"delay"` +type RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs struct { + // Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. + // The value must be from 1 to 255 characters. + HostRewrite pulumi.StringPtrInput `pulumi:"hostRewrite"` + // Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. + // The value must be from 1 to 1024 characters. + PathPrefixRewrite pulumi.StringPtrInput `pulumi:"pathPrefixRewrite"` } -func (RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite)(nil)).Elem() } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput() RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput) +func (i RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput) } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput).ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx) +func (i RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput).ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutputWithContext(ctx) } -// RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyArgs, RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtr and RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrInput` via: +// RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs, RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtr and RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrInput` via: // -// RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyArgs{...} +// RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs{...} // // or: // // nil -type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrInput interface { +type RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput - ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput } -type regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrType RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyArgs +type regionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrType RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs -func RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtr(v *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyArgs) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrInput { - return (*regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrType)(v) +func RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtr(v *RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteArgs) RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrInput { + return (*regionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrType)(v) } -func (*regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy)(nil)).Elem() +func (*regionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite)(nil)).Elem() } -func (i *regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Background()) +func (i *regionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutputWithContext(context.Background()) } -func (i *regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput) +func (i *regionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput() RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput { - return o.ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Background()) +func (o RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput { + return o.ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutputWithContext(context.Background()) } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy) *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy { +func (o RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite) *RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite { return &v - }).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput) + }).(RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput) } -// The specification for how client requests are aborted as part of fault injection. -// Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput) Abort() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy) *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort { - return v.Abort - }).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput) +// Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. +// The value must be from 1 to 255 characters. +func (o RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput) HostRewrite() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite) *string { return v.HostRewrite }).(pulumi.StringPtrOutput) } -// The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. -// Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput) Delay() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy) *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay { - return v.Delay - }).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput) +// Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. +// The value must be from 1 to 1024 characters. +func (o RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput) PathPrefixRewrite() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite) *string { return v.PathPrefixRewrite }).(pulumi.StringPtrOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput) Elem() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy { +func (o RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput) Elem() RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite) RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite { if v != nil { return *v } - var ret RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy + var ret RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite return ret - }).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput) + }).(RegionUrlMapPathMatcherPathRuleRouteActionUrlRewriteOutput) } -// The specification for how client requests are aborted as part of fault injection. -// Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput) Abort() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy) *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort { +// Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. +// The value must be from 1 to 255 characters. +func (o RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput) HostRewrite() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite) *string { if v == nil { return nil } - return v.Abort - }).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput) + return v.HostRewrite + }).(pulumi.StringPtrOutput) } -// The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. -// Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput) Delay() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy) *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay { +// Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. +// The value must be from 1 to 1024 characters. +func (o RegionUrlMapPathMatcherPathRuleRouteActionUrlRewritePtrOutput) PathPrefixRewrite() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite) *string { if v == nil { return nil } - return v.Delay - }).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput) + return v.PathPrefixRewrite + }).(pulumi.StringPtrOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort struct { - // The HTTP status code used to abort the request. - // The value must be between 200 and 599 inclusive. - HttpStatus *int `pulumi:"httpStatus"` - // The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. - // The value must be between 0.0 and 100.0 inclusive. - Percentage *float64 `pulumi:"percentage"` +type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendService struct { + // The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the load balancer applies any relevant headerActions specified as part of this backendServiceWeight. + BackendService string `pulumi:"backendService"` + // Specifies changes to request and response headers that need to take effect for the selected backendService. + // headerAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap. + // headerAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. + // Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. + // Structure is documented below. + HeaderAction *RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction `pulumi:"headerAction"` + // Specifies the fraction of traffic sent to a backend service, computed as weight / (sum of all weightedBackendService weights in routeAction) . + // The selection of a backend service is determined only for new traffic. Once a user's request has been directed to a backend service, subsequent requests are sent to the same backend service as determined by the backend service's session affinity policy. + // The value must be from 0 to 1000. + Weight int `pulumi:"weight"` } -// RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortArgs and RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortInput` via: +// RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArgs and RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceInput` via: // -// RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortArgs{...} -type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortInput interface { +// RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArgs{...} +type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput - ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput -} - -type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortArgs struct { - // The HTTP status code used to abort the request. - // The value must be between 200 and 599 inclusive. - HttpStatus pulumi.IntPtrInput `pulumi:"httpStatus"` - // The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. - // The value must be between 0.0 and 100.0 inclusive. - Percentage pulumi.Float64PtrInput `pulumi:"percentage"` -} - -func (RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort)(nil)).Elem() + ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutputWithContext(context.Background()) +type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArgs struct { + // The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the load balancer applies any relevant headerActions specified as part of this backendServiceWeight. + BackendService pulumi.StringInput `pulumi:"backendService"` + // Specifies changes to request and response headers that need to take effect for the selected backendService. + // headerAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap. + // headerAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. + // Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. + // Structure is documented below. + HeaderAction RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrInput `pulumi:"headerAction"` + // Specifies the fraction of traffic sent to a backend service, computed as weight / (sum of all weightedBackendService weights in routeAction) . + // The selection of a backend service is determined only for new traffic. Once a user's request has been directed to a backend service, subsequent requests are sent to the same backend service as determined by the backend service's session affinity policy. + // The value must be from 0 to 1000. + Weight pulumi.IntInput `pulumi:"weight"` } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput) +func (RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendService)(nil)).Elem() } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput).ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx) +func (i RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput) } -// RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortArgs, RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtr and RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrInput` via: -// -// RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortArgs{...} -// -// or: +// RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArray and RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayInput` via: // -// nil -type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrInput interface { +// RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArray{ RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArgs{...} } +type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput - ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput } -type regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrType RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortArgs - -func RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtr(v *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortArgs) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrInput { - return (*regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrType)(v) -} +type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArray []RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceInput -func (*regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendService)(nil)).Elem() } -func (i *regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArray) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutputWithContext(context.Background()) } -func (i *regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput) +func (i RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArray) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendService)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput { - return o.ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Background()) -} - -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort) *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort { - return &v - }).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput) +// The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the load balancer applies any relevant headerActions specified as part of this backendServiceWeight. +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput) BackendService() pulumi.StringOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendService) string { + return v.BackendService + }).(pulumi.StringOutput) } -// The HTTP status code used to abort the request. -// The value must be between 200 and 599 inclusive. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput) HttpStatus() pulumi.IntPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort) *int { return v.HttpStatus }).(pulumi.IntPtrOutput) +// Specifies changes to request and response headers that need to take effect for the selected backendService. +// headerAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap. +// headerAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. +// Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. +// Structure is documented below. +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput) HeaderAction() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendService) *RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction { + return v.HeaderAction + }).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) } -// The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. -// The value must be between 0.0 and 100.0 inclusive. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput) Percentage() pulumi.Float64PtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort) *float64 { - return v.Percentage - }).(pulumi.Float64PtrOutput) +// Specifies the fraction of traffic sent to a backend service, computed as weight / (sum of all weightedBackendService weights in routeAction) . +// The selection of a backend service is determined only for new traffic. Once a user's request has been directed to a backend service, subsequent requests are sent to the same backend service as determined by the backend service's session affinity policy. +// The value must be from 0 to 1000. +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput) Weight() pulumi.IntOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendService) int { return v.Weight }).(pulumi.IntOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendService)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput) Elem() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort { - if v != nil { - return *v - } - var ret RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort - return ret - }).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput) -} - -// The HTTP status code used to abort the request. -// The value must be between 200 and 599 inclusive. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput) HttpStatus() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort) *int { - if v == nil { - return nil - } - return v.HttpStatus - }).(pulumi.IntPtrOutput) -} - -// The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. -// The value must be between 0.0 and 100.0 inclusive. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput) Percentage() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort) *float64 { - if v == nil { - return nil - } - return v.Percentage - }).(pulumi.Float64PtrOutput) +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceArrayOutput) Index(i pulumi.IntInput) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendService { + return vs[0].([]RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendService)[vs[1].(int)] + }).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay struct { - // Specifies the value of the fixed delay interval. +type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction struct { + // Headers to add to a matching request before forwarding the request to the backendService. // Structure is documented below. - FixedDelay *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay `pulumi:"fixedDelay"` - // The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. - // The value must be between 0.0 and 100.0 inclusive. - Percentage *float64 `pulumi:"percentage"` + RequestHeadersToAdds []RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd `pulumi:"requestHeadersToAdds"` + // A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. + RequestHeadersToRemoves []string `pulumi:"requestHeadersToRemoves"` + // Headers to add the response before sending the response back to the client. + // Structure is documented below. + ResponseHeadersToAdds []RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd `pulumi:"responseHeadersToAdds"` + // A list of header names for headers that need to be removed from the response before sending the response back to the client. + ResponseHeadersToRemoves []string `pulumi:"responseHeadersToRemoves"` } -// RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayArgs and RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayInput` via: +// RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs and RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionInput` via: // -// RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayArgs{...} -type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayInput interface { +// RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs{...} +type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput - ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput } -type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayArgs struct { - // Specifies the value of the fixed delay interval. +type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs struct { + // Headers to add to a matching request before forwarding the request to the backendService. // Structure is documented below. - FixedDelay RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput `pulumi:"fixedDelay"` - // The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. - // The value must be between 0.0 and 100.0 inclusive. - Percentage pulumi.Float64PtrInput `pulumi:"percentage"` + RequestHeadersToAdds RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput `pulumi:"requestHeadersToAdds"` + // A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. + RequestHeadersToRemoves pulumi.StringArrayInput `pulumi:"requestHeadersToRemoves"` + // Headers to add the response before sending the response back to the client. + // Structure is documented below. + ResponseHeadersToAdds RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput `pulumi:"responseHeadersToAdds"` + // A list of header names for headers that need to be removed from the response before sending the response back to the client. + ResponseHeadersToRemoves pulumi.StringArrayInput `pulumi:"responseHeadersToRemoves"` } -func (RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput) +func (i RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput) } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput).ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx) +func (i RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput).ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx) } -// RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayArgs, RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtr and RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrInput` via: +// RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs, RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtr and RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrInput` via: // -// RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayArgs{...} +// RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs{...} // // or: // // nil -type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrInput interface { +type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput - ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput } -type regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrType RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayArgs +type regionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrType RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs -func RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtr(v *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayArgs) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrInput { - return (*regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrType)(v) +func RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtr(v *RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrInput { + return (*regionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrType)(v) } -func (*regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay)(nil)).Elem() +func (*regionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() } -func (i *regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Background()) +func (i *regionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Background()) } -func (i *regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput) +func (i *regionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrType) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput { - return o.ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Background()) +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return o.ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Background()) } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay) *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay { +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction) *RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction { return &v - }).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput) + }).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) } -// Specifies the value of the fixed delay interval. +// Headers to add to a matching request before forwarding the request to the backendService. // Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput) FixedDelay() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay) *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay { - return v.FixedDelay - }).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput) RequestHeadersToAdds() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction) []RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd { + return v.RequestHeadersToAdds + }).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) } -// The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. -// The value must be between 0.0 and 100.0 inclusive. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput) Percentage() pulumi.Float64PtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay) *float64 { - return v.Percentage - }).(pulumi.Float64PtrOutput) +// A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput) RequestHeadersToRemoves() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction) []string { + return v.RequestHeadersToRemoves + }).(pulumi.StringArrayOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput struct{ *pulumi.OutputState } +// Headers to add the response before sending the response back to the client. +// Structure is documented below. +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput) ResponseHeadersToAdds() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction) []RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd { + return v.ResponseHeadersToAdds + }).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) +} -func (RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay)(nil)).Elem() +// A list of header names for headers that need to be removed from the response before sending the response back to the client. +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput) ResponseHeadersToRemoves() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction) []string { + return v.ResponseHeadersToRemoves + }).(pulumi.StringArrayOutput) } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput { +type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() +} + +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput) Elem() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay { +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) Elem() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction { if v != nil { return *v } - var ret RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay + var ret RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction return ret - }).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput) + }).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionOutput) } -// Specifies the value of the fixed delay interval. +// Headers to add to a matching request before forwarding the request to the backendService. // Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput) FixedDelay() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay) *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay { +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) RequestHeadersToAdds() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction) []RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd { if v == nil { return nil } - return v.FixedDelay - }).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) + return v.RequestHeadersToAdds + }).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) } -// The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. -// The value must be between 0.0 and 100.0 inclusive. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput) Percentage() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay) *float64 { +// A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) RequestHeadersToRemoves() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction) []string { if v == nil { return nil } - return v.Percentage - }).(pulumi.Float64PtrOutput) + return v.RequestHeadersToRemoves + }).(pulumi.StringArrayOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay struct { - // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are - // represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. - Nanos *int `pulumi:"nanos"` - // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. - // Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years - Seconds string `pulumi:"seconds"` +// Headers to add the response before sending the response back to the client. +// Structure is documented below. +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) ResponseHeadersToAdds() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction) []RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd { + if v == nil { + return nil + } + return v.ResponseHeadersToAdds + }).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) } -// RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs and RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayInput` via: -// -// RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs{...} -type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayInput interface { - pulumi.Input +// A list of header names for headers that need to be removed from the response before sending the response back to the client. +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) ResponseHeadersToRemoves() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction) []string { + if v == nil { + return nil + } + return v.ResponseHeadersToRemoves + }).(pulumi.StringArrayOutput) +} - ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput - ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput +type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd struct { + // The name of the header. + HeaderName string `pulumi:"headerName"` + // The value of the header to add. + HeaderValue string `pulumi:"headerValue"` + // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. + // The default value is false. + Replace bool `pulumi:"replace"` } -type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs struct { - // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are - // represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. - Nanos pulumi.IntPtrInput `pulumi:"nanos"` - // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. - // Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years - Seconds pulumi.StringInput `pulumi:"seconds"` -} +// RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs and RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput` via: +// +// RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs{...} +type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput interface { + pulumi.Input -func (RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() + ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(context.Background()) +type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs struct { + // The name of the header. + HeaderName pulumi.StringInput `pulumi:"headerName"` + // The value of the header to add. + HeaderValue pulumi.StringInput `pulumi:"headerValue"` + // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. + // The default value is false. + Replace pulumi.BoolInput `pulumi:"replace"` } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) +func (RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput).ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx) +func (i RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) } -// RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs, RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtr and RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput` via: -// -// RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs{...} -// -// or: +// RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray and RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput` via: // -// nil -type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput interface { +// RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray{ RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs{...} } +type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput - ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput } -type regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrType RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs - -func RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtr(v *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput { - return (*regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrType)(v) -} +type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray []RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput -func (*regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() } -func (i *regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Background()) } -func (i *regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) +func (i RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return o.ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Background()) -} - -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay) *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay { - return &v - }).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) +// The name of the header. +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) HeaderName() pulumi.StringOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd) string { + return v.HeaderName + }).(pulumi.StringOutput) } -// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are -// represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) Nanos() pulumi.IntPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay) *int { - return v.Nanos - }).(pulumi.IntPtrOutput) +// The value of the header to add. +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) HeaderValue() pulumi.StringOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd) string { + return v.HeaderValue + }).(pulumi.StringOutput) } -// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. -// Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) Seconds() pulumi.StringOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay) string { - return v.Seconds - }).(pulumi.StringOutput) +// If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. +// The default value is false. +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) Replace() pulumi.BoolOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd) bool { + return v.Replace + }).(pulumi.BoolOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) Elem() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay { - if v != nil { - return *v - } - var ret RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay - return ret - }).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) -} - -// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are -// represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) Nanos() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay) *int { - if v == nil { - return nil - } - return v.Nanos - }).(pulumi.IntPtrOutput) -} - -// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. -// Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years -func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) Seconds() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay) *string { - if v == nil { - return nil - } - return &v.Seconds - }).(pulumi.StringPtrOutput) +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) Index(i pulumi.IntInput) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd { + return vs[0].([]RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)[vs[1].(int)] + }).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy struct { - // The full or partial URL to the RegionBackendService resource being mirrored to. - // The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map. - // Serverless NEG backends are not currently supported as a mirrored backend service. - BackendService string `pulumi:"backendService"` +type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd struct { + // The name of the header. + HeaderName string `pulumi:"headerName"` + // The value of the header to add. + HeaderValue string `pulumi:"headerValue"` + // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. + // The default value is false. + Replace bool `pulumi:"replace"` } -// RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgs and RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyInput` via: +// RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs and RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput` via: // -// RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgs{...} -type RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyInput interface { +// RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs{...} +type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput - ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput -} - -type RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgs struct { - // The full or partial URL to the RegionBackendService resource being mirrored to. - // The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map. - // Serverless NEG backends are not currently supported as a mirrored backend service. - BackendService pulumi.StringInput `pulumi:"backendService"` -} - -func (RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy)(nil)).Elem() + ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutputWithContext(context.Background()) +type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs struct { + // The name of the header. + HeaderName pulumi.StringInput `pulumi:"headerName"` + // The value of the header to add. + HeaderValue pulumi.StringInput `pulumi:"headerValue"` + // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. + // The default value is false. + Replace pulumi.BoolInput `pulumi:"replace"` } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput) +func (RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput).ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx) +func (i RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) } -// RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgs, RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtr and RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrInput` via: -// -// RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgs{...} -// -// or: +// RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput is an input type that accepts RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray and RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput` via: // -// nil -type RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrInput interface { +// RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray{ RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs{...} } +type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput - ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput + ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput } -type regionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrType RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgs - -func RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtr(v *RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgs) RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrInput { - return (*regionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrType)(v) -} +type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray []RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput -func (*regionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() } -func (i *regionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { + return i.ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(context.Background()) } -func (i *regionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput) +func (i RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput { - return o.ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Background()) +// The name of the header. +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) HeaderName() pulumi.StringOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd) string { + return v.HeaderName + }).(pulumi.StringOutput) } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy) *RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy { - return &v - }).(RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput) +// The value of the header to add. +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) HeaderValue() pulumi.StringOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd) string { + return v.HeaderValue + }).(pulumi.StringOutput) } -// The full or partial URL to the RegionBackendService resource being mirrored to. -// The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map. -// Serverless NEG backends are not currently supported as a mirrored backend service. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput) BackendService() pulumi.StringOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy) string { return v.BackendService }).(pulumi.StringOutput) +// If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. +// The default value is false. +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) Replace() pulumi.BoolOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd) bool { + return v.Replace + }).(pulumi.BoolOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput() RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput { +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) ToRegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput) Elem() RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy) RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy { - if v != nil { - return *v - } - var ret RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy - return ret - }).(RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput) -} - -// The full or partial URL to the RegionBackendService resource being mirrored to. -// The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map. -// Serverless NEG backends are not currently supported as a mirrored backend service. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput) BackendService() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy) *string { - if v == nil { - return nil - } - return &v.BackendService - }).(pulumi.StringPtrOutput) +func (o RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) Index(i pulumi.IntInput) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd { + return vs[0].([]RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)[vs[1].(int)] + }).(RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy struct { - // Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. - NumRetries int `pulumi:"numRetries"` - // Specifies a non-zero timeout per retry attempt. - // If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, - // will use the largest timeout among all backend services associated with the route. - // Structure is documented below. - PerTryTimeout *RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout `pulumi:"perTryTimeout"` - // Specifies one or more conditions when this retry policy applies. - // Valid values are listed below. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true: cancelled, deadline-exceeded, internal, resource-exhausted, unavailable. - // - 5xx : retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. - // - gateway-error : Similar to 5xx, but only applies to response codes 502, 503 or 504. - // - connect-failure : a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. - // - retriable-4xx : a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. - // - refused-stream : a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. - // - cancelled : a retry is attempted if the gRPC status code in the response header is set to cancelled. - // - deadline-exceeded : a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. - // - internal : a retry is attempted if the gRPC status code in the response header is set to internal. - // - resource-exhausted : a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. - // - unavailable : a retry is attempted if the gRPC status code in the response header is set to unavailable. - RetryConditions []string `pulumi:"retryConditions"` +type RegionUrlMapPathMatcherPathRuleUrlRedirect struct { + // The host that will be used in the redirect response instead of the one + // that was supplied in the request. The value must be between 1 and 255 + // characters. + HostRedirect *string `pulumi:"hostRedirect"` + // If set to true, the URL scheme in the redirected request is set to https. + // If set to false, the URL scheme of the redirected request will remain the + // same as that of the request. This must only be set for UrlMaps used in + // TargetHttpProxys. Setting this true for TargetHttpsProxy is not + // permitted. The default is set to false. + HttpsRedirect *bool `pulumi:"httpsRedirect"` + // The path that will be used in the redirect response instead of the one + // that was supplied in the request. pathRedirect cannot be supplied + // together with prefixRedirect. Supply one alone or neither. If neither is + // supplied, the path of the original request will be used for the redirect. + // The value must be between 1 and 1024 characters. + PathRedirect *string `pulumi:"pathRedirect"` + // The prefix that replaces the prefixMatch specified in the + // HttpRouteRuleMatch, retaining the remaining portion of the URL before + // redirecting the request. prefixRedirect cannot be supplied together with + // pathRedirect. Supply one alone or neither. If neither is supplied, the + // path of the original request will be used for the redirect. The value + // must be between 1 and 1024 characters. + PrefixRedirect *string `pulumi:"prefixRedirect"` + // The HTTP Status code to use for this RedirectAction. Supported values are: + // * MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. + // * FOUND, which corresponds to 302. + // * SEE_OTHER which corresponds to 303. + // * TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method + // will be retained. + // * PERMANENT_REDIRECT, which corresponds to 308. In this case, + // the request method will be retained. + RedirectResponseCode *string `pulumi:"redirectResponseCode"` + // If set to true, any accompanying query portion of the original URL is removed + // prior to redirecting the request. If set to false, the query portion of the + // original URL is retained. + // This field is required to ensure an empty block is not set. The normal default value is false. + StripQuery bool `pulumi:"stripQuery"` } -// RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyArgs and RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyInput` via: +// RegionUrlMapPathMatcherPathRuleUrlRedirectInput is an input type that accepts RegionUrlMapPathMatcherPathRuleUrlRedirectArgs and RegionUrlMapPathMatcherPathRuleUrlRedirectOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleUrlRedirectInput` via: // -// RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyArgs{...} -type RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyInput interface { +// RegionUrlMapPathMatcherPathRuleUrlRedirectArgs{...} +type RegionUrlMapPathMatcherPathRuleUrlRedirectInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput - ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput + ToRegionUrlMapPathMatcherPathRuleUrlRedirectOutput() RegionUrlMapPathMatcherPathRuleUrlRedirectOutput + ToRegionUrlMapPathMatcherPathRuleUrlRedirectOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleUrlRedirectOutput } -type RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyArgs struct { - // Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. - NumRetries pulumi.IntInput `pulumi:"numRetries"` - // Specifies a non-zero timeout per retry attempt. - // If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, - // will use the largest timeout among all backend services associated with the route. - // Structure is documented below. - PerTryTimeout RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrInput `pulumi:"perTryTimeout"` - // Specifies one or more conditions when this retry policy applies. - // Valid values are listed below. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true: cancelled, deadline-exceeded, internal, resource-exhausted, unavailable. - // - 5xx : retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. - // - gateway-error : Similar to 5xx, but only applies to response codes 502, 503 or 504. - // - connect-failure : a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. - // - retriable-4xx : a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. - // - refused-stream : a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. - // - cancelled : a retry is attempted if the gRPC status code in the response header is set to cancelled. - // - deadline-exceeded : a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. - // - internal : a retry is attempted if the gRPC status code in the response header is set to internal. - // - resource-exhausted : a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. - // - unavailable : a retry is attempted if the gRPC status code in the response header is set to unavailable. - RetryConditions pulumi.StringArrayInput `pulumi:"retryConditions"` +type RegionUrlMapPathMatcherPathRuleUrlRedirectArgs struct { + // The host that will be used in the redirect response instead of the one + // that was supplied in the request. The value must be between 1 and 255 + // characters. + HostRedirect pulumi.StringPtrInput `pulumi:"hostRedirect"` + // If set to true, the URL scheme in the redirected request is set to https. + // If set to false, the URL scheme of the redirected request will remain the + // same as that of the request. This must only be set for UrlMaps used in + // TargetHttpProxys. Setting this true for TargetHttpsProxy is not + // permitted. The default is set to false. + HttpsRedirect pulumi.BoolPtrInput `pulumi:"httpsRedirect"` + // The path that will be used in the redirect response instead of the one + // that was supplied in the request. pathRedirect cannot be supplied + // together with prefixRedirect. Supply one alone or neither. If neither is + // supplied, the path of the original request will be used for the redirect. + // The value must be between 1 and 1024 characters. + PathRedirect pulumi.StringPtrInput `pulumi:"pathRedirect"` + // The prefix that replaces the prefixMatch specified in the + // HttpRouteRuleMatch, retaining the remaining portion of the URL before + // redirecting the request. prefixRedirect cannot be supplied together with + // pathRedirect. Supply one alone or neither. If neither is supplied, the + // path of the original request will be used for the redirect. The value + // must be between 1 and 1024 characters. + PrefixRedirect pulumi.StringPtrInput `pulumi:"prefixRedirect"` + // The HTTP Status code to use for this RedirectAction. Supported values are: + // * MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. + // * FOUND, which corresponds to 302. + // * SEE_OTHER which corresponds to 303. + // * TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method + // will be retained. + // * PERMANENT_REDIRECT, which corresponds to 308. In this case, + // the request method will be retained. + RedirectResponseCode pulumi.StringPtrInput `pulumi:"redirectResponseCode"` + // If set to true, any accompanying query portion of the original URL is removed + // prior to redirecting the request. If set to false, the query portion of the + // original URL is retained. + // This field is required to ensure an empty block is not set. The normal default value is false. + StripQuery pulumi.BoolInput `pulumi:"stripQuery"` } -func (RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleUrlRedirectArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleUrlRedirect)(nil)).Elem() } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherPathRuleUrlRedirectArgs) ToRegionUrlMapPathMatcherPathRuleUrlRedirectOutput() RegionUrlMapPathMatcherPathRuleUrlRedirectOutput { + return i.ToRegionUrlMapPathMatcherPathRuleUrlRedirectOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput) +func (i RegionUrlMapPathMatcherPathRuleUrlRedirectArgs) ToRegionUrlMapPathMatcherPathRuleUrlRedirectOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleUrlRedirectOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleUrlRedirectOutput) } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherPathRuleUrlRedirectArgs) ToRegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput() RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput { + return i.ToRegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput).ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutputWithContext(ctx) +func (i RegionUrlMapPathMatcherPathRuleUrlRedirectArgs) ToRegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleUrlRedirectOutput).ToRegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutputWithContext(ctx) } -// RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyArgs, RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtr and RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrInput` via: +// RegionUrlMapPathMatcherPathRuleUrlRedirectPtrInput is an input type that accepts RegionUrlMapPathMatcherPathRuleUrlRedirectArgs, RegionUrlMapPathMatcherPathRuleUrlRedirectPtr and RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherPathRuleUrlRedirectPtrInput` via: // -// RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyArgs{...} +// RegionUrlMapPathMatcherPathRuleUrlRedirectArgs{...} // // or: // // nil -type RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrInput interface { +type RegionUrlMapPathMatcherPathRuleUrlRedirectPtrInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput - ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput + ToRegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput() RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput + ToRegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput } -type regionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrType RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyArgs +type regionUrlMapPathMatcherPathRuleUrlRedirectPtrType RegionUrlMapPathMatcherPathRuleUrlRedirectArgs -func RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtr(v *RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyArgs) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrInput { - return (*regionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrType)(v) +func RegionUrlMapPathMatcherPathRuleUrlRedirectPtr(v *RegionUrlMapPathMatcherPathRuleUrlRedirectArgs) RegionUrlMapPathMatcherPathRuleUrlRedirectPtrInput { + return (*regionUrlMapPathMatcherPathRuleUrlRedirectPtrType)(v) } -func (*regionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy)(nil)).Elem() +func (*regionUrlMapPathMatcherPathRuleUrlRedirectPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleUrlRedirect)(nil)).Elem() } -func (i *regionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutputWithContext(context.Background()) +func (i *regionUrlMapPathMatcherPathRuleUrlRedirectPtrType) ToRegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput() RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput { + return i.ToRegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutputWithContext(context.Background()) } -func (i *regionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput) +func (i *regionUrlMapPathMatcherPathRuleUrlRedirectPtrType) ToRegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherPathRuleUrlRedirectOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy)(nil)).Elem() +func (RegionUrlMapPathMatcherPathRuleUrlRedirectOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherPathRuleUrlRedirect)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput { +func (o RegionUrlMapPathMatcherPathRuleUrlRedirectOutput) ToRegionUrlMapPathMatcherPathRuleUrlRedirectOutput() RegionUrlMapPathMatcherPathRuleUrlRedirectOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput { +func (o RegionUrlMapPathMatcherPathRuleUrlRedirectOutput) ToRegionUrlMapPathMatcherPathRuleUrlRedirectOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleUrlRedirectOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput { - return o.ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutputWithContext(context.Background()) +func (o RegionUrlMapPathMatcherPathRuleUrlRedirectOutput) ToRegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput() RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput { + return o.ToRegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutputWithContext(context.Background()) } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy) *RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy { +func (o RegionUrlMapPathMatcherPathRuleUrlRedirectOutput) ToRegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherPathRuleUrlRedirect) *RegionUrlMapPathMatcherPathRuleUrlRedirect { return &v - }).(RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput) + }).(RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput) } -// Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput) NumRetries() pulumi.IntOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy) int { return v.NumRetries }).(pulumi.IntOutput) +// The host that will be used in the redirect response instead of the one +// that was supplied in the request. The value must be between 1 and 255 +// characters. +func (o RegionUrlMapPathMatcherPathRuleUrlRedirectOutput) HostRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleUrlRedirect) *string { return v.HostRedirect }).(pulumi.StringPtrOutput) } -// Specifies a non-zero timeout per retry attempt. -// If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, -// will use the largest timeout among all backend services associated with the route. -// Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput) PerTryTimeout() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy) *RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout { - return v.PerTryTimeout - }).(RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) +// If set to true, the URL scheme in the redirected request is set to https. +// If set to false, the URL scheme of the redirected request will remain the +// same as that of the request. This must only be set for UrlMaps used in +// TargetHttpProxys. Setting this true for TargetHttpsProxy is not +// permitted. The default is set to false. +func (o RegionUrlMapPathMatcherPathRuleUrlRedirectOutput) HttpsRedirect() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleUrlRedirect) *bool { return v.HttpsRedirect }).(pulumi.BoolPtrOutput) } -// Specifies one or more conditions when this retry policy applies. -// Valid values are listed below. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true: cancelled, deadline-exceeded, internal, resource-exhausted, unavailable. -// - 5xx : retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. -// - gateway-error : Similar to 5xx, but only applies to response codes 502, 503 or 504. -// - connect-failure : a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. -// - retriable-4xx : a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. -// - refused-stream : a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. -// - cancelled : a retry is attempted if the gRPC status code in the response header is set to cancelled. -// - deadline-exceeded : a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. -// - internal : a retry is attempted if the gRPC status code in the response header is set to internal. -// - resource-exhausted : a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. -// - unavailable : a retry is attempted if the gRPC status code in the response header is set to unavailable. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput) RetryConditions() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy) []string { return v.RetryConditions }).(pulumi.StringArrayOutput) +// The path that will be used in the redirect response instead of the one +// that was supplied in the request. pathRedirect cannot be supplied +// together with prefixRedirect. Supply one alone or neither. If neither is +// supplied, the path of the original request will be used for the redirect. +// The value must be between 1 and 1024 characters. +func (o RegionUrlMapPathMatcherPathRuleUrlRedirectOutput) PathRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleUrlRedirect) *string { return v.PathRedirect }).(pulumi.StringPtrOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput struct{ *pulumi.OutputState } +// The prefix that replaces the prefixMatch specified in the +// HttpRouteRuleMatch, retaining the remaining portion of the URL before +// redirecting the request. prefixRedirect cannot be supplied together with +// pathRedirect. Supply one alone or neither. If neither is supplied, the +// path of the original request will be used for the redirect. The value +// must be between 1 and 1024 characters. +func (o RegionUrlMapPathMatcherPathRuleUrlRedirectOutput) PrefixRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleUrlRedirect) *string { return v.PrefixRedirect }).(pulumi.StringPtrOutput) +} -func (RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy)(nil)).Elem() +// The HTTP Status code to use for this RedirectAction. Supported values are: +// - MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. +// - FOUND, which corresponds to 302. +// - SEE_OTHER which corresponds to 303. +// - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method +// will be retained. +// - PERMANENT_REDIRECT, which corresponds to 308. In this case, +// the request method will be retained. +func (o RegionUrlMapPathMatcherPathRuleUrlRedirectOutput) RedirectResponseCode() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleUrlRedirect) *string { return v.RedirectResponseCode }).(pulumi.StringPtrOutput) } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput { +// If set to true, any accompanying query portion of the original URL is removed +// prior to redirecting the request. If set to false, the query portion of the +// original URL is retained. +// This field is required to ensure an empty block is not set. The normal default value is false. +func (o RegionUrlMapPathMatcherPathRuleUrlRedirectOutput) StripQuery() pulumi.BoolOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherPathRuleUrlRedirect) bool { return v.StripQuery }).(pulumi.BoolOutput) +} + +type RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherPathRuleUrlRedirect)(nil)).Elem() +} + +func (o RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput) ToRegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput() RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput { +func (o RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput) ToRegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput) Elem() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy { +func (o RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput) Elem() RegionUrlMapPathMatcherPathRuleUrlRedirectOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleUrlRedirect) RegionUrlMapPathMatcherPathRuleUrlRedirect { if v != nil { return *v } - var ret RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy + var ret RegionUrlMapPathMatcherPathRuleUrlRedirect return ret - }).(RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput) + }).(RegionUrlMapPathMatcherPathRuleUrlRedirectOutput) } -// Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput) NumRetries() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy) *int { +// The host that will be used in the redirect response instead of the one +// that was supplied in the request. The value must be between 1 and 255 +// characters. +func (o RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput) HostRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleUrlRedirect) *string { if v == nil { return nil } - return &v.NumRetries - }).(pulumi.IntPtrOutput) + return v.HostRedirect + }).(pulumi.StringPtrOutput) } -// Specifies a non-zero timeout per retry attempt. -// If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, -// will use the largest timeout among all backend services associated with the route. -// Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput) PerTryTimeout() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy) *RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout { +// If set to true, the URL scheme in the redirected request is set to https. +// If set to false, the URL scheme of the redirected request will remain the +// same as that of the request. This must only be set for UrlMaps used in +// TargetHttpProxys. Setting this true for TargetHttpsProxy is not +// permitted. The default is set to false. +func (o RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput) HttpsRedirect() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleUrlRedirect) *bool { if v == nil { return nil } - return v.PerTryTimeout - }).(RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) + return v.HttpsRedirect + }).(pulumi.BoolPtrOutput) } -// Specifies one or more conditions when this retry policy applies. -// Valid values are listed below. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true: cancelled, deadline-exceeded, internal, resource-exhausted, unavailable. -// - 5xx : retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. -// - gateway-error : Similar to 5xx, but only applies to response codes 502, 503 or 504. -// - connect-failure : a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. -// - retriable-4xx : a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. -// - refused-stream : a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. -// - cancelled : a retry is attempted if the gRPC status code in the response header is set to cancelled. -// - deadline-exceeded : a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. -// - internal : a retry is attempted if the gRPC status code in the response header is set to internal. -// - resource-exhausted : a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. -// - unavailable : a retry is attempted if the gRPC status code in the response header is set to unavailable. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput) RetryConditions() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy) []string { +// The path that will be used in the redirect response instead of the one +// that was supplied in the request. pathRedirect cannot be supplied +// together with prefixRedirect. Supply one alone or neither. If neither is +// supplied, the path of the original request will be used for the redirect. +// The value must be between 1 and 1024 characters. +func (o RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput) PathRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleUrlRedirect) *string { if v == nil { return nil } - return v.RetryConditions - }).(pulumi.StringArrayOutput) + return v.PathRedirect + }).(pulumi.StringPtrOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout struct { - // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are - // represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. - Nanos *int `pulumi:"nanos"` - // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. - // Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years - Seconds string `pulumi:"seconds"` +// The prefix that replaces the prefixMatch specified in the +// HttpRouteRuleMatch, retaining the remaining portion of the URL before +// redirecting the request. prefixRedirect cannot be supplied together with +// pathRedirect. Supply one alone or neither. If neither is supplied, the +// path of the original request will be used for the redirect. The value +// must be between 1 and 1024 characters. +func (o RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput) PrefixRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleUrlRedirect) *string { + if v == nil { + return nil + } + return v.PrefixRedirect + }).(pulumi.StringPtrOutput) } -// RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutArgs and RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutInput` via: -// -// RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutArgs{...} -type RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutInput interface { - pulumi.Input +// The HTTP Status code to use for this RedirectAction. Supported values are: +// - MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. +// - FOUND, which corresponds to 302. +// - SEE_OTHER which corresponds to 303. +// - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method +// will be retained. +// - PERMANENT_REDIRECT, which corresponds to 308. In this case, +// the request method will be retained. +func (o RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput) RedirectResponseCode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleUrlRedirect) *string { + if v == nil { + return nil + } + return v.RedirectResponseCode + }).(pulumi.StringPtrOutput) +} - ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput - ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput +// If set to true, any accompanying query portion of the original URL is removed +// prior to redirecting the request. If set to false, the query portion of the +// original URL is retained. +// This field is required to ensure an empty block is not set. The normal default value is false. +func (o RegionUrlMapPathMatcherPathRuleUrlRedirectPtrOutput) StripQuery() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherPathRuleUrlRedirect) *bool { + if v == nil { + return nil + } + return &v.StripQuery + }).(pulumi.BoolPtrOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutArgs struct { - // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are - // represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. - Nanos pulumi.IntPtrInput `pulumi:"nanos"` - // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. - // Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years - Seconds pulumi.StringInput `pulumi:"seconds"` +type RegionUrlMapPathMatcherRouteRule struct { + // Specifies changes to request and response headers that need to take effect for + // the selected backendService. The headerAction specified here are applied before + // the matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].r + // outeAction.weightedBackendService.backendServiceWeightAction[].headerAction + // Structure is documented below. + HeaderAction *RegionUrlMapPathMatcherRouteRuleHeaderAction `pulumi:"headerAction"` + // The rules for determining a match. + // Structure is documented below. + MatchRules []RegionUrlMapPathMatcherRouteRuleMatchRule `pulumi:"matchRules"` + // For routeRules within a given pathMatcher, priority determines the order + // in which load balancer will interpret routeRules. RouteRules are evaluated + // in order of priority, from the lowest to highest number. The priority of + // a rule decreases as its number increases (1, 2, 3, N+1). The first rule + // that matches the request is applied. + // You cannot configure two or more routeRules with the same priority. + // Priority for each rule must be set to a number between 0 and + // 2147483647 inclusive. + // Priority numbers can have gaps, which enable you to add or remove rules + // in the future without affecting the rest of the rules. For example, + // 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to which + // you could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the + // future without any impact on existing rules. + Priority int `pulumi:"priority"` + // In response to a matching matchRule, the load balancer performs advanced routing + // actions like URL rewrites, header transformations, etc. prior to forwarding the + // request to the selected backend. If routeAction specifies any + // weightedBackendServices, service must not be set. Conversely if service is set, + // routeAction cannot contain any weightedBackendServices. Only one of routeAction + // or urlRedirect must be set. + // Structure is documented below. + RouteAction *RegionUrlMapPathMatcherRouteRuleRouteAction `pulumi:"routeAction"` + // The region backend service resource to which traffic is + // directed if this rule is matched. If routeAction is additionally specified, + // advanced routing actions like URL Rewrites, etc. take effect prior to sending + // the request to the backend. However, if service is specified, routeAction cannot + // contain any weightedBackendService s. Conversely, if routeAction specifies any + // weightedBackendServices, service must not be specified. Only one of urlRedirect, + // service or routeAction.weightedBackendService must be set. + Service *string `pulumi:"service"` + // When this rule is matched, the request is redirected to a URL specified by + // urlRedirect. If urlRedirect is specified, service or routeAction must not be + // set. + // Structure is documented below. + UrlRedirect *RegionUrlMapPathMatcherRouteRuleUrlRedirect `pulumi:"urlRedirect"` } -func (RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() +// RegionUrlMapPathMatcherRouteRuleInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleArgs and RegionUrlMapPathMatcherRouteRuleOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleInput` via: +// +// RegionUrlMapPathMatcherRouteRuleArgs{...} +type RegionUrlMapPathMatcherRouteRuleInput interface { + pulumi.Input + + ToRegionUrlMapPathMatcherRouteRuleOutput() RegionUrlMapPathMatcherRouteRuleOutput + ToRegionUrlMapPathMatcherRouteRuleOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleOutput } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutputWithContext(context.Background()) +type RegionUrlMapPathMatcherRouteRuleArgs struct { + // Specifies changes to request and response headers that need to take effect for + // the selected backendService. The headerAction specified here are applied before + // the matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].r + // outeAction.weightedBackendService.backendServiceWeightAction[].headerAction + // Structure is documented below. + HeaderAction RegionUrlMapPathMatcherRouteRuleHeaderActionPtrInput `pulumi:"headerAction"` + // The rules for determining a match. + // Structure is documented below. + MatchRules RegionUrlMapPathMatcherRouteRuleMatchRuleArrayInput `pulumi:"matchRules"` + // For routeRules within a given pathMatcher, priority determines the order + // in which load balancer will interpret routeRules. RouteRules are evaluated + // in order of priority, from the lowest to highest number. The priority of + // a rule decreases as its number increases (1, 2, 3, N+1). The first rule + // that matches the request is applied. + // You cannot configure two or more routeRules with the same priority. + // Priority for each rule must be set to a number between 0 and + // 2147483647 inclusive. + // Priority numbers can have gaps, which enable you to add or remove rules + // in the future without affecting the rest of the rules. For example, + // 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to which + // you could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the + // future without any impact on existing rules. + Priority pulumi.IntInput `pulumi:"priority"` + // In response to a matching matchRule, the load balancer performs advanced routing + // actions like URL rewrites, header transformations, etc. prior to forwarding the + // request to the selected backend. If routeAction specifies any + // weightedBackendServices, service must not be set. Conversely if service is set, + // routeAction cannot contain any weightedBackendServices. Only one of routeAction + // or urlRedirect must be set. + // Structure is documented below. + RouteAction RegionUrlMapPathMatcherRouteRuleRouteActionPtrInput `pulumi:"routeAction"` + // The region backend service resource to which traffic is + // directed if this rule is matched. If routeAction is additionally specified, + // advanced routing actions like URL Rewrites, etc. take effect prior to sending + // the request to the backend. However, if service is specified, routeAction cannot + // contain any weightedBackendService s. Conversely, if routeAction specifies any + // weightedBackendServices, service must not be specified. Only one of urlRedirect, + // service or routeAction.weightedBackendService must be set. + Service pulumi.StringPtrInput `pulumi:"service"` + // When this rule is matched, the request is redirected to a URL specified by + // urlRedirect. If urlRedirect is specified, service or routeAction must not be + // set. + // Structure is documented below. + UrlRedirect RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrInput `pulumi:"urlRedirect"` } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput) +func (RegionUrlMapPathMatcherRouteRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRule)(nil)).Elem() } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleArgs) ToRegionUrlMapPathMatcherRouteRuleOutput() RegionUrlMapPathMatcherRouteRuleOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput).ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx) +func (i RegionUrlMapPathMatcherRouteRuleArgs) ToRegionUrlMapPathMatcherRouteRuleOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleOutput) } -// RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutArgs, RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtr and RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrInput` via: -// -// RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutArgs{...} -// -// or: +// RegionUrlMapPathMatcherRouteRuleArrayInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleArray and RegionUrlMapPathMatcherRouteRuleArrayOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleArrayInput` via: // -// nil -type RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrInput interface { +// RegionUrlMapPathMatcherRouteRuleArray{ RegionUrlMapPathMatcherRouteRuleArgs{...} } +type RegionUrlMapPathMatcherRouteRuleArrayInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput - ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput + ToRegionUrlMapPathMatcherRouteRuleArrayOutput() RegionUrlMapPathMatcherRouteRuleArrayOutput + ToRegionUrlMapPathMatcherRouteRuleArrayOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleArrayOutput } -type regionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrType RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutArgs - -func RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtr(v *RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutArgs) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrInput { - return (*regionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrType)(v) -} +type RegionUrlMapPathMatcherRouteRuleArray []RegionUrlMapPathMatcherRouteRuleInput -func (*regionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRule)(nil)).Elem() } -func (i *regionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleArray) ToRegionUrlMapPathMatcherRouteRuleArrayOutput() RegionUrlMapPathMatcherRouteRuleArrayOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleArrayOutputWithContext(context.Background()) } -func (i *regionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) +func (i RegionUrlMapPathMatcherRouteRuleArray) ToRegionUrlMapPathMatcherRouteRuleArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleArrayOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherRouteRuleOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRule)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput { +func (o RegionUrlMapPathMatcherRouteRuleOutput) ToRegionUrlMapPathMatcherRouteRuleOutput() RegionUrlMapPathMatcherRouteRuleOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput { +func (o RegionUrlMapPathMatcherRouteRuleOutput) ToRegionUrlMapPathMatcherRouteRuleOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return o.ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Background()) +// Specifies changes to request and response headers that need to take effect for +// the selected backendService. The headerAction specified here are applied before +// the matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].r +// outeAction.weightedBackendService.backendServiceWeightAction[].headerAction +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleOutput) HeaderAction() RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRule) *RegionUrlMapPathMatcherRouteRuleHeaderAction { + return v.HeaderAction + }).(RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput) } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout) *RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout { - return &v - }).(RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) +// The rules for determining a match. +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleOutput) MatchRules() RegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRule) []RegionUrlMapPathMatcherRouteRuleMatchRule { + return v.MatchRules + }).(RegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput) } -// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are -// represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput) Nanos() pulumi.IntPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout) *int { return v.Nanos }).(pulumi.IntPtrOutput) +// For routeRules within a given pathMatcher, priority determines the order +// in which load balancer will interpret routeRules. RouteRules are evaluated +// in order of priority, from the lowest to highest number. The priority of +// a rule decreases as its number increases (1, 2, 3, N+1). The first rule +// that matches the request is applied. +// You cannot configure two or more routeRules with the same priority. +// Priority for each rule must be set to a number between 0 and +// 2147483647 inclusive. +// Priority numbers can have gaps, which enable you to add or remove rules +// in the future without affecting the rest of the rules. For example, +// 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to which +// you could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the +// future without any impact on existing rules. +func (o RegionUrlMapPathMatcherRouteRuleOutput) Priority() pulumi.IntOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRule) int { return v.Priority }).(pulumi.IntOutput) } -// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. -// Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years -func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput) Seconds() pulumi.StringOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout) string { return v.Seconds }).(pulumi.StringOutput) +// In response to a matching matchRule, the load balancer performs advanced routing +// actions like URL rewrites, header transformations, etc. prior to forwarding the +// request to the selected backend. If routeAction specifies any +// weightedBackendServices, service must not be set. Conversely if service is set, +// routeAction cannot contain any weightedBackendServices. Only one of routeAction +// or urlRedirect must be set. +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleOutput) RouteAction() RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRule) *RegionUrlMapPathMatcherRouteRuleRouteAction { + return v.RouteAction + }).(RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput struct{ *pulumi.OutputState } - -func (RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() +// The region backend service resource to which traffic is +// directed if this rule is matched. If routeAction is additionally specified, +// advanced routing actions like URL Rewrites, etc. take effect prior to sending +// the request to the backend. However, if service is specified, routeAction cannot +// contain any weightedBackendService s. Conversely, if routeAction specifies any +// weightedBackendServices, service must not be specified. Only one of urlRedirect, +// service or routeAction.weightedBackendService must be set. +func (o RegionUrlMapPathMatcherRouteRuleOutput) Service() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRule) *string { return v.Service }).(pulumi.StringPtrOutput) } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return o +// When this rule is matched, the request is redirected to a URL specified by +// urlRedirect. If urlRedirect is specified, service or routeAction must not be +// set. +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleOutput) UrlRedirect() RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRule) *RegionUrlMapPathMatcherRouteRuleUrlRedirect { + return v.UrlRedirect + }).(RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput) } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return o +type RegionUrlMapPathMatcherRouteRuleArrayOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapPathMatcherRouteRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRule)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) Elem() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout { - if v != nil { - return *v - } - var ret RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout - return ret - }).(RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput) +func (o RegionUrlMapPathMatcherRouteRuleArrayOutput) ToRegionUrlMapPathMatcherRouteRuleArrayOutput() RegionUrlMapPathMatcherRouteRuleArrayOutput { + return o } -// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are -// represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) Nanos() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout) *int { - if v == nil { - return nil - } - return v.Nanos - }).(pulumi.IntPtrOutput) +func (o RegionUrlMapPathMatcherRouteRuleArrayOutput) ToRegionUrlMapPathMatcherRouteRuleArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleArrayOutput { + return o } -// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. -// Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years -func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) Seconds() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout) *string { - if v == nil { - return nil - } - return &v.Seconds - }).(pulumi.StringPtrOutput) +func (o RegionUrlMapPathMatcherRouteRuleArrayOutput) Index(i pulumi.IntInput) RegionUrlMapPathMatcherRouteRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapPathMatcherRouteRule { + return vs[0].([]RegionUrlMapPathMatcherRouteRule)[vs[1].(int)] + }).(RegionUrlMapPathMatcherRouteRuleOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionTimeout struct { - // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. - Nanos *int `pulumi:"nanos"` - // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years - Seconds string `pulumi:"seconds"` +type RegionUrlMapPathMatcherRouteRuleHeaderAction struct { + // Headers to add to a matching request before forwarding the request to the backendService. + // Structure is documented below. + RequestHeadersToAdds []RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd `pulumi:"requestHeadersToAdds"` + // A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. + RequestHeadersToRemoves []string `pulumi:"requestHeadersToRemoves"` + // Headers to add the response before sending the response back to the client. + // Structure is documented below. + ResponseHeadersToAdds []RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd `pulumi:"responseHeadersToAdds"` + // A list of header names for headers that need to be removed from the response before sending the response back to the client. + ResponseHeadersToRemoves []string `pulumi:"responseHeadersToRemoves"` } -// RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutArgs and RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutInput` via: +// RegionUrlMapPathMatcherRouteRuleHeaderActionInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleHeaderActionArgs and RegionUrlMapPathMatcherRouteRuleHeaderActionOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleHeaderActionInput` via: // -// RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutArgs{...} -type RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutInput interface { +// RegionUrlMapPathMatcherRouteRuleHeaderActionArgs{...} +type RegionUrlMapPathMatcherRouteRuleHeaderActionInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput() RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput - ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput + ToRegionUrlMapPathMatcherRouteRuleHeaderActionOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionOutput + ToRegionUrlMapPathMatcherRouteRuleHeaderActionOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionOutput } -type RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutArgs struct { - // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. - Nanos pulumi.IntPtrInput `pulumi:"nanos"` - // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years - Seconds pulumi.StringInput `pulumi:"seconds"` +type RegionUrlMapPathMatcherRouteRuleHeaderActionArgs struct { + // Headers to add to a matching request before forwarding the request to the backendService. + // Structure is documented below. + RequestHeadersToAdds RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayInput `pulumi:"requestHeadersToAdds"` + // A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. + RequestHeadersToRemoves pulumi.StringArrayInput `pulumi:"requestHeadersToRemoves"` + // Headers to add the response before sending the response back to the client. + // Structure is documented below. + ResponseHeadersToAdds RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayInput `pulumi:"responseHeadersToAdds"` + // A list of header names for headers that need to be removed from the response before sending the response back to the client. + ResponseHeadersToRemoves pulumi.StringArrayInput `pulumi:"responseHeadersToRemoves"` } -func (RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionTimeout)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleHeaderActionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleHeaderAction)(nil)).Elem() } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput() RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleHeaderActionArgs) ToRegionUrlMapPathMatcherRouteRuleHeaderActionOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleHeaderActionOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput) +func (i RegionUrlMapPathMatcherRouteRuleHeaderActionArgs) ToRegionUrlMapPathMatcherRouteRuleHeaderActionOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleHeaderActionOutput) } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleHeaderActionArgs) ToRegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput).ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutputWithContext(ctx) +func (i RegionUrlMapPathMatcherRouteRuleHeaderActionArgs) ToRegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleHeaderActionOutput).ToRegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutputWithContext(ctx) } -// RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutArgs, RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtr and RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrInput` via: +// RegionUrlMapPathMatcherRouteRuleHeaderActionPtrInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleHeaderActionArgs, RegionUrlMapPathMatcherRouteRuleHeaderActionPtr and RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleHeaderActionPtrInput` via: // -// RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutArgs{...} +// RegionUrlMapPathMatcherRouteRuleHeaderActionArgs{...} // // or: // // nil -type RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrInput interface { +type RegionUrlMapPathMatcherRouteRuleHeaderActionPtrInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput - ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput + ToRegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput + ToRegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput } -type regionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrType RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutArgs +type regionUrlMapPathMatcherRouteRuleHeaderActionPtrType RegionUrlMapPathMatcherRouteRuleHeaderActionArgs -func RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtr(v *RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutArgs) RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrInput { - return (*regionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrType)(v) +func RegionUrlMapPathMatcherRouteRuleHeaderActionPtr(v *RegionUrlMapPathMatcherRouteRuleHeaderActionArgs) RegionUrlMapPathMatcherRouteRuleHeaderActionPtrInput { + return (*regionUrlMapPathMatcherRouteRuleHeaderActionPtrType)(v) } -func (*regionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionTimeout)(nil)).Elem() +func (*regionUrlMapPathMatcherRouteRuleHeaderActionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleHeaderAction)(nil)).Elem() } -func (i *regionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutputWithContext(context.Background()) +func (i *regionUrlMapPathMatcherRouteRuleHeaderActionPtrType) ToRegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutputWithContext(context.Background()) } -func (i *regionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput) +func (i *regionUrlMapPathMatcherRouteRuleHeaderActionPtrType) ToRegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherRouteRuleHeaderActionOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionTimeout)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleHeaderActionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleHeaderAction)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput() RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput { +func (o RegionUrlMapPathMatcherRouteRuleHeaderActionOutput) ToRegionUrlMapPathMatcherRouteRuleHeaderActionOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput { +func (o RegionUrlMapPathMatcherRouteRuleHeaderActionOutput) ToRegionUrlMapPathMatcherRouteRuleHeaderActionOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput { - return o.ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutputWithContext(context.Background()) +func (o RegionUrlMapPathMatcherRouteRuleHeaderActionOutput) ToRegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput { + return o.ToRegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutputWithContext(context.Background()) } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherRouteRuleRouteActionTimeout) *RegionUrlMapPathMatcherRouteRuleRouteActionTimeout { +func (o RegionUrlMapPathMatcherRouteRuleHeaderActionOutput) ToRegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherRouteRuleHeaderAction) *RegionUrlMapPathMatcherRouteRuleHeaderAction { return &v - }).(RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput) + }).(RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput) } -// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput) Nanos() pulumi.IntPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionTimeout) *int { return v.Nanos }).(pulumi.IntPtrOutput) +// Headers to add to a matching request before forwarding the request to the backendService. +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleHeaderActionOutput) RequestHeadersToAdds() RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleHeaderAction) []RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd { + return v.RequestHeadersToAdds + }).(RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput) } -// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years -func (o RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput) Seconds() pulumi.StringOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionTimeout) string { return v.Seconds }).(pulumi.StringOutput) +// A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. +func (o RegionUrlMapPathMatcherRouteRuleHeaderActionOutput) RequestHeadersToRemoves() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleHeaderAction) []string { return v.RequestHeadersToRemoves }).(pulumi.StringArrayOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput struct{ *pulumi.OutputState } +// Headers to add the response before sending the response back to the client. +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleHeaderActionOutput) ResponseHeadersToAdds() RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleHeaderAction) []RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd { + return v.ResponseHeadersToAdds + }).(RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput) +} -func (RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionTimeout)(nil)).Elem() +// A list of header names for headers that need to be removed from the response before sending the response back to the client. +func (o RegionUrlMapPathMatcherRouteRuleHeaderActionOutput) ResponseHeadersToRemoves() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleHeaderAction) []string { return v.ResponseHeadersToRemoves }).(pulumi.StringArrayOutput) } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput { +type RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleHeaderAction)(nil)).Elem() +} + +func (o RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput) ToRegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput { +func (o RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput) ToRegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput) Elem() RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionTimeout) RegionUrlMapPathMatcherRouteRuleRouteActionTimeout { +func (o RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput) Elem() RegionUrlMapPathMatcherRouteRuleHeaderActionOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleHeaderAction) RegionUrlMapPathMatcherRouteRuleHeaderAction { if v != nil { return *v } - var ret RegionUrlMapPathMatcherRouteRuleRouteActionTimeout + var ret RegionUrlMapPathMatcherRouteRuleHeaderAction return ret - }).(RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput) + }).(RegionUrlMapPathMatcherRouteRuleHeaderActionOutput) } -// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput) Nanos() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionTimeout) *int { +// Headers to add to a matching request before forwarding the request to the backendService. +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput) RequestHeadersToAdds() RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleHeaderAction) []RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd { if v == nil { return nil } - return v.Nanos - }).(pulumi.IntPtrOutput) + return v.RequestHeadersToAdds + }).(RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput) } -// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years -func (o RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput) Seconds() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionTimeout) *string { +// A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. +func (o RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput) RequestHeadersToRemoves() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleHeaderAction) []string { if v == nil { return nil } - return &v.Seconds - }).(pulumi.StringPtrOutput) + return v.RequestHeadersToRemoves + }).(pulumi.StringArrayOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite struct { - // Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. - // The value must be from 1 to 255 characters. - HostRewrite *string `pulumi:"hostRewrite"` - // Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. - // The value must be from 1 to 1024 characters. - PathPrefixRewrite *string `pulumi:"pathPrefixRewrite"` - // Prior to forwarding the request to the selected origin, if the - // request matched a pathTemplateMatch, the matching portion of the - // request's path is replaced re-written using the pattern specified - // by pathTemplateRewrite. - // pathTemplateRewrite must be between 1 and 255 characters - // (inclusive), must start with a '/', and must only use variables - // captured by the route's pathTemplate matchers. - // pathTemplateRewrite may only be used when all of a route's - // MatchRules specify pathTemplate. - // Only one of pathPrefixRewrite and pathTemplateRewrite may be - // specified. - PathTemplateRewrite *string `pulumi:"pathTemplateRewrite"` +// Headers to add the response before sending the response back to the client. +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput) ResponseHeadersToAdds() RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleHeaderAction) []RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd { + if v == nil { + return nil + } + return v.ResponseHeadersToAdds + }).(RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput) } -// RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteArgs and RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteInput` via: -// -// RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteArgs{...} -type RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteInput interface { - pulumi.Input - - ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput() RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput - ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput +// A list of header names for headers that need to be removed from the response before sending the response back to the client. +func (o RegionUrlMapPathMatcherRouteRuleHeaderActionPtrOutput) ResponseHeadersToRemoves() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleHeaderAction) []string { + if v == nil { + return nil + } + return v.ResponseHeadersToRemoves + }).(pulumi.StringArrayOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteArgs struct { - // Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. - // The value must be from 1 to 255 characters. - HostRewrite pulumi.StringPtrInput `pulumi:"hostRewrite"` - // Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. - // The value must be from 1 to 1024 characters. - PathPrefixRewrite pulumi.StringPtrInput `pulumi:"pathPrefixRewrite"` - // Prior to forwarding the request to the selected origin, if the - // request matched a pathTemplateMatch, the matching portion of the - // request's path is replaced re-written using the pattern specified - // by pathTemplateRewrite. - // pathTemplateRewrite must be between 1 and 255 characters - // (inclusive), must start with a '/', and must only use variables - // captured by the route's pathTemplate matchers. - // pathTemplateRewrite may only be used when all of a route's - // MatchRules specify pathTemplate. - // Only one of pathPrefixRewrite and pathTemplateRewrite may be - // specified. - PathTemplateRewrite pulumi.StringPtrInput `pulumi:"pathTemplateRewrite"` +type RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd struct { + // The name of the header. + HeaderName string `pulumi:"headerName"` + // The value of the header to add. + HeaderValue string `pulumi:"headerValue"` + // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. + // The default value is false. + Replace bool `pulumi:"replace"` } -func (RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite)(nil)).Elem() +// RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArgs and RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddInput` via: +// +// RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArgs{...} +type RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddInput interface { + pulumi.Input + + ToRegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput + ToRegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput() RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutputWithContext(context.Background()) +type RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArgs struct { + // The name of the header. + HeaderName pulumi.StringInput `pulumi:"headerName"` + // The value of the header to add. + HeaderValue pulumi.StringInput `pulumi:"headerValue"` + // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. + // The default value is false. + Replace pulumi.BoolInput `pulumi:"replace"` } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput) +func (RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd)(nil)).Elem() } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArgs) ToRegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput).ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutputWithContext(ctx) +func (i RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArgs) ToRegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput) } -// RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteArgs, RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtr and RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrInput` via: -// -// RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteArgs{...} -// -// or: +// RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArray and RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayInput` via: // -// nil -type RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrInput interface { +// RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArray{ RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArgs{...} } +type RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput - ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput + ToRegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput + ToRegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput } -type regionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrType RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteArgs - -func RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtr(v *RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteArgs) RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrInput { - return (*regionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrType)(v) -} +type RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArray []RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddInput -func (*regionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd)(nil)).Elem() } -func (i *regionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArray) ToRegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Background()) } -func (i *regionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput) +func (i RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArray) ToRegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput() RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput { +func (o RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput) ToRegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput { +func (o RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput) ToRegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput { - return o.ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutputWithContext(context.Background()) -} - -func (o RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite) *RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite { - return &v - }).(RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput) -} - -// Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. -// The value must be from 1 to 255 characters. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput) HostRewrite() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite) *string { return v.HostRewrite }).(pulumi.StringPtrOutput) +// The name of the header. +func (o RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput) HeaderName() pulumi.StringOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd) string { return v.HeaderName }).(pulumi.StringOutput) } -// Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. -// The value must be from 1 to 1024 characters. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput) PathPrefixRewrite() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite) *string { return v.PathPrefixRewrite }).(pulumi.StringPtrOutput) +// The value of the header to add. +func (o RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput) HeaderValue() pulumi.StringOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd) string { return v.HeaderValue }).(pulumi.StringOutput) } -// Prior to forwarding the request to the selected origin, if the -// request matched a pathTemplateMatch, the matching portion of the -// request's path is replaced re-written using the pattern specified -// by pathTemplateRewrite. -// pathTemplateRewrite must be between 1 and 255 characters -// (inclusive), must start with a '/', and must only use variables -// captured by the route's pathTemplate matchers. -// pathTemplateRewrite may only be used when all of a route's -// MatchRules specify pathTemplate. -// Only one of pathPrefixRewrite and pathTemplateRewrite may be -// specified. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput) PathTemplateRewrite() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite) *string { return v.PathTemplateRewrite }).(pulumi.StringPtrOutput) +// If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. +// The default value is false. +func (o RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput) Replace() pulumi.BoolOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd) bool { return v.Replace }).(pulumi.BoolOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput { +func (o RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput) ToRegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput { +func (o RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput) ToRegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput) Elem() RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite) RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite { - if v != nil { - return *v - } - var ret RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite - return ret - }).(RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput) -} - -// Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. -// The value must be from 1 to 255 characters. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput) HostRewrite() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite) *string { - if v == nil { - return nil - } - return v.HostRewrite - }).(pulumi.StringPtrOutput) -} - -// Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. -// The value must be from 1 to 1024 characters. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput) PathPrefixRewrite() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite) *string { - if v == nil { - return nil - } - return v.PathPrefixRewrite - }).(pulumi.StringPtrOutput) -} - -// Prior to forwarding the request to the selected origin, if the -// request matched a pathTemplateMatch, the matching portion of the -// request's path is replaced re-written using the pattern specified -// by pathTemplateRewrite. -// pathTemplateRewrite must be between 1 and 255 characters -// (inclusive), must start with a '/', and must only use variables -// captured by the route's pathTemplate matchers. -// pathTemplateRewrite may only be used when all of a route's -// MatchRules specify pathTemplate. -// Only one of pathPrefixRewrite and pathTemplateRewrite may be -// specified. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput) PathTemplateRewrite() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite) *string { - if v == nil { - return nil - } - return v.PathTemplateRewrite - }).(pulumi.StringPtrOutput) +func (o RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArrayOutput) Index(i pulumi.IntInput) RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd { + return vs[0].([]RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd)[vs[1].(int)] + }).(RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendService struct { - // The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the load balancer applies any relevant headerActions specified as part of this backendServiceWeight. - BackendService string `pulumi:"backendService"` - // Specifies changes to request and response headers that need to take effect for the selected backendService. - // headerAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap. - // headerAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. - // Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. - // Structure is documented below. - HeaderAction *RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction `pulumi:"headerAction"` - // Specifies the fraction of traffic sent to a backend service, computed as weight / (sum of all weightedBackendService weights in routeAction) . - // The selection of a backend service is determined only for new traffic. Once a user's request has been directed to a backend service, subsequent requests are sent to the same backend service as determined by the backend service's session affinity policy. - // The value must be from 0 to 1000. - Weight int `pulumi:"weight"` +type RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd struct { + // The name of the header. + HeaderName string `pulumi:"headerName"` + // The value of the header to add. + HeaderValue string `pulumi:"headerValue"` + // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. + // The default value is false. + Replace bool `pulumi:"replace"` } -// RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArgs and RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceInput` via: +// RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArgs and RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddInput` via: // -// RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArgs{...} -type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceInput interface { +// RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArgs{...} +type RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput - ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput + ToRegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput + ToRegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput } -type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArgs struct { - // The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the load balancer applies any relevant headerActions specified as part of this backendServiceWeight. - BackendService pulumi.StringInput `pulumi:"backendService"` - // Specifies changes to request and response headers that need to take effect for the selected backendService. - // headerAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap. - // headerAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. - // Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. - // Structure is documented below. - HeaderAction RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrInput `pulumi:"headerAction"` - // Specifies the fraction of traffic sent to a backend service, computed as weight / (sum of all weightedBackendService weights in routeAction) . - // The selection of a backend service is determined only for new traffic. Once a user's request has been directed to a backend service, subsequent requests are sent to the same backend service as determined by the backend service's session affinity policy. - // The value must be from 0 to 1000. - Weight pulumi.IntInput `pulumi:"weight"` +type RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArgs struct { + // The name of the header. + HeaderName pulumi.StringInput `pulumi:"headerName"` + // The value of the header to add. + HeaderValue pulumi.StringInput `pulumi:"headerValue"` + // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. + // The default value is false. + Replace pulumi.BoolInput `pulumi:"replace"` } -func (RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendService)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd)(nil)).Elem() } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArgs) ToRegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput) +func (i RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArgs) ToRegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput) } -// RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArray and RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayInput` via: +// RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArray and RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayInput` via: // -// RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArray{ RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArgs{...} } -type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayInput interface { +// RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArray{ RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArgs{...} } +type RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput - ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput + ToRegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput + ToRegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput } -type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArray []RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceInput +type RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArray []RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddInput -func (RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendService)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd)(nil)).Elem() } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArray) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArray) ToRegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArray) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput) +func (i RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArray) ToRegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendService)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput { +func (o RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput) ToRegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput { +func (o RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput) ToRegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput { return o } -// The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the load balancer applies any relevant headerActions specified as part of this backendServiceWeight. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput) BackendService() pulumi.StringOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendService) string { - return v.BackendService - }).(pulumi.StringOutput) +// The name of the header. +func (o RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput) HeaderName() pulumi.StringOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd) string { return v.HeaderName }).(pulumi.StringOutput) } -// Specifies changes to request and response headers that need to take effect for the selected backendService. -// headerAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap. -// headerAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. -// Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. -// Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput) HeaderAction() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendService) *RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction { - return v.HeaderAction - }).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) +// The value of the header to add. +func (o RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput) HeaderValue() pulumi.StringOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd) string { return v.HeaderValue }).(pulumi.StringOutput) } -// Specifies the fraction of traffic sent to a backend service, computed as weight / (sum of all weightedBackendService weights in routeAction) . -// The selection of a backend service is determined only for new traffic. Once a user's request has been directed to a backend service, subsequent requests are sent to the same backend service as determined by the backend service's session affinity policy. -// The value must be from 0 to 1000. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput) Weight() pulumi.IntOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendService) int { return v.Weight }).(pulumi.IntOutput) +// If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. +// The default value is false. +func (o RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput) Replace() pulumi.BoolOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd) bool { return v.Replace }).(pulumi.BoolOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendService)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput { +func (o RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput) ToRegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput() RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput { +func (o RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput) ToRegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput) Index(i pulumi.IntInput) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendService { - return vs[0].([]RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendService)[vs[1].(int)] - }).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput) +func (o RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArrayOutput) Index(i pulumi.IntInput) RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd { + return vs[0].([]RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd)[vs[1].(int)] + }).(RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction struct { - // Headers to add to a matching request before forwarding the request to the backendService. +type RegionUrlMapPathMatcherRouteRuleMatchRule struct { + // For satisfying the matchRule condition, the path of the request must exactly + // match the value specified in fullPathMatch after removing any query parameters + // and anchor that may be part of the original URL. FullPathMatch must be between 1 + // and 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must + // be specified. + FullPathMatch *string `pulumi:"fullPathMatch"` + // Specifies a list of header match criteria, all of which must match corresponding + // headers in the request. // Structure is documented below. - RequestHeadersToAdds []RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd `pulumi:"requestHeadersToAdds"` - // A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. - RequestHeadersToRemoves []string `pulumi:"requestHeadersToRemoves"` - // Headers to add the response before sending the response back to the client. + HeaderMatches []RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch `pulumi:"headerMatches"` + // Specifies that prefixMatch and fullPathMatch matches are case sensitive. + // Defaults to false. + IgnoreCase *bool `pulumi:"ignoreCase"` + // Opaque filter criteria used by Loadbalancer to restrict routing configuration to + // a limited set xDS compliant clients. In their xDS requests to Loadbalancer, xDS + // clients present node metadata. If a match takes place, the relevant routing + // configuration is made available to those proxies. For each metadataFilter in + // this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the + // filterLabels must match the corresponding label provided in the metadata. If its + // filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match + // with corresponding labels in the provided metadata. metadataFilters specified + // here can be overrides those specified in ForwardingRule that refers to this + // UrlMap. metadataFilters only applies to Loadbalancers that have their + // loadBalancingScheme set to INTERNAL_SELF_MANAGED. // Structure is documented below. - ResponseHeadersToAdds []RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd `pulumi:"responseHeadersToAdds"` - // A list of header names for headers that need to be removed from the response before sending the response back to the client. - ResponseHeadersToRemoves []string `pulumi:"responseHeadersToRemoves"` + MetadataFilters []RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilter `pulumi:"metadataFilters"` + // For satisfying the matchRule condition, the path of the request + // must match the wildcard pattern specified in pathTemplateMatch + // after removing any query parameters and anchor that may be part + // of the original URL. + // pathTemplateMatch must be between 1 and 255 characters + // (inclusive). The pattern specified by pathTemplateMatch may + // have at most 5 wildcard operators and at most 5 variable + // captures in total. + PathTemplateMatch *string `pulumi:"pathTemplateMatch"` + // For satisfying the matchRule condition, the request's path must begin with the + // specified prefixMatch. prefixMatch must begin with a /. The value must be + // between 1 and 1024 characters. Only one of prefixMatch, fullPathMatch or + // regexMatch must be specified. + PrefixMatch *string `pulumi:"prefixMatch"` + // Specifies a list of query parameter match criteria, all of which must match + // corresponding query parameters in the request. + // Structure is documented below. + QueryParameterMatches []RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatch `pulumi:"queryParameterMatches"` + // For satisfying the matchRule condition, the path of the request must satisfy the + // regular expression specified in regexMatch after removing any query parameters + // and anchor supplied with the original URL. For regular expression grammar please + // see en.cppreference.com/w/cpp/regex/ecmascript Only one of prefixMatch, + // fullPathMatch or regexMatch must be specified. + RegexMatch *string `pulumi:"regexMatch"` } -// RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionArgs and RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionInput` via: +// RegionUrlMapPathMatcherRouteRuleMatchRuleInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleMatchRuleArgs and RegionUrlMapPathMatcherRouteRuleMatchRuleOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleMatchRuleInput` via: // -// RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionArgs{...} -type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionInput interface { +// RegionUrlMapPathMatcherRouteRuleMatchRuleArgs{...} +type RegionUrlMapPathMatcherRouteRuleMatchRuleInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput - ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput + ToRegionUrlMapPathMatcherRouteRuleMatchRuleOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleOutput + ToRegionUrlMapPathMatcherRouteRuleMatchRuleOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleOutput } -type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionArgs struct { - // Headers to add to a matching request before forwarding the request to the backendService. +type RegionUrlMapPathMatcherRouteRuleMatchRuleArgs struct { + // For satisfying the matchRule condition, the path of the request must exactly + // match the value specified in fullPathMatch after removing any query parameters + // and anchor that may be part of the original URL. FullPathMatch must be between 1 + // and 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must + // be specified. + FullPathMatch pulumi.StringPtrInput `pulumi:"fullPathMatch"` + // Specifies a list of header match criteria, all of which must match corresponding + // headers in the request. // Structure is documented below. - RequestHeadersToAdds RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput `pulumi:"requestHeadersToAdds"` - // A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. - RequestHeadersToRemoves pulumi.StringArrayInput `pulumi:"requestHeadersToRemoves"` - // Headers to add the response before sending the response back to the client. + HeaderMatches RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayInput `pulumi:"headerMatches"` + // Specifies that prefixMatch and fullPathMatch matches are case sensitive. + // Defaults to false. + IgnoreCase pulumi.BoolPtrInput `pulumi:"ignoreCase"` + // Opaque filter criteria used by Loadbalancer to restrict routing configuration to + // a limited set xDS compliant clients. In their xDS requests to Loadbalancer, xDS + // clients present node metadata. If a match takes place, the relevant routing + // configuration is made available to those proxies. For each metadataFilter in + // this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the + // filterLabels must match the corresponding label provided in the metadata. If its + // filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match + // with corresponding labels in the provided metadata. metadataFilters specified + // here can be overrides those specified in ForwardingRule that refers to this + // UrlMap. metadataFilters only applies to Loadbalancers that have their + // loadBalancingScheme set to INTERNAL_SELF_MANAGED. // Structure is documented below. - ResponseHeadersToAdds RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput `pulumi:"responseHeadersToAdds"` - // A list of header names for headers that need to be removed from the response before sending the response back to the client. - ResponseHeadersToRemoves pulumi.StringArrayInput `pulumi:"responseHeadersToRemoves"` -} - -func (RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() -} - -func (i RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutputWithContext(context.Background()) + MetadataFilters RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayInput `pulumi:"metadataFilters"` + // For satisfying the matchRule condition, the path of the request + // must match the wildcard pattern specified in pathTemplateMatch + // after removing any query parameters and anchor that may be part + // of the original URL. + // pathTemplateMatch must be between 1 and 255 characters + // (inclusive). The pattern specified by pathTemplateMatch may + // have at most 5 wildcard operators and at most 5 variable + // captures in total. + PathTemplateMatch pulumi.StringPtrInput `pulumi:"pathTemplateMatch"` + // For satisfying the matchRule condition, the request's path must begin with the + // specified prefixMatch. prefixMatch must begin with a /. The value must be + // between 1 and 1024 characters. Only one of prefixMatch, fullPathMatch or + // regexMatch must be specified. + PrefixMatch pulumi.StringPtrInput `pulumi:"prefixMatch"` + // Specifies a list of query parameter match criteria, all of which must match + // corresponding query parameters in the request. + // Structure is documented below. + QueryParameterMatches RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayInput `pulumi:"queryParameterMatches"` + // For satisfying the matchRule condition, the path of the request must satisfy the + // regular expression specified in regexMatch after removing any query parameters + // and anchor supplied with the original URL. For regular expression grammar please + // see en.cppreference.com/w/cpp/regex/ecmascript Only one of prefixMatch, + // fullPathMatch or regexMatch must be specified. + RegexMatch pulumi.StringPtrInput `pulumi:"regexMatch"` } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput) +func (RegionUrlMapPathMatcherRouteRuleMatchRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleMatchRule)(nil)).Elem() } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleMatchRuleArgs) ToRegionUrlMapPathMatcherRouteRuleMatchRuleOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleMatchRuleOutputWithContext(context.Background()) } -func (i RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput).ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx) +func (i RegionUrlMapPathMatcherRouteRuleMatchRuleArgs) ToRegionUrlMapPathMatcherRouteRuleMatchRuleOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleMatchRuleOutput) } -// RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionArgs, RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtr and RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrInput` via: -// -// RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionArgs{...} -// -// or: +// RegionUrlMapPathMatcherRouteRuleMatchRuleArrayInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleMatchRuleArray and RegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleMatchRuleArrayInput` via: // -// nil -type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrInput interface { +// RegionUrlMapPathMatcherRouteRuleMatchRuleArray{ RegionUrlMapPathMatcherRouteRuleMatchRuleArgs{...} } +type RegionUrlMapPathMatcherRouteRuleMatchRuleArrayInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput - ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput + ToRegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput + ToRegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput } -type regionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrType RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionArgs - -func RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtr(v *RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionArgs) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrInput { - return (*regionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrType)(v) -} +type RegionUrlMapPathMatcherRouteRuleMatchRuleArray []RegionUrlMapPathMatcherRouteRuleMatchRuleInput -func (*regionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleMatchRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleMatchRule)(nil)).Elem() } -func (i *regionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleMatchRuleArray) ToRegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutputWithContext(context.Background()) } -func (i *regionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) +func (i RegionUrlMapPathMatcherRouteRuleMatchRuleArray) ToRegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherRouteRuleMatchRuleOutput struct{ *pulumi.OutputState } -func (RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleMatchRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleMatchRule)(nil)).Elem() } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput { +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput { +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleOutput { return o } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return o.ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Background()) -} - -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction) *RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction { - return &v - }).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) +// For satisfying the matchRule condition, the path of the request must exactly +// match the value specified in fullPathMatch after removing any query parameters +// and anchor that may be part of the original URL. FullPathMatch must be between 1 +// and 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must +// be specified. +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleOutput) FullPathMatch() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRule) *string { return v.FullPathMatch }).(pulumi.StringPtrOutput) } -// Headers to add to a matching request before forwarding the request to the backendService. +// Specifies a list of header match criteria, all of which must match corresponding +// headers in the request. // Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput) RequestHeadersToAdds() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction) []RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd { - return v.RequestHeadersToAdds - }).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleOutput) HeaderMatches() RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRule) []RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch { + return v.HeaderMatches + }).(RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput) } -// A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput) RequestHeadersToRemoves() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction) []string { - return v.RequestHeadersToRemoves - }).(pulumi.StringArrayOutput) +// Specifies that prefixMatch and fullPathMatch matches are case sensitive. +// Defaults to false. +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleOutput) IgnoreCase() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRule) *bool { return v.IgnoreCase }).(pulumi.BoolPtrOutput) } -// Headers to add the response before sending the response back to the client. +// Opaque filter criteria used by Loadbalancer to restrict routing configuration to +// a limited set xDS compliant clients. In their xDS requests to Loadbalancer, xDS +// clients present node metadata. If a match takes place, the relevant routing +// configuration is made available to those proxies. For each metadataFilter in +// this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the +// filterLabels must match the corresponding label provided in the metadata. If its +// filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match +// with corresponding labels in the provided metadata. metadataFilters specified +// here can be overrides those specified in ForwardingRule that refers to this +// UrlMap. metadataFilters only applies to Loadbalancers that have their +// loadBalancingScheme set to INTERNAL_SELF_MANAGED. // Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput) ResponseHeadersToAdds() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction) []RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd { - return v.ResponseHeadersToAdds - }).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleOutput) MetadataFilters() RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRule) []RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilter { + return v.MetadataFilters + }).(RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput) } -// A list of header names for headers that need to be removed from the response before sending the response back to the client. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput) ResponseHeadersToRemoves() pulumi.StringArrayOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction) []string { - return v.ResponseHeadersToRemoves - }).(pulumi.StringArrayOutput) +// For satisfying the matchRule condition, the path of the request +// must match the wildcard pattern specified in pathTemplateMatch +// after removing any query parameters and anchor that may be part +// of the original URL. +// pathTemplateMatch must be between 1 and 255 characters +// (inclusive). The pattern specified by pathTemplateMatch may +// have at most 5 wildcard operators and at most 5 variable +// captures in total. +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleOutput) PathTemplateMatch() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRule) *string { return v.PathTemplateMatch }).(pulumi.StringPtrOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput struct{ *pulumi.OutputState } - -func (RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() +// For satisfying the matchRule condition, the request's path must begin with the +// specified prefixMatch. prefixMatch must begin with a /. The value must be +// between 1 and 1024 characters. Only one of prefixMatch, fullPathMatch or +// regexMatch must be specified. +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleOutput) PrefixMatch() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRule) *string { return v.PrefixMatch }).(pulumi.StringPtrOutput) } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return o +// Specifies a list of query parameter match criteria, all of which must match +// corresponding query parameters in the request. +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleOutput) QueryParameterMatches() RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRule) []RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatch { + return v.QueryParameterMatches + }).(RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput) } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return o +// For satisfying the matchRule condition, the path of the request must satisfy the +// regular expression specified in regexMatch after removing any query parameters +// and anchor supplied with the original URL. For regular expression grammar please +// see en.cppreference.com/w/cpp/regex/ecmascript Only one of prefixMatch, +// fullPathMatch or regexMatch must be specified. +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleOutput) RegexMatch() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRule) *string { return v.RegexMatch }).(pulumi.StringPtrOutput) } -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) Elem() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction { - if v != nil { - return *v - } - var ret RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction - return ret - }).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput) -} +type RegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput struct{ *pulumi.OutputState } -// Headers to add to a matching request before forwarding the request to the backendService. -// Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) RequestHeadersToAdds() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction) []RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd { - if v == nil { - return nil - } - return v.RequestHeadersToAdds - }).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) +func (RegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleMatchRule)(nil)).Elem() } -// A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) RequestHeadersToRemoves() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction) []string { - if v == nil { - return nil - } - return v.RequestHeadersToRemoves - }).(pulumi.StringArrayOutput) +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput { + return o } -// Headers to add the response before sending the response back to the client. -// Structure is documented below. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) ResponseHeadersToAdds() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction) []RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd { - if v == nil { - return nil - } - return v.ResponseHeadersToAdds - }).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput { + return o } -// A list of header names for headers that need to be removed from the response before sending the response back to the client. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) ResponseHeadersToRemoves() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction) []string { - if v == nil { - return nil - } - return v.ResponseHeadersToRemoves - }).(pulumi.StringArrayOutput) +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleArrayOutput) Index(i pulumi.IntInput) RegionUrlMapPathMatcherRouteRuleMatchRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapPathMatcherRouteRuleMatchRule { + return vs[0].([]RegionUrlMapPathMatcherRouteRuleMatchRule)[vs[1].(int)] + }).(RegionUrlMapPathMatcherRouteRuleMatchRuleOutput) } -type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd struct { - // The name of the header. +type RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch struct { + // The value should exactly match contents of exactMatch. Only one of exactMatch, + // prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. + ExactMatch *string `pulumi:"exactMatch"` + // The name of the HTTP header to match. For matching against the HTTP request's + // authority, use a headerMatch with the header name ":authority". For matching a + // request's method, use the headerName ":method". HeaderName string `pulumi:"headerName"` - // The value of the header to add. - HeaderValue string `pulumi:"headerValue"` - // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. - // The default value is false. - Replace bool `pulumi:"replace"` + // If set to false, the headerMatch is considered a match if the match criteria + // above are met. If set to true, the headerMatch is considered a match if the + // match criteria above are NOT met. Defaults to false. + InvertMatch *bool `pulumi:"invertMatch"` + // The value of the header must start with the contents of prefixMatch. Only one of + // exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch + // must be set. + PrefixMatch *string `pulumi:"prefixMatch"` + // A header with the contents of headerName must exist. The match takes place + // whether or not the request's header has a value or not. Only one of exactMatch, + // prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. + PresentMatch *bool `pulumi:"presentMatch"` + // The header value must be an integer and its value must be in the range specified + // in rangeMatch. If the header does not contain an integer, number or is empty, + // the match fails. For example for a range [-5, 0] + // * -3 will match + // * 0 will not match + // * 0.25 will not match + // * -3someString will not match. + // Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or + // rangeMatch must be set. + // Structure is documented below. + RangeMatch *RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch `pulumi:"rangeMatch"` + // The value of the header must match the regular expression specified in + // regexMatch. For regular expression grammar, please see: + // en.cppreference.com/w/cpp/regex/ecmascript For matching against a port + // specified in the HTTP request, use a headerMatch with headerName set to PORT and + // a regular expression that satisfies the RFC2616 Host header's port specifier. + // Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or + // rangeMatch must be set. + RegexMatch *string `pulumi:"regexMatch"` + // The value of the header must end with the contents of suffixMatch. Only one of + // exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch + // must be set. + SuffixMatch *string `pulumi:"suffixMatch"` } -// RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs and RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput` via: +// RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs and RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchInput` via: // -// RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs{...} -type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput interface { +// RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs{...} +type RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchInput interface { pulumi.Input - ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput - ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput + ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput + ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput } -type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs struct { - // The name of the header. +type RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs struct { + // The value should exactly match contents of exactMatch. Only one of exactMatch, + // prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. + ExactMatch pulumi.StringPtrInput `pulumi:"exactMatch"` + // The name of the HTTP header to match. For matching against the HTTP request's + // authority, use a headerMatch with the header name ":authority". For matching a + // request's method, use the headerName ":method". HeaderName pulumi.StringInput `pulumi:"headerName"` - // The value of the header to add. - HeaderValue pulumi.StringInput `pulumi:"headerValue"` - // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. - // The default value is false. - Replace pulumi.BoolInput `pulumi:"replace"` -} - -func (RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() -} - -func (i RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(context.Background()) -} - -func (i RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) -} - -// RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray and RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput` via: -// -// RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray{ RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs{...} } -type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput interface { - pulumi.Input - - ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput - ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput -} - -type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray []RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput - -func (RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() -} - -func (i RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Background()) -} - -func (i RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) -} - -type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput struct{ *pulumi.OutputState } - -func (RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() -} - -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { - return o -} - -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { - return o -} - -// The name of the header. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) HeaderName() pulumi.StringOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd) string { - return v.HeaderName - }).(pulumi.StringOutput) -} - -// The value of the header to add. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) HeaderValue() pulumi.StringOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd) string { - return v.HeaderValue - }).(pulumi.StringOutput) -} - -// If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. -// The default value is false. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) Replace() pulumi.BoolOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd) bool { - return v.Replace - }).(pulumi.BoolOutput) -} - -type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput struct{ *pulumi.OutputState } - -func (RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() -} - -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { - return o -} - -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { - return o -} - -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) Index(i pulumi.IntInput) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd { - return vs[0].([]RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)[vs[1].(int)] - }).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) -} - -type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd struct { - // The name of the header. - HeaderName string `pulumi:"headerName"` - // The value of the header to add. - HeaderValue string `pulumi:"headerValue"` - // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. - // The default value is false. - Replace bool `pulumi:"replace"` -} - -// RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs and RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput` via: -// -// RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs{...} -type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput interface { - pulumi.Input - - ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput - ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput -} - -type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs struct { - // The name of the header. - HeaderName pulumi.StringInput `pulumi:"headerName"` - // The value of the header to add. - HeaderValue pulumi.StringInput `pulumi:"headerValue"` - // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. - // The default value is false. - Replace pulumi.BoolInput `pulumi:"replace"` -} - -func (RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() -} - -func (i RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(context.Background()) -} - -func (i RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) -} - -// RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray and RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput` via: -// -// RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray{ RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs{...} } -type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput interface { - pulumi.Input - - ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput - ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput -} - -type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray []RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput - -func (RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() -} - -func (i RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(context.Background()) -} - -func (i RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) -} - -type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput struct{ *pulumi.OutputState } - -func (RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() -} - -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { - return o -} - -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { - return o -} - -// The name of the header. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) HeaderName() pulumi.StringOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd) string { - return v.HeaderName - }).(pulumi.StringOutput) -} - -// The value of the header to add. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) HeaderValue() pulumi.StringOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd) string { - return v.HeaderValue - }).(pulumi.StringOutput) -} - -// If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. -// The default value is false. -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) Replace() pulumi.BoolOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd) bool { - return v.Replace - }).(pulumi.BoolOutput) -} - -type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput struct{ *pulumi.OutputState } - -func (RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() -} - -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { - return o -} - -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { - return o -} - -func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) Index(i pulumi.IntInput) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd { - return vs[0].([]RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)[vs[1].(int)] - }).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) -} - -type RegionUrlMapPathMatcherRouteRuleUrlRedirect struct { - // The host that will be used in the redirect response instead of the one - // that was supplied in the request. The value must be between 1 and 255 - // characters. - HostRedirect *string `pulumi:"hostRedirect"` - // If set to true, the URL scheme in the redirected request is set to https. - // If set to false, the URL scheme of the redirected request will remain the - // same as that of the request. This must only be set for UrlMaps used in - // TargetHttpProxys. Setting this true for TargetHttpsProxy is not - // permitted. The default is set to false. - HttpsRedirect *bool `pulumi:"httpsRedirect"` - // The path that will be used in the redirect response instead of the one - // that was supplied in the request. pathRedirect cannot be supplied - // together with prefixRedirect. Supply one alone or neither. If neither is - // supplied, the path of the original request will be used for the redirect. - // The value must be between 1 and 1024 characters. - PathRedirect *string `pulumi:"pathRedirect"` - // The prefix that replaces the prefixMatch specified in the - // HttpRouteRuleMatch, retaining the remaining portion of the URL before - // redirecting the request. prefixRedirect cannot be supplied together with - // pathRedirect. Supply one alone or neither. If neither is supplied, the - // path of the original request will be used for the redirect. The value - // must be between 1 and 1024 characters. - PrefixRedirect *string `pulumi:"prefixRedirect"` - // The HTTP Status code to use for this RedirectAction. Supported values are: - // * MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. - // * FOUND, which corresponds to 302. - // * SEE_OTHER which corresponds to 303. - // * TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method - // will be retained. - // * PERMANENT_REDIRECT, which corresponds to 308. In this case, - // the request method will be retained. - RedirectResponseCode *string `pulumi:"redirectResponseCode"` - // If set to true, any accompanying query portion of the original URL is removed - // prior to redirecting the request. If set to false, the query portion of the - // original URL is retained. - // This field is required to ensure an empty block is not set. The normal default value is false. - StripQuery *bool `pulumi:"stripQuery"` -} - -// RegionUrlMapPathMatcherRouteRuleUrlRedirectInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleUrlRedirectArgs and RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleUrlRedirectInput` via: -// -// RegionUrlMapPathMatcherRouteRuleUrlRedirectArgs{...} -type RegionUrlMapPathMatcherRouteRuleUrlRedirectInput interface { - pulumi.Input - - ToRegionUrlMapPathMatcherRouteRuleUrlRedirectOutput() RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput - ToRegionUrlMapPathMatcherRouteRuleUrlRedirectOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput -} - -type RegionUrlMapPathMatcherRouteRuleUrlRedirectArgs struct { - // The host that will be used in the redirect response instead of the one - // that was supplied in the request. The value must be between 1 and 255 - // characters. - HostRedirect pulumi.StringPtrInput `pulumi:"hostRedirect"` - // If set to true, the URL scheme in the redirected request is set to https. - // If set to false, the URL scheme of the redirected request will remain the - // same as that of the request. This must only be set for UrlMaps used in - // TargetHttpProxys. Setting this true for TargetHttpsProxy is not - // permitted. The default is set to false. - HttpsRedirect pulumi.BoolPtrInput `pulumi:"httpsRedirect"` - // The path that will be used in the redirect response instead of the one - // that was supplied in the request. pathRedirect cannot be supplied - // together with prefixRedirect. Supply one alone or neither. If neither is - // supplied, the path of the original request will be used for the redirect. - // The value must be between 1 and 1024 characters. - PathRedirect pulumi.StringPtrInput `pulumi:"pathRedirect"` - // The prefix that replaces the prefixMatch specified in the - // HttpRouteRuleMatch, retaining the remaining portion of the URL before - // redirecting the request. prefixRedirect cannot be supplied together with - // pathRedirect. Supply one alone or neither. If neither is supplied, the - // path of the original request will be used for the redirect. The value - // must be between 1 and 1024 characters. - PrefixRedirect pulumi.StringPtrInput `pulumi:"prefixRedirect"` - // The HTTP Status code to use for this RedirectAction. Supported values are: - // * MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. - // * FOUND, which corresponds to 302. - // * SEE_OTHER which corresponds to 303. - // * TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method - // will be retained. - // * PERMANENT_REDIRECT, which corresponds to 308. In this case, - // the request method will be retained. - RedirectResponseCode pulumi.StringPtrInput `pulumi:"redirectResponseCode"` - // If set to true, any accompanying query portion of the original URL is removed - // prior to redirecting the request. If set to false, the query portion of the - // original URL is retained. - // This field is required to ensure an empty block is not set. The normal default value is false. - StripQuery pulumi.BoolPtrInput `pulumi:"stripQuery"` -} - -func (RegionUrlMapPathMatcherRouteRuleUrlRedirectArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleUrlRedirect)(nil)).Elem() -} - -func (i RegionUrlMapPathMatcherRouteRuleUrlRedirectArgs) ToRegionUrlMapPathMatcherRouteRuleUrlRedirectOutput() RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleUrlRedirectOutputWithContext(context.Background()) -} - -func (i RegionUrlMapPathMatcherRouteRuleUrlRedirectArgs) ToRegionUrlMapPathMatcherRouteRuleUrlRedirectOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput) -} - -func (i RegionUrlMapPathMatcherRouteRuleUrlRedirectArgs) ToRegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput() RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutputWithContext(context.Background()) -} - -func (i RegionUrlMapPathMatcherRouteRuleUrlRedirectArgs) ToRegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput).ToRegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutputWithContext(ctx) -} - -// RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleUrlRedirectArgs, RegionUrlMapPathMatcherRouteRuleUrlRedirectPtr and RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput values. -// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrInput` via: -// -// RegionUrlMapPathMatcherRouteRuleUrlRedirectArgs{...} -// -// or: -// -// nil -type RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrInput interface { - pulumi.Input - - ToRegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput() RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput - ToRegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput -} - -type regionUrlMapPathMatcherRouteRuleUrlRedirectPtrType RegionUrlMapPathMatcherRouteRuleUrlRedirectArgs - -func RegionUrlMapPathMatcherRouteRuleUrlRedirectPtr(v *RegionUrlMapPathMatcherRouteRuleUrlRedirectArgs) RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrInput { - return (*regionUrlMapPathMatcherRouteRuleUrlRedirectPtrType)(v) -} - -func (*regionUrlMapPathMatcherRouteRuleUrlRedirectPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleUrlRedirect)(nil)).Elem() -} - -func (i *regionUrlMapPathMatcherRouteRuleUrlRedirectPtrType) ToRegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput() RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput { - return i.ToRegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutputWithContext(context.Background()) -} - -func (i *regionUrlMapPathMatcherRouteRuleUrlRedirectPtrType) ToRegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput) -} - -type RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput struct{ *pulumi.OutputState } - -func (RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleUrlRedirect)(nil)).Elem() -} - -func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput) ToRegionUrlMapPathMatcherRouteRuleUrlRedirectOutput() RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput { - return o -} - -func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput) ToRegionUrlMapPathMatcherRouteRuleUrlRedirectOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput { - return o -} - -func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput) ToRegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput() RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput { - return o.ToRegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutputWithContext(context.Background()) -} - -func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput) ToRegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherRouteRuleUrlRedirect) *RegionUrlMapPathMatcherRouteRuleUrlRedirect { - return &v - }).(RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput) -} - -// The host that will be used in the redirect response instead of the one -// that was supplied in the request. The value must be between 1 and 255 -// characters. -func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput) HostRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleUrlRedirect) *string { return v.HostRedirect }).(pulumi.StringPtrOutput) -} - -// If set to true, the URL scheme in the redirected request is set to https. -// If set to false, the URL scheme of the redirected request will remain the -// same as that of the request. This must only be set for UrlMaps used in -// TargetHttpProxys. Setting this true for TargetHttpsProxy is not -// permitted. The default is set to false. -func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput) HttpsRedirect() pulumi.BoolPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleUrlRedirect) *bool { return v.HttpsRedirect }).(pulumi.BoolPtrOutput) -} - -// The path that will be used in the redirect response instead of the one -// that was supplied in the request. pathRedirect cannot be supplied -// together with prefixRedirect. Supply one alone or neither. If neither is -// supplied, the path of the original request will be used for the redirect. -// The value must be between 1 and 1024 characters. -func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput) PathRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleUrlRedirect) *string { return v.PathRedirect }).(pulumi.StringPtrOutput) -} - -// The prefix that replaces the prefixMatch specified in the -// HttpRouteRuleMatch, retaining the remaining portion of the URL before -// redirecting the request. prefixRedirect cannot be supplied together with -// pathRedirect. Supply one alone or neither. If neither is supplied, the -// path of the original request will be used for the redirect. The value -// must be between 1 and 1024 characters. -func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput) PrefixRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleUrlRedirect) *string { return v.PrefixRedirect }).(pulumi.StringPtrOutput) -} - -// The HTTP Status code to use for this RedirectAction. Supported values are: -// - MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. -// - FOUND, which corresponds to 302. -// - SEE_OTHER which corresponds to 303. -// - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method -// will be retained. -// - PERMANENT_REDIRECT, which corresponds to 308. In this case, -// the request method will be retained. -func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput) RedirectResponseCode() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleUrlRedirect) *string { return v.RedirectResponseCode }).(pulumi.StringPtrOutput) -} - -// If set to true, any accompanying query portion of the original URL is removed -// prior to redirecting the request. If set to false, the query portion of the -// original URL is retained. -// This field is required to ensure an empty block is not set. The normal default value is false. -func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput) StripQuery() pulumi.BoolPtrOutput { - return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleUrlRedirect) *bool { return v.StripQuery }).(pulumi.BoolPtrOutput) -} - -type RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput struct{ *pulumi.OutputState } - -func (RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleUrlRedirect)(nil)).Elem() -} - -func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput) ToRegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput() RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput { - return o -} - -func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput) ToRegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput { - return o -} - -func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput) Elem() RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleUrlRedirect) RegionUrlMapPathMatcherRouteRuleUrlRedirect { - if v != nil { - return *v - } - var ret RegionUrlMapPathMatcherRouteRuleUrlRedirect - return ret - }).(RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput) -} - -// The host that will be used in the redirect response instead of the one -// that was supplied in the request. The value must be between 1 and 255 -// characters. -func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput) HostRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleUrlRedirect) *string { - if v == nil { - return nil - } - return v.HostRedirect - }).(pulumi.StringPtrOutput) -} - -// If set to true, the URL scheme in the redirected request is set to https. -// If set to false, the URL scheme of the redirected request will remain the -// same as that of the request. This must only be set for UrlMaps used in -// TargetHttpProxys. Setting this true for TargetHttpsProxy is not -// permitted. The default is set to false. -func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput) HttpsRedirect() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleUrlRedirect) *bool { - if v == nil { - return nil - } - return v.HttpsRedirect - }).(pulumi.BoolPtrOutput) -} - -// The path that will be used in the redirect response instead of the one -// that was supplied in the request. pathRedirect cannot be supplied -// together with prefixRedirect. Supply one alone or neither. If neither is -// supplied, the path of the original request will be used for the redirect. -// The value must be between 1 and 1024 characters. -func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput) PathRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleUrlRedirect) *string { - if v == nil { - return nil - } - return v.PathRedirect - }).(pulumi.StringPtrOutput) -} - -// The prefix that replaces the prefixMatch specified in the -// HttpRouteRuleMatch, retaining the remaining portion of the URL before -// redirecting the request. prefixRedirect cannot be supplied together with -// pathRedirect. Supply one alone or neither. If neither is supplied, the -// path of the original request will be used for the redirect. The value -// must be between 1 and 1024 characters. -func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput) PrefixRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleUrlRedirect) *string { - if v == nil { - return nil - } - return v.PrefixRedirect - }).(pulumi.StringPtrOutput) -} - -// The HTTP Status code to use for this RedirectAction. Supported values are: -// - MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. -// - FOUND, which corresponds to 302. -// - SEE_OTHER which corresponds to 303. -// - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method -// will be retained. -// - PERMANENT_REDIRECT, which corresponds to 308. In this case, -// the request method will be retained. -func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput) RedirectResponseCode() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleUrlRedirect) *string { - if v == nil { - return nil - } - return v.RedirectResponseCode - }).(pulumi.StringPtrOutput) -} - -// If set to true, any accompanying query portion of the original URL is removed -// prior to redirecting the request. If set to false, the query portion of the -// original URL is retained. -// This field is required to ensure an empty block is not set. The normal default value is false. -func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput) StripQuery() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleUrlRedirect) *bool { - if v == nil { - return nil - } - return v.StripQuery - }).(pulumi.BoolPtrOutput) -} - -type RegionUrlMapTest struct { - // Description of this test case. - Description *string `pulumi:"description"` - // Host portion of the URL. - Host string `pulumi:"host"` - // Path portion of the URL. - Path string `pulumi:"path"` - // A reference to expected RegionBackendService resource the given URL should be mapped to. - Service string `pulumi:"service"` -} - -// RegionUrlMapTestInput is an input type that accepts RegionUrlMapTestArgs and RegionUrlMapTestOutput values. -// You can construct a concrete instance of `RegionUrlMapTestInput` via: -// -// RegionUrlMapTestArgs{...} -type RegionUrlMapTestInput interface { - pulumi.Input - - ToRegionUrlMapTestOutput() RegionUrlMapTestOutput - ToRegionUrlMapTestOutputWithContext(context.Context) RegionUrlMapTestOutput -} - -type RegionUrlMapTestArgs struct { - // Description of this test case. - Description pulumi.StringPtrInput `pulumi:"description"` - // Host portion of the URL. - Host pulumi.StringInput `pulumi:"host"` - // Path portion of the URL. - Path pulumi.StringInput `pulumi:"path"` - // A reference to expected RegionBackendService resource the given URL should be mapped to. - Service pulumi.StringInput `pulumi:"service"` + // If set to false, the headerMatch is considered a match if the match criteria + // above are met. If set to true, the headerMatch is considered a match if the + // match criteria above are NOT met. Defaults to false. + InvertMatch pulumi.BoolPtrInput `pulumi:"invertMatch"` + // The value of the header must start with the contents of prefixMatch. Only one of + // exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch + // must be set. + PrefixMatch pulumi.StringPtrInput `pulumi:"prefixMatch"` + // A header with the contents of headerName must exist. The match takes place + // whether or not the request's header has a value or not. Only one of exactMatch, + // prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. + PresentMatch pulumi.BoolPtrInput `pulumi:"presentMatch"` + // The header value must be an integer and its value must be in the range specified + // in rangeMatch. If the header does not contain an integer, number or is empty, + // the match fails. For example for a range [-5, 0] + // * -3 will match + // * 0 will not match + // * 0.25 will not match + // * -3someString will not match. + // Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or + // rangeMatch must be set. + // Structure is documented below. + RangeMatch RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrInput `pulumi:"rangeMatch"` + // The value of the header must match the regular expression specified in + // regexMatch. For regular expression grammar, please see: + // en.cppreference.com/w/cpp/regex/ecmascript For matching against a port + // specified in the HTTP request, use a headerMatch with headerName set to PORT and + // a regular expression that satisfies the RFC2616 Host header's port specifier. + // Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or + // rangeMatch must be set. + RegexMatch pulumi.StringPtrInput `pulumi:"regexMatch"` + // The value of the header must end with the contents of suffixMatch. Only one of + // exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch + // must be set. + SuffixMatch pulumi.StringPtrInput `pulumi:"suffixMatch"` } -func (RegionUrlMapTestArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapTest)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch)(nil)).Elem() } -func (i RegionUrlMapTestArgs) ToRegionUrlMapTestOutput() RegionUrlMapTestOutput { - return i.ToRegionUrlMapTestOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutputWithContext(context.Background()) } -func (i RegionUrlMapTestArgs) ToRegionUrlMapTestOutputWithContext(ctx context.Context) RegionUrlMapTestOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapTestOutput) +func (i RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput) } -// RegionUrlMapTestArrayInput is an input type that accepts RegionUrlMapTestArray and RegionUrlMapTestArrayOutput values. -// You can construct a concrete instance of `RegionUrlMapTestArrayInput` via: +// RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArray and RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayInput` via: // -// RegionUrlMapTestArray{ RegionUrlMapTestArgs{...} } -type RegionUrlMapTestArrayInput interface { +// RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArray{ RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs{...} } +type RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayInput interface { pulumi.Input - ToRegionUrlMapTestArrayOutput() RegionUrlMapTestArrayOutput - ToRegionUrlMapTestArrayOutputWithContext(context.Context) RegionUrlMapTestArrayOutput + ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput + ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput } -type RegionUrlMapTestArray []RegionUrlMapTestInput +type RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArray []RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchInput -func (RegionUrlMapTestArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapTest)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch)(nil)).Elem() } -func (i RegionUrlMapTestArray) ToRegionUrlMapTestArrayOutput() RegionUrlMapTestArrayOutput { - return i.ToRegionUrlMapTestArrayOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArray) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutputWithContext(context.Background()) } -func (i RegionUrlMapTestArray) ToRegionUrlMapTestArrayOutputWithContext(ctx context.Context) RegionUrlMapTestArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapTestArrayOutput) +func (i RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArray) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput) } -type RegionUrlMapTestOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput struct{ *pulumi.OutputState } -func (RegionUrlMapTestOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RegionUrlMapTest)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch)(nil)).Elem() } -func (o RegionUrlMapTestOutput) ToRegionUrlMapTestOutput() RegionUrlMapTestOutput { +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput { return o } -func (o RegionUrlMapTestOutput) ToRegionUrlMapTestOutputWithContext(ctx context.Context) RegionUrlMapTestOutput { +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput { return o } -// Description of this test case. -func (o RegionUrlMapTestOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v RegionUrlMapTest) *string { return v.Description }).(pulumi.StringPtrOutput) +// The value should exactly match contents of exactMatch. Only one of exactMatch, +// prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput) ExactMatch() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch) *string { return v.ExactMatch }).(pulumi.StringPtrOutput) } -// Host portion of the URL. -func (o RegionUrlMapTestOutput) Host() pulumi.StringOutput { - return o.ApplyT(func(v RegionUrlMapTest) string { return v.Host }).(pulumi.StringOutput) +// The name of the HTTP header to match. For matching against the HTTP request's +// authority, use a headerMatch with the header name ":authority". For matching a +// request's method, use the headerName ":method". +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput) HeaderName() pulumi.StringOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch) string { return v.HeaderName }).(pulumi.StringOutput) } -// Path portion of the URL. -func (o RegionUrlMapTestOutput) Path() pulumi.StringOutput { - return o.ApplyT(func(v RegionUrlMapTest) string { return v.Path }).(pulumi.StringOutput) +// If set to false, the headerMatch is considered a match if the match criteria +// above are met. If set to true, the headerMatch is considered a match if the +// match criteria above are NOT met. Defaults to false. +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput) InvertMatch() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch) *bool { return v.InvertMatch }).(pulumi.BoolPtrOutput) } -// A reference to expected RegionBackendService resource the given URL should be mapped to. -func (o RegionUrlMapTestOutput) Service() pulumi.StringOutput { - return o.ApplyT(func(v RegionUrlMapTest) string { return v.Service }).(pulumi.StringOutput) +// The value of the header must start with the contents of prefixMatch. Only one of +// exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch +// must be set. +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput) PrefixMatch() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch) *string { return v.PrefixMatch }).(pulumi.StringPtrOutput) } -type RegionUrlMapTestArrayOutput struct{ *pulumi.OutputState } +// A header with the contents of headerName must exist. The match takes place +// whether or not the request's header has a value or not. Only one of exactMatch, +// prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput) PresentMatch() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch) *bool { return v.PresentMatch }).(pulumi.BoolPtrOutput) +} -func (RegionUrlMapTestArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RegionUrlMapTest)(nil)).Elem() +// The header value must be an integer and its value must be in the range specified +// in rangeMatch. If the header does not contain an integer, number or is empty, +// the match fails. For example for a range [-5, 0] +// - -3 will match +// - 0 will not match +// - 0.25 will not match +// - -3someString will not match. +// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or +// rangeMatch must be set. +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput) RangeMatch() RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch) *RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch { + return v.RangeMatch + }).(RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput) } -func (o RegionUrlMapTestArrayOutput) ToRegionUrlMapTestArrayOutput() RegionUrlMapTestArrayOutput { +// The value of the header must match the regular expression specified in +// regexMatch. For regular expression grammar, please see: +// en.cppreference.com/w/cpp/regex/ecmascript For matching against a port +// specified in the HTTP request, use a headerMatch with headerName set to PORT and +// a regular expression that satisfies the RFC2616 Host header's port specifier. +// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or +// rangeMatch must be set. +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput) RegexMatch() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch) *string { return v.RegexMatch }).(pulumi.StringPtrOutput) +} + +// The value of the header must end with the contents of suffixMatch. Only one of +// exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch +// must be set. +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput) SuffixMatch() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch) *string { return v.SuffixMatch }).(pulumi.StringPtrOutput) +} + +type RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch)(nil)).Elem() +} + +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput { return o } -func (o RegionUrlMapTestArrayOutput) ToRegionUrlMapTestArrayOutputWithContext(ctx context.Context) RegionUrlMapTestArrayOutput { +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput { return o } -func (o RegionUrlMapTestArrayOutput) Index(i pulumi.IntInput) RegionUrlMapTestOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapTest { - return vs[0].([]RegionUrlMapTest)[vs[1].(int)] - }).(RegionUrlMapTestOutput) +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchArrayOutput) Index(i pulumi.IntInput) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch { + return vs[0].([]RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch)[vs[1].(int)] + }).(RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchOutput) } -type ReservationShareSettings struct { - // A map of project number and project config. This is only valid when shareType's value is SPECIFIC_PROJECTS. - // Structure is documented below. - ProjectMaps []ReservationShareSettingsProjectMap `pulumi:"projectMaps"` - // Type of sharing for this shared-reservation - // Possible values are: `LOCAL`, `SPECIFIC_PROJECTS`. - ShareType *string `pulumi:"shareType"` +type RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch struct { + // The end of the range (exclusive). + RangeEnd int `pulumi:"rangeEnd"` + // The start of the range (inclusive). + RangeStart int `pulumi:"rangeStart"` } -// ReservationShareSettingsInput is an input type that accepts ReservationShareSettingsArgs and ReservationShareSettingsOutput values. -// You can construct a concrete instance of `ReservationShareSettingsInput` via: +// RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchArgs and RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchInput` via: // -// ReservationShareSettingsArgs{...} -type ReservationShareSettingsInput interface { +// RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchArgs{...} +type RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchInput interface { pulumi.Input - ToReservationShareSettingsOutput() ReservationShareSettingsOutput - ToReservationShareSettingsOutputWithContext(context.Context) ReservationShareSettingsOutput + ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput + ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput } -type ReservationShareSettingsArgs struct { - // A map of project number and project config. This is only valid when shareType's value is SPECIFIC_PROJECTS. - // Structure is documented below. - ProjectMaps ReservationShareSettingsProjectMapArrayInput `pulumi:"projectMaps"` - // Type of sharing for this shared-reservation - // Possible values are: `LOCAL`, `SPECIFIC_PROJECTS`. - ShareType pulumi.StringPtrInput `pulumi:"shareType"` +type RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchArgs struct { + // The end of the range (exclusive). + RangeEnd pulumi.IntInput `pulumi:"rangeEnd"` + // The start of the range (inclusive). + RangeStart pulumi.IntInput `pulumi:"rangeStart"` } -func (ReservationShareSettingsArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ReservationShareSettings)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch)(nil)).Elem() } -func (i ReservationShareSettingsArgs) ToReservationShareSettingsOutput() ReservationShareSettingsOutput { - return i.ToReservationShareSettingsOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchArgs) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutputWithContext(context.Background()) } -func (i ReservationShareSettingsArgs) ToReservationShareSettingsOutputWithContext(ctx context.Context) ReservationShareSettingsOutput { - return pulumi.ToOutputWithContext(ctx, i).(ReservationShareSettingsOutput) +func (i RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchArgs) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput) } -func (i ReservationShareSettingsArgs) ToReservationShareSettingsPtrOutput() ReservationShareSettingsPtrOutput { - return i.ToReservationShareSettingsPtrOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchArgs) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutputWithContext(context.Background()) } -func (i ReservationShareSettingsArgs) ToReservationShareSettingsPtrOutputWithContext(ctx context.Context) ReservationShareSettingsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ReservationShareSettingsOutput).ToReservationShareSettingsPtrOutputWithContext(ctx) +func (i RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchArgs) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput).ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutputWithContext(ctx) } -// ReservationShareSettingsPtrInput is an input type that accepts ReservationShareSettingsArgs, ReservationShareSettingsPtr and ReservationShareSettingsPtrOutput values. -// You can construct a concrete instance of `ReservationShareSettingsPtrInput` via: +// RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchArgs, RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtr and RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrInput` via: // -// ReservationShareSettingsArgs{...} +// RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchArgs{...} // // or: // // nil -type ReservationShareSettingsPtrInput interface { +type RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrInput interface { pulumi.Input - ToReservationShareSettingsPtrOutput() ReservationShareSettingsPtrOutput - ToReservationShareSettingsPtrOutputWithContext(context.Context) ReservationShareSettingsPtrOutput + ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput + ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput } -type reservationShareSettingsPtrType ReservationShareSettingsArgs +type regionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrType RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchArgs -func ReservationShareSettingsPtr(v *ReservationShareSettingsArgs) ReservationShareSettingsPtrInput { - return (*reservationShareSettingsPtrType)(v) +func RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtr(v *RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchArgs) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrInput { + return (*regionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrType)(v) } -func (*reservationShareSettingsPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ReservationShareSettings)(nil)).Elem() +func (*regionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch)(nil)).Elem() } -func (i *reservationShareSettingsPtrType) ToReservationShareSettingsPtrOutput() ReservationShareSettingsPtrOutput { - return i.ToReservationShareSettingsPtrOutputWithContext(context.Background()) +func (i *regionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrType) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutputWithContext(context.Background()) } -func (i *reservationShareSettingsPtrType) ToReservationShareSettingsPtrOutputWithContext(ctx context.Context) ReservationShareSettingsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ReservationShareSettingsPtrOutput) +func (i *regionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrType) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput) } -type ReservationShareSettingsOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput struct{ *pulumi.OutputState } -func (ReservationShareSettingsOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ReservationShareSettings)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch)(nil)).Elem() } -func (o ReservationShareSettingsOutput) ToReservationShareSettingsOutput() ReservationShareSettingsOutput { +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput { return o } -func (o ReservationShareSettingsOutput) ToReservationShareSettingsOutputWithContext(ctx context.Context) ReservationShareSettingsOutput { +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput { return o } -func (o ReservationShareSettingsOutput) ToReservationShareSettingsPtrOutput() ReservationShareSettingsPtrOutput { - return o.ToReservationShareSettingsPtrOutputWithContext(context.Background()) +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput { + return o.ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutputWithContext(context.Background()) } -func (o ReservationShareSettingsOutput) ToReservationShareSettingsPtrOutputWithContext(ctx context.Context) ReservationShareSettingsPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ReservationShareSettings) *ReservationShareSettings { +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch) *RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch { return &v - }).(ReservationShareSettingsPtrOutput) + }).(RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput) } -// A map of project number and project config. This is only valid when shareType's value is SPECIFIC_PROJECTS. -// Structure is documented below. -func (o ReservationShareSettingsOutput) ProjectMaps() ReservationShareSettingsProjectMapArrayOutput { - return o.ApplyT(func(v ReservationShareSettings) []ReservationShareSettingsProjectMap { return v.ProjectMaps }).(ReservationShareSettingsProjectMapArrayOutput) +// The end of the range (exclusive). +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput) RangeEnd() pulumi.IntOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch) int { return v.RangeEnd }).(pulumi.IntOutput) } -// Type of sharing for this shared-reservation -// Possible values are: `LOCAL`, `SPECIFIC_PROJECTS`. -func (o ReservationShareSettingsOutput) ShareType() pulumi.StringPtrOutput { - return o.ApplyT(func(v ReservationShareSettings) *string { return v.ShareType }).(pulumi.StringPtrOutput) +// The start of the range (inclusive). +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput) RangeStart() pulumi.IntOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch) int { return v.RangeStart }).(pulumi.IntOutput) } -type ReservationShareSettingsPtrOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput struct{ *pulumi.OutputState } -func (ReservationShareSettingsPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ReservationShareSettings)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch)(nil)).Elem() } -func (o ReservationShareSettingsPtrOutput) ToReservationShareSettingsPtrOutput() ReservationShareSettingsPtrOutput { +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput { return o } -func (o ReservationShareSettingsPtrOutput) ToReservationShareSettingsPtrOutputWithContext(ctx context.Context) ReservationShareSettingsPtrOutput { +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput { return o } -func (o ReservationShareSettingsPtrOutput) Elem() ReservationShareSettingsOutput { - return o.ApplyT(func(v *ReservationShareSettings) ReservationShareSettings { +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput) Elem() RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch) RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch { if v != nil { return *v } - var ret ReservationShareSettings + var ret RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch return ret - }).(ReservationShareSettingsOutput) + }).(RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchOutput) } -// A map of project number and project config. This is only valid when shareType's value is SPECIFIC_PROJECTS. -// Structure is documented below. -func (o ReservationShareSettingsPtrOutput) ProjectMaps() ReservationShareSettingsProjectMapArrayOutput { - return o.ApplyT(func(v *ReservationShareSettings) []ReservationShareSettingsProjectMap { +// The end of the range (exclusive). +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput) RangeEnd() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch) *int { if v == nil { return nil } - return v.ProjectMaps - }).(ReservationShareSettingsProjectMapArrayOutput) + return &v.RangeEnd + }).(pulumi.IntPtrOutput) } -// Type of sharing for this shared-reservation -// Possible values are: `LOCAL`, `SPECIFIC_PROJECTS`. -func (o ReservationShareSettingsPtrOutput) ShareType() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ReservationShareSettings) *string { +// The start of the range (inclusive). +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatchPtrOutput) RangeStart() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch) *int { if v == nil { return nil } - return v.ShareType - }).(pulumi.StringPtrOutput) + return &v.RangeStart + }).(pulumi.IntPtrOutput) } -type ReservationShareSettingsProjectMap struct { - // The identifier for this object. Format specified above. - Id string `pulumi:"id"` - // The project id/number, should be same as the key of this project config in the project map. - ProjectId *string `pulumi:"projectId"` +type RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilter struct { + // The list of label value pairs that must match labels in the provided metadata + // based on filterMatchCriteria This list must not be empty and can have at the + // most 64 entries. + // Structure is documented below. + FilterLabels []RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabel `pulumi:"filterLabels"` + // Specifies how individual filterLabel matches within the list of filterLabels + // contribute towards the overall metadataFilter match. Supported values are: + // * MATCH_ANY: At least one of the filterLabels must have a matching label in the + // provided metadata. + // * MATCH_ALL: All filterLabels must have matching labels in + // the provided metadata. + // Possible values are: `MATCH_ALL`, `MATCH_ANY`. + FilterMatchCriteria string `pulumi:"filterMatchCriteria"` } -// ReservationShareSettingsProjectMapInput is an input type that accepts ReservationShareSettingsProjectMap and ReservationShareSettingsProjectMapOutput values. -// You can construct a concrete instance of `ReservationShareSettingsProjectMapInput` via: +// RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArgs and RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterInput` via: // -// ReservationShareSettingsProjectMap{ "key": ReservationShareSettingsProjectArgs{...} } -type ReservationShareSettingsProjectMapInput interface { +// RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArgs{...} +type RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterInput interface { pulumi.Input - ToReservationShareSettingsProjectMapOutput() ReservationShareSettingsProjectMapOutput - ToReservationShareSettingsProjectMapOutputWithContext(context.Context) ReservationShareSettingsProjectMapOutput + ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput + ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput } -type ReservationShareSettingsProjectMapArgs struct { - // The identifier for this object. Format specified above. - Id pulumi.StringInput `pulumi:"id"` - // The project id/number, should be same as the key of this project config in the project map. - ProjectId pulumi.StringPtrInput `pulumi:"projectId"` +type RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArgs struct { + // The list of label value pairs that must match labels in the provided metadata + // based on filterMatchCriteria This list must not be empty and can have at the + // most 64 entries. + // Structure is documented below. + FilterLabels RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayInput `pulumi:"filterLabels"` + // Specifies how individual filterLabel matches within the list of filterLabels + // contribute towards the overall metadataFilter match. Supported values are: + // * MATCH_ANY: At least one of the filterLabels must have a matching label in the + // provided metadata. + // * MATCH_ALL: All filterLabels must have matching labels in + // the provided metadata. + // Possible values are: `MATCH_ALL`, `MATCH_ANY`. + FilterMatchCriteria pulumi.StringInput `pulumi:"filterMatchCriteria"` } -func (ReservationShareSettingsProjectMapArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ReservationShareSettingsProjectMap)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilter)(nil)).Elem() } -func (i ReservationShareSettingsProjectMapArgs) ToReservationShareSettingsProjectMapOutput() ReservationShareSettingsProjectMapOutput { - return i.ToReservationShareSettingsProjectMapOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArgs) ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutputWithContext(context.Background()) } -func (i ReservationShareSettingsProjectMapArgs) ToReservationShareSettingsProjectMapOutputWithContext(ctx context.Context) ReservationShareSettingsProjectMapOutput { - return pulumi.ToOutputWithContext(ctx, i).(ReservationShareSettingsProjectMapOutput) +func (i RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArgs) ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput) } -// ReservationShareSettingsProjectMapArrayInput is an input type that accepts ReservationShareSettingsProjectMapArray and ReservationShareSettingsProjectMapArrayOutput values. -// You can construct a concrete instance of `ReservationShareSettingsProjectMapArrayInput` via: +// RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArray and RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayInput` via: // -// ReservationShareSettingsProjectMapArray{ ReservationShareSettingsProjectMapArgs{...} } -type ReservationShareSettingsProjectMapArrayInput interface { +// RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArray{ RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArgs{...} } +type RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayInput interface { pulumi.Input - ToReservationShareSettingsProjectMapArrayOutput() ReservationShareSettingsProjectMapArrayOutput - ToReservationShareSettingsProjectMapArrayOutputWithContext(context.Context) ReservationShareSettingsProjectMapArrayOutput + ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput + ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput } -type ReservationShareSettingsProjectMapArray []ReservationShareSettingsProjectMapInput +type RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArray []RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterInput -func (ReservationShareSettingsProjectMapArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ReservationShareSettingsProjectMap)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilter)(nil)).Elem() } -func (i ReservationShareSettingsProjectMapArray) ToReservationShareSettingsProjectMapArrayOutput() ReservationShareSettingsProjectMapArrayOutput { - return i.ToReservationShareSettingsProjectMapArrayOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArray) ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutputWithContext(context.Background()) } -func (i ReservationShareSettingsProjectMapArray) ToReservationShareSettingsProjectMapArrayOutputWithContext(ctx context.Context) ReservationShareSettingsProjectMapArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ReservationShareSettingsProjectMapArrayOutput) +func (i RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArray) ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput) } -type ReservationShareSettingsProjectMapOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput struct{ *pulumi.OutputState } -func (ReservationShareSettingsProjectMapOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ReservationShareSettingsProjectMap)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilter)(nil)).Elem() } -func (o ReservationShareSettingsProjectMapOutput) ToReservationShareSettingsProjectMapOutput() ReservationShareSettingsProjectMapOutput { +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput { return o } -func (o ReservationShareSettingsProjectMapOutput) ToReservationShareSettingsProjectMapOutputWithContext(ctx context.Context) ReservationShareSettingsProjectMapOutput { +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput { return o } -// The identifier for this object. Format specified above. -func (o ReservationShareSettingsProjectMapOutput) Id() pulumi.StringOutput { - return o.ApplyT(func(v ReservationShareSettingsProjectMap) string { return v.Id }).(pulumi.StringOutput) +// The list of label value pairs that must match labels in the provided metadata +// based on filterMatchCriteria This list must not be empty and can have at the +// most 64 entries. +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput) FilterLabels() RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilter) []RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabel { + return v.FilterLabels + }).(RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput) } -// The project id/number, should be same as the key of this project config in the project map. -func (o ReservationShareSettingsProjectMapOutput) ProjectId() pulumi.StringPtrOutput { - return o.ApplyT(func(v ReservationShareSettingsProjectMap) *string { return v.ProjectId }).(pulumi.StringPtrOutput) +// Specifies how individual filterLabel matches within the list of filterLabels +// contribute towards the overall metadataFilter match. Supported values are: +// - MATCH_ANY: At least one of the filterLabels must have a matching label in the +// provided metadata. +// - MATCH_ALL: All filterLabels must have matching labels in +// the provided metadata. +// Possible values are: `MATCH_ALL`, `MATCH_ANY`. +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput) FilterMatchCriteria() pulumi.StringOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilter) string { return v.FilterMatchCriteria }).(pulumi.StringOutput) } -type ReservationShareSettingsProjectMapArrayOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput struct{ *pulumi.OutputState } -func (ReservationShareSettingsProjectMapArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ReservationShareSettingsProjectMap)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilter)(nil)).Elem() } -func (o ReservationShareSettingsProjectMapArrayOutput) ToReservationShareSettingsProjectMapArrayOutput() ReservationShareSettingsProjectMapArrayOutput { +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput { return o } -func (o ReservationShareSettingsProjectMapArrayOutput) ToReservationShareSettingsProjectMapArrayOutputWithContext(ctx context.Context) ReservationShareSettingsProjectMapArrayOutput { +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput { return o } -func (o ReservationShareSettingsProjectMapArrayOutput) Index(i pulumi.IntInput) ReservationShareSettingsProjectMapOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ReservationShareSettingsProjectMap { - return vs[0].([]ReservationShareSettingsProjectMap)[vs[1].(int)] - }).(ReservationShareSettingsProjectMapOutput) +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterArrayOutput) Index(i pulumi.IntInput) RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilter { + return vs[0].([]RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilter)[vs[1].(int)] + }).(RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterOutput) } -type ReservationSpecificReservation struct { - // The number of resources that are allocated. - Count int `pulumi:"count"` - // (Output) - // How many instances are in use. - InUseCount *int `pulumi:"inUseCount"` - // The instance properties for the reservation. - // Structure is documented below. - InstanceProperties ReservationSpecificReservationInstanceProperties `pulumi:"instanceProperties"` +type RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabel struct { + // Name of metadata label. The name can have a maximum length of 1024 characters + // and must be at least 1 character long. + Name string `pulumi:"name"` + // The value of the label must match the specified value. value can have a maximum + // length of 1024 characters. + Value string `pulumi:"value"` } -// ReservationSpecificReservationInput is an input type that accepts ReservationSpecificReservationArgs and ReservationSpecificReservationOutput values. -// You can construct a concrete instance of `ReservationSpecificReservationInput` via: +// RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArgs and RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelInput` via: // -// ReservationSpecificReservationArgs{...} -type ReservationSpecificReservationInput interface { +// RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArgs{...} +type RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelInput interface { pulumi.Input - ToReservationSpecificReservationOutput() ReservationSpecificReservationOutput - ToReservationSpecificReservationOutputWithContext(context.Context) ReservationSpecificReservationOutput -} - -type ReservationSpecificReservationArgs struct { - // The number of resources that are allocated. - Count pulumi.IntInput `pulumi:"count"` - // (Output) - // How many instances are in use. - InUseCount pulumi.IntPtrInput `pulumi:"inUseCount"` - // The instance properties for the reservation. - // Structure is documented below. - InstanceProperties ReservationSpecificReservationInstancePropertiesInput `pulumi:"instanceProperties"` -} - -func (ReservationSpecificReservationArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ReservationSpecificReservation)(nil)).Elem() + ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput + ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput } -func (i ReservationSpecificReservationArgs) ToReservationSpecificReservationOutput() ReservationSpecificReservationOutput { - return i.ToReservationSpecificReservationOutputWithContext(context.Background()) +type RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArgs struct { + // Name of metadata label. The name can have a maximum length of 1024 characters + // and must be at least 1 character long. + Name pulumi.StringInput `pulumi:"name"` + // The value of the label must match the specified value. value can have a maximum + // length of 1024 characters. + Value pulumi.StringInput `pulumi:"value"` } -func (i ReservationSpecificReservationArgs) ToReservationSpecificReservationOutputWithContext(ctx context.Context) ReservationSpecificReservationOutput { - return pulumi.ToOutputWithContext(ctx, i).(ReservationSpecificReservationOutput) +func (RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabel)(nil)).Elem() } -func (i ReservationSpecificReservationArgs) ToReservationSpecificReservationPtrOutput() ReservationSpecificReservationPtrOutput { - return i.ToReservationSpecificReservationPtrOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArgs) ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutputWithContext(context.Background()) } -func (i ReservationSpecificReservationArgs) ToReservationSpecificReservationPtrOutputWithContext(ctx context.Context) ReservationSpecificReservationPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ReservationSpecificReservationOutput).ToReservationSpecificReservationPtrOutputWithContext(ctx) +func (i RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArgs) ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput) } -// ReservationSpecificReservationPtrInput is an input type that accepts ReservationSpecificReservationArgs, ReservationSpecificReservationPtr and ReservationSpecificReservationPtrOutput values. -// You can construct a concrete instance of `ReservationSpecificReservationPtrInput` via: -// -// ReservationSpecificReservationArgs{...} -// -// or: +// RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArray and RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayInput` via: // -// nil -type ReservationSpecificReservationPtrInput interface { +// RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArray{ RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArgs{...} } +type RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayInput interface { pulumi.Input - ToReservationSpecificReservationPtrOutput() ReservationSpecificReservationPtrOutput - ToReservationSpecificReservationPtrOutputWithContext(context.Context) ReservationSpecificReservationPtrOutput + ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput + ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput } -type reservationSpecificReservationPtrType ReservationSpecificReservationArgs - -func ReservationSpecificReservationPtr(v *ReservationSpecificReservationArgs) ReservationSpecificReservationPtrInput { - return (*reservationSpecificReservationPtrType)(v) -} +type RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArray []RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelInput -func (*reservationSpecificReservationPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ReservationSpecificReservation)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabel)(nil)).Elem() } -func (i *reservationSpecificReservationPtrType) ToReservationSpecificReservationPtrOutput() ReservationSpecificReservationPtrOutput { - return i.ToReservationSpecificReservationPtrOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArray) ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutputWithContext(context.Background()) } -func (i *reservationSpecificReservationPtrType) ToReservationSpecificReservationPtrOutputWithContext(ctx context.Context) ReservationSpecificReservationPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ReservationSpecificReservationPtrOutput) +func (i RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArray) ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput) } -type ReservationSpecificReservationOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput struct{ *pulumi.OutputState } -func (ReservationSpecificReservationOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ReservationSpecificReservation)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabel)(nil)).Elem() } -func (o ReservationSpecificReservationOutput) ToReservationSpecificReservationOutput() ReservationSpecificReservationOutput { +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput { return o } -func (o ReservationSpecificReservationOutput) ToReservationSpecificReservationOutputWithContext(ctx context.Context) ReservationSpecificReservationOutput { +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput { return o } -func (o ReservationSpecificReservationOutput) ToReservationSpecificReservationPtrOutput() ReservationSpecificReservationPtrOutput { - return o.ToReservationSpecificReservationPtrOutputWithContext(context.Background()) -} - -func (o ReservationSpecificReservationOutput) ToReservationSpecificReservationPtrOutputWithContext(ctx context.Context) ReservationSpecificReservationPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ReservationSpecificReservation) *ReservationSpecificReservation { - return &v - }).(ReservationSpecificReservationPtrOutput) -} - -// The number of resources that are allocated. -func (o ReservationSpecificReservationOutput) Count() pulumi.IntOutput { - return o.ApplyT(func(v ReservationSpecificReservation) int { return v.Count }).(pulumi.IntOutput) -} - -// (Output) -// How many instances are in use. -func (o ReservationSpecificReservationOutput) InUseCount() pulumi.IntPtrOutput { - return o.ApplyT(func(v ReservationSpecificReservation) *int { return v.InUseCount }).(pulumi.IntPtrOutput) +// Name of metadata label. The name can have a maximum length of 1024 characters +// and must be at least 1 character long. +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabel) string { return v.Name }).(pulumi.StringOutput) } -// The instance properties for the reservation. -// Structure is documented below. -func (o ReservationSpecificReservationOutput) InstanceProperties() ReservationSpecificReservationInstancePropertiesOutput { - return o.ApplyT(func(v ReservationSpecificReservation) ReservationSpecificReservationInstanceProperties { - return v.InstanceProperties - }).(ReservationSpecificReservationInstancePropertiesOutput) +// The value of the label must match the specified value. value can have a maximum +// length of 1024 characters. +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabel) string { return v.Value }).(pulumi.StringOutput) } -type ReservationSpecificReservationPtrOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput struct{ *pulumi.OutputState } -func (ReservationSpecificReservationPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ReservationSpecificReservation)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabel)(nil)).Elem() } -func (o ReservationSpecificReservationPtrOutput) ToReservationSpecificReservationPtrOutput() ReservationSpecificReservationPtrOutput { +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput { return o } -func (o ReservationSpecificReservationPtrOutput) ToReservationSpecificReservationPtrOutputWithContext(ctx context.Context) ReservationSpecificReservationPtrOutput { +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput { return o } -func (o ReservationSpecificReservationPtrOutput) Elem() ReservationSpecificReservationOutput { - return o.ApplyT(func(v *ReservationSpecificReservation) ReservationSpecificReservation { - if v != nil { - return *v - } - var ret ReservationSpecificReservation - return ret - }).(ReservationSpecificReservationOutput) -} - -// The number of resources that are allocated. -func (o ReservationSpecificReservationPtrOutput) Count() pulumi.IntPtrOutput { - return o.ApplyT(func(v *ReservationSpecificReservation) *int { - if v == nil { - return nil - } - return &v.Count - }).(pulumi.IntPtrOutput) -} - -// (Output) -// How many instances are in use. -func (o ReservationSpecificReservationPtrOutput) InUseCount() pulumi.IntPtrOutput { - return o.ApplyT(func(v *ReservationSpecificReservation) *int { - if v == nil { - return nil - } - return v.InUseCount - }).(pulumi.IntPtrOutput) -} - -// The instance properties for the reservation. -// Structure is documented below. -func (o ReservationSpecificReservationPtrOutput) InstanceProperties() ReservationSpecificReservationInstancePropertiesPtrOutput { - return o.ApplyT(func(v *ReservationSpecificReservation) *ReservationSpecificReservationInstanceProperties { - if v == nil { - return nil - } - return &v.InstanceProperties - }).(ReservationSpecificReservationInstancePropertiesPtrOutput) +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArrayOutput) Index(i pulumi.IntInput) RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabel { + return vs[0].([]RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabel)[vs[1].(int)] + }).(RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelOutput) } -type ReservationSpecificReservationInstanceProperties struct { - // Guest accelerator type and count. - // Structure is documented below. - GuestAccelerators []ReservationSpecificReservationInstancePropertiesGuestAccelerator `pulumi:"guestAccelerators"` - // The amount of local ssd to reserve with each instance. This - // reserves disks of type `local-ssd`. - // Structure is documented below. - LocalSsds []ReservationSpecificReservationInstancePropertiesLocalSsd `pulumi:"localSsds"` - // The name of the machine type to reserve. - MachineType string `pulumi:"machineType"` - // The minimum CPU platform for the reservation. For example, - // `"Intel Skylake"`. See - // the CPU platform availability reference](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform#availablezones) - // for information on available CPU platforms. - MinCpuPlatform *string `pulumi:"minCpuPlatform"` +type RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatch struct { + // The queryParameterMatch matches if the value of the parameter exactly matches + // the contents of exactMatch. Only one of presentMatch, exactMatch and regexMatch + // must be set. + ExactMatch *string `pulumi:"exactMatch"` + // The name of the query parameter to match. The query parameter must exist in the + // request, in the absence of which the request match fails. + Name string `pulumi:"name"` + // Specifies that the queryParameterMatch matches if the request contains the query + // parameter, irrespective of whether the parameter has a value or not. Only one of + // presentMatch, exactMatch and regexMatch must be set. + PresentMatch *bool `pulumi:"presentMatch"` + // The queryParameterMatch matches if the value of the parameter matches the + // regular expression specified by regexMatch. For the regular expression grammar, + // please see en.cppreference.com/w/cpp/regex/ecmascript Only one of presentMatch, + // exactMatch and regexMatch must be set. + RegexMatch *string `pulumi:"regexMatch"` } -// ReservationSpecificReservationInstancePropertiesInput is an input type that accepts ReservationSpecificReservationInstancePropertiesArgs and ReservationSpecificReservationInstancePropertiesOutput values. -// You can construct a concrete instance of `ReservationSpecificReservationInstancePropertiesInput` via: +// RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs and RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchInput` via: // -// ReservationSpecificReservationInstancePropertiesArgs{...} -type ReservationSpecificReservationInstancePropertiesInput interface { +// RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs{...} +type RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchInput interface { pulumi.Input - ToReservationSpecificReservationInstancePropertiesOutput() ReservationSpecificReservationInstancePropertiesOutput - ToReservationSpecificReservationInstancePropertiesOutputWithContext(context.Context) ReservationSpecificReservationInstancePropertiesOutput -} - -type ReservationSpecificReservationInstancePropertiesArgs struct { - // Guest accelerator type and count. - // Structure is documented below. - GuestAccelerators ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayInput `pulumi:"guestAccelerators"` - // The amount of local ssd to reserve with each instance. This - // reserves disks of type `local-ssd`. - // Structure is documented below. - LocalSsds ReservationSpecificReservationInstancePropertiesLocalSsdArrayInput `pulumi:"localSsds"` - // The name of the machine type to reserve. - MachineType pulumi.StringInput `pulumi:"machineType"` - // The minimum CPU platform for the reservation. For example, - // `"Intel Skylake"`. See - // the CPU platform availability reference](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform#availablezones) - // for information on available CPU platforms. - MinCpuPlatform pulumi.StringPtrInput `pulumi:"minCpuPlatform"` -} - -func (ReservationSpecificReservationInstancePropertiesArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ReservationSpecificReservationInstanceProperties)(nil)).Elem() + ToRegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput + ToRegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput } -func (i ReservationSpecificReservationInstancePropertiesArgs) ToReservationSpecificReservationInstancePropertiesOutput() ReservationSpecificReservationInstancePropertiesOutput { - return i.ToReservationSpecificReservationInstancePropertiesOutputWithContext(context.Background()) +type RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs struct { + // The queryParameterMatch matches if the value of the parameter exactly matches + // the contents of exactMatch. Only one of presentMatch, exactMatch and regexMatch + // must be set. + ExactMatch pulumi.StringPtrInput `pulumi:"exactMatch"` + // The name of the query parameter to match. The query parameter must exist in the + // request, in the absence of which the request match fails. + Name pulumi.StringInput `pulumi:"name"` + // Specifies that the queryParameterMatch matches if the request contains the query + // parameter, irrespective of whether the parameter has a value or not. Only one of + // presentMatch, exactMatch and regexMatch must be set. + PresentMatch pulumi.BoolPtrInput `pulumi:"presentMatch"` + // The queryParameterMatch matches if the value of the parameter matches the + // regular expression specified by regexMatch. For the regular expression grammar, + // please see en.cppreference.com/w/cpp/regex/ecmascript Only one of presentMatch, + // exactMatch and regexMatch must be set. + RegexMatch pulumi.StringPtrInput `pulumi:"regexMatch"` } -func (i ReservationSpecificReservationInstancePropertiesArgs) ToReservationSpecificReservationInstancePropertiesOutputWithContext(ctx context.Context) ReservationSpecificReservationInstancePropertiesOutput { - return pulumi.ToOutputWithContext(ctx, i).(ReservationSpecificReservationInstancePropertiesOutput) +func (RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatch)(nil)).Elem() } -func (i ReservationSpecificReservationInstancePropertiesArgs) ToReservationSpecificReservationInstancePropertiesPtrOutput() ReservationSpecificReservationInstancePropertiesPtrOutput { - return i.ToReservationSpecificReservationInstancePropertiesPtrOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs) ToRegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutputWithContext(context.Background()) } -func (i ReservationSpecificReservationInstancePropertiesArgs) ToReservationSpecificReservationInstancePropertiesPtrOutputWithContext(ctx context.Context) ReservationSpecificReservationInstancePropertiesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ReservationSpecificReservationInstancePropertiesOutput).ToReservationSpecificReservationInstancePropertiesPtrOutputWithContext(ctx) +func (i RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs) ToRegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput) } -// ReservationSpecificReservationInstancePropertiesPtrInput is an input type that accepts ReservationSpecificReservationInstancePropertiesArgs, ReservationSpecificReservationInstancePropertiesPtr and ReservationSpecificReservationInstancePropertiesPtrOutput values. -// You can construct a concrete instance of `ReservationSpecificReservationInstancePropertiesPtrInput` via: -// -// ReservationSpecificReservationInstancePropertiesArgs{...} -// -// or: +// RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArray and RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayInput` via: // -// nil -type ReservationSpecificReservationInstancePropertiesPtrInput interface { +// RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArray{ RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs{...} } +type RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayInput interface { pulumi.Input - ToReservationSpecificReservationInstancePropertiesPtrOutput() ReservationSpecificReservationInstancePropertiesPtrOutput - ToReservationSpecificReservationInstancePropertiesPtrOutputWithContext(context.Context) ReservationSpecificReservationInstancePropertiesPtrOutput + ToRegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput + ToRegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput } -type reservationSpecificReservationInstancePropertiesPtrType ReservationSpecificReservationInstancePropertiesArgs - -func ReservationSpecificReservationInstancePropertiesPtr(v *ReservationSpecificReservationInstancePropertiesArgs) ReservationSpecificReservationInstancePropertiesPtrInput { - return (*reservationSpecificReservationInstancePropertiesPtrType)(v) -} +type RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArray []RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchInput -func (*reservationSpecificReservationInstancePropertiesPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ReservationSpecificReservationInstanceProperties)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatch)(nil)).Elem() } -func (i *reservationSpecificReservationInstancePropertiesPtrType) ToReservationSpecificReservationInstancePropertiesPtrOutput() ReservationSpecificReservationInstancePropertiesPtrOutput { - return i.ToReservationSpecificReservationInstancePropertiesPtrOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArray) ToRegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutputWithContext(context.Background()) } -func (i *reservationSpecificReservationInstancePropertiesPtrType) ToReservationSpecificReservationInstancePropertiesPtrOutputWithContext(ctx context.Context) ReservationSpecificReservationInstancePropertiesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ReservationSpecificReservationInstancePropertiesPtrOutput) +func (i RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArray) ToRegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput) } -type ReservationSpecificReservationInstancePropertiesOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput struct{ *pulumi.OutputState } -func (ReservationSpecificReservationInstancePropertiesOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ReservationSpecificReservationInstanceProperties)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatch)(nil)).Elem() } -func (o ReservationSpecificReservationInstancePropertiesOutput) ToReservationSpecificReservationInstancePropertiesOutput() ReservationSpecificReservationInstancePropertiesOutput { +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput { return o } -func (o ReservationSpecificReservationInstancePropertiesOutput) ToReservationSpecificReservationInstancePropertiesOutputWithContext(ctx context.Context) ReservationSpecificReservationInstancePropertiesOutput { +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput { return o } -func (o ReservationSpecificReservationInstancePropertiesOutput) ToReservationSpecificReservationInstancePropertiesPtrOutput() ReservationSpecificReservationInstancePropertiesPtrOutput { - return o.ToReservationSpecificReservationInstancePropertiesPtrOutputWithContext(context.Background()) -} - -func (o ReservationSpecificReservationInstancePropertiesOutput) ToReservationSpecificReservationInstancePropertiesPtrOutputWithContext(ctx context.Context) ReservationSpecificReservationInstancePropertiesPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ReservationSpecificReservationInstanceProperties) *ReservationSpecificReservationInstanceProperties { - return &v - }).(ReservationSpecificReservationInstancePropertiesPtrOutput) -} - -// Guest accelerator type and count. -// Structure is documented below. -func (o ReservationSpecificReservationInstancePropertiesOutput) GuestAccelerators() ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput { - return o.ApplyT(func(v ReservationSpecificReservationInstanceProperties) []ReservationSpecificReservationInstancePropertiesGuestAccelerator { - return v.GuestAccelerators - }).(ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput) +// The queryParameterMatch matches if the value of the parameter exactly matches +// the contents of exactMatch. Only one of presentMatch, exactMatch and regexMatch +// must be set. +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput) ExactMatch() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatch) *string { return v.ExactMatch }).(pulumi.StringPtrOutput) } -// The amount of local ssd to reserve with each instance. This -// reserves disks of type `local-ssd`. -// Structure is documented below. -func (o ReservationSpecificReservationInstancePropertiesOutput) LocalSsds() ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput { - return o.ApplyT(func(v ReservationSpecificReservationInstanceProperties) []ReservationSpecificReservationInstancePropertiesLocalSsd { - return v.LocalSsds - }).(ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput) +// The name of the query parameter to match. The query parameter must exist in the +// request, in the absence of which the request match fails. +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatch) string { return v.Name }).(pulumi.StringOutput) } -// The name of the machine type to reserve. -func (o ReservationSpecificReservationInstancePropertiesOutput) MachineType() pulumi.StringOutput { - return o.ApplyT(func(v ReservationSpecificReservationInstanceProperties) string { return v.MachineType }).(pulumi.StringOutput) +// Specifies that the queryParameterMatch matches if the request contains the query +// parameter, irrespective of whether the parameter has a value or not. Only one of +// presentMatch, exactMatch and regexMatch must be set. +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput) PresentMatch() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatch) *bool { return v.PresentMatch }).(pulumi.BoolPtrOutput) } -// The minimum CPU platform for the reservation. For example, -// `"Intel Skylake"`. See -// the CPU platform availability reference](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform#availablezones) -// for information on available CPU platforms. -func (o ReservationSpecificReservationInstancePropertiesOutput) MinCpuPlatform() pulumi.StringPtrOutput { - return o.ApplyT(func(v ReservationSpecificReservationInstanceProperties) *string { return v.MinCpuPlatform }).(pulumi.StringPtrOutput) +// The queryParameterMatch matches if the value of the parameter matches the +// regular expression specified by regexMatch. For the regular expression grammar, +// please see en.cppreference.com/w/cpp/regex/ecmascript Only one of presentMatch, +// exactMatch and regexMatch must be set. +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput) RegexMatch() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatch) *string { return v.RegexMatch }).(pulumi.StringPtrOutput) } -type ReservationSpecificReservationInstancePropertiesPtrOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput struct{ *pulumi.OutputState } -func (ReservationSpecificReservationInstancePropertiesPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ReservationSpecificReservationInstanceProperties)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatch)(nil)).Elem() } -func (o ReservationSpecificReservationInstancePropertiesPtrOutput) ToReservationSpecificReservationInstancePropertiesPtrOutput() ReservationSpecificReservationInstancePropertiesPtrOutput { +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput() RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput { return o } -func (o ReservationSpecificReservationInstancePropertiesPtrOutput) ToReservationSpecificReservationInstancePropertiesPtrOutputWithContext(ctx context.Context) ReservationSpecificReservationInstancePropertiesPtrOutput { +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput) ToRegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput { return o } -func (o ReservationSpecificReservationInstancePropertiesPtrOutput) Elem() ReservationSpecificReservationInstancePropertiesOutput { - return o.ApplyT(func(v *ReservationSpecificReservationInstanceProperties) ReservationSpecificReservationInstanceProperties { - if v != nil { - return *v - } - var ret ReservationSpecificReservationInstanceProperties - return ret - }).(ReservationSpecificReservationInstancePropertiesOutput) -} - -// Guest accelerator type and count. -// Structure is documented below. -func (o ReservationSpecificReservationInstancePropertiesPtrOutput) GuestAccelerators() ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput { - return o.ApplyT(func(v *ReservationSpecificReservationInstanceProperties) []ReservationSpecificReservationInstancePropertiesGuestAccelerator { - if v == nil { - return nil - } - return v.GuestAccelerators - }).(ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput) -} - -// The amount of local ssd to reserve with each instance. This -// reserves disks of type `local-ssd`. -// Structure is documented below. -func (o ReservationSpecificReservationInstancePropertiesPtrOutput) LocalSsds() ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput { - return o.ApplyT(func(v *ReservationSpecificReservationInstanceProperties) []ReservationSpecificReservationInstancePropertiesLocalSsd { - if v == nil { - return nil - } - return v.LocalSsds - }).(ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput) -} - -// The name of the machine type to reserve. -func (o ReservationSpecificReservationInstancePropertiesPtrOutput) MachineType() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ReservationSpecificReservationInstanceProperties) *string { - if v == nil { - return nil - } - return &v.MachineType - }).(pulumi.StringPtrOutput) -} - -// The minimum CPU platform for the reservation. For example, -// `"Intel Skylake"`. See -// the CPU platform availability reference](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform#availablezones) -// for information on available CPU platforms. -func (o ReservationSpecificReservationInstancePropertiesPtrOutput) MinCpuPlatform() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ReservationSpecificReservationInstanceProperties) *string { - if v == nil { - return nil - } - return v.MinCpuPlatform - }).(pulumi.StringPtrOutput) +func (o RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArrayOutput) Index(i pulumi.IntInput) RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatch { + return vs[0].([]RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatch)[vs[1].(int)] + }).(RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatchOutput) } -type ReservationSpecificReservationInstancePropertiesGuestAccelerator struct { - // The number of the guest accelerator cards exposed to - // this instance. - AcceleratorCount int `pulumi:"acceleratorCount"` - // The full or partial URL of the accelerator type to - // attach to this instance. For example: - // `projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-p100` - // If you are creating an instance template, specify only the accelerator name. - AcceleratorType string `pulumi:"acceleratorType"` +type RegionUrlMapPathMatcherRouteRuleRouteAction struct { + // The specification for allowing client side cross-origin requests. Please see W3C + // Recommendation for Cross Origin Resource Sharing + // Structure is documented below. + CorsPolicy *RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy `pulumi:"corsPolicy"` + // The specification for fault injection introduced into traffic to test the + // resiliency of clients to backend service failure. As part of fault injection, + // when clients send requests to a backend service, delays can be introduced by + // Loadbalancer on a percentage of requests before sending those request to the + // backend service. Similarly requests from clients can be aborted by the + // Loadbalancer for a percentage of requests. timeout and retryPolicy will be + // ignored by clients that are configured with a fault_injection_policy. + // Structure is documented below. + FaultInjectionPolicy *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy `pulumi:"faultInjectionPolicy"` + // Specifies the policy on how requests intended for the route's backends are + // shadowed to a separate mirrored backend service. Loadbalancer does not wait for + // responses from the shadow service. Prior to sending traffic to the shadow + // service, the host / authority header is suffixed with -shadow. + // Structure is documented below. + RequestMirrorPolicy *RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy `pulumi:"requestMirrorPolicy"` + // Specifies the retry policy associated with this route. + // Structure is documented below. + RetryPolicy *RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy `pulumi:"retryPolicy"` + // Specifies the timeout for the selected route. Timeout is computed from the time + // the request is has been fully processed (i.e. end-of-stream) up until the + // response has been completely processed. Timeout includes all retries. If not + // specified, the default value is 15 seconds. + // Structure is documented below. + Timeout *RegionUrlMapPathMatcherRouteRuleRouteActionTimeout `pulumi:"timeout"` + // The spec to modify the URL of the request, prior to forwarding the request to + // the matched service + // Structure is documented below. + UrlRewrite *RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite `pulumi:"urlRewrite"` + // A list of weighted backend services to send traffic to when a route match + // occurs. The weights determine the fraction of traffic that flows to their + // corresponding backend service. If all traffic needs to go to a single backend + // service, there must be one weightedBackendService with weight set to a non 0 + // number. Once a backendService is identified and before forwarding the request to + // the backend service, advanced routing actions like Url rewrites and header + // transformations are applied depending on additional settings specified in this + // HttpRouteAction. + // Structure is documented below. + WeightedBackendServices []RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendService `pulumi:"weightedBackendServices"` } -// ReservationSpecificReservationInstancePropertiesGuestAcceleratorInput is an input type that accepts ReservationSpecificReservationInstancePropertiesGuestAcceleratorArgs and ReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput values. -// You can construct a concrete instance of `ReservationSpecificReservationInstancePropertiesGuestAcceleratorInput` via: +// RegionUrlMapPathMatcherRouteRuleRouteActionInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionArgs and RegionUrlMapPathMatcherRouteRuleRouteActionOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionInput` via: // -// ReservationSpecificReservationInstancePropertiesGuestAcceleratorArgs{...} -type ReservationSpecificReservationInstancePropertiesGuestAcceleratorInput interface { +// RegionUrlMapPathMatcherRouteRuleRouteActionArgs{...} +type RegionUrlMapPathMatcherRouteRuleRouteActionInput interface { pulumi.Input - ToReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput() ReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput - ToReservationSpecificReservationInstancePropertiesGuestAcceleratorOutputWithContext(context.Context) ReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionOutput() RegionUrlMapPathMatcherRouteRuleRouteActionOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionOutput } -type ReservationSpecificReservationInstancePropertiesGuestAcceleratorArgs struct { - // The number of the guest accelerator cards exposed to - // this instance. - AcceleratorCount pulumi.IntInput `pulumi:"acceleratorCount"` - // The full or partial URL of the accelerator type to - // attach to this instance. For example: - // `projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-p100` - // If you are creating an instance template, specify only the accelerator name. - AcceleratorType pulumi.StringInput `pulumi:"acceleratorType"` +type RegionUrlMapPathMatcherRouteRuleRouteActionArgs struct { + // The specification for allowing client side cross-origin requests. Please see W3C + // Recommendation for Cross Origin Resource Sharing + // Structure is documented below. + CorsPolicy RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrInput `pulumi:"corsPolicy"` + // The specification for fault injection introduced into traffic to test the + // resiliency of clients to backend service failure. As part of fault injection, + // when clients send requests to a backend service, delays can be introduced by + // Loadbalancer on a percentage of requests before sending those request to the + // backend service. Similarly requests from clients can be aborted by the + // Loadbalancer for a percentage of requests. timeout and retryPolicy will be + // ignored by clients that are configured with a fault_injection_policy. + // Structure is documented below. + FaultInjectionPolicy RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrInput `pulumi:"faultInjectionPolicy"` + // Specifies the policy on how requests intended for the route's backends are + // shadowed to a separate mirrored backend service. Loadbalancer does not wait for + // responses from the shadow service. Prior to sending traffic to the shadow + // service, the host / authority header is suffixed with -shadow. + // Structure is documented below. + RequestMirrorPolicy RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrInput `pulumi:"requestMirrorPolicy"` + // Specifies the retry policy associated with this route. + // Structure is documented below. + RetryPolicy RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrInput `pulumi:"retryPolicy"` + // Specifies the timeout for the selected route. Timeout is computed from the time + // the request is has been fully processed (i.e. end-of-stream) up until the + // response has been completely processed. Timeout includes all retries. If not + // specified, the default value is 15 seconds. + // Structure is documented below. + Timeout RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrInput `pulumi:"timeout"` + // The spec to modify the URL of the request, prior to forwarding the request to + // the matched service + // Structure is documented below. + UrlRewrite RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrInput `pulumi:"urlRewrite"` + // A list of weighted backend services to send traffic to when a route match + // occurs. The weights determine the fraction of traffic that flows to their + // corresponding backend service. If all traffic needs to go to a single backend + // service, there must be one weightedBackendService with weight set to a non 0 + // number. Once a backendService is identified and before forwarding the request to + // the backend service, advanced routing actions like Url rewrites and header + // transformations are applied depending on additional settings specified in this + // HttpRouteAction. + // Structure is documented below. + WeightedBackendServices RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayInput `pulumi:"weightedBackendServices"` } -func (ReservationSpecificReservationInstancePropertiesGuestAcceleratorArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ReservationSpecificReservationInstancePropertiesGuestAccelerator)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleRouteActionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteAction)(nil)).Elem() } -func (i ReservationSpecificReservationInstancePropertiesGuestAcceleratorArgs) ToReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput() ReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput { - return i.ToReservationSpecificReservationInstancePropertiesGuestAcceleratorOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionOutput() RegionUrlMapPathMatcherRouteRuleRouteActionOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionOutputWithContext(context.Background()) } -func (i ReservationSpecificReservationInstancePropertiesGuestAcceleratorArgs) ToReservationSpecificReservationInstancePropertiesGuestAcceleratorOutputWithContext(ctx context.Context) ReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput { - return pulumi.ToOutputWithContext(ctx, i).(ReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionOutput) } -// ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayInput is an input type that accepts ReservationSpecificReservationInstancePropertiesGuestAcceleratorArray and ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput values. -// You can construct a concrete instance of `ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayInput` via: -// -// ReservationSpecificReservationInstancePropertiesGuestAcceleratorArray{ ReservationSpecificReservationInstancePropertiesGuestAcceleratorArgs{...} } -type ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayInput interface { - pulumi.Input - - ToReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput() ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput - ToReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutputWithContext(context.Context) ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput +func (i RegionUrlMapPathMatcherRouteRuleRouteActionArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionPtrOutputWithContext(context.Background()) } -type ReservationSpecificReservationInstancePropertiesGuestAcceleratorArray []ReservationSpecificReservationInstancePropertiesGuestAcceleratorInput - -func (ReservationSpecificReservationInstancePropertiesGuestAcceleratorArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ReservationSpecificReservationInstancePropertiesGuestAccelerator)(nil)).Elem() +func (i RegionUrlMapPathMatcherRouteRuleRouteActionArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionOutput).ToRegionUrlMapPathMatcherRouteRuleRouteActionPtrOutputWithContext(ctx) } -func (i ReservationSpecificReservationInstancePropertiesGuestAcceleratorArray) ToReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput() ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput { - return i.ToReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutputWithContext(context.Background()) -} +// RegionUrlMapPathMatcherRouteRuleRouteActionPtrInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionArgs, RegionUrlMapPathMatcherRouteRuleRouteActionPtr and RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionPtrInput` via: +// +// RegionUrlMapPathMatcherRouteRuleRouteActionArgs{...} +// +// or: +// +// nil +type RegionUrlMapPathMatcherRouteRuleRouteActionPtrInput interface { + pulumi.Input -func (i ReservationSpecificReservationInstancePropertiesGuestAcceleratorArray) ToReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutputWithContext(ctx context.Context) ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput) + ToRegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput } -type ReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput struct{ *pulumi.OutputState } - -func (ReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ReservationSpecificReservationInstancePropertiesGuestAccelerator)(nil)).Elem() -} +type regionUrlMapPathMatcherRouteRuleRouteActionPtrType RegionUrlMapPathMatcherRouteRuleRouteActionArgs -func (o ReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput) ToReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput() ReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput { - return o +func RegionUrlMapPathMatcherRouteRuleRouteActionPtr(v *RegionUrlMapPathMatcherRouteRuleRouteActionArgs) RegionUrlMapPathMatcherRouteRuleRouteActionPtrInput { + return (*regionUrlMapPathMatcherRouteRuleRouteActionPtrType)(v) } -func (o ReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput) ToReservationSpecificReservationInstancePropertiesGuestAcceleratorOutputWithContext(ctx context.Context) ReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput { - return o +func (*regionUrlMapPathMatcherRouteRuleRouteActionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteAction)(nil)).Elem() } -// The number of the guest accelerator cards exposed to -// this instance. -func (o ReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput) AcceleratorCount() pulumi.IntOutput { - return o.ApplyT(func(v ReservationSpecificReservationInstancePropertiesGuestAccelerator) int { - return v.AcceleratorCount - }).(pulumi.IntOutput) +func (i *regionUrlMapPathMatcherRouteRuleRouteActionPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionPtrOutputWithContext(context.Background()) } -// The full or partial URL of the accelerator type to -// attach to this instance. For example: -// `projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-p100` -// If you are creating an instance template, specify only the accelerator name. -func (o ReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput) AcceleratorType() pulumi.StringOutput { - return o.ApplyT(func(v ReservationSpecificReservationInstancePropertiesGuestAccelerator) string { - return v.AcceleratorType - }).(pulumi.StringOutput) +func (i *regionUrlMapPathMatcherRouteRuleRouteActionPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput) } -type ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherRouteRuleRouteActionOutput struct{ *pulumi.OutputState } -func (ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ReservationSpecificReservationInstancePropertiesGuestAccelerator)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleRouteActionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteAction)(nil)).Elem() } -func (o ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput) ToReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput() ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionOutput() RegionUrlMapPathMatcherRouteRuleRouteActionOutput { return o } -func (o ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput) ToReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutputWithContext(ctx context.Context) ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionOutput { return o } -func (o ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput) Index(i pulumi.IntInput) ReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ReservationSpecificReservationInstancePropertiesGuestAccelerator { - return vs[0].([]ReservationSpecificReservationInstancePropertiesGuestAccelerator)[vs[1].(int)] - }).(ReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput) +func (o RegionUrlMapPathMatcherRouteRuleRouteActionOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput { + return o.ToRegionUrlMapPathMatcherRouteRuleRouteActionPtrOutputWithContext(context.Background()) } -type ReservationSpecificReservationInstancePropertiesLocalSsd struct { - // The size of the disk in base-2 GB. - // - // *** - DiskSizeGb int `pulumi:"diskSizeGb"` - // The disk interface to use for attaching this disk. - // Default value is `SCSI`. - // Possible values are: `SCSI`, `NVME`. - Interface *string `pulumi:"interface"` +func (o RegionUrlMapPathMatcherRouteRuleRouteActionOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherRouteRuleRouteAction) *RegionUrlMapPathMatcherRouteRuleRouteAction { + return &v + }).(RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput) } -// ReservationSpecificReservationInstancePropertiesLocalSsdInput is an input type that accepts ReservationSpecificReservationInstancePropertiesLocalSsdArgs and ReservationSpecificReservationInstancePropertiesLocalSsdOutput values. -// You can construct a concrete instance of `ReservationSpecificReservationInstancePropertiesLocalSsdInput` via: -// -// ReservationSpecificReservationInstancePropertiesLocalSsdArgs{...} -type ReservationSpecificReservationInstancePropertiesLocalSsdInput interface { - pulumi.Input - - ToReservationSpecificReservationInstancePropertiesLocalSsdOutput() ReservationSpecificReservationInstancePropertiesLocalSsdOutput - ToReservationSpecificReservationInstancePropertiesLocalSsdOutputWithContext(context.Context) ReservationSpecificReservationInstancePropertiesLocalSsdOutput +// The specification for allowing client side cross-origin requests. Please see W3C +// Recommendation for Cross Origin Resource Sharing +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionOutput) CorsPolicy() RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteAction) *RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy { + return v.CorsPolicy + }).(RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput) } -type ReservationSpecificReservationInstancePropertiesLocalSsdArgs struct { - // The size of the disk in base-2 GB. - // - // *** - DiskSizeGb pulumi.IntInput `pulumi:"diskSizeGb"` - // The disk interface to use for attaching this disk. - // Default value is `SCSI`. - // Possible values are: `SCSI`, `NVME`. - Interface pulumi.StringPtrInput `pulumi:"interface"` +// The specification for fault injection introduced into traffic to test the +// resiliency of clients to backend service failure. As part of fault injection, +// when clients send requests to a backend service, delays can be introduced by +// Loadbalancer on a percentage of requests before sending those request to the +// backend service. Similarly requests from clients can be aborted by the +// Loadbalancer for a percentage of requests. timeout and retryPolicy will be +// ignored by clients that are configured with a fault_injection_policy. +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionOutput) FaultInjectionPolicy() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteAction) *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy { + return v.FaultInjectionPolicy + }).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput) } -func (ReservationSpecificReservationInstancePropertiesLocalSsdArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ReservationSpecificReservationInstancePropertiesLocalSsd)(nil)).Elem() +// Specifies the policy on how requests intended for the route's backends are +// shadowed to a separate mirrored backend service. Loadbalancer does not wait for +// responses from the shadow service. Prior to sending traffic to the shadow +// service, the host / authority header is suffixed with -shadow. +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionOutput) RequestMirrorPolicy() RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteAction) *RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy { + return v.RequestMirrorPolicy + }).(RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput) } -func (i ReservationSpecificReservationInstancePropertiesLocalSsdArgs) ToReservationSpecificReservationInstancePropertiesLocalSsdOutput() ReservationSpecificReservationInstancePropertiesLocalSsdOutput { - return i.ToReservationSpecificReservationInstancePropertiesLocalSsdOutputWithContext(context.Background()) +// Specifies the retry policy associated with this route. +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionOutput) RetryPolicy() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteAction) *RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy { + return v.RetryPolicy + }).(RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput) } -func (i ReservationSpecificReservationInstancePropertiesLocalSsdArgs) ToReservationSpecificReservationInstancePropertiesLocalSsdOutputWithContext(ctx context.Context) ReservationSpecificReservationInstancePropertiesLocalSsdOutput { - return pulumi.ToOutputWithContext(ctx, i).(ReservationSpecificReservationInstancePropertiesLocalSsdOutput) +// Specifies the timeout for the selected route. Timeout is computed from the time +// the request is has been fully processed (i.e. end-of-stream) up until the +// response has been completely processed. Timeout includes all retries. If not +// specified, the default value is 15 seconds. +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionOutput) Timeout() RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteAction) *RegionUrlMapPathMatcherRouteRuleRouteActionTimeout { + return v.Timeout + }).(RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput) } -// ReservationSpecificReservationInstancePropertiesLocalSsdArrayInput is an input type that accepts ReservationSpecificReservationInstancePropertiesLocalSsdArray and ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput values. -// You can construct a concrete instance of `ReservationSpecificReservationInstancePropertiesLocalSsdArrayInput` via: -// -// ReservationSpecificReservationInstancePropertiesLocalSsdArray{ ReservationSpecificReservationInstancePropertiesLocalSsdArgs{...} } -type ReservationSpecificReservationInstancePropertiesLocalSsdArrayInput interface { - pulumi.Input - - ToReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput() ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput - ToReservationSpecificReservationInstancePropertiesLocalSsdArrayOutputWithContext(context.Context) ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput +// The spec to modify the URL of the request, prior to forwarding the request to +// the matched service +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionOutput) UrlRewrite() RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteAction) *RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite { + return v.UrlRewrite + }).(RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput) } -type ReservationSpecificReservationInstancePropertiesLocalSsdArray []ReservationSpecificReservationInstancePropertiesLocalSsdInput - -func (ReservationSpecificReservationInstancePropertiesLocalSsdArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ReservationSpecificReservationInstancePropertiesLocalSsd)(nil)).Elem() +// A list of weighted backend services to send traffic to when a route match +// occurs. The weights determine the fraction of traffic that flows to their +// corresponding backend service. If all traffic needs to go to a single backend +// service, there must be one weightedBackendService with weight set to a non 0 +// number. Once a backendService is identified and before forwarding the request to +// the backend service, advanced routing actions like Url rewrites and header +// transformations are applied depending on additional settings specified in this +// HttpRouteAction. +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionOutput) WeightedBackendServices() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteAction) []RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendService { + return v.WeightedBackendServices + }).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput) } -func (i ReservationSpecificReservationInstancePropertiesLocalSsdArray) ToReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput() ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput { - return i.ToReservationSpecificReservationInstancePropertiesLocalSsdArrayOutputWithContext(context.Background()) -} +type RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput struct{ *pulumi.OutputState } -func (i ReservationSpecificReservationInstancePropertiesLocalSsdArray) ToReservationSpecificReservationInstancePropertiesLocalSsdArrayOutputWithContext(ctx context.Context) ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput) +func (RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteAction)(nil)).Elem() } -type ReservationSpecificReservationInstancePropertiesLocalSsdOutput struct{ *pulumi.OutputState } - -func (ReservationSpecificReservationInstancePropertiesLocalSsdOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ReservationSpecificReservationInstancePropertiesLocalSsd)(nil)).Elem() +func (o RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput { + return o } -func (o ReservationSpecificReservationInstancePropertiesLocalSsdOutput) ToReservationSpecificReservationInstancePropertiesLocalSsdOutput() ReservationSpecificReservationInstancePropertiesLocalSsdOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput { return o } -func (o ReservationSpecificReservationInstancePropertiesLocalSsdOutput) ToReservationSpecificReservationInstancePropertiesLocalSsdOutputWithContext(ctx context.Context) ReservationSpecificReservationInstancePropertiesLocalSsdOutput { - return o +func (o RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput) Elem() RegionUrlMapPathMatcherRouteRuleRouteActionOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteAction) RegionUrlMapPathMatcherRouteRuleRouteAction { + if v != nil { + return *v + } + var ret RegionUrlMapPathMatcherRouteRuleRouteAction + return ret + }).(RegionUrlMapPathMatcherRouteRuleRouteActionOutput) } -// The size of the disk in base-2 GB. -// -// *** -func (o ReservationSpecificReservationInstancePropertiesLocalSsdOutput) DiskSizeGb() pulumi.IntOutput { - return o.ApplyT(func(v ReservationSpecificReservationInstancePropertiesLocalSsd) int { return v.DiskSizeGb }).(pulumi.IntOutput) +// The specification for allowing client side cross-origin requests. Please see W3C +// Recommendation for Cross Origin Resource Sharing +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput) CorsPolicy() RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteAction) *RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy { + if v == nil { + return nil + } + return v.CorsPolicy + }).(RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput) } -// The disk interface to use for attaching this disk. -// Default value is `SCSI`. -// Possible values are: `SCSI`, `NVME`. -func (o ReservationSpecificReservationInstancePropertiesLocalSsdOutput) Interface() pulumi.StringPtrOutput { - return o.ApplyT(func(v ReservationSpecificReservationInstancePropertiesLocalSsd) *string { return v.Interface }).(pulumi.StringPtrOutput) +// The specification for fault injection introduced into traffic to test the +// resiliency of clients to backend service failure. As part of fault injection, +// when clients send requests to a backend service, delays can be introduced by +// Loadbalancer on a percentage of requests before sending those request to the +// backend service. Similarly requests from clients can be aborted by the +// Loadbalancer for a percentage of requests. timeout and retryPolicy will be +// ignored by clients that are configured with a fault_injection_policy. +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput) FaultInjectionPolicy() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteAction) *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy { + if v == nil { + return nil + } + return v.FaultInjectionPolicy + }).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput) } -type ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput struct{ *pulumi.OutputState } +// Specifies the policy on how requests intended for the route's backends are +// shadowed to a separate mirrored backend service. Loadbalancer does not wait for +// responses from the shadow service. Prior to sending traffic to the shadow +// service, the host / authority header is suffixed with -shadow. +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput) RequestMirrorPolicy() RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteAction) *RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy { + if v == nil { + return nil + } + return v.RequestMirrorPolicy + }).(RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput) +} -func (ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ReservationSpecificReservationInstancePropertiesLocalSsd)(nil)).Elem() +// Specifies the retry policy associated with this route. +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput) RetryPolicy() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteAction) *RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy { + if v == nil { + return nil + } + return v.RetryPolicy + }).(RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput) } -func (o ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput) ToReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput() ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput { - return o +// Specifies the timeout for the selected route. Timeout is computed from the time +// the request is has been fully processed (i.e. end-of-stream) up until the +// response has been completely processed. Timeout includes all retries. If not +// specified, the default value is 15 seconds. +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput) Timeout() RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteAction) *RegionUrlMapPathMatcherRouteRuleRouteActionTimeout { + if v == nil { + return nil + } + return v.Timeout + }).(RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput) } -func (o ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput) ToReservationSpecificReservationInstancePropertiesLocalSsdArrayOutputWithContext(ctx context.Context) ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput { - return o +// The spec to modify the URL of the request, prior to forwarding the request to +// the matched service +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput) UrlRewrite() RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteAction) *RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite { + if v == nil { + return nil + } + return v.UrlRewrite + }).(RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput) } -func (o ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput) Index(i pulumi.IntInput) ReservationSpecificReservationInstancePropertiesLocalSsdOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ReservationSpecificReservationInstancePropertiesLocalSsd { - return vs[0].([]ReservationSpecificReservationInstancePropertiesLocalSsd)[vs[1].(int)] - }).(ReservationSpecificReservationInstancePropertiesLocalSsdOutput) +// A list of weighted backend services to send traffic to when a route match +// occurs. The weights determine the fraction of traffic that flows to their +// corresponding backend service. If all traffic needs to go to a single backend +// service, there must be one weightedBackendService with weight set to a non 0 +// number. Once a backendService is identified and before forwarding the request to +// the backend service, advanced routing actions like Url rewrites and header +// transformations are applied depending on additional settings specified in this +// HttpRouteAction. +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionPtrOutput) WeightedBackendServices() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteAction) []RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendService { + if v == nil { + return nil + } + return v.WeightedBackendServices + }).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput) } -type ResizeRequestRequestedRunDuration struct { - // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. - Nanos *int `pulumi:"nanos"` - // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years - Seconds string `pulumi:"seconds"` +type RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy struct { + // In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. + // Default is false. + AllowCredentials *bool `pulumi:"allowCredentials"` + // Specifies the content for the Access-Control-Allow-Headers header. + AllowHeaders []string `pulumi:"allowHeaders"` + // Specifies the content for the Access-Control-Allow-Methods header. + AllowMethods []string `pulumi:"allowMethods"` + // Specifies the regualar expression patterns that match allowed origins. For regular expression grammar + // please see en.cppreference.com/w/cpp/regex/ecmascript + // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. + AllowOriginRegexes []string `pulumi:"allowOriginRegexes"` + // Specifies the list of origins that will be allowed to do CORS requests. + // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. + AllowOrigins []string `pulumi:"allowOrigins"` + // If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. + Disabled *bool `pulumi:"disabled"` + // Specifies the content for the Access-Control-Expose-Headers header. + ExposeHeaders []string `pulumi:"exposeHeaders"` + // Specifies how long results of a preflight request can be cached in seconds. + // This translates to the Access-Control-Max-Age header. + MaxAge *int `pulumi:"maxAge"` } -// ResizeRequestRequestedRunDurationInput is an input type that accepts ResizeRequestRequestedRunDurationArgs and ResizeRequestRequestedRunDurationOutput values. -// You can construct a concrete instance of `ResizeRequestRequestedRunDurationInput` via: +// RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyArgs and RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyInput` via: // -// ResizeRequestRequestedRunDurationArgs{...} -type ResizeRequestRequestedRunDurationInput interface { +// RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyArgs{...} +type RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyInput interface { pulumi.Input - ToResizeRequestRequestedRunDurationOutput() ResizeRequestRequestedRunDurationOutput - ToResizeRequestRequestedRunDurationOutputWithContext(context.Context) ResizeRequestRequestedRunDurationOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput() RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput } -type ResizeRequestRequestedRunDurationArgs struct { - // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. - Nanos pulumi.IntPtrInput `pulumi:"nanos"` - // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years - Seconds pulumi.StringInput `pulumi:"seconds"` +type RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyArgs struct { + // In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. + // Default is false. + AllowCredentials pulumi.BoolPtrInput `pulumi:"allowCredentials"` + // Specifies the content for the Access-Control-Allow-Headers header. + AllowHeaders pulumi.StringArrayInput `pulumi:"allowHeaders"` + // Specifies the content for the Access-Control-Allow-Methods header. + AllowMethods pulumi.StringArrayInput `pulumi:"allowMethods"` + // Specifies the regualar expression patterns that match allowed origins. For regular expression grammar + // please see en.cppreference.com/w/cpp/regex/ecmascript + // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. + AllowOriginRegexes pulumi.StringArrayInput `pulumi:"allowOriginRegexes"` + // Specifies the list of origins that will be allowed to do CORS requests. + // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. + AllowOrigins pulumi.StringArrayInput `pulumi:"allowOrigins"` + // If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. + Disabled pulumi.BoolPtrInput `pulumi:"disabled"` + // Specifies the content for the Access-Control-Expose-Headers header. + ExposeHeaders pulumi.StringArrayInput `pulumi:"exposeHeaders"` + // Specifies how long results of a preflight request can be cached in seconds. + // This translates to the Access-Control-Max-Age header. + MaxAge pulumi.IntPtrInput `pulumi:"maxAge"` } -func (ResizeRequestRequestedRunDurationArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestRequestedRunDuration)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy)(nil)).Elem() } -func (i ResizeRequestRequestedRunDurationArgs) ToResizeRequestRequestedRunDurationOutput() ResizeRequestRequestedRunDurationOutput { - return i.ToResizeRequestRequestedRunDurationOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput() RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutputWithContext(context.Background()) } -func (i ResizeRequestRequestedRunDurationArgs) ToResizeRequestRequestedRunDurationOutputWithContext(ctx context.Context) ResizeRequestRequestedRunDurationOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestRequestedRunDurationOutput) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput) } -func (i ResizeRequestRequestedRunDurationArgs) ToResizeRequestRequestedRunDurationPtrOutput() ResizeRequestRequestedRunDurationPtrOutput { - return i.ToResizeRequestRequestedRunDurationPtrOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutputWithContext(context.Background()) } -func (i ResizeRequestRequestedRunDurationArgs) ToResizeRequestRequestedRunDurationPtrOutputWithContext(ctx context.Context) ResizeRequestRequestedRunDurationPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestRequestedRunDurationOutput).ToResizeRequestRequestedRunDurationPtrOutputWithContext(ctx) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput).ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutputWithContext(ctx) } -// ResizeRequestRequestedRunDurationPtrInput is an input type that accepts ResizeRequestRequestedRunDurationArgs, ResizeRequestRequestedRunDurationPtr and ResizeRequestRequestedRunDurationPtrOutput values. -// You can construct a concrete instance of `ResizeRequestRequestedRunDurationPtrInput` via: +// RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyArgs, RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtr and RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrInput` via: // -// ResizeRequestRequestedRunDurationArgs{...} +// RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyArgs{...} // // or: // // nil -type ResizeRequestRequestedRunDurationPtrInput interface { +type RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrInput interface { pulumi.Input - ToResizeRequestRequestedRunDurationPtrOutput() ResizeRequestRequestedRunDurationPtrOutput - ToResizeRequestRequestedRunDurationPtrOutputWithContext(context.Context) ResizeRequestRequestedRunDurationPtrOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput } -type resizeRequestRequestedRunDurationPtrType ResizeRequestRequestedRunDurationArgs +type regionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrType RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyArgs -func ResizeRequestRequestedRunDurationPtr(v *ResizeRequestRequestedRunDurationArgs) ResizeRequestRequestedRunDurationPtrInput { - return (*resizeRequestRequestedRunDurationPtrType)(v) +func RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtr(v *RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyArgs) RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrInput { + return (*regionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrType)(v) } -func (*resizeRequestRequestedRunDurationPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ResizeRequestRequestedRunDuration)(nil)).Elem() +func (*regionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy)(nil)).Elem() } -func (i *resizeRequestRequestedRunDurationPtrType) ToResizeRequestRequestedRunDurationPtrOutput() ResizeRequestRequestedRunDurationPtrOutput { - return i.ToResizeRequestRequestedRunDurationPtrOutputWithContext(context.Background()) +func (i *regionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutputWithContext(context.Background()) } -func (i *resizeRequestRequestedRunDurationPtrType) ToResizeRequestRequestedRunDurationPtrOutputWithContext(ctx context.Context) ResizeRequestRequestedRunDurationPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestRequestedRunDurationPtrOutput) +func (i *regionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput) } -type ResizeRequestRequestedRunDurationOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput struct{ *pulumi.OutputState } -func (ResizeRequestRequestedRunDurationOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestRequestedRunDuration)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy)(nil)).Elem() } -func (o ResizeRequestRequestedRunDurationOutput) ToResizeRequestRequestedRunDurationOutput() ResizeRequestRequestedRunDurationOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput() RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput { return o } -func (o ResizeRequestRequestedRunDurationOutput) ToResizeRequestRequestedRunDurationOutputWithContext(ctx context.Context) ResizeRequestRequestedRunDurationOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput { return o } -func (o ResizeRequestRequestedRunDurationOutput) ToResizeRequestRequestedRunDurationPtrOutput() ResizeRequestRequestedRunDurationPtrOutput { - return o.ToResizeRequestRequestedRunDurationPtrOutputWithContext(context.Background()) +func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput { + return o.ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutputWithContext(context.Background()) } -func (o ResizeRequestRequestedRunDurationOutput) ToResizeRequestRequestedRunDurationPtrOutputWithContext(ctx context.Context) ResizeRequestRequestedRunDurationPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ResizeRequestRequestedRunDuration) *ResizeRequestRequestedRunDuration { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) *RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy { return &v - }).(ResizeRequestRequestedRunDurationPtrOutput) + }).(RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput) +} + +// In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. +// Default is false. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput) AllowCredentials() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) *bool { return v.AllowCredentials }).(pulumi.BoolPtrOutput) +} + +// Specifies the content for the Access-Control-Allow-Headers header. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput) AllowHeaders() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) []string { return v.AllowHeaders }).(pulumi.StringArrayOutput) +} + +// Specifies the content for the Access-Control-Allow-Methods header. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput) AllowMethods() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) []string { return v.AllowMethods }).(pulumi.StringArrayOutput) +} + +// Specifies the regualar expression patterns that match allowed origins. For regular expression grammar +// please see en.cppreference.com/w/cpp/regex/ecmascript +// An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput) AllowOriginRegexes() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) []string { return v.AllowOriginRegexes }).(pulumi.StringArrayOutput) +} + +// Specifies the list of origins that will be allowed to do CORS requests. +// An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput) AllowOrigins() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) []string { return v.AllowOrigins }).(pulumi.StringArrayOutput) +} + +// If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput) Disabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) *bool { return v.Disabled }).(pulumi.BoolPtrOutput) } -// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. -func (o ResizeRequestRequestedRunDurationOutput) Nanos() pulumi.IntPtrOutput { - return o.ApplyT(func(v ResizeRequestRequestedRunDuration) *int { return v.Nanos }).(pulumi.IntPtrOutput) +// Specifies the content for the Access-Control-Expose-Headers header. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput) ExposeHeaders() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) []string { return v.ExposeHeaders }).(pulumi.StringArrayOutput) } -// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years -func (o ResizeRequestRequestedRunDurationOutput) Seconds() pulumi.StringOutput { - return o.ApplyT(func(v ResizeRequestRequestedRunDuration) string { return v.Seconds }).(pulumi.StringOutput) +// Specifies how long results of a preflight request can be cached in seconds. +// This translates to the Access-Control-Max-Age header. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput) MaxAge() pulumi.IntPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) *int { return v.MaxAge }).(pulumi.IntPtrOutput) } -type ResizeRequestRequestedRunDurationPtrOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput struct{ *pulumi.OutputState } -func (ResizeRequestRequestedRunDurationPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ResizeRequestRequestedRunDuration)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy)(nil)).Elem() } -func (o ResizeRequestRequestedRunDurationPtrOutput) ToResizeRequestRequestedRunDurationPtrOutput() ResizeRequestRequestedRunDurationPtrOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput { return o } -func (o ResizeRequestRequestedRunDurationPtrOutput) ToResizeRequestRequestedRunDurationPtrOutputWithContext(ctx context.Context) ResizeRequestRequestedRunDurationPtrOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput { return o } -func (o ResizeRequestRequestedRunDurationPtrOutput) Elem() ResizeRequestRequestedRunDurationOutput { - return o.ApplyT(func(v *ResizeRequestRequestedRunDuration) ResizeRequestRequestedRunDuration { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput) Elem() RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy { if v != nil { return *v } - var ret ResizeRequestRequestedRunDuration + var ret RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy return ret - }).(ResizeRequestRequestedRunDurationOutput) + }).(RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyOutput) } -// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. -func (o ResizeRequestRequestedRunDurationPtrOutput) Nanos() pulumi.IntPtrOutput { - return o.ApplyT(func(v *ResizeRequestRequestedRunDuration) *int { +// In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. +// Default is false. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput) AllowCredentials() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) *bool { if v == nil { return nil } - return v.Nanos - }).(pulumi.IntPtrOutput) + return v.AllowCredentials + }).(pulumi.BoolPtrOutput) } -// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years -func (o ResizeRequestRequestedRunDurationPtrOutput) Seconds() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ResizeRequestRequestedRunDuration) *string { +// Specifies the content for the Access-Control-Allow-Headers header. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput) AllowHeaders() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) []string { if v == nil { return nil } - return &v.Seconds - }).(pulumi.StringPtrOutput) + return v.AllowHeaders + }).(pulumi.StringArrayOutput) } -type ResizeRequestStatus struct { - // (Output) - // [Output only] Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. - // Structure is documented below. - Errors []ResizeRequestStatusError `pulumi:"errors"` - // (Output) - // [Output only] Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the "error" field only. - // Structure is documented below. - LastAttempts []ResizeRequestStatusLastAttempt `pulumi:"lastAttempts"` +// Specifies the content for the Access-Control-Allow-Methods header. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput) AllowMethods() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) []string { + if v == nil { + return nil + } + return v.AllowMethods + }).(pulumi.StringArrayOutput) } -// ResizeRequestStatusInput is an input type that accepts ResizeRequestStatusArgs and ResizeRequestStatusOutput values. -// You can construct a concrete instance of `ResizeRequestStatusInput` via: -// -// ResizeRequestStatusArgs{...} -type ResizeRequestStatusInput interface { - pulumi.Input +// Specifies the regualar expression patterns that match allowed origins. For regular expression grammar +// please see en.cppreference.com/w/cpp/regex/ecmascript +// An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput) AllowOriginRegexes() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) []string { + if v == nil { + return nil + } + return v.AllowOriginRegexes + }).(pulumi.StringArrayOutput) +} - ToResizeRequestStatusOutput() ResizeRequestStatusOutput - ToResizeRequestStatusOutputWithContext(context.Context) ResizeRequestStatusOutput +// Specifies the list of origins that will be allowed to do CORS requests. +// An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput) AllowOrigins() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) []string { + if v == nil { + return nil + } + return v.AllowOrigins + }).(pulumi.StringArrayOutput) } -type ResizeRequestStatusArgs struct { - // (Output) - // [Output only] Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. - // Structure is documented below. - Errors ResizeRequestStatusErrorArrayInput `pulumi:"errors"` - // (Output) - // [Output only] Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the "error" field only. - // Structure is documented below. - LastAttempts ResizeRequestStatusLastAttemptArrayInput `pulumi:"lastAttempts"` +// If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput) Disabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) *bool { + if v == nil { + return nil + } + return v.Disabled + }).(pulumi.BoolPtrOutput) } -func (ResizeRequestStatusArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatus)(nil)).Elem() +// Specifies the content for the Access-Control-Expose-Headers header. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput) ExposeHeaders() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) []string { + if v == nil { + return nil + } + return v.ExposeHeaders + }).(pulumi.StringArrayOutput) } -func (i ResizeRequestStatusArgs) ToResizeRequestStatusOutput() ResizeRequestStatusOutput { - return i.ToResizeRequestStatusOutputWithContext(context.Background()) +// Specifies how long results of a preflight request can be cached in seconds. +// This translates to the Access-Control-Max-Age header. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicyPtrOutput) MaxAge() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy) *int { + if v == nil { + return nil + } + return v.MaxAge + }).(pulumi.IntPtrOutput) } -func (i ResizeRequestStatusArgs) ToResizeRequestStatusOutputWithContext(ctx context.Context) ResizeRequestStatusOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusOutput) +type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy struct { + // The specification for how client requests are aborted as part of fault injection. + // Structure is documented below. + Abort *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort `pulumi:"abort"` + // The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. + // Structure is documented below. + Delay *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay `pulumi:"delay"` } -// ResizeRequestStatusArrayInput is an input type that accepts ResizeRequestStatusArray and ResizeRequestStatusArrayOutput values. -// You can construct a concrete instance of `ResizeRequestStatusArrayInput` via: +// RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyArgs and RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyInput` via: // -// ResizeRequestStatusArray{ ResizeRequestStatusArgs{...} } -type ResizeRequestStatusArrayInput interface { +// RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyArgs{...} +type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyInput interface { pulumi.Input - ToResizeRequestStatusArrayOutput() ResizeRequestStatusArrayOutput - ToResizeRequestStatusArrayOutputWithContext(context.Context) ResizeRequestStatusArrayOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput } -type ResizeRequestStatusArray []ResizeRequestStatusInput - -func (ResizeRequestStatusArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatus)(nil)).Elem() +type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyArgs struct { + // The specification for how client requests are aborted as part of fault injection. + // Structure is documented below. + Abort RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrInput `pulumi:"abort"` + // The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. + // Structure is documented below. + Delay RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrInput `pulumi:"delay"` } -func (i ResizeRequestStatusArray) ToResizeRequestStatusArrayOutput() ResizeRequestStatusArrayOutput { - return i.ToResizeRequestStatusArrayOutputWithContext(context.Background()) +func (RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy)(nil)).Elem() } -func (i ResizeRequestStatusArray) ToResizeRequestStatusArrayOutputWithContext(ctx context.Context) ResizeRequestStatusArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusArrayOutput) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutputWithContext(context.Background()) } -type ResizeRequestStatusOutput struct{ *pulumi.OutputState } - -func (ResizeRequestStatusOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatus)(nil)).Elem() +func (i RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput) } -func (o ResizeRequestStatusOutput) ToResizeRequestStatusOutput() ResizeRequestStatusOutput { - return o +func (i RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Background()) } -func (o ResizeRequestStatusOutput) ToResizeRequestStatusOutputWithContext(ctx context.Context) ResizeRequestStatusOutput { - return o +func (i RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput).ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx) } -// (Output) -// [Output only] Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. -// Structure is documented below. -func (o ResizeRequestStatusOutput) Errors() ResizeRequestStatusErrorArrayOutput { - return o.ApplyT(func(v ResizeRequestStatus) []ResizeRequestStatusError { return v.Errors }).(ResizeRequestStatusErrorArrayOutput) -} +// RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyArgs, RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtr and RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrInput` via: +// +// RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyArgs{...} +// +// or: +// +// nil +type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrInput interface { + pulumi.Input -// (Output) -// [Output only] Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the "error" field only. -// Structure is documented below. -func (o ResizeRequestStatusOutput) LastAttempts() ResizeRequestStatusLastAttemptArrayOutput { - return o.ApplyT(func(v ResizeRequestStatus) []ResizeRequestStatusLastAttempt { return v.LastAttempts }).(ResizeRequestStatusLastAttemptArrayOutput) + ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput } -type ResizeRequestStatusArrayOutput struct{ *pulumi.OutputState } - -func (ResizeRequestStatusArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatus)(nil)).Elem() -} +type regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrType RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyArgs -func (o ResizeRequestStatusArrayOutput) ToResizeRequestStatusArrayOutput() ResizeRequestStatusArrayOutput { - return o +func RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtr(v *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyArgs) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrInput { + return (*regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrType)(v) } -func (o ResizeRequestStatusArrayOutput) ToResizeRequestStatusArrayOutputWithContext(ctx context.Context) ResizeRequestStatusArrayOutput { - return o +func (*regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy)(nil)).Elem() } -func (o ResizeRequestStatusArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatus { - return vs[0].([]ResizeRequestStatus)[vs[1].(int)] - }).(ResizeRequestStatusOutput) +func (i *regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Background()) } -type ResizeRequestStatusError struct { - // (Output) - // [Output Only] The array of errors encountered while processing this operation. - // Structure is documented below. - Errors []ResizeRequestStatusErrorError `pulumi:"errors"` +func (i *regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput) } -// ResizeRequestStatusErrorInput is an input type that accepts ResizeRequestStatusErrorArgs and ResizeRequestStatusErrorOutput values. -// You can construct a concrete instance of `ResizeRequestStatusErrorInput` via: -// -// ResizeRequestStatusErrorArgs{...} -type ResizeRequestStatusErrorInput interface { - pulumi.Input +type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput struct{ *pulumi.OutputState } - ToResizeRequestStatusErrorOutput() ResizeRequestStatusErrorOutput - ToResizeRequestStatusErrorOutputWithContext(context.Context) ResizeRequestStatusErrorOutput +func (RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy)(nil)).Elem() } -type ResizeRequestStatusErrorArgs struct { - // (Output) - // [Output Only] The array of errors encountered while processing this operation. - // Structure is documented below. - Errors ResizeRequestStatusErrorErrorArrayInput `pulumi:"errors"` +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput { + return o } -func (ResizeRequestStatusErrorArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatusError)(nil)).Elem() +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput { + return o } -func (i ResizeRequestStatusErrorArgs) ToResizeRequestStatusErrorOutput() ResizeRequestStatusErrorOutput { - return i.ToResizeRequestStatusErrorOutputWithContext(context.Background()) +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput { + return o.ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Background()) } -func (i ResizeRequestStatusErrorArgs) ToResizeRequestStatusErrorOutputWithContext(ctx context.Context) ResizeRequestStatusErrorOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorOutput) +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy) *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy { + return &v + }).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput) } -// ResizeRequestStatusErrorArrayInput is an input type that accepts ResizeRequestStatusErrorArray and ResizeRequestStatusErrorArrayOutput values. -// You can construct a concrete instance of `ResizeRequestStatusErrorArrayInput` via: -// -// ResizeRequestStatusErrorArray{ ResizeRequestStatusErrorArgs{...} } -type ResizeRequestStatusErrorArrayInput interface { - pulumi.Input - - ToResizeRequestStatusErrorArrayOutput() ResizeRequestStatusErrorArrayOutput - ToResizeRequestStatusErrorArrayOutputWithContext(context.Context) ResizeRequestStatusErrorArrayOutput +// The specification for how client requests are aborted as part of fault injection. +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput) Abort() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy) *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort { + return v.Abort + }).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput) } -type ResizeRequestStatusErrorArray []ResizeRequestStatusErrorInput - -func (ResizeRequestStatusErrorArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatusError)(nil)).Elem() +// The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput) Delay() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy) *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay { + return v.Delay + }).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput) } -func (i ResizeRequestStatusErrorArray) ToResizeRequestStatusErrorArrayOutput() ResizeRequestStatusErrorArrayOutput { - return i.ToResizeRequestStatusErrorArrayOutputWithContext(context.Background()) -} +type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput struct{ *pulumi.OutputState } -func (i ResizeRequestStatusErrorArray) ToResizeRequestStatusErrorArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorArrayOutput) +func (RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy)(nil)).Elem() } -type ResizeRequestStatusErrorOutput struct{ *pulumi.OutputState } - -func (ResizeRequestStatusErrorOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatusError)(nil)).Elem() +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput { + return o } -func (o ResizeRequestStatusErrorOutput) ToResizeRequestStatusErrorOutput() ResizeRequestStatusErrorOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput { return o } -func (o ResizeRequestStatusErrorOutput) ToResizeRequestStatusErrorOutputWithContext(ctx context.Context) ResizeRequestStatusErrorOutput { - return o +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput) Elem() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy { + if v != nil { + return *v + } + var ret RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy + return ret + }).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyOutput) } -// (Output) -// [Output Only] The array of errors encountered while processing this operation. +// The specification for how client requests are aborted as part of fault injection. // Structure is documented below. -func (o ResizeRequestStatusErrorOutput) Errors() ResizeRequestStatusErrorErrorArrayOutput { - return o.ApplyT(func(v ResizeRequestStatusError) []ResizeRequestStatusErrorError { return v.Errors }).(ResizeRequestStatusErrorErrorArrayOutput) +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput) Abort() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy) *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort { + if v == nil { + return nil + } + return v.Abort + }).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput) } -type ResizeRequestStatusErrorArrayOutput struct{ *pulumi.OutputState } - -func (ResizeRequestStatusErrorArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatusError)(nil)).Elem() +// The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyPtrOutput) Delay() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy) *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay { + if v == nil { + return nil + } + return v.Delay + }).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput) } -func (o ResizeRequestStatusErrorArrayOutput) ToResizeRequestStatusErrorArrayOutput() ResizeRequestStatusErrorArrayOutput { - return o +type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort struct { + // The HTTP status code used to abort the request. + // The value must be between 200 and 599 inclusive. + HttpStatus *int `pulumi:"httpStatus"` + // The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. + // The value must be between 0.0 and 100.0 inclusive. + Percentage *float64 `pulumi:"percentage"` } -func (o ResizeRequestStatusErrorArrayOutput) ToResizeRequestStatusErrorArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorArrayOutput { - return o -} +// RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortArgs and RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortInput` via: +// +// RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortArgs{...} +type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortInput interface { + pulumi.Input -func (o ResizeRequestStatusErrorArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusErrorOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusError { - return vs[0].([]ResizeRequestStatusError)[vs[1].(int)] - }).(ResizeRequestStatusErrorOutput) + ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput } -type ResizeRequestStatusErrorError struct { - // (Output) - // [Output Only] The error type identifier for this error. - Code *string `pulumi:"code"` - // (Output) - // [Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. - // Structure is documented below. - ErrorDetails []ResizeRequestStatusErrorErrorErrorDetail `pulumi:"errorDetails"` - // (Output) - // Output Only] Indicates the field in the request that caused the error. This property is optional. - Location *string `pulumi:"location"` - // (Output) - // The localized error message in the above locale. - Message *string `pulumi:"message"` +type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortArgs struct { + // The HTTP status code used to abort the request. + // The value must be between 200 and 599 inclusive. + HttpStatus pulumi.IntPtrInput `pulumi:"httpStatus"` + // The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. + // The value must be between 0.0 and 100.0 inclusive. + Percentage pulumi.Float64PtrInput `pulumi:"percentage"` } -// ResizeRequestStatusErrorErrorInput is an input type that accepts ResizeRequestStatusErrorErrorArgs and ResizeRequestStatusErrorErrorOutput values. -// You can construct a concrete instance of `ResizeRequestStatusErrorErrorInput` via: -// -// ResizeRequestStatusErrorErrorArgs{...} -type ResizeRequestStatusErrorErrorInput interface { - pulumi.Input - - ToResizeRequestStatusErrorErrorOutput() ResizeRequestStatusErrorErrorOutput - ToResizeRequestStatusErrorErrorOutputWithContext(context.Context) ResizeRequestStatusErrorErrorOutput +func (RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort)(nil)).Elem() } -type ResizeRequestStatusErrorErrorArgs struct { - // (Output) - // [Output Only] The error type identifier for this error. - Code pulumi.StringPtrInput `pulumi:"code"` - // (Output) - // [Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. - // Structure is documented below. - ErrorDetails ResizeRequestStatusErrorErrorErrorDetailArrayInput `pulumi:"errorDetails"` - // (Output) - // Output Only] Indicates the field in the request that caused the error. This property is optional. - Location pulumi.StringPtrInput `pulumi:"location"` - // (Output) - // The localized error message in the above locale. - Message pulumi.StringPtrInput `pulumi:"message"` +func (i RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutputWithContext(context.Background()) } -func (ResizeRequestStatusErrorErrorArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatusErrorError)(nil)).Elem() +func (i RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput) } -func (i ResizeRequestStatusErrorErrorArgs) ToResizeRequestStatusErrorErrorOutput() ResizeRequestStatusErrorErrorOutput { - return i.ToResizeRequestStatusErrorErrorOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Background()) } -func (i ResizeRequestStatusErrorErrorArgs) ToResizeRequestStatusErrorErrorOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorOutput) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput).ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx) } -// ResizeRequestStatusErrorErrorArrayInput is an input type that accepts ResizeRequestStatusErrorErrorArray and ResizeRequestStatusErrorErrorArrayOutput values. -// You can construct a concrete instance of `ResizeRequestStatusErrorErrorArrayInput` via: +// RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortArgs, RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtr and RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrInput` via: // -// ResizeRequestStatusErrorErrorArray{ ResizeRequestStatusErrorErrorArgs{...} } -type ResizeRequestStatusErrorErrorArrayInput interface { +// RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortArgs{...} +// +// or: +// +// nil +type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrInput interface { pulumi.Input - ToResizeRequestStatusErrorErrorArrayOutput() ResizeRequestStatusErrorErrorArrayOutput - ToResizeRequestStatusErrorErrorArrayOutputWithContext(context.Context) ResizeRequestStatusErrorErrorArrayOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput } -type ResizeRequestStatusErrorErrorArray []ResizeRequestStatusErrorErrorInput +type regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrType RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortArgs -func (ResizeRequestStatusErrorErrorArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatusErrorError)(nil)).Elem() +func RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtr(v *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortArgs) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrInput { + return (*regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrType)(v) } -func (i ResizeRequestStatusErrorErrorArray) ToResizeRequestStatusErrorErrorArrayOutput() ResizeRequestStatusErrorErrorArrayOutput { - return i.ToResizeRequestStatusErrorErrorArrayOutputWithContext(context.Background()) +func (*regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort)(nil)).Elem() } -func (i ResizeRequestStatusErrorErrorArray) ToResizeRequestStatusErrorErrorArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorArrayOutput) +func (i *regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Background()) } -type ResizeRequestStatusErrorErrorOutput struct{ *pulumi.OutputState } +func (i *regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput) +} -func (ResizeRequestStatusErrorErrorOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatusErrorError)(nil)).Elem() +type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort)(nil)).Elem() } -func (o ResizeRequestStatusErrorErrorOutput) ToResizeRequestStatusErrorErrorOutput() ResizeRequestStatusErrorErrorOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput { return o } -func (o ResizeRequestStatusErrorErrorOutput) ToResizeRequestStatusErrorErrorOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput { return o } -// (Output) -// [Output Only] The error type identifier for this error. -func (o ResizeRequestStatusErrorErrorOutput) Code() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResizeRequestStatusErrorError) *string { return v.Code }).(pulumi.StringPtrOutput) +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput { + return o.ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Background()) } -// (Output) -// [Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. -// Structure is documented below. -func (o ResizeRequestStatusErrorErrorOutput) ErrorDetails() ResizeRequestStatusErrorErrorErrorDetailArrayOutput { - return o.ApplyT(func(v ResizeRequestStatusErrorError) []ResizeRequestStatusErrorErrorErrorDetail { - return v.ErrorDetails - }).(ResizeRequestStatusErrorErrorErrorDetailArrayOutput) +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort) *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort { + return &v + }).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput) } -// (Output) -// Output Only] Indicates the field in the request that caused the error. This property is optional. -func (o ResizeRequestStatusErrorErrorOutput) Location() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResizeRequestStatusErrorError) *string { return v.Location }).(pulumi.StringPtrOutput) +// The HTTP status code used to abort the request. +// The value must be between 200 and 599 inclusive. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput) HttpStatus() pulumi.IntPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort) *int { return v.HttpStatus }).(pulumi.IntPtrOutput) } -// (Output) -// The localized error message in the above locale. -func (o ResizeRequestStatusErrorErrorOutput) Message() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResizeRequestStatusErrorError) *string { return v.Message }).(pulumi.StringPtrOutput) +// The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. +// The value must be between 0.0 and 100.0 inclusive. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput) Percentage() pulumi.Float64PtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort) *float64 { + return v.Percentage + }).(pulumi.Float64PtrOutput) } -type ResizeRequestStatusErrorErrorArrayOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput struct{ *pulumi.OutputState } -func (ResizeRequestStatusErrorErrorArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatusErrorError)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort)(nil)).Elem() } -func (o ResizeRequestStatusErrorErrorArrayOutput) ToResizeRequestStatusErrorErrorArrayOutput() ResizeRequestStatusErrorErrorArrayOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput { return o } -func (o ResizeRequestStatusErrorErrorArrayOutput) ToResizeRequestStatusErrorErrorArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorArrayOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput { return o } -func (o ResizeRequestStatusErrorErrorArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusErrorErrorOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusErrorError { - return vs[0].([]ResizeRequestStatusErrorError)[vs[1].(int)] - }).(ResizeRequestStatusErrorErrorOutput) +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput) Elem() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort { + if v != nil { + return *v + } + var ret RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort + return ret + }).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortOutput) } -type ResizeRequestStatusErrorErrorErrorDetail struct { - // (Output) - // [Output Only] - // Structure is documented below. - ErrorInfos []ResizeRequestStatusErrorErrorErrorDetailErrorInfo `pulumi:"errorInfos"` - // (Output) - // [Output Only] - // Structure is documented below. - Helps []ResizeRequestStatusErrorErrorErrorDetailHelp `pulumi:"helps"` - // (Output) - // [Output Only] - // Structure is documented below. - LocalizedMessages []ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage `pulumi:"localizedMessages"` - // (Output) - // [Output Only] +// The HTTP status code used to abort the request. +// The value must be between 200 and 599 inclusive. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput) HttpStatus() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort) *int { + if v == nil { + return nil + } + return v.HttpStatus + }).(pulumi.IntPtrOutput) +} + +// The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. +// The value must be between 0.0 and 100.0 inclusive. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbortPtrOutput) Percentage() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort) *float64 { + if v == nil { + return nil + } + return v.Percentage + }).(pulumi.Float64PtrOutput) +} + +type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay struct { + // Specifies the value of the fixed delay interval. // Structure is documented below. - QuotaInfos []ResizeRequestStatusErrorErrorErrorDetailQuotaInfo `pulumi:"quotaInfos"` + FixedDelay *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay `pulumi:"fixedDelay"` + // The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. + // The value must be between 0.0 and 100.0 inclusive. + Percentage *float64 `pulumi:"percentage"` } -// ResizeRequestStatusErrorErrorErrorDetailInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailArgs and ResizeRequestStatusErrorErrorErrorDetailOutput values. -// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailInput` via: +// RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayArgs and RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayInput` via: // -// ResizeRequestStatusErrorErrorErrorDetailArgs{...} -type ResizeRequestStatusErrorErrorErrorDetailInput interface { +// RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayArgs{...} +type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayInput interface { pulumi.Input - ToResizeRequestStatusErrorErrorErrorDetailOutput() ResizeRequestStatusErrorErrorErrorDetailOutput - ToResizeRequestStatusErrorErrorErrorDetailOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput } -type ResizeRequestStatusErrorErrorErrorDetailArgs struct { - // (Output) - // [Output Only] - // Structure is documented below. - ErrorInfos ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayInput `pulumi:"errorInfos"` - // (Output) - // [Output Only] - // Structure is documented below. - Helps ResizeRequestStatusErrorErrorErrorDetailHelpArrayInput `pulumi:"helps"` - // (Output) - // [Output Only] - // Structure is documented below. - LocalizedMessages ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayInput `pulumi:"localizedMessages"` - // (Output) - // [Output Only] +type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayArgs struct { + // Specifies the value of the fixed delay interval. // Structure is documented below. - QuotaInfos ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayInput `pulumi:"quotaInfos"` + FixedDelay RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput `pulumi:"fixedDelay"` + // The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. + // The value must be between 0.0 and 100.0 inclusive. + Percentage pulumi.Float64PtrInput `pulumi:"percentage"` } -func (ResizeRequestStatusErrorErrorErrorDetailArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetail)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay)(nil)).Elem() } -func (i ResizeRequestStatusErrorErrorErrorDetailArgs) ToResizeRequestStatusErrorErrorErrorDetailOutput() ResizeRequestStatusErrorErrorErrorDetailOutput { - return i.ToResizeRequestStatusErrorErrorErrorDetailOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutputWithContext(context.Background()) } -func (i ResizeRequestStatusErrorErrorErrorDetailArgs) ToResizeRequestStatusErrorErrorErrorDetailOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailOutput) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput) } -// ResizeRequestStatusErrorErrorErrorDetailArrayInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailArray and ResizeRequestStatusErrorErrorErrorDetailArrayOutput values. -// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailArrayInput` via: +func (i RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Background()) +} + +func (i RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput).ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx) +} + +// RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayArgs, RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtr and RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrInput` via: // -// ResizeRequestStatusErrorErrorErrorDetailArray{ ResizeRequestStatusErrorErrorErrorDetailArgs{...} } -type ResizeRequestStatusErrorErrorErrorDetailArrayInput interface { +// RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayArgs{...} +// +// or: +// +// nil +type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrInput interface { pulumi.Input - ToResizeRequestStatusErrorErrorErrorDetailArrayOutput() ResizeRequestStatusErrorErrorErrorDetailArrayOutput - ToResizeRequestStatusErrorErrorErrorDetailArrayOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailArrayOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput } -type ResizeRequestStatusErrorErrorErrorDetailArray []ResizeRequestStatusErrorErrorErrorDetailInput +type regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrType RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayArgs -func (ResizeRequestStatusErrorErrorErrorDetailArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetail)(nil)).Elem() +func RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtr(v *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayArgs) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrInput { + return (*regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrType)(v) } -func (i ResizeRequestStatusErrorErrorErrorDetailArray) ToResizeRequestStatusErrorErrorErrorDetailArrayOutput() ResizeRequestStatusErrorErrorErrorDetailArrayOutput { - return i.ToResizeRequestStatusErrorErrorErrorDetailArrayOutputWithContext(context.Background()) +func (*regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay)(nil)).Elem() } -func (i ResizeRequestStatusErrorErrorErrorDetailArray) ToResizeRequestStatusErrorErrorErrorDetailArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailArrayOutput) +func (i *regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Background()) } -type ResizeRequestStatusErrorErrorErrorDetailOutput struct{ *pulumi.OutputState } +func (i *regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput) +} -func (ResizeRequestStatusErrorErrorErrorDetailOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetail)(nil)).Elem() +type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay)(nil)).Elem() } -func (o ResizeRequestStatusErrorErrorErrorDetailOutput) ToResizeRequestStatusErrorErrorErrorDetailOutput() ResizeRequestStatusErrorErrorErrorDetailOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput { return o } -func (o ResizeRequestStatusErrorErrorErrorDetailOutput) ToResizeRequestStatusErrorErrorErrorDetailOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput { return o } -// (Output) -// [Output Only] -// Structure is documented below. -func (o ResizeRequestStatusErrorErrorErrorDetailOutput) ErrorInfos() ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput { - return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetail) []ResizeRequestStatusErrorErrorErrorDetailErrorInfo { - return v.ErrorInfos - }).(ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput) +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput { + return o.ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Background()) } -// (Output) -// [Output Only] -// Structure is documented below. -func (o ResizeRequestStatusErrorErrorErrorDetailOutput) Helps() ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput { - return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetail) []ResizeRequestStatusErrorErrorErrorDetailHelp { - return v.Helps - }).(ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput) +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay) *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay { + return &v + }).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput) } -// (Output) -// [Output Only] +// Specifies the value of the fixed delay interval. // Structure is documented below. -func (o ResizeRequestStatusErrorErrorErrorDetailOutput) LocalizedMessages() ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput { - return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetail) []ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage { - return v.LocalizedMessages - }).(ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput) +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput) FixedDelay() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay) *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay { + return v.FixedDelay + }).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) } -// (Output) -// [Output Only] -// Structure is documented below. -func (o ResizeRequestStatusErrorErrorErrorDetailOutput) QuotaInfos() ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput { - return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetail) []ResizeRequestStatusErrorErrorErrorDetailQuotaInfo { - return v.QuotaInfos - }).(ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput) +// The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. +// The value must be between 0.0 and 100.0 inclusive. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput) Percentage() pulumi.Float64PtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay) *float64 { + return v.Percentage + }).(pulumi.Float64PtrOutput) } -type ResizeRequestStatusErrorErrorErrorDetailArrayOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput struct{ *pulumi.OutputState } -func (ResizeRequestStatusErrorErrorErrorDetailArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetail)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay)(nil)).Elem() } -func (o ResizeRequestStatusErrorErrorErrorDetailArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailArrayOutput() ResizeRequestStatusErrorErrorErrorDetailArrayOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput { return o } -func (o ResizeRequestStatusErrorErrorErrorDetailArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailArrayOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput { return o } -func (o ResizeRequestStatusErrorErrorErrorDetailArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusErrorErrorErrorDetailOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusErrorErrorErrorDetail { - return vs[0].([]ResizeRequestStatusErrorErrorErrorDetail)[vs[1].(int)] - }).(ResizeRequestStatusErrorErrorErrorDetailOutput) +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput) Elem() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay { + if v != nil { + return *v + } + var ret RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay + return ret + }).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayOutput) } -type ResizeRequestStatusErrorErrorErrorDetailErrorInfo struct { - // (Output) - // 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". - Domain *string `pulumi:"domain"` - // (Output) - // Additional structured details about this error. - // Keys must match /[a-z][a-zA-Z0-9-_]+/ 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. - Metadatas map[string]string `pulumi:"metadatas"` - // (Output) - // 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_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. - Reason *string `pulumi:"reason"` +// Specifies the value of the fixed delay interval. +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput) FixedDelay() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay) *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay { + if v == nil { + return nil + } + return v.FixedDelay + }).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) } -// ResizeRequestStatusErrorErrorErrorDetailErrorInfoInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs and ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput values. -// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailErrorInfoInput` via: +// The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. +// The value must be between 0.0 and 100.0 inclusive. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayPtrOutput) Percentage() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay) *float64 { + if v == nil { + return nil + } + return v.Percentage + }).(pulumi.Float64PtrOutput) +} + +type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay struct { + // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are + // represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. + Nanos *int `pulumi:"nanos"` + // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. + // Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years + Seconds string `pulumi:"seconds"` +} + +// RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs and RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayInput` via: // -// ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs{...} -type ResizeRequestStatusErrorErrorErrorDetailErrorInfoInput interface { +// RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs{...} +type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayInput interface { pulumi.Input - ToResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput() ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput - ToResizeRequestStatusErrorErrorErrorDetailErrorInfoOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput } -type ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs struct { - // (Output) - // 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". - Domain pulumi.StringPtrInput `pulumi:"domain"` - // (Output) - // Additional structured details about this error. - // Keys must match /[a-z][a-zA-Z0-9-_]+/ 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. - Metadatas pulumi.StringMapInput `pulumi:"metadatas"` - // (Output) - // 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_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. - Reason pulumi.StringPtrInput `pulumi:"reason"` +type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs struct { + // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are + // represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. + Nanos pulumi.IntPtrInput `pulumi:"nanos"` + // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. + // Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years + Seconds pulumi.StringInput `pulumi:"seconds"` } -func (ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailErrorInfo)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() } -func (i ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs) ToResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput() ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput { - return i.ToResizeRequestStatusErrorErrorErrorDetailErrorInfoOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(context.Background()) } -func (i ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs) ToResizeRequestStatusErrorErrorErrorDetailErrorInfoOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) } -// ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailErrorInfoArray and ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput values. -// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayInput` via: +func (i RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Background()) +} + +func (i RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput).ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx) +} + +// RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs, RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtr and RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput` via: // -// ResizeRequestStatusErrorErrorErrorDetailErrorInfoArray{ ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs{...} } -type ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayInput interface { +// RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs{...} +// +// or: +// +// nil +type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput interface { pulumi.Input - ToResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput() ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput - ToResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput } -type ResizeRequestStatusErrorErrorErrorDetailErrorInfoArray []ResizeRequestStatusErrorErrorErrorDetailErrorInfoInput +type regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrType RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs -func (ResizeRequestStatusErrorErrorErrorDetailErrorInfoArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetailErrorInfo)(nil)).Elem() +func RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtr(v *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput { + return (*regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrType)(v) } -func (i ResizeRequestStatusErrorErrorErrorDetailErrorInfoArray) ToResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput() ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput { - return i.ToResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutputWithContext(context.Background()) +func (*regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() } -func (i ResizeRequestStatusErrorErrorErrorDetailErrorInfoArray) ToResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput) +func (i *regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Background()) } -type ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput struct{ *pulumi.OutputState } +func (i *regionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) +} -func (ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailErrorInfo)(nil)).Elem() +type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() } -func (o ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput) ToResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput() ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput { return o } -func (o ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput) ToResizeRequestStatusErrorErrorErrorDetailErrorInfoOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput { return o } -// (Output) -// 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". -func (o ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput) Domain() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailErrorInfo) *string { return v.Domain }).(pulumi.StringPtrOutput) +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return o.ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Background()) } -// (Output) -// Additional structured details about this error. -// Keys must match /[a-z][a-zA-Z0-9-_]+/ 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. -func (o ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput) Metadatas() pulumi.StringMapOutput { - return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailErrorInfo) map[string]string { return v.Metadatas }).(pulumi.StringMapOutput) +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay) *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay { + return &v + }).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) } -// (Output) -// 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_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. -func (o ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput) Reason() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailErrorInfo) *string { return v.Reason }).(pulumi.StringPtrOutput) +// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are +// represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay) *int { + return v.Nanos + }).(pulumi.IntPtrOutput) } -type ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput struct{ *pulumi.OutputState } +// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. +// Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) Seconds() pulumi.StringOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay) string { + return v.Seconds + }).(pulumi.StringOutput) +} -func (ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetailErrorInfo)(nil)).Elem() +type RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() } -func (o ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput() ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { return o } -func (o ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { return o } -func (o ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusErrorErrorErrorDetailErrorInfo { - return vs[0].([]ResizeRequestStatusErrorErrorErrorDetailErrorInfo)[vs[1].(int)] - }).(ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput) +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) Elem() RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay) RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay { + if v != nil { + return *v + } + var ret RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay + return ret + }).(RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayOutput) } -type ResizeRequestStatusErrorErrorErrorDetailHelp struct { - // (Output) - // [Output Only] - // Structure is documented below. - Links []ResizeRequestStatusErrorErrorErrorDetailHelpLink `pulumi:"links"` +// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are +// represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay) *int { + if v == nil { + return nil + } + return v.Nanos + }).(pulumi.IntPtrOutput) } -// ResizeRequestStatusErrorErrorErrorDetailHelpInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailHelpArgs and ResizeRequestStatusErrorErrorErrorDetailHelpOutput values. -// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailHelpInput` via: +// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. +// Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years +func (o RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) Seconds() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay) *string { + if v == nil { + return nil + } + return &v.Seconds + }).(pulumi.StringPtrOutput) +} + +type RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy struct { + // The full or partial URL to the RegionBackendService resource being mirrored to. + // The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map. + // Serverless NEG backends are not currently supported as a mirrored backend service. + BackendService string `pulumi:"backendService"` +} + +// RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgs and RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyInput` via: // -// ResizeRequestStatusErrorErrorErrorDetailHelpArgs{...} -type ResizeRequestStatusErrorErrorErrorDetailHelpInput interface { +// RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgs{...} +type RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyInput interface { pulumi.Input - ToResizeRequestStatusErrorErrorErrorDetailHelpOutput() ResizeRequestStatusErrorErrorErrorDetailHelpOutput - ToResizeRequestStatusErrorErrorErrorDetailHelpOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput } -type ResizeRequestStatusErrorErrorErrorDetailHelpArgs struct { - // (Output) - // [Output Only] - // Structure is documented below. - Links ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayInput `pulumi:"links"` +type RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgs struct { + // The full or partial URL to the RegionBackendService resource being mirrored to. + // The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map. + // Serverless NEG backends are not currently supported as a mirrored backend service. + BackendService pulumi.StringInput `pulumi:"backendService"` } -func (ResizeRequestStatusErrorErrorErrorDetailHelpArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailHelp)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy)(nil)).Elem() } -func (i ResizeRequestStatusErrorErrorErrorDetailHelpArgs) ToResizeRequestStatusErrorErrorErrorDetailHelpOutput() ResizeRequestStatusErrorErrorErrorDetailHelpOutput { - return i.ToResizeRequestStatusErrorErrorErrorDetailHelpOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutputWithContext(context.Background()) } -func (i ResizeRequestStatusErrorErrorErrorDetailHelpArgs) ToResizeRequestStatusErrorErrorErrorDetailHelpOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailHelpOutput) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput) } -// ResizeRequestStatusErrorErrorErrorDetailHelpArrayInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailHelpArray and ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput values. -// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailHelpArrayInput` via: +func (i RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Background()) +} + +func (i RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput).ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx) +} + +// RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgs, RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtr and RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrInput` via: // -// ResizeRequestStatusErrorErrorErrorDetailHelpArray{ ResizeRequestStatusErrorErrorErrorDetailHelpArgs{...} } -type ResizeRequestStatusErrorErrorErrorDetailHelpArrayInput interface { +// RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgs{...} +// +// or: +// +// nil +type RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrInput interface { pulumi.Input - ToResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput() ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput - ToResizeRequestStatusErrorErrorErrorDetailHelpArrayOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput } -type ResizeRequestStatusErrorErrorErrorDetailHelpArray []ResizeRequestStatusErrorErrorErrorDetailHelpInput +type regionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrType RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgs + +func RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtr(v *RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgs) RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrInput { + return (*regionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrType)(v) +} -func (ResizeRequestStatusErrorErrorErrorDetailHelpArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetailHelp)(nil)).Elem() +func (*regionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy)(nil)).Elem() } -func (i ResizeRequestStatusErrorErrorErrorDetailHelpArray) ToResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput() ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput { - return i.ToResizeRequestStatusErrorErrorErrorDetailHelpArrayOutputWithContext(context.Background()) +func (i *regionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Background()) } -func (i ResizeRequestStatusErrorErrorErrorDetailHelpArray) ToResizeRequestStatusErrorErrorErrorDetailHelpArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput) +func (i *regionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput) } -type ResizeRequestStatusErrorErrorErrorDetailHelpOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput struct{ *pulumi.OutputState } -func (ResizeRequestStatusErrorErrorErrorDetailHelpOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailHelp)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy)(nil)).Elem() } -func (o ResizeRequestStatusErrorErrorErrorDetailHelpOutput) ToResizeRequestStatusErrorErrorErrorDetailHelpOutput() ResizeRequestStatusErrorErrorErrorDetailHelpOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput { return o } -func (o ResizeRequestStatusErrorErrorErrorDetailHelpOutput) ToResizeRequestStatusErrorErrorErrorDetailHelpOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput { return o } -// (Output) -// [Output Only] -// Structure is documented below. -func (o ResizeRequestStatusErrorErrorErrorDetailHelpOutput) Links() ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput { - return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailHelp) []ResizeRequestStatusErrorErrorErrorDetailHelpLink { - return v.Links - }).(ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput) +func (o RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput { + return o.ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Background()) } -type ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput struct{ *pulumi.OutputState } +func (o RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy) *RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy { + return &v + }).(RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput) +} -func (ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetailHelp)(nil)).Elem() +// The full or partial URL to the RegionBackendService resource being mirrored to. +// The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map. +// Serverless NEG backends are not currently supported as a mirrored backend service. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput) BackendService() pulumi.StringOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy) string { return v.BackendService }).(pulumi.StringOutput) } -func (o ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput() ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput { +type RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy)(nil)).Elem() +} + +func (o RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput { return o } -func (o ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailHelpArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput { return o } -func (o ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusErrorErrorErrorDetailHelpOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusErrorErrorErrorDetailHelp { - return vs[0].([]ResizeRequestStatusErrorErrorErrorDetailHelp)[vs[1].(int)] - }).(ResizeRequestStatusErrorErrorErrorDetailHelpOutput) +func (o RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput) Elem() RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy) RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy { + if v != nil { + return *v + } + var ret RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy + return ret + }).(RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyOutput) } -type ResizeRequestStatusErrorErrorErrorDetailHelpLink struct { - // An optional description of this resize-request. - Description *string `pulumi:"description"` - // (Output) - // The URL of the link. - Url *string `pulumi:"url"` +// The full or partial URL to the RegionBackendService resource being mirrored to. +// The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map. +// Serverless NEG backends are not currently supported as a mirrored backend service. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyPtrOutput) BackendService() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy) *string { + if v == nil { + return nil + } + return &v.BackendService + }).(pulumi.StringPtrOutput) } -// ResizeRequestStatusErrorErrorErrorDetailHelpLinkInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs and ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput values. -// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailHelpLinkInput` via: +type RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy struct { + // Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. + NumRetries int `pulumi:"numRetries"` + // Specifies a non-zero timeout per retry attempt. + // If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, + // will use the largest timeout among all backend services associated with the route. + // Structure is documented below. + PerTryTimeout *RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout `pulumi:"perTryTimeout"` + // Specifies one or more conditions when this retry policy applies. + // Valid values are listed below. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true: cancelled, deadline-exceeded, internal, resource-exhausted, unavailable. + // - 5xx : retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. + // - gateway-error : Similar to 5xx, but only applies to response codes 502, 503 or 504. + // - connect-failure : a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. + // - retriable-4xx : a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. + // - refused-stream : a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. + // - cancelled : a retry is attempted if the gRPC status code in the response header is set to cancelled. + // - deadline-exceeded : a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. + // - internal : a retry is attempted if the gRPC status code in the response header is set to internal. + // - resource-exhausted : a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. + // - unavailable : a retry is attempted if the gRPC status code in the response header is set to unavailable. + RetryConditions []string `pulumi:"retryConditions"` +} + +// RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyArgs and RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyInput` via: // -// ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs{...} -type ResizeRequestStatusErrorErrorErrorDetailHelpLinkInput interface { +// RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyArgs{...} +type RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyInput interface { pulumi.Input - ToResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput() ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput - ToResizeRequestStatusErrorErrorErrorDetailHelpLinkOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput } -type ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs struct { - // An optional description of this resize-request. - Description pulumi.StringPtrInput `pulumi:"description"` - // (Output) - // The URL of the link. - Url pulumi.StringPtrInput `pulumi:"url"` +type RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyArgs struct { + // Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. + NumRetries pulumi.IntInput `pulumi:"numRetries"` + // Specifies a non-zero timeout per retry attempt. + // If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, + // will use the largest timeout among all backend services associated with the route. + // Structure is documented below. + PerTryTimeout RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrInput `pulumi:"perTryTimeout"` + // Specifies one or more conditions when this retry policy applies. + // Valid values are listed below. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true: cancelled, deadline-exceeded, internal, resource-exhausted, unavailable. + // - 5xx : retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. + // - gateway-error : Similar to 5xx, but only applies to response codes 502, 503 or 504. + // - connect-failure : a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. + // - retriable-4xx : a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. + // - refused-stream : a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. + // - cancelled : a retry is attempted if the gRPC status code in the response header is set to cancelled. + // - deadline-exceeded : a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. + // - internal : a retry is attempted if the gRPC status code in the response header is set to internal. + // - resource-exhausted : a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. + // - unavailable : a retry is attempted if the gRPC status code in the response header is set to unavailable. + RetryConditions pulumi.StringArrayInput `pulumi:"retryConditions"` } -func (ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailHelpLink)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy)(nil)).Elem() } -func (i ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs) ToResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput() ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput { - return i.ToResizeRequestStatusErrorErrorErrorDetailHelpLinkOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutputWithContext(context.Background()) } -func (i ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs) ToResizeRequestStatusErrorErrorErrorDetailHelpLinkOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput) } -// ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailHelpLinkArray and ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput values. -// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayInput` via: +func (i RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutputWithContext(context.Background()) +} + +func (i RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput).ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutputWithContext(ctx) +} + +// RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyArgs, RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtr and RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrInput` via: // -// ResizeRequestStatusErrorErrorErrorDetailHelpLinkArray{ ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs{...} } -type ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayInput interface { +// RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyArgs{...} +// +// or: +// +// nil +type RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrInput interface { pulumi.Input - ToResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput() ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput - ToResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput } -type ResizeRequestStatusErrorErrorErrorDetailHelpLinkArray []ResizeRequestStatusErrorErrorErrorDetailHelpLinkInput +type regionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrType RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyArgs -func (ResizeRequestStatusErrorErrorErrorDetailHelpLinkArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetailHelpLink)(nil)).Elem() +func RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtr(v *RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyArgs) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrInput { + return (*regionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrType)(v) } -func (i ResizeRequestStatusErrorErrorErrorDetailHelpLinkArray) ToResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput() ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput { - return i.ToResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutputWithContext(context.Background()) +func (*regionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy)(nil)).Elem() } -func (i ResizeRequestStatusErrorErrorErrorDetailHelpLinkArray) ToResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput) +func (i *regionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutputWithContext(context.Background()) } -type ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput struct{ *pulumi.OutputState } +func (i *regionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput) +} -func (ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailHelpLink)(nil)).Elem() +type RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy)(nil)).Elem() } -func (o ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput) ToResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput() ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput { return o } -func (o ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput) ToResizeRequestStatusErrorErrorErrorDetailHelpLinkOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput { return o } -// An optional description of this resize-request. -func (o ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailHelpLink) *string { return v.Description }).(pulumi.StringPtrOutput) +func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput { + return o.ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutputWithContext(context.Background()) } -// (Output) -// The URL of the link. -func (o ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput) Url() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailHelpLink) *string { return v.Url }).(pulumi.StringPtrOutput) +func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy) *RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy { + return &v + }).(RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput) } -type ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput struct{ *pulumi.OutputState } +// Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput) NumRetries() pulumi.IntOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy) int { return v.NumRetries }).(pulumi.IntOutput) +} -func (ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetailHelpLink)(nil)).Elem() +// Specifies a non-zero timeout per retry attempt. +// If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, +// will use the largest timeout among all backend services associated with the route. +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput) PerTryTimeout() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy) *RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout { + return v.PerTryTimeout + }).(RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) } -func (o ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput() ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput { +// Specifies one or more conditions when this retry policy applies. +// Valid values are listed below. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true: cancelled, deadline-exceeded, internal, resource-exhausted, unavailable. +// - 5xx : retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. +// - gateway-error : Similar to 5xx, but only applies to response codes 502, 503 or 504. +// - connect-failure : a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. +// - retriable-4xx : a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. +// - refused-stream : a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. +// - cancelled : a retry is attempted if the gRPC status code in the response header is set to cancelled. +// - deadline-exceeded : a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. +// - internal : a retry is attempted if the gRPC status code in the response header is set to internal. +// - resource-exhausted : a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. +// - unavailable : a retry is attempted if the gRPC status code in the response header is set to unavailable. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput) RetryConditions() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy) []string { return v.RetryConditions }).(pulumi.StringArrayOutput) +} + +type RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy)(nil)).Elem() +} + +func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput { return o } -func (o ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput { return o } -func (o ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusErrorErrorErrorDetailHelpLink { - return vs[0].([]ResizeRequestStatusErrorErrorErrorDetailHelpLink)[vs[1].(int)] - }).(ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput) +func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput) Elem() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy { + if v != nil { + return *v + } + var ret RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy + return ret + }).(RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyOutput) } -type ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage struct { - // (Output) - // The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" - Locale *string `pulumi:"locale"` - // (Output) - // The localized error message in the above locale. - Message *string `pulumi:"message"` +// Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput) NumRetries() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy) *int { + if v == nil { + return nil + } + return &v.NumRetries + }).(pulumi.IntPtrOutput) } -// ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs and ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput values. -// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageInput` via: +// Specifies a non-zero timeout per retry attempt. +// If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, +// will use the largest timeout among all backend services associated with the route. +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput) PerTryTimeout() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy) *RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout { + if v == nil { + return nil + } + return v.PerTryTimeout + }).(RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) +} + +// Specifies one or more conditions when this retry policy applies. +// Valid values are listed below. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true: cancelled, deadline-exceeded, internal, resource-exhausted, unavailable. +// - 5xx : retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. +// - gateway-error : Similar to 5xx, but only applies to response codes 502, 503 or 504. +// - connect-failure : a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. +// - retriable-4xx : a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. +// - refused-stream : a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. +// - cancelled : a retry is attempted if the gRPC status code in the response header is set to cancelled. +// - deadline-exceeded : a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. +// - internal : a retry is attempted if the gRPC status code in the response header is set to internal. +// - resource-exhausted : a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. +// - unavailable : a retry is attempted if the gRPC status code in the response header is set to unavailable. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPtrOutput) RetryConditions() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy) []string { + if v == nil { + return nil + } + return v.RetryConditions + }).(pulumi.StringArrayOutput) +} + +type RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout struct { + // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are + // represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. + Nanos *int `pulumi:"nanos"` + // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. + // Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years + Seconds string `pulumi:"seconds"` +} + +// RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutArgs and RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutInput` via: // -// ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs{...} -type ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageInput interface { +// RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutArgs{...} +type RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutInput interface { pulumi.Input - ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput() ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput - ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput } -type ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs struct { - // (Output) - // The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" - Locale pulumi.StringPtrInput `pulumi:"locale"` - // (Output) - // The localized error message in the above locale. - Message pulumi.StringPtrInput `pulumi:"message"` +type RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutArgs struct { + // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are + // represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. + Nanos pulumi.IntPtrInput `pulumi:"nanos"` + // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. + // Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years + Seconds pulumi.StringInput `pulumi:"seconds"` } -func (ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() } -func (i ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs) ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput() ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput { - return i.ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutputWithContext(context.Background()) } -func (i ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs) ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput) } -// ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArray and ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput values. -// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayInput` via: +func (i RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Background()) +} + +func (i RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput).ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx) +} + +// RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutArgs, RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtr and RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrInput` via: // -// ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArray{ ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs{...} } -type ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayInput interface { +// RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutArgs{...} +// +// or: +// +// nil +type RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrInput interface { pulumi.Input - ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput() ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput - ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput } -type ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArray []ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageInput +type regionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrType RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutArgs -func (ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage)(nil)).Elem() +func RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtr(v *RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutArgs) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrInput { + return (*regionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrType)(v) } -func (i ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArray) ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput() ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput { - return i.ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutputWithContext(context.Background()) +func (*regionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() } -func (i ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArray) ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput) +func (i *regionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Background()) } -type ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput struct{ *pulumi.OutputState } +func (i *regionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) +} -func (ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage)(nil)).Elem() +type RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() } -func (o ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput) ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput() ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput { return o } -func (o ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput) ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput { return o } -// (Output) -// The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" -func (o ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput) Locale() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage) *string { return v.Locale }).(pulumi.StringPtrOutput) +func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return o.ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Background()) } -// (Output) -// The localized error message in the above locale. -func (o ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput) Message() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage) *string { return v.Message }).(pulumi.StringPtrOutput) +func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout) *RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout { + return &v + }).(RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) } -type ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput struct{ *pulumi.OutputState } +// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are +// represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout) *int { return v.Nanos }).(pulumi.IntPtrOutput) +} -func (ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage)(nil)).Elem() +// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. +// Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years +func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput) Seconds() pulumi.StringOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout) string { return v.Seconds }).(pulumi.StringOutput) } -func (o ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput() ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput { +type RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() +} + +func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { return o } -func (o ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput { return o } -func (o ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage { - return vs[0].([]ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage)[vs[1].(int)] - }).(ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput) +func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) Elem() RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout) RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout { + if v != nil { + return *v + } + var ret RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout + return ret + }).(RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutOutput) } -type ResizeRequestStatusErrorErrorErrorDetailQuotaInfo struct { - // (Output) - // The map holding related quota dimensions - Dimensions map[string]string `pulumi:"dimensions"` - // (Output) - // Future quota limit being rolled out. The limit's unit depends on the quota type or metric. - FutureLimit *int `pulumi:"futureLimit"` - // (Output) - // Current effective quota limit. The limit's unit depends on the quota type or metric. - Limit *int `pulumi:"limit"` - // (Output) - // The name of the quota limit. - LimitName *string `pulumi:"limitName"` - // (Output) - // The Compute Engine quota metric name. - MetricName *string `pulumi:"metricName"` - // (Output) - // Rollout status of the future quota limit. - RolloutStatus *string `pulumi:"rolloutStatus"` +// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are +// represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout) *int { + if v == nil { + return nil + } + return v.Nanos + }).(pulumi.IntPtrOutput) +} + +// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. +// Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years +func (o RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeoutPtrOutput) Seconds() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout) *string { + if v == nil { + return nil + } + return &v.Seconds + }).(pulumi.StringPtrOutput) +} + +type RegionUrlMapPathMatcherRouteRuleRouteActionTimeout struct { + // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. + Nanos *int `pulumi:"nanos"` + // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years + Seconds string `pulumi:"seconds"` } -// ResizeRequestStatusErrorErrorErrorDetailQuotaInfoInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs and ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput values. -// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailQuotaInfoInput` via: +// RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutArgs and RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutInput` via: // -// ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs{...} -type ResizeRequestStatusErrorErrorErrorDetailQuotaInfoInput interface { +// RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutArgs{...} +type RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutInput interface { pulumi.Input - ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput() ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput - ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput() RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput } -type ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs struct { - // (Output) - // The map holding related quota dimensions - Dimensions pulumi.StringMapInput `pulumi:"dimensions"` - // (Output) - // Future quota limit being rolled out. The limit's unit depends on the quota type or metric. - FutureLimit pulumi.IntPtrInput `pulumi:"futureLimit"` - // (Output) - // Current effective quota limit. The limit's unit depends on the quota type or metric. - Limit pulumi.IntPtrInput `pulumi:"limit"` - // (Output) - // The name of the quota limit. - LimitName pulumi.StringPtrInput `pulumi:"limitName"` - // (Output) - // The Compute Engine quota metric name. - MetricName pulumi.StringPtrInput `pulumi:"metricName"` - // (Output) - // Rollout status of the future quota limit. - RolloutStatus pulumi.StringPtrInput `pulumi:"rolloutStatus"` +type RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutArgs struct { + // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. + Nanos pulumi.IntPtrInput `pulumi:"nanos"` + // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years + Seconds pulumi.StringInput `pulumi:"seconds"` } -func (ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailQuotaInfo)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionTimeout)(nil)).Elem() } -func (i ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs) ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput() ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput { - return i.ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput() RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutputWithContext(context.Background()) } -func (i ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs) ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput) } -// ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArray and ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput values. -// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayInput` via: +func (i RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutputWithContext(context.Background()) +} + +func (i RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput).ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutputWithContext(ctx) +} + +// RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutArgs, RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtr and RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrInput` via: // -// ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArray{ ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs{...} } -type ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayInput interface { +// RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutArgs{...} +// +// or: +// +// nil +type RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrInput interface { pulumi.Input - ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput() ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput - ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput } -type ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArray []ResizeRequestStatusErrorErrorErrorDetailQuotaInfoInput +type regionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrType RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutArgs -func (ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetailQuotaInfo)(nil)).Elem() +func RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtr(v *RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutArgs) RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrInput { + return (*regionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrType)(v) } -func (i ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArray) ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput() ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput { - return i.ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutputWithContext(context.Background()) +func (*regionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionTimeout)(nil)).Elem() } -func (i ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArray) ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput) +func (i *regionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutputWithContext(context.Background()) } -type ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput struct{ *pulumi.OutputState } +func (i *regionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput) +} -func (ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailQuotaInfo)(nil)).Elem() +type RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionTimeout)(nil)).Elem() } -func (o ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput() ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput() RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput { return o } -func (o ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput { return o } -// (Output) -// The map holding related quota dimensions -func (o ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) Dimensions() pulumi.StringMapOutput { - return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailQuotaInfo) map[string]string { return v.Dimensions }).(pulumi.StringMapOutput) +func (o RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput { + return o.ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutputWithContext(context.Background()) } -// (Output) -// Future quota limit being rolled out. The limit's unit depends on the quota type or metric. -func (o ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) FutureLimit() pulumi.IntPtrOutput { - return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailQuotaInfo) *int { return v.FutureLimit }).(pulumi.IntPtrOutput) +func (o RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherRouteRuleRouteActionTimeout) *RegionUrlMapPathMatcherRouteRuleRouteActionTimeout { + return &v + }).(RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput) } -// (Output) -// Current effective quota limit. The limit's unit depends on the quota type or metric. -func (o ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) Limit() pulumi.IntPtrOutput { - return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailQuotaInfo) *int { return v.Limit }).(pulumi.IntPtrOutput) +// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionTimeout) *int { return v.Nanos }).(pulumi.IntPtrOutput) } -// (Output) -// The name of the quota limit. -func (o ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) LimitName() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailQuotaInfo) *string { return v.LimitName }).(pulumi.StringPtrOutput) +// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years +func (o RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput) Seconds() pulumi.StringOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionTimeout) string { return v.Seconds }).(pulumi.StringOutput) } -// (Output) -// The Compute Engine quota metric name. -func (o ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) MetricName() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailQuotaInfo) *string { return v.MetricName }).(pulumi.StringPtrOutput) -} +type RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput struct{ *pulumi.OutputState } -// (Output) -// Rollout status of the future quota limit. -func (o ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) RolloutStatus() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailQuotaInfo) *string { return v.RolloutStatus }).(pulumi.StringPtrOutput) +func (RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionTimeout)(nil)).Elem() } -type ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput struct{ *pulumi.OutputState } - -func (ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetailQuotaInfo)(nil)).Elem() +func (o RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput { + return o } -func (o ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput() ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput { return o } -func (o ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput { - return o +func (o RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput) Elem() RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionTimeout) RegionUrlMapPathMatcherRouteRuleRouteActionTimeout { + if v != nil { + return *v + } + var ret RegionUrlMapPathMatcherRouteRuleRouteActionTimeout + return ret + }).(RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutOutput) } -func (o ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusErrorErrorErrorDetailQuotaInfo { - return vs[0].([]ResizeRequestStatusErrorErrorErrorDetailQuotaInfo)[vs[1].(int)] - }).(ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) +// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionTimeout) *int { + if v == nil { + return nil + } + return v.Nanos + }).(pulumi.IntPtrOutput) } -type ResizeRequestStatusLastAttempt struct { - // (Output) - // [Output only] Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. - // Structure is documented below. - Errors []ResizeRequestStatusLastAttemptError `pulumi:"errors"` +// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years +func (o RegionUrlMapPathMatcherRouteRuleRouteActionTimeoutPtrOutput) Seconds() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionTimeout) *string { + if v == nil { + return nil + } + return &v.Seconds + }).(pulumi.StringPtrOutput) } -// ResizeRequestStatusLastAttemptInput is an input type that accepts ResizeRequestStatusLastAttemptArgs and ResizeRequestStatusLastAttemptOutput values. -// You can construct a concrete instance of `ResizeRequestStatusLastAttemptInput` via: +type RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite struct { + // Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. + // The value must be from 1 to 255 characters. + HostRewrite *string `pulumi:"hostRewrite"` + // Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. + // The value must be from 1 to 1024 characters. + PathPrefixRewrite *string `pulumi:"pathPrefixRewrite"` + // Prior to forwarding the request to the selected origin, if the + // request matched a pathTemplateMatch, the matching portion of the + // request's path is replaced re-written using the pattern specified + // by pathTemplateRewrite. + // pathTemplateRewrite must be between 1 and 255 characters + // (inclusive), must start with a '/', and must only use variables + // captured by the route's pathTemplate matchers. + // pathTemplateRewrite may only be used when all of a route's + // MatchRules specify pathTemplate. + // Only one of pathPrefixRewrite and pathTemplateRewrite may be + // specified. + PathTemplateRewrite *string `pulumi:"pathTemplateRewrite"` +} + +// RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteArgs and RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteInput` via: // -// ResizeRequestStatusLastAttemptArgs{...} -type ResizeRequestStatusLastAttemptInput interface { +// RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteArgs{...} +type RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteInput interface { pulumi.Input - ToResizeRequestStatusLastAttemptOutput() ResizeRequestStatusLastAttemptOutput - ToResizeRequestStatusLastAttemptOutputWithContext(context.Context) ResizeRequestStatusLastAttemptOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput() RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput } -type ResizeRequestStatusLastAttemptArgs struct { - // (Output) - // [Output only] Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. - // Structure is documented below. - Errors ResizeRequestStatusLastAttemptErrorArrayInput `pulumi:"errors"` +type RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteArgs struct { + // Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. + // The value must be from 1 to 255 characters. + HostRewrite pulumi.StringPtrInput `pulumi:"hostRewrite"` + // Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. + // The value must be from 1 to 1024 characters. + PathPrefixRewrite pulumi.StringPtrInput `pulumi:"pathPrefixRewrite"` + // Prior to forwarding the request to the selected origin, if the + // request matched a pathTemplateMatch, the matching portion of the + // request's path is replaced re-written using the pattern specified + // by pathTemplateRewrite. + // pathTemplateRewrite must be between 1 and 255 characters + // (inclusive), must start with a '/', and must only use variables + // captured by the route's pathTemplate matchers. + // pathTemplateRewrite may only be used when all of a route's + // MatchRules specify pathTemplate. + // Only one of pathPrefixRewrite and pathTemplateRewrite may be + // specified. + PathTemplateRewrite pulumi.StringPtrInput `pulumi:"pathTemplateRewrite"` } -func (ResizeRequestStatusLastAttemptArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatusLastAttempt)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite)(nil)).Elem() } -func (i ResizeRequestStatusLastAttemptArgs) ToResizeRequestStatusLastAttemptOutput() ResizeRequestStatusLastAttemptOutput { - return i.ToResizeRequestStatusLastAttemptOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput() RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutputWithContext(context.Background()) } -func (i ResizeRequestStatusLastAttemptArgs) ToResizeRequestStatusLastAttemptOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptOutput) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput) } -// ResizeRequestStatusLastAttemptArrayInput is an input type that accepts ResizeRequestStatusLastAttemptArray and ResizeRequestStatusLastAttemptArrayOutput values. -// You can construct a concrete instance of `ResizeRequestStatusLastAttemptArrayInput` via: +func (i RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutputWithContext(context.Background()) +} + +func (i RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput).ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutputWithContext(ctx) +} + +// RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteArgs, RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtr and RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrInput` via: // -// ResizeRequestStatusLastAttemptArray{ ResizeRequestStatusLastAttemptArgs{...} } -type ResizeRequestStatusLastAttemptArrayInput interface { +// RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteArgs{...} +// +// or: +// +// nil +type RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrInput interface { pulumi.Input - ToResizeRequestStatusLastAttemptArrayOutput() ResizeRequestStatusLastAttemptArrayOutput - ToResizeRequestStatusLastAttemptArrayOutputWithContext(context.Context) ResizeRequestStatusLastAttemptArrayOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput } -type ResizeRequestStatusLastAttemptArray []ResizeRequestStatusLastAttemptInput +type regionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrType RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteArgs -func (ResizeRequestStatusLastAttemptArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatusLastAttempt)(nil)).Elem() +func RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtr(v *RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteArgs) RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrInput { + return (*regionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrType)(v) } -func (i ResizeRequestStatusLastAttemptArray) ToResizeRequestStatusLastAttemptArrayOutput() ResizeRequestStatusLastAttemptArrayOutput { - return i.ToResizeRequestStatusLastAttemptArrayOutputWithContext(context.Background()) +func (*regionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite)(nil)).Elem() } -func (i ResizeRequestStatusLastAttemptArray) ToResizeRequestStatusLastAttemptArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptArrayOutput) +func (i *regionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutputWithContext(context.Background()) } -type ResizeRequestStatusLastAttemptOutput struct{ *pulumi.OutputState } +func (i *regionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput) +} -func (ResizeRequestStatusLastAttemptOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatusLastAttempt)(nil)).Elem() +type RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite)(nil)).Elem() } -func (o ResizeRequestStatusLastAttemptOutput) ToResizeRequestStatusLastAttemptOutput() ResizeRequestStatusLastAttemptOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput() RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput { return o } -func (o ResizeRequestStatusLastAttemptOutput) ToResizeRequestStatusLastAttemptOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput { return o } -// (Output) -// [Output only] Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. -// Structure is documented below. -func (o ResizeRequestStatusLastAttemptOutput) Errors() ResizeRequestStatusLastAttemptErrorArrayOutput { - return o.ApplyT(func(v ResizeRequestStatusLastAttempt) []ResizeRequestStatusLastAttemptError { return v.Errors }).(ResizeRequestStatusLastAttemptErrorArrayOutput) +func (o RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput { + return o.ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutputWithContext(context.Background()) } -type ResizeRequestStatusLastAttemptArrayOutput struct{ *pulumi.OutputState } +func (o RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite) *RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite { + return &v + }).(RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput) +} -func (ResizeRequestStatusLastAttemptArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatusLastAttempt)(nil)).Elem() +// Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. +// The value must be from 1 to 255 characters. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput) HostRewrite() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite) *string { return v.HostRewrite }).(pulumi.StringPtrOutput) } -func (o ResizeRequestStatusLastAttemptArrayOutput) ToResizeRequestStatusLastAttemptArrayOutput() ResizeRequestStatusLastAttemptArrayOutput { +// Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. +// The value must be from 1 to 1024 characters. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput) PathPrefixRewrite() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite) *string { return v.PathPrefixRewrite }).(pulumi.StringPtrOutput) +} + +// Prior to forwarding the request to the selected origin, if the +// request matched a pathTemplateMatch, the matching portion of the +// request's path is replaced re-written using the pattern specified +// by pathTemplateRewrite. +// pathTemplateRewrite must be between 1 and 255 characters +// (inclusive), must start with a '/', and must only use variables +// captured by the route's pathTemplate matchers. +// pathTemplateRewrite may only be used when all of a route's +// MatchRules specify pathTemplate. +// Only one of pathPrefixRewrite and pathTemplateRewrite may be +// specified. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput) PathTemplateRewrite() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite) *string { return v.PathTemplateRewrite }).(pulumi.StringPtrOutput) +} + +type RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite)(nil)).Elem() +} + +func (o RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput { return o } -func (o ResizeRequestStatusLastAttemptArrayOutput) ToResizeRequestStatusLastAttemptArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptArrayOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput { return o } -func (o ResizeRequestStatusLastAttemptArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusLastAttemptOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusLastAttempt { - return vs[0].([]ResizeRequestStatusLastAttempt)[vs[1].(int)] - }).(ResizeRequestStatusLastAttemptOutput) +func (o RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput) Elem() RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite) RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite { + if v != nil { + return *v + } + var ret RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite + return ret + }).(RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewriteOutput) } -type ResizeRequestStatusLastAttemptError struct { - // (Output) - // [Output Only] The array of errors encountered while processing this operation. +// Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. +// The value must be from 1 to 255 characters. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput) HostRewrite() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite) *string { + if v == nil { + return nil + } + return v.HostRewrite + }).(pulumi.StringPtrOutput) +} + +// Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. +// The value must be from 1 to 1024 characters. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput) PathPrefixRewrite() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite) *string { + if v == nil { + return nil + } + return v.PathPrefixRewrite + }).(pulumi.StringPtrOutput) +} + +// Prior to forwarding the request to the selected origin, if the +// request matched a pathTemplateMatch, the matching portion of the +// request's path is replaced re-written using the pattern specified +// by pathTemplateRewrite. +// pathTemplateRewrite must be between 1 and 255 characters +// (inclusive), must start with a '/', and must only use variables +// captured by the route's pathTemplate matchers. +// pathTemplateRewrite may only be used when all of a route's +// MatchRules specify pathTemplate. +// Only one of pathPrefixRewrite and pathTemplateRewrite may be +// specified. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewritePtrOutput) PathTemplateRewrite() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite) *string { + if v == nil { + return nil + } + return v.PathTemplateRewrite + }).(pulumi.StringPtrOutput) +} + +type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendService struct { + // The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the load balancer applies any relevant headerActions specified as part of this backendServiceWeight. + BackendService string `pulumi:"backendService"` + // Specifies changes to request and response headers that need to take effect for the selected backendService. + // headerAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap. + // headerAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. + // Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. // Structure is documented below. - Errors []ResizeRequestStatusLastAttemptErrorError `pulumi:"errors"` + HeaderAction *RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction `pulumi:"headerAction"` + // Specifies the fraction of traffic sent to a backend service, computed as weight / (sum of all weightedBackendService weights in routeAction) . + // The selection of a backend service is determined only for new traffic. Once a user's request has been directed to a backend service, subsequent requests are sent to the same backend service as determined by the backend service's session affinity policy. + // The value must be from 0 to 1000. + Weight int `pulumi:"weight"` } -// ResizeRequestStatusLastAttemptErrorInput is an input type that accepts ResizeRequestStatusLastAttemptErrorArgs and ResizeRequestStatusLastAttemptErrorOutput values. -// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorInput` via: +// RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArgs and RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceInput` via: // -// ResizeRequestStatusLastAttemptErrorArgs{...} -type ResizeRequestStatusLastAttemptErrorInput interface { +// RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArgs{...} +type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceInput interface { pulumi.Input - ToResizeRequestStatusLastAttemptErrorOutput() ResizeRequestStatusLastAttemptErrorOutput - ToResizeRequestStatusLastAttemptErrorOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput } -type ResizeRequestStatusLastAttemptErrorArgs struct { - // (Output) - // [Output Only] The array of errors encountered while processing this operation. +type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArgs struct { + // The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the load balancer applies any relevant headerActions specified as part of this backendServiceWeight. + BackendService pulumi.StringInput `pulumi:"backendService"` + // Specifies changes to request and response headers that need to take effect for the selected backendService. + // headerAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap. + // headerAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. + // Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. // Structure is documented below. - Errors ResizeRequestStatusLastAttemptErrorErrorArrayInput `pulumi:"errors"` + HeaderAction RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrInput `pulumi:"headerAction"` + // Specifies the fraction of traffic sent to a backend service, computed as weight / (sum of all weightedBackendService weights in routeAction) . + // The selection of a backend service is determined only for new traffic. Once a user's request has been directed to a backend service, subsequent requests are sent to the same backend service as determined by the backend service's session affinity policy. + // The value must be from 0 to 1000. + Weight pulumi.IntInput `pulumi:"weight"` } -func (ResizeRequestStatusLastAttemptErrorArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatusLastAttemptError)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendService)(nil)).Elem() } -func (i ResizeRequestStatusLastAttemptErrorArgs) ToResizeRequestStatusLastAttemptErrorOutput() ResizeRequestStatusLastAttemptErrorOutput { - return i.ToResizeRequestStatusLastAttemptErrorOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutputWithContext(context.Background()) } -func (i ResizeRequestStatusLastAttemptErrorArgs) ToResizeRequestStatusLastAttemptErrorOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorOutput) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput) } -// ResizeRequestStatusLastAttemptErrorArrayInput is an input type that accepts ResizeRequestStatusLastAttemptErrorArray and ResizeRequestStatusLastAttemptErrorArrayOutput values. -// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorArrayInput` via: +// RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArray and RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayInput` via: // -// ResizeRequestStatusLastAttemptErrorArray{ ResizeRequestStatusLastAttemptErrorArgs{...} } -type ResizeRequestStatusLastAttemptErrorArrayInput interface { +// RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArray{ RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArgs{...} } +type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayInput interface { pulumi.Input - ToResizeRequestStatusLastAttemptErrorArrayOutput() ResizeRequestStatusLastAttemptErrorArrayOutput - ToResizeRequestStatusLastAttemptErrorArrayOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorArrayOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput } -type ResizeRequestStatusLastAttemptErrorArray []ResizeRequestStatusLastAttemptErrorInput +type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArray []RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceInput -func (ResizeRequestStatusLastAttemptErrorArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptError)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendService)(nil)).Elem() } -func (i ResizeRequestStatusLastAttemptErrorArray) ToResizeRequestStatusLastAttemptErrorArrayOutput() ResizeRequestStatusLastAttemptErrorArrayOutput { - return i.ToResizeRequestStatusLastAttemptErrorArrayOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArray) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutputWithContext(context.Background()) } -func (i ResizeRequestStatusLastAttemptErrorArray) ToResizeRequestStatusLastAttemptErrorArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorArrayOutput) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArray) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput) } -type ResizeRequestStatusLastAttemptErrorOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput struct{ *pulumi.OutputState } -func (ResizeRequestStatusLastAttemptErrorOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatusLastAttemptError)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendService)(nil)).Elem() } -func (o ResizeRequestStatusLastAttemptErrorOutput) ToResizeRequestStatusLastAttemptErrorOutput() ResizeRequestStatusLastAttemptErrorOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput { + return o +} + +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput { return o } -func (o ResizeRequestStatusLastAttemptErrorOutput) ToResizeRequestStatusLastAttemptErrorOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorOutput { - return o +// The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the load balancer applies any relevant headerActions specified as part of this backendServiceWeight. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput) BackendService() pulumi.StringOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendService) string { + return v.BackendService + }).(pulumi.StringOutput) +} + +// Specifies changes to request and response headers that need to take effect for the selected backendService. +// headerAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap. +// headerAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. +// Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput) HeaderAction() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendService) *RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction { + return v.HeaderAction + }).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) } -// (Output) -// [Output Only] The array of errors encountered while processing this operation. -// Structure is documented below. -func (o ResizeRequestStatusLastAttemptErrorOutput) Errors() ResizeRequestStatusLastAttemptErrorErrorArrayOutput { - return o.ApplyT(func(v ResizeRequestStatusLastAttemptError) []ResizeRequestStatusLastAttemptErrorError { - return v.Errors - }).(ResizeRequestStatusLastAttemptErrorErrorArrayOutput) +// Specifies the fraction of traffic sent to a backend service, computed as weight / (sum of all weightedBackendService weights in routeAction) . +// The selection of a backend service is determined only for new traffic. Once a user's request has been directed to a backend service, subsequent requests are sent to the same backend service as determined by the backend service's session affinity policy. +// The value must be from 0 to 1000. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput) Weight() pulumi.IntOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendService) int { return v.Weight }).(pulumi.IntOutput) } -type ResizeRequestStatusLastAttemptErrorArrayOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput struct{ *pulumi.OutputState } -func (ResizeRequestStatusLastAttemptErrorArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptError)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendService)(nil)).Elem() } -func (o ResizeRequestStatusLastAttemptErrorArrayOutput) ToResizeRequestStatusLastAttemptErrorArrayOutput() ResizeRequestStatusLastAttemptErrorArrayOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput { return o } -func (o ResizeRequestStatusLastAttemptErrorArrayOutput) ToResizeRequestStatusLastAttemptErrorArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorArrayOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput { return o } -func (o ResizeRequestStatusLastAttemptErrorArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusLastAttemptErrorOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusLastAttemptError { - return vs[0].([]ResizeRequestStatusLastAttemptError)[vs[1].(int)] - }).(ResizeRequestStatusLastAttemptErrorOutput) +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceArrayOutput) Index(i pulumi.IntInput) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendService { + return vs[0].([]RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendService)[vs[1].(int)] + }).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceOutput) } -type ResizeRequestStatusLastAttemptErrorError struct { - // (Output) - // [Output Only] The error type identifier for this error. - Code *string `pulumi:"code"` - // (Output) - // [Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. +type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction struct { + // Headers to add to a matching request before forwarding the request to the backendService. // Structure is documented below. - ErrorDetails []ResizeRequestStatusLastAttemptErrorErrorErrorDetail `pulumi:"errorDetails"` - // (Output) - // Output Only] Indicates the field in the request that caused the error. This property is optional. - Location *string `pulumi:"location"` - // (Output) - // The localized error message in the above locale. - Message *string `pulumi:"message"` + RequestHeadersToAdds []RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd `pulumi:"requestHeadersToAdds"` + // A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. + RequestHeadersToRemoves []string `pulumi:"requestHeadersToRemoves"` + // Headers to add the response before sending the response back to the client. + // Structure is documented below. + ResponseHeadersToAdds []RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd `pulumi:"responseHeadersToAdds"` + // A list of header names for headers that need to be removed from the response before sending the response back to the client. + ResponseHeadersToRemoves []string `pulumi:"responseHeadersToRemoves"` } -// ResizeRequestStatusLastAttemptErrorErrorInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorArgs and ResizeRequestStatusLastAttemptErrorErrorOutput values. -// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorInput` via: +// RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionArgs and RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionInput` via: // -// ResizeRequestStatusLastAttemptErrorErrorArgs{...} -type ResizeRequestStatusLastAttemptErrorErrorInput interface { +// RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionArgs{...} +type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionInput interface { pulumi.Input - ToResizeRequestStatusLastAttemptErrorErrorOutput() ResizeRequestStatusLastAttemptErrorErrorOutput - ToResizeRequestStatusLastAttemptErrorErrorOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput } -type ResizeRequestStatusLastAttemptErrorErrorArgs struct { - // (Output) - // [Output Only] The error type identifier for this error. - Code pulumi.StringPtrInput `pulumi:"code"` - // (Output) - // [Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. +type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionArgs struct { + // Headers to add to a matching request before forwarding the request to the backendService. // Structure is documented below. - ErrorDetails ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayInput `pulumi:"errorDetails"` - // (Output) - // Output Only] Indicates the field in the request that caused the error. This property is optional. - Location pulumi.StringPtrInput `pulumi:"location"` - // (Output) - // The localized error message in the above locale. - Message pulumi.StringPtrInput `pulumi:"message"` + RequestHeadersToAdds RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput `pulumi:"requestHeadersToAdds"` + // A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. + RequestHeadersToRemoves pulumi.StringArrayInput `pulumi:"requestHeadersToRemoves"` + // Headers to add the response before sending the response back to the client. + // Structure is documented below. + ResponseHeadersToAdds RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput `pulumi:"responseHeadersToAdds"` + // A list of header names for headers that need to be removed from the response before sending the response back to the client. + ResponseHeadersToRemoves pulumi.StringArrayInput `pulumi:"responseHeadersToRemoves"` } -func (ResizeRequestStatusLastAttemptErrorErrorArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorError)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() } -func (i ResizeRequestStatusLastAttemptErrorErrorArgs) ToResizeRequestStatusLastAttemptErrorErrorOutput() ResizeRequestStatusLastAttemptErrorErrorOutput { - return i.ToResizeRequestStatusLastAttemptErrorErrorOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutputWithContext(context.Background()) } -func (i ResizeRequestStatusLastAttemptErrorErrorArgs) ToResizeRequestStatusLastAttemptErrorErrorOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorOutput) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput) } -// ResizeRequestStatusLastAttemptErrorErrorArrayInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorArray and ResizeRequestStatusLastAttemptErrorErrorArrayOutput values. -// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorArrayInput` via: +func (i RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Background()) +} + +func (i RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput).ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx) +} + +// RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionArgs, RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtr and RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrInput` via: // -// ResizeRequestStatusLastAttemptErrorErrorArray{ ResizeRequestStatusLastAttemptErrorErrorArgs{...} } -type ResizeRequestStatusLastAttemptErrorErrorArrayInput interface { +// RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionArgs{...} +// +// or: +// +// nil +type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrInput interface { pulumi.Input - ToResizeRequestStatusLastAttemptErrorErrorArrayOutput() ResizeRequestStatusLastAttemptErrorErrorArrayOutput - ToResizeRequestStatusLastAttemptErrorErrorArrayOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorArrayOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput } -type ResizeRequestStatusLastAttemptErrorErrorArray []ResizeRequestStatusLastAttemptErrorErrorInput +type regionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrType RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionArgs -func (ResizeRequestStatusLastAttemptErrorErrorArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorError)(nil)).Elem() +func RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtr(v *RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionArgs) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrInput { + return (*regionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrType)(v) } -func (i ResizeRequestStatusLastAttemptErrorErrorArray) ToResizeRequestStatusLastAttemptErrorErrorArrayOutput() ResizeRequestStatusLastAttemptErrorErrorArrayOutput { - return i.ToResizeRequestStatusLastAttemptErrorErrorArrayOutputWithContext(context.Background()) +func (*regionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() } -func (i ResizeRequestStatusLastAttemptErrorErrorArray) ToResizeRequestStatusLastAttemptErrorErrorArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorArrayOutput) +func (i *regionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Background()) } -type ResizeRequestStatusLastAttemptErrorErrorOutput struct{ *pulumi.OutputState } +func (i *regionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrType) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) +} -func (ResizeRequestStatusLastAttemptErrorErrorOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorError)(nil)).Elem() +type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() } -func (o ResizeRequestStatusLastAttemptErrorErrorOutput) ToResizeRequestStatusLastAttemptErrorErrorOutput() ResizeRequestStatusLastAttemptErrorErrorOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput { return o } -func (o ResizeRequestStatusLastAttemptErrorErrorOutput) ToResizeRequestStatusLastAttemptErrorErrorOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput { return o } -// (Output) -// [Output Only] The error type identifier for this error. -func (o ResizeRequestStatusLastAttemptErrorErrorOutput) Code() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorError) *string { return v.Code }).(pulumi.StringPtrOutput) +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return o.ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Background()) } -// (Output) -// [Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction) *RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction { + return &v + }).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) +} + +// Headers to add to a matching request before forwarding the request to the backendService. // Structure is documented below. -func (o ResizeRequestStatusLastAttemptErrorErrorOutput) ErrorDetails() ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput { - return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorError) []ResizeRequestStatusLastAttemptErrorErrorErrorDetail { - return v.ErrorDetails - }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput) +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput) RequestHeadersToAdds() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction) []RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd { + return v.RequestHeadersToAdds + }).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) } -// (Output) -// Output Only] Indicates the field in the request that caused the error. This property is optional. -func (o ResizeRequestStatusLastAttemptErrorErrorOutput) Location() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorError) *string { return v.Location }).(pulumi.StringPtrOutput) +// A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput) RequestHeadersToRemoves() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction) []string { + return v.RequestHeadersToRemoves + }).(pulumi.StringArrayOutput) } -// (Output) -// The localized error message in the above locale. -func (o ResizeRequestStatusLastAttemptErrorErrorOutput) Message() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorError) *string { return v.Message }).(pulumi.StringPtrOutput) +// Headers to add the response before sending the response back to the client. +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput) ResponseHeadersToAdds() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction) []RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd { + return v.ResponseHeadersToAdds + }).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) } -type ResizeRequestStatusLastAttemptErrorErrorArrayOutput struct{ *pulumi.OutputState } +// A list of header names for headers that need to be removed from the response before sending the response back to the client. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput) ResponseHeadersToRemoves() pulumi.StringArrayOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction) []string { + return v.ResponseHeadersToRemoves + }).(pulumi.StringArrayOutput) +} -func (ResizeRequestStatusLastAttemptErrorErrorArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorError)(nil)).Elem() +type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() } -func (o ResizeRequestStatusLastAttemptErrorErrorArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorArrayOutput() ResizeRequestStatusLastAttemptErrorErrorArrayOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { return o } -func (o ResizeRequestStatusLastAttemptErrorErrorArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorArrayOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput { return o } -func (o ResizeRequestStatusLastAttemptErrorErrorArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusLastAttemptErrorErrorOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusLastAttemptErrorError { - return vs[0].([]ResizeRequestStatusLastAttemptErrorError)[vs[1].(int)] - }).(ResizeRequestStatusLastAttemptErrorErrorOutput) +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) Elem() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction { + if v != nil { + return *v + } + var ret RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction + return ret + }).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionOutput) } -type ResizeRequestStatusLastAttemptErrorErrorErrorDetail struct { - // (Output) - // [Output Only] - // Structure is documented below. - ErrorInfos []ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo `pulumi:"errorInfos"` - // (Output) - // [Output Only] - // Structure is documented below. - Helps []ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp `pulumi:"helps"` - // (Output) - // [Output Only] - // Structure is documented below. - LocalizedMessages []ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage `pulumi:"localizedMessages"` - // (Output) - // [Output Only] - // Structure is documented below. - QuotaInfos []ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo `pulumi:"quotaInfos"` +// Headers to add to a matching request before forwarding the request to the backendService. +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) RequestHeadersToAdds() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction) []RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd { + if v == nil { + return nil + } + return v.RequestHeadersToAdds + }).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) } -// ResizeRequestStatusLastAttemptErrorErrorErrorDetailInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs and ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput values. -// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailInput` via: +// A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) RequestHeadersToRemoves() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction) []string { + if v == nil { + return nil + } + return v.RequestHeadersToRemoves + }).(pulumi.StringArrayOutput) +} + +// Headers to add the response before sending the response back to the client. +// Structure is documented below. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) ResponseHeadersToAdds() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction) []RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd { + if v == nil { + return nil + } + return v.ResponseHeadersToAdds + }).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) +} + +// A list of header names for headers that need to be removed from the response before sending the response back to the client. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionPtrOutput) ResponseHeadersToRemoves() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction) []string { + if v == nil { + return nil + } + return v.ResponseHeadersToRemoves + }).(pulumi.StringArrayOutput) +} + +type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd struct { + // The name of the header. + HeaderName string `pulumi:"headerName"` + // The value of the header to add. + HeaderValue string `pulumi:"headerValue"` + // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. + // The default value is false. + Replace bool `pulumi:"replace"` +} + +// RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs and RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput` via: // -// ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs{...} -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailInput interface { +// RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs{...} +type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput interface { pulumi.Input - ToResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput - ToResizeRequestStatusLastAttemptErrorErrorErrorDetailOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput } -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs struct { - // (Output) - // [Output Only] - // Structure is documented below. - ErrorInfos ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayInput `pulumi:"errorInfos"` - // (Output) - // [Output Only] - // Structure is documented below. - Helps ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayInput `pulumi:"helps"` - // (Output) - // [Output Only] - // Structure is documented below. - LocalizedMessages ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayInput `pulumi:"localizedMessages"` - // (Output) - // [Output Only] - // Structure is documented below. - QuotaInfos ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayInput `pulumi:"quotaInfos"` +type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs struct { + // The name of the header. + HeaderName pulumi.StringInput `pulumi:"headerName"` + // The value of the header to add. + HeaderValue pulumi.StringInput `pulumi:"headerValue"` + // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. + // The default value is false. + Replace pulumi.BoolInput `pulumi:"replace"` } -func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetail)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() } -func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput { - return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(context.Background()) } -func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) } -// ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailArray and ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput values. -// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayInput` via: +// RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray and RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput` via: // -// ResizeRequestStatusLastAttemptErrorErrorErrorDetailArray{ ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs{...} } -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayInput interface { +// RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray{ RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs{...} } +type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput interface { pulumi.Input - ToResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput - ToResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput } -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailArray []ResizeRequestStatusLastAttemptErrorErrorErrorDetailInput +type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray []RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput -func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetail)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() } -func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput { - return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Background()) } -func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) } -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput struct{ *pulumi.OutputState } -func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetail)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() } -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { return o } -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { return o } -// (Output) -// [Output Only] -// Structure is documented below. -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) ErrorInfos() ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput { - return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetail) []ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo { - return v.ErrorInfos - }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput) -} - -// (Output) -// [Output Only] -// Structure is documented below. -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) Helps() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput { - return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetail) []ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp { - return v.Helps - }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput) +// The name of the header. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) HeaderName() pulumi.StringOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd) string { + return v.HeaderName + }).(pulumi.StringOutput) } -// (Output) -// [Output Only] -// Structure is documented below. -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) LocalizedMessages() ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput { - return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetail) []ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage { - return v.LocalizedMessages - }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput) +// The value of the header to add. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) HeaderValue() pulumi.StringOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd) string { + return v.HeaderValue + }).(pulumi.StringOutput) } -// (Output) -// [Output Only] -// Structure is documented below. -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) QuotaInfos() ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput { - return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetail) []ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo { - return v.QuotaInfos - }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput) +// If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. +// The default value is false. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) Replace() pulumi.BoolOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd) bool { + return v.Replace + }).(pulumi.BoolOutput) } -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput struct{ *pulumi.OutputState } -func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetail)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() } -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { return o } -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { return o } -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusLastAttemptErrorErrorErrorDetail { - return vs[0].([]ResizeRequestStatusLastAttemptErrorErrorErrorDetail)[vs[1].(int)] - }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) Index(i pulumi.IntInput) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd { + return vs[0].([]RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)[vs[1].(int)] + }).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) } -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo struct { - // (Output) - // 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". - Domain *string `pulumi:"domain"` - // (Output) - // Additional structured details about this error. - // Keys must match /[a-z][a-zA-Z0-9-_]+/ 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. - Metadatas map[string]string `pulumi:"metadatas"` - // (Output) - // 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_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. - Reason *string `pulumi:"reason"` +type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd struct { + // The name of the header. + HeaderName string `pulumi:"headerName"` + // The value of the header to add. + HeaderValue string `pulumi:"headerValue"` + // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. + // The default value is false. + Replace bool `pulumi:"replace"` } -// ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs and ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput values. -// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoInput` via: +// RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs and RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput` via: // -// ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs{...} -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoInput interface { +// RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs{...} +type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput interface { pulumi.Input - ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput - ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput } -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs struct { - // (Output) - // 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". - Domain pulumi.StringPtrInput `pulumi:"domain"` - // (Output) - // Additional structured details about this error. - // Keys must match /[a-z][a-zA-Z0-9-_]+/ 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. - Metadatas pulumi.StringMapInput `pulumi:"metadatas"` - // (Output) - // 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_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. - Reason pulumi.StringPtrInput `pulumi:"reason"` +type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs struct { + // The name of the header. + HeaderName pulumi.StringInput `pulumi:"headerName"` + // The value of the header to add. + HeaderValue pulumi.StringInput `pulumi:"headerValue"` + // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. + // The default value is false. + Replace pulumi.BoolInput `pulumi:"replace"` } -func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() } -func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput { - return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(context.Background()) } -func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) } -// ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArray and ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput values. -// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayInput` via: +// RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray and RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput` via: // -// ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArray{ ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs{...} } -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayInput interface { +// RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray{ RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs{...} } +type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput interface { pulumi.Input - ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput - ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput + ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput } -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArray []ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoInput +type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray []RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput -func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() } -func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput { - return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(context.Background()) } -func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput) +func (i RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) } -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput struct{ *pulumi.OutputState } -func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() } -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { return o } -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { return o } -// (Output) -// 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". -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput) Domain() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo) *string { return v.Domain }).(pulumi.StringPtrOutput) +// The name of the header. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) HeaderName() pulumi.StringOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd) string { + return v.HeaderName + }).(pulumi.StringOutput) } -// (Output) -// Additional structured details about this error. -// Keys must match /[a-z][a-zA-Z0-9-_]+/ 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. -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput) Metadatas() pulumi.StringMapOutput { - return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo) map[string]string { - return v.Metadatas - }).(pulumi.StringMapOutput) +// The value of the header to add. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) HeaderValue() pulumi.StringOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd) string { + return v.HeaderValue + }).(pulumi.StringOutput) } -// (Output) -// 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_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput) Reason() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo) *string { return v.Reason }).(pulumi.StringPtrOutput) +// If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. +// The default value is false. +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) Replace() pulumi.BoolOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd) bool { + return v.Replace + }).(pulumi.BoolOutput) } -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput struct{ *pulumi.OutputState } -func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() } -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput() RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { return o } -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput { +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) ToRegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { return o } -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo { - return vs[0].([]ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo)[vs[1].(int)] - }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput) +func (o RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) Index(i pulumi.IntInput) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd { + return vs[0].([]RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)[vs[1].(int)] + }).(RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) } -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp struct { - // (Output) - // [Output Only] - // Structure is documented below. - Links []ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink `pulumi:"links"` +type RegionUrlMapPathMatcherRouteRuleUrlRedirect struct { + // The host that will be used in the redirect response instead of the one + // that was supplied in the request. The value must be between 1 and 255 + // characters. + HostRedirect *string `pulumi:"hostRedirect"` + // If set to true, the URL scheme in the redirected request is set to https. + // If set to false, the URL scheme of the redirected request will remain the + // same as that of the request. This must only be set for UrlMaps used in + // TargetHttpProxys. Setting this true for TargetHttpsProxy is not + // permitted. The default is set to false. + HttpsRedirect *bool `pulumi:"httpsRedirect"` + // The path that will be used in the redirect response instead of the one + // that was supplied in the request. pathRedirect cannot be supplied + // together with prefixRedirect. Supply one alone or neither. If neither is + // supplied, the path of the original request will be used for the redirect. + // The value must be between 1 and 1024 characters. + PathRedirect *string `pulumi:"pathRedirect"` + // The prefix that replaces the prefixMatch specified in the + // HttpRouteRuleMatch, retaining the remaining portion of the URL before + // redirecting the request. prefixRedirect cannot be supplied together with + // pathRedirect. Supply one alone or neither. If neither is supplied, the + // path of the original request will be used for the redirect. The value + // must be between 1 and 1024 characters. + PrefixRedirect *string `pulumi:"prefixRedirect"` + // The HTTP Status code to use for this RedirectAction. Supported values are: + // * MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. + // * FOUND, which corresponds to 302. + // * SEE_OTHER which corresponds to 303. + // * TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method + // will be retained. + // * PERMANENT_REDIRECT, which corresponds to 308. In this case, + // the request method will be retained. + RedirectResponseCode *string `pulumi:"redirectResponseCode"` + // If set to true, any accompanying query portion of the original URL is removed + // prior to redirecting the request. If set to false, the query portion of the + // original URL is retained. + // This field is required to ensure an empty block is not set. The normal default value is false. + StripQuery *bool `pulumi:"stripQuery"` } -// ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs and ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput values. -// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpInput` via: +// RegionUrlMapPathMatcherRouteRuleUrlRedirectInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleUrlRedirectArgs and RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleUrlRedirectInput` via: // -// ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs{...} -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpInput interface { +// RegionUrlMapPathMatcherRouteRuleUrlRedirectArgs{...} +type RegionUrlMapPathMatcherRouteRuleUrlRedirectInput interface { pulumi.Input - ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput - ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput + ToRegionUrlMapPathMatcherRouteRuleUrlRedirectOutput() RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput + ToRegionUrlMapPathMatcherRouteRuleUrlRedirectOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput } -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs struct { - // (Output) - // [Output Only] - // Structure is documented below. - Links ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayInput `pulumi:"links"` +type RegionUrlMapPathMatcherRouteRuleUrlRedirectArgs struct { + // The host that will be used in the redirect response instead of the one + // that was supplied in the request. The value must be between 1 and 255 + // characters. + HostRedirect pulumi.StringPtrInput `pulumi:"hostRedirect"` + // If set to true, the URL scheme in the redirected request is set to https. + // If set to false, the URL scheme of the redirected request will remain the + // same as that of the request. This must only be set for UrlMaps used in + // TargetHttpProxys. Setting this true for TargetHttpsProxy is not + // permitted. The default is set to false. + HttpsRedirect pulumi.BoolPtrInput `pulumi:"httpsRedirect"` + // The path that will be used in the redirect response instead of the one + // that was supplied in the request. pathRedirect cannot be supplied + // together with prefixRedirect. Supply one alone or neither. If neither is + // supplied, the path of the original request will be used for the redirect. + // The value must be between 1 and 1024 characters. + PathRedirect pulumi.StringPtrInput `pulumi:"pathRedirect"` + // The prefix that replaces the prefixMatch specified in the + // HttpRouteRuleMatch, retaining the remaining portion of the URL before + // redirecting the request. prefixRedirect cannot be supplied together with + // pathRedirect. Supply one alone or neither. If neither is supplied, the + // path of the original request will be used for the redirect. The value + // must be between 1 and 1024 characters. + PrefixRedirect pulumi.StringPtrInput `pulumi:"prefixRedirect"` + // The HTTP Status code to use for this RedirectAction. Supported values are: + // * MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. + // * FOUND, which corresponds to 302. + // * SEE_OTHER which corresponds to 303. + // * TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method + // will be retained. + // * PERMANENT_REDIRECT, which corresponds to 308. In this case, + // the request method will be retained. + RedirectResponseCode pulumi.StringPtrInput `pulumi:"redirectResponseCode"` + // If set to true, any accompanying query portion of the original URL is removed + // prior to redirecting the request. If set to false, the query portion of the + // original URL is retained. + // This field is required to ensure an empty block is not set. The normal default value is false. + StripQuery pulumi.BoolPtrInput `pulumi:"stripQuery"` } -func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleUrlRedirectArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleUrlRedirect)(nil)).Elem() } -func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput { - return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutputWithContext(context.Background()) +func (i RegionUrlMapPathMatcherRouteRuleUrlRedirectArgs) ToRegionUrlMapPathMatcherRouteRuleUrlRedirectOutput() RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleUrlRedirectOutputWithContext(context.Background()) } -func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput) +func (i RegionUrlMapPathMatcherRouteRuleUrlRedirectArgs) ToRegionUrlMapPathMatcherRouteRuleUrlRedirectOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput) } -// ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArray and ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput values. -// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayInput` via: -// -// ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArray{ ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs{...} } -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayInput interface { - pulumi.Input - - ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput - ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput +func (i RegionUrlMapPathMatcherRouteRuleUrlRedirectArgs) ToRegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput() RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutputWithContext(context.Background()) } -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArray []ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpInput - -func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp)(nil)).Elem() +func (i RegionUrlMapPathMatcherRouteRuleUrlRedirectArgs) ToRegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput).ToRegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutputWithContext(ctx) } -func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput { - return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutputWithContext(context.Background()) -} +// RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrInput is an input type that accepts RegionUrlMapPathMatcherRouteRuleUrlRedirectArgs, RegionUrlMapPathMatcherRouteRuleUrlRedirectPtr and RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput values. +// You can construct a concrete instance of `RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrInput` via: +// +// RegionUrlMapPathMatcherRouteRuleUrlRedirectArgs{...} +// +// or: +// +// nil +type RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrInput interface { + pulumi.Input -func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput) + ToRegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput() RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput + ToRegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutputWithContext(context.Context) RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput } -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput struct{ *pulumi.OutputState } +type regionUrlMapPathMatcherRouteRuleUrlRedirectPtrType RegionUrlMapPathMatcherRouteRuleUrlRedirectArgs -func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp)(nil)).Elem() +func RegionUrlMapPathMatcherRouteRuleUrlRedirectPtr(v *RegionUrlMapPathMatcherRouteRuleUrlRedirectArgs) RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrInput { + return (*regionUrlMapPathMatcherRouteRuleUrlRedirectPtrType)(v) } -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput { - return o +func (*regionUrlMapPathMatcherRouteRuleUrlRedirectPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleUrlRedirect)(nil)).Elem() } -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput { - return o +func (i *regionUrlMapPathMatcherRouteRuleUrlRedirectPtrType) ToRegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput() RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput { + return i.ToRegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutputWithContext(context.Background()) } -// (Output) -// [Output Only] -// Structure is documented below. -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput) Links() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput { - return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp) []ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink { - return v.Links - }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput) +func (i *regionUrlMapPathMatcherRouteRuleUrlRedirectPtrType) ToRegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput) } -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput struct{ *pulumi.OutputState } -func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapPathMatcherRouteRuleUrlRedirect)(nil)).Elem() } -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput { +func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput) ToRegionUrlMapPathMatcherRouteRuleUrlRedirectOutput() RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput { return o } -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput { +func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput) ToRegionUrlMapPathMatcherRouteRuleUrlRedirectOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput { return o } -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp { - return vs[0].([]ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp)[vs[1].(int)] - }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput) -} - -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink struct { - // An optional description of this resize-request. - Description *string `pulumi:"description"` - // (Output) - // The URL of the link. - Url *string `pulumi:"url"` -} - -// ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs and ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput values. -// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkInput` via: -// -// ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs{...} -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkInput interface { - pulumi.Input - - ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput - ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput -} - -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs struct { - // An optional description of this resize-request. - Description pulumi.StringPtrInput `pulumi:"description"` - // (Output) - // The URL of the link. - Url pulumi.StringPtrInput `pulumi:"url"` +func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput) ToRegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput() RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput { + return o.ToRegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutputWithContext(context.Background()) } -func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink)(nil)).Elem() +func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput) ToRegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionUrlMapPathMatcherRouteRuleUrlRedirect) *RegionUrlMapPathMatcherRouteRuleUrlRedirect { + return &v + }).(RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput) } -func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput { - return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutputWithContext(context.Background()) +// The host that will be used in the redirect response instead of the one +// that was supplied in the request. The value must be between 1 and 255 +// characters. +func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput) HostRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleUrlRedirect) *string { return v.HostRedirect }).(pulumi.StringPtrOutput) } -func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput) +// If set to true, the URL scheme in the redirected request is set to https. +// If set to false, the URL scheme of the redirected request will remain the +// same as that of the request. This must only be set for UrlMaps used in +// TargetHttpProxys. Setting this true for TargetHttpsProxy is not +// permitted. The default is set to false. +func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput) HttpsRedirect() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleUrlRedirect) *bool { return v.HttpsRedirect }).(pulumi.BoolPtrOutput) } -// ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArray and ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput values. -// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayInput` via: -// -// ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArray{ ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs{...} } -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayInput interface { - pulumi.Input - - ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput - ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput +// The path that will be used in the redirect response instead of the one +// that was supplied in the request. pathRedirect cannot be supplied +// together with prefixRedirect. Supply one alone or neither. If neither is +// supplied, the path of the original request will be used for the redirect. +// The value must be between 1 and 1024 characters. +func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput) PathRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleUrlRedirect) *string { return v.PathRedirect }).(pulumi.StringPtrOutput) } -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArray []ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkInput - -func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink)(nil)).Elem() +// The prefix that replaces the prefixMatch specified in the +// HttpRouteRuleMatch, retaining the remaining portion of the URL before +// redirecting the request. prefixRedirect cannot be supplied together with +// pathRedirect. Supply one alone or neither. If neither is supplied, the +// path of the original request will be used for the redirect. The value +// must be between 1 and 1024 characters. +func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput) PrefixRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleUrlRedirect) *string { return v.PrefixRedirect }).(pulumi.StringPtrOutput) } -func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput { - return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutputWithContext(context.Background()) +// The HTTP Status code to use for this RedirectAction. Supported values are: +// - MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. +// - FOUND, which corresponds to 302. +// - SEE_OTHER which corresponds to 303. +// - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method +// will be retained. +// - PERMANENT_REDIRECT, which corresponds to 308. In this case, +// the request method will be retained. +func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput) RedirectResponseCode() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleUrlRedirect) *string { return v.RedirectResponseCode }).(pulumi.StringPtrOutput) } -func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput) +// If set to true, any accompanying query portion of the original URL is removed +// prior to redirecting the request. If set to false, the query portion of the +// original URL is retained. +// This field is required to ensure an empty block is not set. The normal default value is false. +func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput) StripQuery() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RegionUrlMapPathMatcherRouteRuleUrlRedirect) *bool { return v.StripQuery }).(pulumi.BoolPtrOutput) } -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput struct{ *pulumi.OutputState } +type RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput struct{ *pulumi.OutputState } -func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink)(nil)).Elem() +func (RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionUrlMapPathMatcherRouteRuleUrlRedirect)(nil)).Elem() } -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput { +func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput) ToRegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput() RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput { return o } -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput { +func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput) ToRegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutputWithContext(ctx context.Context) RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput { return o } -// An optional description of this resize-request. -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink) *string { return v.Description }).(pulumi.StringPtrOutput) +func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput) Elem() RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleUrlRedirect) RegionUrlMapPathMatcherRouteRuleUrlRedirect { + if v != nil { + return *v + } + var ret RegionUrlMapPathMatcherRouteRuleUrlRedirect + return ret + }).(RegionUrlMapPathMatcherRouteRuleUrlRedirectOutput) } -// (Output) -// The URL of the link. -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput) Url() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink) *string { return v.Url }).(pulumi.StringPtrOutput) +// The host that will be used in the redirect response instead of the one +// that was supplied in the request. The value must be between 1 and 255 +// characters. +func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput) HostRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleUrlRedirect) *string { + if v == nil { + return nil + } + return v.HostRedirect + }).(pulumi.StringPtrOutput) } -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput struct{ *pulumi.OutputState } +// If set to true, the URL scheme in the redirected request is set to https. +// If set to false, the URL scheme of the redirected request will remain the +// same as that of the request. This must only be set for UrlMaps used in +// TargetHttpProxys. Setting this true for TargetHttpsProxy is not +// permitted. The default is set to false. +func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput) HttpsRedirect() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleUrlRedirect) *bool { + if v == nil { + return nil + } + return v.HttpsRedirect + }).(pulumi.BoolPtrOutput) +} -func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink)(nil)).Elem() +// The path that will be used in the redirect response instead of the one +// that was supplied in the request. pathRedirect cannot be supplied +// together with prefixRedirect. Supply one alone or neither. If neither is +// supplied, the path of the original request will be used for the redirect. +// The value must be between 1 and 1024 characters. +func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput) PathRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleUrlRedirect) *string { + if v == nil { + return nil + } + return v.PathRedirect + }).(pulumi.StringPtrOutput) } -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput { - return o +// The prefix that replaces the prefixMatch specified in the +// HttpRouteRuleMatch, retaining the remaining portion of the URL before +// redirecting the request. prefixRedirect cannot be supplied together with +// pathRedirect. Supply one alone or neither. If neither is supplied, the +// path of the original request will be used for the redirect. The value +// must be between 1 and 1024 characters. +func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput) PrefixRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleUrlRedirect) *string { + if v == nil { + return nil + } + return v.PrefixRedirect + }).(pulumi.StringPtrOutput) } -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput { - return o +// The HTTP Status code to use for this RedirectAction. Supported values are: +// - MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. +// - FOUND, which corresponds to 302. +// - SEE_OTHER which corresponds to 303. +// - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method +// will be retained. +// - PERMANENT_REDIRECT, which corresponds to 308. In this case, +// the request method will be retained. +func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput) RedirectResponseCode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleUrlRedirect) *string { + if v == nil { + return nil + } + return v.RedirectResponseCode + }).(pulumi.StringPtrOutput) } -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink { - return vs[0].([]ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink)[vs[1].(int)] - }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput) +// If set to true, any accompanying query portion of the original URL is removed +// prior to redirecting the request. If set to false, the query portion of the +// original URL is retained. +// This field is required to ensure an empty block is not set. The normal default value is false. +func (o RegionUrlMapPathMatcherRouteRuleUrlRedirectPtrOutput) StripQuery() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RegionUrlMapPathMatcherRouteRuleUrlRedirect) *bool { + if v == nil { + return nil + } + return v.StripQuery + }).(pulumi.BoolPtrOutput) } -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage struct { - // (Output) - // The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" - Locale *string `pulumi:"locale"` - // (Output) - // The localized error message in the above locale. - Message *string `pulumi:"message"` +type RegionUrlMapTest struct { + // Description of this test case. + Description *string `pulumi:"description"` + // Host portion of the URL. + Host string `pulumi:"host"` + // Path portion of the URL. + Path string `pulumi:"path"` + // A reference to expected RegionBackendService resource the given URL should be mapped to. + Service string `pulumi:"service"` } -// ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs and ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput values. -// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageInput` via: +// RegionUrlMapTestInput is an input type that accepts RegionUrlMapTestArgs and RegionUrlMapTestOutput values. +// You can construct a concrete instance of `RegionUrlMapTestInput` via: // -// ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs{...} -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageInput interface { +// RegionUrlMapTestArgs{...} +type RegionUrlMapTestInput interface { pulumi.Input - ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput - ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput + ToRegionUrlMapTestOutput() RegionUrlMapTestOutput + ToRegionUrlMapTestOutputWithContext(context.Context) RegionUrlMapTestOutput } -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs struct { - // (Output) - // The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" - Locale pulumi.StringPtrInput `pulumi:"locale"` - // (Output) - // The localized error message in the above locale. - Message pulumi.StringPtrInput `pulumi:"message"` +type RegionUrlMapTestArgs struct { + // Description of this test case. + Description pulumi.StringPtrInput `pulumi:"description"` + // Host portion of the URL. + Host pulumi.StringInput `pulumi:"host"` + // Path portion of the URL. + Path pulumi.StringInput `pulumi:"path"` + // A reference to expected RegionBackendService resource the given URL should be mapped to. + Service pulumi.StringInput `pulumi:"service"` } -func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage)(nil)).Elem() +func (RegionUrlMapTestArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapTest)(nil)).Elem() } -func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput { - return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutputWithContext(context.Background()) +func (i RegionUrlMapTestArgs) ToRegionUrlMapTestOutput() RegionUrlMapTestOutput { + return i.ToRegionUrlMapTestOutputWithContext(context.Background()) } -func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput) +func (i RegionUrlMapTestArgs) ToRegionUrlMapTestOutputWithContext(ctx context.Context) RegionUrlMapTestOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapTestOutput) } -// ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArray and ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput values. -// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayInput` via: +// RegionUrlMapTestArrayInput is an input type that accepts RegionUrlMapTestArray and RegionUrlMapTestArrayOutput values. +// You can construct a concrete instance of `RegionUrlMapTestArrayInput` via: // -// ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArray{ ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs{...} } -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayInput interface { +// RegionUrlMapTestArray{ RegionUrlMapTestArgs{...} } +type RegionUrlMapTestArrayInput interface { pulumi.Input - ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput - ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput + ToRegionUrlMapTestArrayOutput() RegionUrlMapTestArrayOutput + ToRegionUrlMapTestArrayOutputWithContext(context.Context) RegionUrlMapTestArrayOutput } -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArray []ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageInput +type RegionUrlMapTestArray []RegionUrlMapTestInput -func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage)(nil)).Elem() +func (RegionUrlMapTestArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapTest)(nil)).Elem() } -func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput { - return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutputWithContext(context.Background()) +func (i RegionUrlMapTestArray) ToRegionUrlMapTestArrayOutput() RegionUrlMapTestArrayOutput { + return i.ToRegionUrlMapTestArrayOutputWithContext(context.Background()) } -func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput) +func (i RegionUrlMapTestArray) ToRegionUrlMapTestArrayOutputWithContext(ctx context.Context) RegionUrlMapTestArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionUrlMapTestArrayOutput) } -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput struct{ *pulumi.OutputState } +type RegionUrlMapTestOutput struct{ *pulumi.OutputState } -func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage)(nil)).Elem() +func (RegionUrlMapTestOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionUrlMapTest)(nil)).Elem() } -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput { +func (o RegionUrlMapTestOutput) ToRegionUrlMapTestOutput() RegionUrlMapTestOutput { return o } -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput { +func (o RegionUrlMapTestOutput) ToRegionUrlMapTestOutputWithContext(ctx context.Context) RegionUrlMapTestOutput { return o } -// (Output) -// The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput) Locale() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage) *string { return v.Locale }).(pulumi.StringPtrOutput) +// Description of this test case. +func (o RegionUrlMapTestOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionUrlMapTest) *string { return v.Description }).(pulumi.StringPtrOutput) } -// (Output) -// The localized error message in the above locale. -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput) Message() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage) *string { return v.Message }).(pulumi.StringPtrOutput) +// Host portion of the URL. +func (o RegionUrlMapTestOutput) Host() pulumi.StringOutput { + return o.ApplyT(func(v RegionUrlMapTest) string { return v.Host }).(pulumi.StringOutput) } -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput struct{ *pulumi.OutputState } +// Path portion of the URL. +func (o RegionUrlMapTestOutput) Path() pulumi.StringOutput { + return o.ApplyT(func(v RegionUrlMapTest) string { return v.Path }).(pulumi.StringOutput) +} -func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage)(nil)).Elem() +// A reference to expected RegionBackendService resource the given URL should be mapped to. +func (o RegionUrlMapTestOutput) Service() pulumi.StringOutput { + return o.ApplyT(func(v RegionUrlMapTest) string { return v.Service }).(pulumi.StringOutput) } -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput { +type RegionUrlMapTestArrayOutput struct{ *pulumi.OutputState } + +func (RegionUrlMapTestArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionUrlMapTest)(nil)).Elem() +} + +func (o RegionUrlMapTestArrayOutput) ToRegionUrlMapTestArrayOutput() RegionUrlMapTestArrayOutput { return o } -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput { +func (o RegionUrlMapTestArrayOutput) ToRegionUrlMapTestArrayOutputWithContext(ctx context.Context) RegionUrlMapTestArrayOutput { return o } -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage { - return vs[0].([]ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage)[vs[1].(int)] - }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput) +func (o RegionUrlMapTestArrayOutput) Index(i pulumi.IntInput) RegionUrlMapTestOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionUrlMapTest { + return vs[0].([]RegionUrlMapTest)[vs[1].(int)] + }).(RegionUrlMapTestOutput) } -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo struct { - // (Output) - // The map holding related quota dimensions - Dimensions map[string]string `pulumi:"dimensions"` - // (Output) - // Future quota limit being rolled out. The limit's unit depends on the quota type or metric. - FutureLimit *int `pulumi:"futureLimit"` - // (Output) - // Current effective quota limit. The limit's unit depends on the quota type or metric. - Limit *int `pulumi:"limit"` - // (Output) - // The name of the quota limit. - LimitName *string `pulumi:"limitName"` - // (Output) - // The Compute Engine quota metric name. - MetricName *string `pulumi:"metricName"` - // (Output) - // Rollout status of the future quota limit. - RolloutStatus *string `pulumi:"rolloutStatus"` +type ReservationShareSettings struct { + // A map of project number and project config. This is only valid when shareType's value is SPECIFIC_PROJECTS. + // Structure is documented below. + ProjectMaps []ReservationShareSettingsProjectMap `pulumi:"projectMaps"` + // Type of sharing for this shared-reservation + // Possible values are: `LOCAL`, `SPECIFIC_PROJECTS`. + ShareType *string `pulumi:"shareType"` } -// ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs and ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput values. -// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoInput` via: +// ReservationShareSettingsInput is an input type that accepts ReservationShareSettingsArgs and ReservationShareSettingsOutput values. +// You can construct a concrete instance of `ReservationShareSettingsInput` via: // -// ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs{...} -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoInput interface { +// ReservationShareSettingsArgs{...} +type ReservationShareSettingsInput interface { pulumi.Input - ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput - ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput + ToReservationShareSettingsOutput() ReservationShareSettingsOutput + ToReservationShareSettingsOutputWithContext(context.Context) ReservationShareSettingsOutput } -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs struct { - // (Output) - // The map holding related quota dimensions - Dimensions pulumi.StringMapInput `pulumi:"dimensions"` - // (Output) - // Future quota limit being rolled out. The limit's unit depends on the quota type or metric. - FutureLimit pulumi.IntPtrInput `pulumi:"futureLimit"` - // (Output) - // Current effective quota limit. The limit's unit depends on the quota type or metric. - Limit pulumi.IntPtrInput `pulumi:"limit"` - // (Output) - // The name of the quota limit. - LimitName pulumi.StringPtrInput `pulumi:"limitName"` - // (Output) - // The Compute Engine quota metric name. - MetricName pulumi.StringPtrInput `pulumi:"metricName"` - // (Output) - // Rollout status of the future quota limit. - RolloutStatus pulumi.StringPtrInput `pulumi:"rolloutStatus"` +type ReservationShareSettingsArgs struct { + // A map of project number and project config. This is only valid when shareType's value is SPECIFIC_PROJECTS. + // Structure is documented below. + ProjectMaps ReservationShareSettingsProjectMapArrayInput `pulumi:"projectMaps"` + // Type of sharing for this shared-reservation + // Possible values are: `LOCAL`, `SPECIFIC_PROJECTS`. + ShareType pulumi.StringPtrInput `pulumi:"shareType"` } -func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo)(nil)).Elem() +func (ReservationShareSettingsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ReservationShareSettings)(nil)).Elem() } -func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput { - return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutputWithContext(context.Background()) +func (i ReservationShareSettingsArgs) ToReservationShareSettingsOutput() ReservationShareSettingsOutput { + return i.ToReservationShareSettingsOutputWithContext(context.Background()) } -func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) +func (i ReservationShareSettingsArgs) ToReservationShareSettingsOutputWithContext(ctx context.Context) ReservationShareSettingsOutput { + return pulumi.ToOutputWithContext(ctx, i).(ReservationShareSettingsOutput) } -// ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArray and ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput values. -// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayInput` via: +func (i ReservationShareSettingsArgs) ToReservationShareSettingsPtrOutput() ReservationShareSettingsPtrOutput { + return i.ToReservationShareSettingsPtrOutputWithContext(context.Background()) +} + +func (i ReservationShareSettingsArgs) ToReservationShareSettingsPtrOutputWithContext(ctx context.Context) ReservationShareSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ReservationShareSettingsOutput).ToReservationShareSettingsPtrOutputWithContext(ctx) +} + +// ReservationShareSettingsPtrInput is an input type that accepts ReservationShareSettingsArgs, ReservationShareSettingsPtr and ReservationShareSettingsPtrOutput values. +// You can construct a concrete instance of `ReservationShareSettingsPtrInput` via: // -// ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArray{ ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs{...} } -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayInput interface { +// ReservationShareSettingsArgs{...} +// +// or: +// +// nil +type ReservationShareSettingsPtrInput interface { pulumi.Input - ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput - ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput + ToReservationShareSettingsPtrOutput() ReservationShareSettingsPtrOutput + ToReservationShareSettingsPtrOutputWithContext(context.Context) ReservationShareSettingsPtrOutput } -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArray []ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoInput +type reservationShareSettingsPtrType ReservationShareSettingsArgs -func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo)(nil)).Elem() +func ReservationShareSettingsPtr(v *ReservationShareSettingsArgs) ReservationShareSettingsPtrInput { + return (*reservationShareSettingsPtrType)(v) } -func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput { - return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutputWithContext(context.Background()) +func (*reservationShareSettingsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ReservationShareSettings)(nil)).Elem() } -func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput) +func (i *reservationShareSettingsPtrType) ToReservationShareSettingsPtrOutput() ReservationShareSettingsPtrOutput { + return i.ToReservationShareSettingsPtrOutputWithContext(context.Background()) } -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput struct{ *pulumi.OutputState } - -func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo)(nil)).Elem() +func (i *reservationShareSettingsPtrType) ToReservationShareSettingsPtrOutputWithContext(ctx context.Context) ReservationShareSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ReservationShareSettingsPtrOutput) } -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput { - return o -} +type ReservationShareSettingsOutput struct{ *pulumi.OutputState } -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput { - return o +func (ReservationShareSettingsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ReservationShareSettings)(nil)).Elem() } -// (Output) -// The map holding related quota dimensions -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) Dimensions() pulumi.StringMapOutput { - return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo) map[string]string { - return v.Dimensions - }).(pulumi.StringMapOutput) +func (o ReservationShareSettingsOutput) ToReservationShareSettingsOutput() ReservationShareSettingsOutput { + return o } -// (Output) -// Future quota limit being rolled out. The limit's unit depends on the quota type or metric. -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) FutureLimit() pulumi.IntPtrOutput { - return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo) *int { return v.FutureLimit }).(pulumi.IntPtrOutput) +func (o ReservationShareSettingsOutput) ToReservationShareSettingsOutputWithContext(ctx context.Context) ReservationShareSettingsOutput { + return o } -// (Output) -// Current effective quota limit. The limit's unit depends on the quota type or metric. -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) Limit() pulumi.IntPtrOutput { - return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo) *int { return v.Limit }).(pulumi.IntPtrOutput) +func (o ReservationShareSettingsOutput) ToReservationShareSettingsPtrOutput() ReservationShareSettingsPtrOutput { + return o.ToReservationShareSettingsPtrOutputWithContext(context.Background()) } -// (Output) -// The name of the quota limit. -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) LimitName() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo) *string { return v.LimitName }).(pulumi.StringPtrOutput) +func (o ReservationShareSettingsOutput) ToReservationShareSettingsPtrOutputWithContext(ctx context.Context) ReservationShareSettingsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ReservationShareSettings) *ReservationShareSettings { + return &v + }).(ReservationShareSettingsPtrOutput) } -// (Output) -// The Compute Engine quota metric name. -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) MetricName() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo) *string { return v.MetricName }).(pulumi.StringPtrOutput) +// A map of project number and project config. This is only valid when shareType's value is SPECIFIC_PROJECTS. +// Structure is documented below. +func (o ReservationShareSettingsOutput) ProjectMaps() ReservationShareSettingsProjectMapArrayOutput { + return o.ApplyT(func(v ReservationShareSettings) []ReservationShareSettingsProjectMap { return v.ProjectMaps }).(ReservationShareSettingsProjectMapArrayOutput) } -// (Output) -// Rollout status of the future quota limit. -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) RolloutStatus() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo) *string { return v.RolloutStatus }).(pulumi.StringPtrOutput) +// Type of sharing for this shared-reservation +// Possible values are: `LOCAL`, `SPECIFIC_PROJECTS`. +func (o ReservationShareSettingsOutput) ShareType() pulumi.StringPtrOutput { + return o.ApplyT(func(v ReservationShareSettings) *string { return v.ShareType }).(pulumi.StringPtrOutput) } -type ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput struct{ *pulumi.OutputState } +type ReservationShareSettingsPtrOutput struct{ *pulumi.OutputState } -func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo)(nil)).Elem() +func (ReservationShareSettingsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ReservationShareSettings)(nil)).Elem() } -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput { +func (o ReservationShareSettingsPtrOutput) ToReservationShareSettingsPtrOutput() ReservationShareSettingsPtrOutput { return o } -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput { +func (o ReservationShareSettingsPtrOutput) ToReservationShareSettingsPtrOutputWithContext(ctx context.Context) ReservationShareSettingsPtrOutput { return o } -func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo { - return vs[0].([]ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo)[vs[1].(int)] - }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) +func (o ReservationShareSettingsPtrOutput) Elem() ReservationShareSettingsOutput { + return o.ApplyT(func(v *ReservationShareSettings) ReservationShareSettings { + if v != nil { + return *v + } + var ret ReservationShareSettings + return ret + }).(ReservationShareSettingsOutput) } -type ResourcePolicyDiskConsistencyGroupPolicy struct { - // Enable disk consistency on the resource policy. - Enabled bool `pulumi:"enabled"` +// A map of project number and project config. This is only valid when shareType's value is SPECIFIC_PROJECTS. +// Structure is documented below. +func (o ReservationShareSettingsPtrOutput) ProjectMaps() ReservationShareSettingsProjectMapArrayOutput { + return o.ApplyT(func(v *ReservationShareSettings) []ReservationShareSettingsProjectMap { + if v == nil { + return nil + } + return v.ProjectMaps + }).(ReservationShareSettingsProjectMapArrayOutput) } -// ResourcePolicyDiskConsistencyGroupPolicyInput is an input type that accepts ResourcePolicyDiskConsistencyGroupPolicyArgs and ResourcePolicyDiskConsistencyGroupPolicyOutput values. -// You can construct a concrete instance of `ResourcePolicyDiskConsistencyGroupPolicyInput` via: -// -// ResourcePolicyDiskConsistencyGroupPolicyArgs{...} -type ResourcePolicyDiskConsistencyGroupPolicyInput interface { - pulumi.Input - - ToResourcePolicyDiskConsistencyGroupPolicyOutput() ResourcePolicyDiskConsistencyGroupPolicyOutput - ToResourcePolicyDiskConsistencyGroupPolicyOutputWithContext(context.Context) ResourcePolicyDiskConsistencyGroupPolicyOutput +// Type of sharing for this shared-reservation +// Possible values are: `LOCAL`, `SPECIFIC_PROJECTS`. +func (o ReservationShareSettingsPtrOutput) ShareType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ReservationShareSettings) *string { + if v == nil { + return nil + } + return v.ShareType + }).(pulumi.StringPtrOutput) } -type ResourcePolicyDiskConsistencyGroupPolicyArgs struct { - // Enable disk consistency on the resource policy. - Enabled pulumi.BoolInput `pulumi:"enabled"` +type ReservationShareSettingsProjectMap struct { + // The identifier for this object. Format specified above. + Id string `pulumi:"id"` + // The project id/number, should be same as the key of this project config in the project map. + ProjectId *string `pulumi:"projectId"` } -func (ResourcePolicyDiskConsistencyGroupPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicyDiskConsistencyGroupPolicy)(nil)).Elem() +// ReservationShareSettingsProjectMapInput is an input type that accepts ReservationShareSettingsProjectMap and ReservationShareSettingsProjectMapOutput values. +// You can construct a concrete instance of `ReservationShareSettingsProjectMapInput` via: +// +// ReservationShareSettingsProjectMap{ "key": ReservationShareSettingsProjectArgs{...} } +type ReservationShareSettingsProjectMapInput interface { + pulumi.Input + + ToReservationShareSettingsProjectMapOutput() ReservationShareSettingsProjectMapOutput + ToReservationShareSettingsProjectMapOutputWithContext(context.Context) ReservationShareSettingsProjectMapOutput } -func (i ResourcePolicyDiskConsistencyGroupPolicyArgs) ToResourcePolicyDiskConsistencyGroupPolicyOutput() ResourcePolicyDiskConsistencyGroupPolicyOutput { - return i.ToResourcePolicyDiskConsistencyGroupPolicyOutputWithContext(context.Background()) +type ReservationShareSettingsProjectMapArgs struct { + // The identifier for this object. Format specified above. + Id pulumi.StringInput `pulumi:"id"` + // The project id/number, should be same as the key of this project config in the project map. + ProjectId pulumi.StringPtrInput `pulumi:"projectId"` } -func (i ResourcePolicyDiskConsistencyGroupPolicyArgs) ToResourcePolicyDiskConsistencyGroupPolicyOutputWithContext(ctx context.Context) ResourcePolicyDiskConsistencyGroupPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyDiskConsistencyGroupPolicyOutput) +func (ReservationShareSettingsProjectMapArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ReservationShareSettingsProjectMap)(nil)).Elem() } -func (i ResourcePolicyDiskConsistencyGroupPolicyArgs) ToResourcePolicyDiskConsistencyGroupPolicyPtrOutput() ResourcePolicyDiskConsistencyGroupPolicyPtrOutput { - return i.ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(context.Background()) +func (i ReservationShareSettingsProjectMapArgs) ToReservationShareSettingsProjectMapOutput() ReservationShareSettingsProjectMapOutput { + return i.ToReservationShareSettingsProjectMapOutputWithContext(context.Background()) } -func (i ResourcePolicyDiskConsistencyGroupPolicyArgs) ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyDiskConsistencyGroupPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyDiskConsistencyGroupPolicyOutput).ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(ctx) +func (i ReservationShareSettingsProjectMapArgs) ToReservationShareSettingsProjectMapOutputWithContext(ctx context.Context) ReservationShareSettingsProjectMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ReservationShareSettingsProjectMapOutput) } -// ResourcePolicyDiskConsistencyGroupPolicyPtrInput is an input type that accepts ResourcePolicyDiskConsistencyGroupPolicyArgs, ResourcePolicyDiskConsistencyGroupPolicyPtr and ResourcePolicyDiskConsistencyGroupPolicyPtrOutput values. -// You can construct a concrete instance of `ResourcePolicyDiskConsistencyGroupPolicyPtrInput` via: -// -// ResourcePolicyDiskConsistencyGroupPolicyArgs{...} -// -// or: +// ReservationShareSettingsProjectMapArrayInput is an input type that accepts ReservationShareSettingsProjectMapArray and ReservationShareSettingsProjectMapArrayOutput values. +// You can construct a concrete instance of `ReservationShareSettingsProjectMapArrayInput` via: // -// nil -type ResourcePolicyDiskConsistencyGroupPolicyPtrInput interface { +// ReservationShareSettingsProjectMapArray{ ReservationShareSettingsProjectMapArgs{...} } +type ReservationShareSettingsProjectMapArrayInput interface { pulumi.Input - ToResourcePolicyDiskConsistencyGroupPolicyPtrOutput() ResourcePolicyDiskConsistencyGroupPolicyPtrOutput - ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(context.Context) ResourcePolicyDiskConsistencyGroupPolicyPtrOutput + ToReservationShareSettingsProjectMapArrayOutput() ReservationShareSettingsProjectMapArrayOutput + ToReservationShareSettingsProjectMapArrayOutputWithContext(context.Context) ReservationShareSettingsProjectMapArrayOutput } -type resourcePolicyDiskConsistencyGroupPolicyPtrType ResourcePolicyDiskConsistencyGroupPolicyArgs - -func ResourcePolicyDiskConsistencyGroupPolicyPtr(v *ResourcePolicyDiskConsistencyGroupPolicyArgs) ResourcePolicyDiskConsistencyGroupPolicyPtrInput { - return (*resourcePolicyDiskConsistencyGroupPolicyPtrType)(v) -} +type ReservationShareSettingsProjectMapArray []ReservationShareSettingsProjectMapInput -func (*resourcePolicyDiskConsistencyGroupPolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicyDiskConsistencyGroupPolicy)(nil)).Elem() +func (ReservationShareSettingsProjectMapArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ReservationShareSettingsProjectMap)(nil)).Elem() } -func (i *resourcePolicyDiskConsistencyGroupPolicyPtrType) ToResourcePolicyDiskConsistencyGroupPolicyPtrOutput() ResourcePolicyDiskConsistencyGroupPolicyPtrOutput { - return i.ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(context.Background()) +func (i ReservationShareSettingsProjectMapArray) ToReservationShareSettingsProjectMapArrayOutput() ReservationShareSettingsProjectMapArrayOutput { + return i.ToReservationShareSettingsProjectMapArrayOutputWithContext(context.Background()) } -func (i *resourcePolicyDiskConsistencyGroupPolicyPtrType) ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyDiskConsistencyGroupPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyDiskConsistencyGroupPolicyPtrOutput) +func (i ReservationShareSettingsProjectMapArray) ToReservationShareSettingsProjectMapArrayOutputWithContext(ctx context.Context) ReservationShareSettingsProjectMapArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ReservationShareSettingsProjectMapArrayOutput) } -type ResourcePolicyDiskConsistencyGroupPolicyOutput struct{ *pulumi.OutputState } +type ReservationShareSettingsProjectMapOutput struct{ *pulumi.OutputState } -func (ResourcePolicyDiskConsistencyGroupPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicyDiskConsistencyGroupPolicy)(nil)).Elem() +func (ReservationShareSettingsProjectMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ReservationShareSettingsProjectMap)(nil)).Elem() } -func (o ResourcePolicyDiskConsistencyGroupPolicyOutput) ToResourcePolicyDiskConsistencyGroupPolicyOutput() ResourcePolicyDiskConsistencyGroupPolicyOutput { +func (o ReservationShareSettingsProjectMapOutput) ToReservationShareSettingsProjectMapOutput() ReservationShareSettingsProjectMapOutput { return o } -func (o ResourcePolicyDiskConsistencyGroupPolicyOutput) ToResourcePolicyDiskConsistencyGroupPolicyOutputWithContext(ctx context.Context) ResourcePolicyDiskConsistencyGroupPolicyOutput { +func (o ReservationShareSettingsProjectMapOutput) ToReservationShareSettingsProjectMapOutputWithContext(ctx context.Context) ReservationShareSettingsProjectMapOutput { return o } -func (o ResourcePolicyDiskConsistencyGroupPolicyOutput) ToResourcePolicyDiskConsistencyGroupPolicyPtrOutput() ResourcePolicyDiskConsistencyGroupPolicyPtrOutput { - return o.ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(context.Background()) -} - -func (o ResourcePolicyDiskConsistencyGroupPolicyOutput) ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyDiskConsistencyGroupPolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicyDiskConsistencyGroupPolicy) *ResourcePolicyDiskConsistencyGroupPolicy { - return &v - }).(ResourcePolicyDiskConsistencyGroupPolicyPtrOutput) +// The identifier for this object. Format specified above. +func (o ReservationShareSettingsProjectMapOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v ReservationShareSettingsProjectMap) string { return v.Id }).(pulumi.StringOutput) } -// Enable disk consistency on the resource policy. -func (o ResourcePolicyDiskConsistencyGroupPolicyOutput) Enabled() pulumi.BoolOutput { - return o.ApplyT(func(v ResourcePolicyDiskConsistencyGroupPolicy) bool { return v.Enabled }).(pulumi.BoolOutput) +// The project id/number, should be same as the key of this project config in the project map. +func (o ReservationShareSettingsProjectMapOutput) ProjectId() pulumi.StringPtrOutput { + return o.ApplyT(func(v ReservationShareSettingsProjectMap) *string { return v.ProjectId }).(pulumi.StringPtrOutput) } -type ResourcePolicyDiskConsistencyGroupPolicyPtrOutput struct{ *pulumi.OutputState } +type ReservationShareSettingsProjectMapArrayOutput struct{ *pulumi.OutputState } -func (ResourcePolicyDiskConsistencyGroupPolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicyDiskConsistencyGroupPolicy)(nil)).Elem() +func (ReservationShareSettingsProjectMapArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ReservationShareSettingsProjectMap)(nil)).Elem() } -func (o ResourcePolicyDiskConsistencyGroupPolicyPtrOutput) ToResourcePolicyDiskConsistencyGroupPolicyPtrOutput() ResourcePolicyDiskConsistencyGroupPolicyPtrOutput { +func (o ReservationShareSettingsProjectMapArrayOutput) ToReservationShareSettingsProjectMapArrayOutput() ReservationShareSettingsProjectMapArrayOutput { return o } -func (o ResourcePolicyDiskConsistencyGroupPolicyPtrOutput) ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyDiskConsistencyGroupPolicyPtrOutput { +func (o ReservationShareSettingsProjectMapArrayOutput) ToReservationShareSettingsProjectMapArrayOutputWithContext(ctx context.Context) ReservationShareSettingsProjectMapArrayOutput { return o } -func (o ResourcePolicyDiskConsistencyGroupPolicyPtrOutput) Elem() ResourcePolicyDiskConsistencyGroupPolicyOutput { - return o.ApplyT(func(v *ResourcePolicyDiskConsistencyGroupPolicy) ResourcePolicyDiskConsistencyGroupPolicy { - if v != nil { - return *v - } - var ret ResourcePolicyDiskConsistencyGroupPolicy - return ret - }).(ResourcePolicyDiskConsistencyGroupPolicyOutput) -} - -// Enable disk consistency on the resource policy. -func (o ResourcePolicyDiskConsistencyGroupPolicyPtrOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *ResourcePolicyDiskConsistencyGroupPolicy) *bool { - if v == nil { - return nil - } - return &v.Enabled - }).(pulumi.BoolPtrOutput) +func (o ReservationShareSettingsProjectMapArrayOutput) Index(i pulumi.IntInput) ReservationShareSettingsProjectMapOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ReservationShareSettingsProjectMap { + return vs[0].([]ReservationShareSettingsProjectMap)[vs[1].(int)] + }).(ReservationShareSettingsProjectMapOutput) } -type ResourcePolicyGroupPlacementPolicy struct { - // The number of availability domains instances will be spread across. If two instances are in different - // availability domain, they will not be put in the same low latency network - AvailabilityDomainCount *int `pulumi:"availabilityDomainCount"` - // Collocation specifies whether to place VMs inside the same availability domain on the same low-latency network. - // Specify `COLLOCATED` to enable collocation. Can only be specified with `vmCount`. If compute instances are created - // with a COLLOCATED policy, then exactly `vmCount` instances must be created at the same time with the resource policy - // attached. - // Possible values are: `COLLOCATED`. - Collocation *string `pulumi:"collocation"` - // Specifies the number of max logical switches. - MaxDistance *int `pulumi:"maxDistance"` - // Number of VMs in this placement group. Google does not recommend that you use this field - // unless you use a compact policy and you want your policy to work only if it contains this - // exact number of VMs. - VmCount *int `pulumi:"vmCount"` +type ReservationSpecificReservation struct { + // The number of resources that are allocated. + Count int `pulumi:"count"` + // (Output) + // How many instances are in use. + InUseCount *int `pulumi:"inUseCount"` + // The instance properties for the reservation. + // Structure is documented below. + InstanceProperties ReservationSpecificReservationInstanceProperties `pulumi:"instanceProperties"` } -// ResourcePolicyGroupPlacementPolicyInput is an input type that accepts ResourcePolicyGroupPlacementPolicyArgs and ResourcePolicyGroupPlacementPolicyOutput values. -// You can construct a concrete instance of `ResourcePolicyGroupPlacementPolicyInput` via: +// ReservationSpecificReservationInput is an input type that accepts ReservationSpecificReservationArgs and ReservationSpecificReservationOutput values. +// You can construct a concrete instance of `ReservationSpecificReservationInput` via: // -// ResourcePolicyGroupPlacementPolicyArgs{...} -type ResourcePolicyGroupPlacementPolicyInput interface { +// ReservationSpecificReservationArgs{...} +type ReservationSpecificReservationInput interface { pulumi.Input - ToResourcePolicyGroupPlacementPolicyOutput() ResourcePolicyGroupPlacementPolicyOutput - ToResourcePolicyGroupPlacementPolicyOutputWithContext(context.Context) ResourcePolicyGroupPlacementPolicyOutput + ToReservationSpecificReservationOutput() ReservationSpecificReservationOutput + ToReservationSpecificReservationOutputWithContext(context.Context) ReservationSpecificReservationOutput } -type ResourcePolicyGroupPlacementPolicyArgs struct { - // The number of availability domains instances will be spread across. If two instances are in different - // availability domain, they will not be put in the same low latency network - AvailabilityDomainCount pulumi.IntPtrInput `pulumi:"availabilityDomainCount"` - // Collocation specifies whether to place VMs inside the same availability domain on the same low-latency network. - // Specify `COLLOCATED` to enable collocation. Can only be specified with `vmCount`. If compute instances are created - // with a COLLOCATED policy, then exactly `vmCount` instances must be created at the same time with the resource policy - // attached. - // Possible values are: `COLLOCATED`. - Collocation pulumi.StringPtrInput `pulumi:"collocation"` - // Specifies the number of max logical switches. - MaxDistance pulumi.IntPtrInput `pulumi:"maxDistance"` - // Number of VMs in this placement group. Google does not recommend that you use this field - // unless you use a compact policy and you want your policy to work only if it contains this - // exact number of VMs. - VmCount pulumi.IntPtrInput `pulumi:"vmCount"` +type ReservationSpecificReservationArgs struct { + // The number of resources that are allocated. + Count pulumi.IntInput `pulumi:"count"` + // (Output) + // How many instances are in use. + InUseCount pulumi.IntPtrInput `pulumi:"inUseCount"` + // The instance properties for the reservation. + // Structure is documented below. + InstanceProperties ReservationSpecificReservationInstancePropertiesInput `pulumi:"instanceProperties"` } -func (ResourcePolicyGroupPlacementPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicyGroupPlacementPolicy)(nil)).Elem() +func (ReservationSpecificReservationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ReservationSpecificReservation)(nil)).Elem() } -func (i ResourcePolicyGroupPlacementPolicyArgs) ToResourcePolicyGroupPlacementPolicyOutput() ResourcePolicyGroupPlacementPolicyOutput { - return i.ToResourcePolicyGroupPlacementPolicyOutputWithContext(context.Background()) +func (i ReservationSpecificReservationArgs) ToReservationSpecificReservationOutput() ReservationSpecificReservationOutput { + return i.ToReservationSpecificReservationOutputWithContext(context.Background()) } -func (i ResourcePolicyGroupPlacementPolicyArgs) ToResourcePolicyGroupPlacementPolicyOutputWithContext(ctx context.Context) ResourcePolicyGroupPlacementPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyGroupPlacementPolicyOutput) +func (i ReservationSpecificReservationArgs) ToReservationSpecificReservationOutputWithContext(ctx context.Context) ReservationSpecificReservationOutput { + return pulumi.ToOutputWithContext(ctx, i).(ReservationSpecificReservationOutput) } -func (i ResourcePolicyGroupPlacementPolicyArgs) ToResourcePolicyGroupPlacementPolicyPtrOutput() ResourcePolicyGroupPlacementPolicyPtrOutput { - return i.ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(context.Background()) +func (i ReservationSpecificReservationArgs) ToReservationSpecificReservationPtrOutput() ReservationSpecificReservationPtrOutput { + return i.ToReservationSpecificReservationPtrOutputWithContext(context.Background()) } -func (i ResourcePolicyGroupPlacementPolicyArgs) ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyGroupPlacementPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyGroupPlacementPolicyOutput).ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(ctx) +func (i ReservationSpecificReservationArgs) ToReservationSpecificReservationPtrOutputWithContext(ctx context.Context) ReservationSpecificReservationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ReservationSpecificReservationOutput).ToReservationSpecificReservationPtrOutputWithContext(ctx) } -// ResourcePolicyGroupPlacementPolicyPtrInput is an input type that accepts ResourcePolicyGroupPlacementPolicyArgs, ResourcePolicyGroupPlacementPolicyPtr and ResourcePolicyGroupPlacementPolicyPtrOutput values. -// You can construct a concrete instance of `ResourcePolicyGroupPlacementPolicyPtrInput` via: +// ReservationSpecificReservationPtrInput is an input type that accepts ReservationSpecificReservationArgs, ReservationSpecificReservationPtr and ReservationSpecificReservationPtrOutput values. +// You can construct a concrete instance of `ReservationSpecificReservationPtrInput` via: // -// ResourcePolicyGroupPlacementPolicyArgs{...} +// ReservationSpecificReservationArgs{...} // // or: // // nil -type ResourcePolicyGroupPlacementPolicyPtrInput interface { +type ReservationSpecificReservationPtrInput interface { pulumi.Input - ToResourcePolicyGroupPlacementPolicyPtrOutput() ResourcePolicyGroupPlacementPolicyPtrOutput - ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(context.Context) ResourcePolicyGroupPlacementPolicyPtrOutput + ToReservationSpecificReservationPtrOutput() ReservationSpecificReservationPtrOutput + ToReservationSpecificReservationPtrOutputWithContext(context.Context) ReservationSpecificReservationPtrOutput } -type resourcePolicyGroupPlacementPolicyPtrType ResourcePolicyGroupPlacementPolicyArgs +type reservationSpecificReservationPtrType ReservationSpecificReservationArgs -func ResourcePolicyGroupPlacementPolicyPtr(v *ResourcePolicyGroupPlacementPolicyArgs) ResourcePolicyGroupPlacementPolicyPtrInput { - return (*resourcePolicyGroupPlacementPolicyPtrType)(v) +func ReservationSpecificReservationPtr(v *ReservationSpecificReservationArgs) ReservationSpecificReservationPtrInput { + return (*reservationSpecificReservationPtrType)(v) } -func (*resourcePolicyGroupPlacementPolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicyGroupPlacementPolicy)(nil)).Elem() +func (*reservationSpecificReservationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ReservationSpecificReservation)(nil)).Elem() } -func (i *resourcePolicyGroupPlacementPolicyPtrType) ToResourcePolicyGroupPlacementPolicyPtrOutput() ResourcePolicyGroupPlacementPolicyPtrOutput { - return i.ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(context.Background()) +func (i *reservationSpecificReservationPtrType) ToReservationSpecificReservationPtrOutput() ReservationSpecificReservationPtrOutput { + return i.ToReservationSpecificReservationPtrOutputWithContext(context.Background()) } -func (i *resourcePolicyGroupPlacementPolicyPtrType) ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyGroupPlacementPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyGroupPlacementPolicyPtrOutput) +func (i *reservationSpecificReservationPtrType) ToReservationSpecificReservationPtrOutputWithContext(ctx context.Context) ReservationSpecificReservationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ReservationSpecificReservationPtrOutput) } -type ResourcePolicyGroupPlacementPolicyOutput struct{ *pulumi.OutputState } +type ReservationSpecificReservationOutput struct{ *pulumi.OutputState } -func (ResourcePolicyGroupPlacementPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicyGroupPlacementPolicy)(nil)).Elem() +func (ReservationSpecificReservationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ReservationSpecificReservation)(nil)).Elem() } -func (o ResourcePolicyGroupPlacementPolicyOutput) ToResourcePolicyGroupPlacementPolicyOutput() ResourcePolicyGroupPlacementPolicyOutput { +func (o ReservationSpecificReservationOutput) ToReservationSpecificReservationOutput() ReservationSpecificReservationOutput { return o } -func (o ResourcePolicyGroupPlacementPolicyOutput) ToResourcePolicyGroupPlacementPolicyOutputWithContext(ctx context.Context) ResourcePolicyGroupPlacementPolicyOutput { +func (o ReservationSpecificReservationOutput) ToReservationSpecificReservationOutputWithContext(ctx context.Context) ReservationSpecificReservationOutput { return o } -func (o ResourcePolicyGroupPlacementPolicyOutput) ToResourcePolicyGroupPlacementPolicyPtrOutput() ResourcePolicyGroupPlacementPolicyPtrOutput { - return o.ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(context.Background()) +func (o ReservationSpecificReservationOutput) ToReservationSpecificReservationPtrOutput() ReservationSpecificReservationPtrOutput { + return o.ToReservationSpecificReservationPtrOutputWithContext(context.Background()) } -func (o ResourcePolicyGroupPlacementPolicyOutput) ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyGroupPlacementPolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicyGroupPlacementPolicy) *ResourcePolicyGroupPlacementPolicy { +func (o ReservationSpecificReservationOutput) ToReservationSpecificReservationPtrOutputWithContext(ctx context.Context) ReservationSpecificReservationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ReservationSpecificReservation) *ReservationSpecificReservation { return &v - }).(ResourcePolicyGroupPlacementPolicyPtrOutput) -} - -// The number of availability domains instances will be spread across. If two instances are in different -// availability domain, they will not be put in the same low latency network -func (o ResourcePolicyGroupPlacementPolicyOutput) AvailabilityDomainCount() pulumi.IntPtrOutput { - return o.ApplyT(func(v ResourcePolicyGroupPlacementPolicy) *int { return v.AvailabilityDomainCount }).(pulumi.IntPtrOutput) + }).(ReservationSpecificReservationPtrOutput) } -// Collocation specifies whether to place VMs inside the same availability domain on the same low-latency network. -// Specify `COLLOCATED` to enable collocation. Can only be specified with `vmCount`. If compute instances are created -// with a COLLOCATED policy, then exactly `vmCount` instances must be created at the same time with the resource policy -// attached. -// Possible values are: `COLLOCATED`. -func (o ResourcePolicyGroupPlacementPolicyOutput) Collocation() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResourcePolicyGroupPlacementPolicy) *string { return v.Collocation }).(pulumi.StringPtrOutput) +// The number of resources that are allocated. +func (o ReservationSpecificReservationOutput) Count() pulumi.IntOutput { + return o.ApplyT(func(v ReservationSpecificReservation) int { return v.Count }).(pulumi.IntOutput) } -// Specifies the number of max logical switches. -func (o ResourcePolicyGroupPlacementPolicyOutput) MaxDistance() pulumi.IntPtrOutput { - return o.ApplyT(func(v ResourcePolicyGroupPlacementPolicy) *int { return v.MaxDistance }).(pulumi.IntPtrOutput) +// (Output) +// How many instances are in use. +func (o ReservationSpecificReservationOutput) InUseCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v ReservationSpecificReservation) *int { return v.InUseCount }).(pulumi.IntPtrOutput) } -// Number of VMs in this placement group. Google does not recommend that you use this field -// unless you use a compact policy and you want your policy to work only if it contains this -// exact number of VMs. -func (o ResourcePolicyGroupPlacementPolicyOutput) VmCount() pulumi.IntPtrOutput { - return o.ApplyT(func(v ResourcePolicyGroupPlacementPolicy) *int { return v.VmCount }).(pulumi.IntPtrOutput) +// The instance properties for the reservation. +// Structure is documented below. +func (o ReservationSpecificReservationOutput) InstanceProperties() ReservationSpecificReservationInstancePropertiesOutput { + return o.ApplyT(func(v ReservationSpecificReservation) ReservationSpecificReservationInstanceProperties { + return v.InstanceProperties + }).(ReservationSpecificReservationInstancePropertiesOutput) } -type ResourcePolicyGroupPlacementPolicyPtrOutput struct{ *pulumi.OutputState } +type ReservationSpecificReservationPtrOutput struct{ *pulumi.OutputState } -func (ResourcePolicyGroupPlacementPolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicyGroupPlacementPolicy)(nil)).Elem() +func (ReservationSpecificReservationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ReservationSpecificReservation)(nil)).Elem() } -func (o ResourcePolicyGroupPlacementPolicyPtrOutput) ToResourcePolicyGroupPlacementPolicyPtrOutput() ResourcePolicyGroupPlacementPolicyPtrOutput { +func (o ReservationSpecificReservationPtrOutput) ToReservationSpecificReservationPtrOutput() ReservationSpecificReservationPtrOutput { return o } -func (o ResourcePolicyGroupPlacementPolicyPtrOutput) ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyGroupPlacementPolicyPtrOutput { +func (o ReservationSpecificReservationPtrOutput) ToReservationSpecificReservationPtrOutputWithContext(ctx context.Context) ReservationSpecificReservationPtrOutput { return o } -func (o ResourcePolicyGroupPlacementPolicyPtrOutput) Elem() ResourcePolicyGroupPlacementPolicyOutput { - return o.ApplyT(func(v *ResourcePolicyGroupPlacementPolicy) ResourcePolicyGroupPlacementPolicy { +func (o ReservationSpecificReservationPtrOutput) Elem() ReservationSpecificReservationOutput { + return o.ApplyT(func(v *ReservationSpecificReservation) ReservationSpecificReservation { if v != nil { return *v } - var ret ResourcePolicyGroupPlacementPolicy + var ret ReservationSpecificReservation return ret - }).(ResourcePolicyGroupPlacementPolicyOutput) + }).(ReservationSpecificReservationOutput) } -// The number of availability domains instances will be spread across. If two instances are in different -// availability domain, they will not be put in the same low latency network -func (o ResourcePolicyGroupPlacementPolicyPtrOutput) AvailabilityDomainCount() pulumi.IntPtrOutput { - return o.ApplyT(func(v *ResourcePolicyGroupPlacementPolicy) *int { +// The number of resources that are allocated. +func (o ReservationSpecificReservationPtrOutput) Count() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ReservationSpecificReservation) *int { if v == nil { return nil } - return v.AvailabilityDomainCount + return &v.Count }).(pulumi.IntPtrOutput) } -// Collocation specifies whether to place VMs inside the same availability domain on the same low-latency network. -// Specify `COLLOCATED` to enable collocation. Can only be specified with `vmCount`. If compute instances are created -// with a COLLOCATED policy, then exactly `vmCount` instances must be created at the same time with the resource policy -// attached. -// Possible values are: `COLLOCATED`. -func (o ResourcePolicyGroupPlacementPolicyPtrOutput) Collocation() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ResourcePolicyGroupPlacementPolicy) *string { - if v == nil { - return nil - } - return v.Collocation - }).(pulumi.StringPtrOutput) -} - -// Specifies the number of max logical switches. -func (o ResourcePolicyGroupPlacementPolicyPtrOutput) MaxDistance() pulumi.IntPtrOutput { - return o.ApplyT(func(v *ResourcePolicyGroupPlacementPolicy) *int { +// (Output) +// How many instances are in use. +func (o ReservationSpecificReservationPtrOutput) InUseCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ReservationSpecificReservation) *int { if v == nil { return nil } - return v.MaxDistance + return v.InUseCount }).(pulumi.IntPtrOutput) } -// Number of VMs in this placement group. Google does not recommend that you use this field -// unless you use a compact policy and you want your policy to work only if it contains this -// exact number of VMs. -func (o ResourcePolicyGroupPlacementPolicyPtrOutput) VmCount() pulumi.IntPtrOutput { - return o.ApplyT(func(v *ResourcePolicyGroupPlacementPolicy) *int { +// The instance properties for the reservation. +// Structure is documented below. +func (o ReservationSpecificReservationPtrOutput) InstanceProperties() ReservationSpecificReservationInstancePropertiesPtrOutput { + return o.ApplyT(func(v *ReservationSpecificReservation) *ReservationSpecificReservationInstanceProperties { if v == nil { return nil } - return v.VmCount - }).(pulumi.IntPtrOutput) + return &v.InstanceProperties + }).(ReservationSpecificReservationInstancePropertiesPtrOutput) } -type ResourcePolicyInstanceSchedulePolicy struct { - // The expiration time of the schedule. The timestamp is an RFC3339 string. - ExpirationTime *string `pulumi:"expirationTime"` - // The start time of the schedule. The timestamp is an RFC3339 string. - StartTime *string `pulumi:"startTime"` - // Specifies the time zone to be used in interpreting the schedule. The value of this field must be a time zone name - // from the tz database: http://en.wikipedia.org/wiki/Tz_database. - TimeZone string `pulumi:"timeZone"` - // Specifies the schedule for starting instances. +type ReservationSpecificReservationInstanceProperties struct { + // Guest accelerator type and count. // Structure is documented below. - VmStartSchedule *ResourcePolicyInstanceSchedulePolicyVmStartSchedule `pulumi:"vmStartSchedule"` - // Specifies the schedule for stopping instances. + GuestAccelerators []ReservationSpecificReservationInstancePropertiesGuestAccelerator `pulumi:"guestAccelerators"` + // The amount of local ssd to reserve with each instance. This + // reserves disks of type `local-ssd`. // Structure is documented below. - VmStopSchedule *ResourcePolicyInstanceSchedulePolicyVmStopSchedule `pulumi:"vmStopSchedule"` + LocalSsds []ReservationSpecificReservationInstancePropertiesLocalSsd `pulumi:"localSsds"` + // The name of the machine type to reserve. + MachineType string `pulumi:"machineType"` + // The minimum CPU platform for the reservation. For example, + // `"Intel Skylake"`. See + // the CPU platform availability reference](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform#availablezones) + // for information on available CPU platforms. + MinCpuPlatform *string `pulumi:"minCpuPlatform"` } -// ResourcePolicyInstanceSchedulePolicyInput is an input type that accepts ResourcePolicyInstanceSchedulePolicyArgs and ResourcePolicyInstanceSchedulePolicyOutput values. -// You can construct a concrete instance of `ResourcePolicyInstanceSchedulePolicyInput` via: +// ReservationSpecificReservationInstancePropertiesInput is an input type that accepts ReservationSpecificReservationInstancePropertiesArgs and ReservationSpecificReservationInstancePropertiesOutput values. +// You can construct a concrete instance of `ReservationSpecificReservationInstancePropertiesInput` via: // -// ResourcePolicyInstanceSchedulePolicyArgs{...} -type ResourcePolicyInstanceSchedulePolicyInput interface { +// ReservationSpecificReservationInstancePropertiesArgs{...} +type ReservationSpecificReservationInstancePropertiesInput interface { pulumi.Input - ToResourcePolicyInstanceSchedulePolicyOutput() ResourcePolicyInstanceSchedulePolicyOutput - ToResourcePolicyInstanceSchedulePolicyOutputWithContext(context.Context) ResourcePolicyInstanceSchedulePolicyOutput + ToReservationSpecificReservationInstancePropertiesOutput() ReservationSpecificReservationInstancePropertiesOutput + ToReservationSpecificReservationInstancePropertiesOutputWithContext(context.Context) ReservationSpecificReservationInstancePropertiesOutput } -type ResourcePolicyInstanceSchedulePolicyArgs struct { - // The expiration time of the schedule. The timestamp is an RFC3339 string. - ExpirationTime pulumi.StringPtrInput `pulumi:"expirationTime"` - // The start time of the schedule. The timestamp is an RFC3339 string. - StartTime pulumi.StringPtrInput `pulumi:"startTime"` - // Specifies the time zone to be used in interpreting the schedule. The value of this field must be a time zone name - // from the tz database: http://en.wikipedia.org/wiki/Tz_database. - TimeZone pulumi.StringInput `pulumi:"timeZone"` - // Specifies the schedule for starting instances. +type ReservationSpecificReservationInstancePropertiesArgs struct { + // Guest accelerator type and count. // Structure is documented below. - VmStartSchedule ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrInput `pulumi:"vmStartSchedule"` - // Specifies the schedule for stopping instances. + GuestAccelerators ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayInput `pulumi:"guestAccelerators"` + // The amount of local ssd to reserve with each instance. This + // reserves disks of type `local-ssd`. // Structure is documented below. - VmStopSchedule ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrInput `pulumi:"vmStopSchedule"` + LocalSsds ReservationSpecificReservationInstancePropertiesLocalSsdArrayInput `pulumi:"localSsds"` + // The name of the machine type to reserve. + MachineType pulumi.StringInput `pulumi:"machineType"` + // The minimum CPU platform for the reservation. For example, + // `"Intel Skylake"`. See + // the CPU platform availability reference](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform#availablezones) + // for information on available CPU platforms. + MinCpuPlatform pulumi.StringPtrInput `pulumi:"minCpuPlatform"` } -func (ResourcePolicyInstanceSchedulePolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicyInstanceSchedulePolicy)(nil)).Elem() +func (ReservationSpecificReservationInstancePropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ReservationSpecificReservationInstanceProperties)(nil)).Elem() } -func (i ResourcePolicyInstanceSchedulePolicyArgs) ToResourcePolicyInstanceSchedulePolicyOutput() ResourcePolicyInstanceSchedulePolicyOutput { - return i.ToResourcePolicyInstanceSchedulePolicyOutputWithContext(context.Background()) +func (i ReservationSpecificReservationInstancePropertiesArgs) ToReservationSpecificReservationInstancePropertiesOutput() ReservationSpecificReservationInstancePropertiesOutput { + return i.ToReservationSpecificReservationInstancePropertiesOutputWithContext(context.Background()) } -func (i ResourcePolicyInstanceSchedulePolicyArgs) ToResourcePolicyInstanceSchedulePolicyOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyOutput) +func (i ReservationSpecificReservationInstancePropertiesArgs) ToReservationSpecificReservationInstancePropertiesOutputWithContext(ctx context.Context) ReservationSpecificReservationInstancePropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(ReservationSpecificReservationInstancePropertiesOutput) } -func (i ResourcePolicyInstanceSchedulePolicyArgs) ToResourcePolicyInstanceSchedulePolicyPtrOutput() ResourcePolicyInstanceSchedulePolicyPtrOutput { - return i.ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(context.Background()) +func (i ReservationSpecificReservationInstancePropertiesArgs) ToReservationSpecificReservationInstancePropertiesPtrOutput() ReservationSpecificReservationInstancePropertiesPtrOutput { + return i.ToReservationSpecificReservationInstancePropertiesPtrOutputWithContext(context.Background()) } -func (i ResourcePolicyInstanceSchedulePolicyArgs) ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyOutput).ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(ctx) +func (i ReservationSpecificReservationInstancePropertiesArgs) ToReservationSpecificReservationInstancePropertiesPtrOutputWithContext(ctx context.Context) ReservationSpecificReservationInstancePropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ReservationSpecificReservationInstancePropertiesOutput).ToReservationSpecificReservationInstancePropertiesPtrOutputWithContext(ctx) } -// ResourcePolicyInstanceSchedulePolicyPtrInput is an input type that accepts ResourcePolicyInstanceSchedulePolicyArgs, ResourcePolicyInstanceSchedulePolicyPtr and ResourcePolicyInstanceSchedulePolicyPtrOutput values. -// You can construct a concrete instance of `ResourcePolicyInstanceSchedulePolicyPtrInput` via: +// ReservationSpecificReservationInstancePropertiesPtrInput is an input type that accepts ReservationSpecificReservationInstancePropertiesArgs, ReservationSpecificReservationInstancePropertiesPtr and ReservationSpecificReservationInstancePropertiesPtrOutput values. +// You can construct a concrete instance of `ReservationSpecificReservationInstancePropertiesPtrInput` via: // -// ResourcePolicyInstanceSchedulePolicyArgs{...} +// ReservationSpecificReservationInstancePropertiesArgs{...} // // or: // // nil -type ResourcePolicyInstanceSchedulePolicyPtrInput interface { +type ReservationSpecificReservationInstancePropertiesPtrInput interface { pulumi.Input - ToResourcePolicyInstanceSchedulePolicyPtrOutput() ResourcePolicyInstanceSchedulePolicyPtrOutput - ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(context.Context) ResourcePolicyInstanceSchedulePolicyPtrOutput + ToReservationSpecificReservationInstancePropertiesPtrOutput() ReservationSpecificReservationInstancePropertiesPtrOutput + ToReservationSpecificReservationInstancePropertiesPtrOutputWithContext(context.Context) ReservationSpecificReservationInstancePropertiesPtrOutput } -type resourcePolicyInstanceSchedulePolicyPtrType ResourcePolicyInstanceSchedulePolicyArgs +type reservationSpecificReservationInstancePropertiesPtrType ReservationSpecificReservationInstancePropertiesArgs -func ResourcePolicyInstanceSchedulePolicyPtr(v *ResourcePolicyInstanceSchedulePolicyArgs) ResourcePolicyInstanceSchedulePolicyPtrInput { - return (*resourcePolicyInstanceSchedulePolicyPtrType)(v) +func ReservationSpecificReservationInstancePropertiesPtr(v *ReservationSpecificReservationInstancePropertiesArgs) ReservationSpecificReservationInstancePropertiesPtrInput { + return (*reservationSpecificReservationInstancePropertiesPtrType)(v) } -func (*resourcePolicyInstanceSchedulePolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicyInstanceSchedulePolicy)(nil)).Elem() +func (*reservationSpecificReservationInstancePropertiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ReservationSpecificReservationInstanceProperties)(nil)).Elem() } -func (i *resourcePolicyInstanceSchedulePolicyPtrType) ToResourcePolicyInstanceSchedulePolicyPtrOutput() ResourcePolicyInstanceSchedulePolicyPtrOutput { - return i.ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(context.Background()) +func (i *reservationSpecificReservationInstancePropertiesPtrType) ToReservationSpecificReservationInstancePropertiesPtrOutput() ReservationSpecificReservationInstancePropertiesPtrOutput { + return i.ToReservationSpecificReservationInstancePropertiesPtrOutputWithContext(context.Background()) } -func (i *resourcePolicyInstanceSchedulePolicyPtrType) ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyPtrOutput) +func (i *reservationSpecificReservationInstancePropertiesPtrType) ToReservationSpecificReservationInstancePropertiesPtrOutputWithContext(ctx context.Context) ReservationSpecificReservationInstancePropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ReservationSpecificReservationInstancePropertiesPtrOutput) } -type ResourcePolicyInstanceSchedulePolicyOutput struct{ *pulumi.OutputState } +type ReservationSpecificReservationInstancePropertiesOutput struct{ *pulumi.OutputState } -func (ResourcePolicyInstanceSchedulePolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicyInstanceSchedulePolicy)(nil)).Elem() +func (ReservationSpecificReservationInstancePropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ReservationSpecificReservationInstanceProperties)(nil)).Elem() } -func (o ResourcePolicyInstanceSchedulePolicyOutput) ToResourcePolicyInstanceSchedulePolicyOutput() ResourcePolicyInstanceSchedulePolicyOutput { +func (o ReservationSpecificReservationInstancePropertiesOutput) ToReservationSpecificReservationInstancePropertiesOutput() ReservationSpecificReservationInstancePropertiesOutput { return o } -func (o ResourcePolicyInstanceSchedulePolicyOutput) ToResourcePolicyInstanceSchedulePolicyOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyOutput { +func (o ReservationSpecificReservationInstancePropertiesOutput) ToReservationSpecificReservationInstancePropertiesOutputWithContext(ctx context.Context) ReservationSpecificReservationInstancePropertiesOutput { return o } -func (o ResourcePolicyInstanceSchedulePolicyOutput) ToResourcePolicyInstanceSchedulePolicyPtrOutput() ResourcePolicyInstanceSchedulePolicyPtrOutput { - return o.ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(context.Background()) +func (o ReservationSpecificReservationInstancePropertiesOutput) ToReservationSpecificReservationInstancePropertiesPtrOutput() ReservationSpecificReservationInstancePropertiesPtrOutput { + return o.ToReservationSpecificReservationInstancePropertiesPtrOutputWithContext(context.Background()) } -func (o ResourcePolicyInstanceSchedulePolicyOutput) ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicyInstanceSchedulePolicy) *ResourcePolicyInstanceSchedulePolicy { +func (o ReservationSpecificReservationInstancePropertiesOutput) ToReservationSpecificReservationInstancePropertiesPtrOutputWithContext(ctx context.Context) ReservationSpecificReservationInstancePropertiesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ReservationSpecificReservationInstanceProperties) *ReservationSpecificReservationInstanceProperties { return &v - }).(ResourcePolicyInstanceSchedulePolicyPtrOutput) -} - -// The expiration time of the schedule. The timestamp is an RFC3339 string. -func (o ResourcePolicyInstanceSchedulePolicyOutput) ExpirationTime() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicy) *string { return v.ExpirationTime }).(pulumi.StringPtrOutput) + }).(ReservationSpecificReservationInstancePropertiesPtrOutput) } -// The start time of the schedule. The timestamp is an RFC3339 string. -func (o ResourcePolicyInstanceSchedulePolicyOutput) StartTime() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicy) *string { return v.StartTime }).(pulumi.StringPtrOutput) +// Guest accelerator type and count. +// Structure is documented below. +func (o ReservationSpecificReservationInstancePropertiesOutput) GuestAccelerators() ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput { + return o.ApplyT(func(v ReservationSpecificReservationInstanceProperties) []ReservationSpecificReservationInstancePropertiesGuestAccelerator { + return v.GuestAccelerators + }).(ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput) } -// Specifies the time zone to be used in interpreting the schedule. The value of this field must be a time zone name -// from the tz database: http://en.wikipedia.org/wiki/Tz_database. -func (o ResourcePolicyInstanceSchedulePolicyOutput) TimeZone() pulumi.StringOutput { - return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicy) string { return v.TimeZone }).(pulumi.StringOutput) +// The amount of local ssd to reserve with each instance. This +// reserves disks of type `local-ssd`. +// Structure is documented below. +func (o ReservationSpecificReservationInstancePropertiesOutput) LocalSsds() ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput { + return o.ApplyT(func(v ReservationSpecificReservationInstanceProperties) []ReservationSpecificReservationInstancePropertiesLocalSsd { + return v.LocalSsds + }).(ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput) } -// Specifies the schedule for starting instances. -// Structure is documented below. -func (o ResourcePolicyInstanceSchedulePolicyOutput) VmStartSchedule() ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { - return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicy) *ResourcePolicyInstanceSchedulePolicyVmStartSchedule { - return v.VmStartSchedule - }).(ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) +// The name of the machine type to reserve. +func (o ReservationSpecificReservationInstancePropertiesOutput) MachineType() pulumi.StringOutput { + return o.ApplyT(func(v ReservationSpecificReservationInstanceProperties) string { return v.MachineType }).(pulumi.StringOutput) } -// Specifies the schedule for stopping instances. -// Structure is documented below. -func (o ResourcePolicyInstanceSchedulePolicyOutput) VmStopSchedule() ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { - return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicy) *ResourcePolicyInstanceSchedulePolicyVmStopSchedule { - return v.VmStopSchedule - }).(ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) +// The minimum CPU platform for the reservation. For example, +// `"Intel Skylake"`. See +// the CPU platform availability reference](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform#availablezones) +// for information on available CPU platforms. +func (o ReservationSpecificReservationInstancePropertiesOutput) MinCpuPlatform() pulumi.StringPtrOutput { + return o.ApplyT(func(v ReservationSpecificReservationInstanceProperties) *string { return v.MinCpuPlatform }).(pulumi.StringPtrOutput) } -type ResourcePolicyInstanceSchedulePolicyPtrOutput struct{ *pulumi.OutputState } +type ReservationSpecificReservationInstancePropertiesPtrOutput struct{ *pulumi.OutputState } -func (ResourcePolicyInstanceSchedulePolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicyInstanceSchedulePolicy)(nil)).Elem() +func (ReservationSpecificReservationInstancePropertiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ReservationSpecificReservationInstanceProperties)(nil)).Elem() } -func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) ToResourcePolicyInstanceSchedulePolicyPtrOutput() ResourcePolicyInstanceSchedulePolicyPtrOutput { +func (o ReservationSpecificReservationInstancePropertiesPtrOutput) ToReservationSpecificReservationInstancePropertiesPtrOutput() ReservationSpecificReservationInstancePropertiesPtrOutput { return o } -func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyPtrOutput { +func (o ReservationSpecificReservationInstancePropertiesPtrOutput) ToReservationSpecificReservationInstancePropertiesPtrOutputWithContext(ctx context.Context) ReservationSpecificReservationInstancePropertiesPtrOutput { return o } -func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) Elem() ResourcePolicyInstanceSchedulePolicyOutput { - return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicy) ResourcePolicyInstanceSchedulePolicy { +func (o ReservationSpecificReservationInstancePropertiesPtrOutput) Elem() ReservationSpecificReservationInstancePropertiesOutput { + return o.ApplyT(func(v *ReservationSpecificReservationInstanceProperties) ReservationSpecificReservationInstanceProperties { if v != nil { return *v } - var ret ResourcePolicyInstanceSchedulePolicy + var ret ReservationSpecificReservationInstanceProperties return ret - }).(ResourcePolicyInstanceSchedulePolicyOutput) + }).(ReservationSpecificReservationInstancePropertiesOutput) +} + +// Guest accelerator type and count. +// Structure is documented below. +func (o ReservationSpecificReservationInstancePropertiesPtrOutput) GuestAccelerators() ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput { + return o.ApplyT(func(v *ReservationSpecificReservationInstanceProperties) []ReservationSpecificReservationInstancePropertiesGuestAccelerator { + if v == nil { + return nil + } + return v.GuestAccelerators + }).(ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput) +} + +// The amount of local ssd to reserve with each instance. This +// reserves disks of type `local-ssd`. +// Structure is documented below. +func (o ReservationSpecificReservationInstancePropertiesPtrOutput) LocalSsds() ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput { + return o.ApplyT(func(v *ReservationSpecificReservationInstanceProperties) []ReservationSpecificReservationInstancePropertiesLocalSsd { + if v == nil { + return nil + } + return v.LocalSsds + }).(ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput) +} + +// The name of the machine type to reserve. +func (o ReservationSpecificReservationInstancePropertiesPtrOutput) MachineType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ReservationSpecificReservationInstanceProperties) *string { + if v == nil { + return nil + } + return &v.MachineType + }).(pulumi.StringPtrOutput) +} + +// The minimum CPU platform for the reservation. For example, +// `"Intel Skylake"`. See +// the CPU platform availability reference](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform#availablezones) +// for information on available CPU platforms. +func (o ReservationSpecificReservationInstancePropertiesPtrOutput) MinCpuPlatform() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ReservationSpecificReservationInstanceProperties) *string { + if v == nil { + return nil + } + return v.MinCpuPlatform + }).(pulumi.StringPtrOutput) +} + +type ReservationSpecificReservationInstancePropertiesGuestAccelerator struct { + // The number of the guest accelerator cards exposed to + // this instance. + AcceleratorCount int `pulumi:"acceleratorCount"` + // The full or partial URL of the accelerator type to + // attach to this instance. For example: + // `projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-p100` + // If you are creating an instance template, specify only the accelerator name. + AcceleratorType string `pulumi:"acceleratorType"` +} + +// ReservationSpecificReservationInstancePropertiesGuestAcceleratorInput is an input type that accepts ReservationSpecificReservationInstancePropertiesGuestAcceleratorArgs and ReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput values. +// You can construct a concrete instance of `ReservationSpecificReservationInstancePropertiesGuestAcceleratorInput` via: +// +// ReservationSpecificReservationInstancePropertiesGuestAcceleratorArgs{...} +type ReservationSpecificReservationInstancePropertiesGuestAcceleratorInput interface { + pulumi.Input + + ToReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput() ReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput + ToReservationSpecificReservationInstancePropertiesGuestAcceleratorOutputWithContext(context.Context) ReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput +} + +type ReservationSpecificReservationInstancePropertiesGuestAcceleratorArgs struct { + // The number of the guest accelerator cards exposed to + // this instance. + AcceleratorCount pulumi.IntInput `pulumi:"acceleratorCount"` + // The full or partial URL of the accelerator type to + // attach to this instance. For example: + // `projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-p100` + // If you are creating an instance template, specify only the accelerator name. + AcceleratorType pulumi.StringInput `pulumi:"acceleratorType"` +} + +func (ReservationSpecificReservationInstancePropertiesGuestAcceleratorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ReservationSpecificReservationInstancePropertiesGuestAccelerator)(nil)).Elem() +} + +func (i ReservationSpecificReservationInstancePropertiesGuestAcceleratorArgs) ToReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput() ReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput { + return i.ToReservationSpecificReservationInstancePropertiesGuestAcceleratorOutputWithContext(context.Background()) +} + +func (i ReservationSpecificReservationInstancePropertiesGuestAcceleratorArgs) ToReservationSpecificReservationInstancePropertiesGuestAcceleratorOutputWithContext(ctx context.Context) ReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput { + return pulumi.ToOutputWithContext(ctx, i).(ReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput) +} + +// ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayInput is an input type that accepts ReservationSpecificReservationInstancePropertiesGuestAcceleratorArray and ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput values. +// You can construct a concrete instance of `ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayInput` via: +// +// ReservationSpecificReservationInstancePropertiesGuestAcceleratorArray{ ReservationSpecificReservationInstancePropertiesGuestAcceleratorArgs{...} } +type ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayInput interface { + pulumi.Input + + ToReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput() ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput + ToReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutputWithContext(context.Context) ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput +} + +type ReservationSpecificReservationInstancePropertiesGuestAcceleratorArray []ReservationSpecificReservationInstancePropertiesGuestAcceleratorInput + +func (ReservationSpecificReservationInstancePropertiesGuestAcceleratorArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ReservationSpecificReservationInstancePropertiesGuestAccelerator)(nil)).Elem() +} + +func (i ReservationSpecificReservationInstancePropertiesGuestAcceleratorArray) ToReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput() ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput { + return i.ToReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutputWithContext(context.Background()) +} + +func (i ReservationSpecificReservationInstancePropertiesGuestAcceleratorArray) ToReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutputWithContext(ctx context.Context) ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput) +} + +type ReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput struct{ *pulumi.OutputState } + +func (ReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ReservationSpecificReservationInstancePropertiesGuestAccelerator)(nil)).Elem() +} + +func (o ReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput) ToReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput() ReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput { + return o +} + +func (o ReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput) ToReservationSpecificReservationInstancePropertiesGuestAcceleratorOutputWithContext(ctx context.Context) ReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput { + return o +} + +// The number of the guest accelerator cards exposed to +// this instance. +func (o ReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput) AcceleratorCount() pulumi.IntOutput { + return o.ApplyT(func(v ReservationSpecificReservationInstancePropertiesGuestAccelerator) int { + return v.AcceleratorCount + }).(pulumi.IntOutput) +} + +// The full or partial URL of the accelerator type to +// attach to this instance. For example: +// `projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-p100` +// If you are creating an instance template, specify only the accelerator name. +func (o ReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput) AcceleratorType() pulumi.StringOutput { + return o.ApplyT(func(v ReservationSpecificReservationInstancePropertiesGuestAccelerator) string { + return v.AcceleratorType + }).(pulumi.StringOutput) } -// The expiration time of the schedule. The timestamp is an RFC3339 string. -func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) ExpirationTime() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicy) *string { - if v == nil { - return nil - } - return v.ExpirationTime - }).(pulumi.StringPtrOutput) -} +type ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput struct{ *pulumi.OutputState } -// The start time of the schedule. The timestamp is an RFC3339 string. -func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) StartTime() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicy) *string { - if v == nil { - return nil - } - return v.StartTime - }).(pulumi.StringPtrOutput) +func (ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ReservationSpecificReservationInstancePropertiesGuestAccelerator)(nil)).Elem() } -// Specifies the time zone to be used in interpreting the schedule. The value of this field must be a time zone name -// from the tz database: http://en.wikipedia.org/wiki/Tz_database. -func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) TimeZone() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicy) *string { - if v == nil { - return nil - } - return &v.TimeZone - }).(pulumi.StringPtrOutput) +func (o ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput) ToReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput() ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput { + return o } -// Specifies the schedule for starting instances. -// Structure is documented below. -func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) VmStartSchedule() ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { - return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicy) *ResourcePolicyInstanceSchedulePolicyVmStartSchedule { - if v == nil { - return nil - } - return v.VmStartSchedule - }).(ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) +func (o ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput) ToReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutputWithContext(ctx context.Context) ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput { + return o } -// Specifies the schedule for stopping instances. -// Structure is documented below. -func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) VmStopSchedule() ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { - return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicy) *ResourcePolicyInstanceSchedulePolicyVmStopSchedule { - if v == nil { - return nil - } - return v.VmStopSchedule - }).(ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) +func (o ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput) Index(i pulumi.IntInput) ReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ReservationSpecificReservationInstancePropertiesGuestAccelerator { + return vs[0].([]ReservationSpecificReservationInstancePropertiesGuestAccelerator)[vs[1].(int)] + }).(ReservationSpecificReservationInstancePropertiesGuestAcceleratorOutput) } -type ResourcePolicyInstanceSchedulePolicyVmStartSchedule struct { - // Specifies the frequency for the operation, using the unix-cron format. - Schedule string `pulumi:"schedule"` +type ReservationSpecificReservationInstancePropertiesLocalSsd struct { + // The size of the disk in base-2 GB. + // + // *** + DiskSizeGb int `pulumi:"diskSizeGb"` + // The disk interface to use for attaching this disk. + // Default value is `SCSI`. + // Possible values are: `SCSI`, `NVME`. + Interface *string `pulumi:"interface"` } -// ResourcePolicyInstanceSchedulePolicyVmStartScheduleInput is an input type that accepts ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs and ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput values. -// You can construct a concrete instance of `ResourcePolicyInstanceSchedulePolicyVmStartScheduleInput` via: +// ReservationSpecificReservationInstancePropertiesLocalSsdInput is an input type that accepts ReservationSpecificReservationInstancePropertiesLocalSsdArgs and ReservationSpecificReservationInstancePropertiesLocalSsdOutput values. +// You can construct a concrete instance of `ReservationSpecificReservationInstancePropertiesLocalSsdInput` via: // -// ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs{...} -type ResourcePolicyInstanceSchedulePolicyVmStartScheduleInput interface { +// ReservationSpecificReservationInstancePropertiesLocalSsdArgs{...} +type ReservationSpecificReservationInstancePropertiesLocalSsdInput interface { pulumi.Input - ToResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput() ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput - ToResourcePolicyInstanceSchedulePolicyVmStartScheduleOutputWithContext(context.Context) ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput -} - -type ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs struct { - // Specifies the frequency for the operation, using the unix-cron format. - Schedule pulumi.StringInput `pulumi:"schedule"` -} - -func (ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicyInstanceSchedulePolicyVmStartSchedule)(nil)).Elem() + ToReservationSpecificReservationInstancePropertiesLocalSsdOutput() ReservationSpecificReservationInstancePropertiesLocalSsdOutput + ToReservationSpecificReservationInstancePropertiesLocalSsdOutputWithContext(context.Context) ReservationSpecificReservationInstancePropertiesLocalSsdOutput } -func (i ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs) ToResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput() ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput { - return i.ToResourcePolicyInstanceSchedulePolicyVmStartScheduleOutputWithContext(context.Background()) +type ReservationSpecificReservationInstancePropertiesLocalSsdArgs struct { + // The size of the disk in base-2 GB. + // + // *** + DiskSizeGb pulumi.IntInput `pulumi:"diskSizeGb"` + // The disk interface to use for attaching this disk. + // Default value is `SCSI`. + // Possible values are: `SCSI`, `NVME`. + Interface pulumi.StringPtrInput `pulumi:"interface"` } -func (i ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs) ToResourcePolicyInstanceSchedulePolicyVmStartScheduleOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput) +func (ReservationSpecificReservationInstancePropertiesLocalSsdArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ReservationSpecificReservationInstancePropertiesLocalSsd)(nil)).Elem() } -func (i ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs) ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { - return i.ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(context.Background()) +func (i ReservationSpecificReservationInstancePropertiesLocalSsdArgs) ToReservationSpecificReservationInstancePropertiesLocalSsdOutput() ReservationSpecificReservationInstancePropertiesLocalSsdOutput { + return i.ToReservationSpecificReservationInstancePropertiesLocalSsdOutputWithContext(context.Background()) } -func (i ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs) ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput).ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(ctx) +func (i ReservationSpecificReservationInstancePropertiesLocalSsdArgs) ToReservationSpecificReservationInstancePropertiesLocalSsdOutputWithContext(ctx context.Context) ReservationSpecificReservationInstancePropertiesLocalSsdOutput { + return pulumi.ToOutputWithContext(ctx, i).(ReservationSpecificReservationInstancePropertiesLocalSsdOutput) } -// ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrInput is an input type that accepts ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs, ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtr and ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput values. -// You can construct a concrete instance of `ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrInput` via: -// -// ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs{...} -// -// or: +// ReservationSpecificReservationInstancePropertiesLocalSsdArrayInput is an input type that accepts ReservationSpecificReservationInstancePropertiesLocalSsdArray and ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput values. +// You can construct a concrete instance of `ReservationSpecificReservationInstancePropertiesLocalSsdArrayInput` via: // -// nil -type ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrInput interface { +// ReservationSpecificReservationInstancePropertiesLocalSsdArray{ ReservationSpecificReservationInstancePropertiesLocalSsdArgs{...} } +type ReservationSpecificReservationInstancePropertiesLocalSsdArrayInput interface { pulumi.Input - ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput - ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(context.Context) ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput + ToReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput() ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput + ToReservationSpecificReservationInstancePropertiesLocalSsdArrayOutputWithContext(context.Context) ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput } -type resourcePolicyInstanceSchedulePolicyVmStartSchedulePtrType ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs - -func ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtr(v *ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs) ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrInput { - return (*resourcePolicyInstanceSchedulePolicyVmStartSchedulePtrType)(v) -} +type ReservationSpecificReservationInstancePropertiesLocalSsdArray []ReservationSpecificReservationInstancePropertiesLocalSsdInput -func (*resourcePolicyInstanceSchedulePolicyVmStartSchedulePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicyInstanceSchedulePolicyVmStartSchedule)(nil)).Elem() +func (ReservationSpecificReservationInstancePropertiesLocalSsdArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ReservationSpecificReservationInstancePropertiesLocalSsd)(nil)).Elem() } -func (i *resourcePolicyInstanceSchedulePolicyVmStartSchedulePtrType) ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { - return i.ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(context.Background()) +func (i ReservationSpecificReservationInstancePropertiesLocalSsdArray) ToReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput() ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput { + return i.ToReservationSpecificReservationInstancePropertiesLocalSsdArrayOutputWithContext(context.Background()) } -func (i *resourcePolicyInstanceSchedulePolicyVmStartSchedulePtrType) ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) +func (i ReservationSpecificReservationInstancePropertiesLocalSsdArray) ToReservationSpecificReservationInstancePropertiesLocalSsdArrayOutputWithContext(ctx context.Context) ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput) } -type ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput struct{ *pulumi.OutputState } +type ReservationSpecificReservationInstancePropertiesLocalSsdOutput struct{ *pulumi.OutputState } -func (ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicyInstanceSchedulePolicyVmStartSchedule)(nil)).Elem() +func (ReservationSpecificReservationInstancePropertiesLocalSsdOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ReservationSpecificReservationInstancePropertiesLocalSsd)(nil)).Elem() } -func (o ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput) ToResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput() ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput { +func (o ReservationSpecificReservationInstancePropertiesLocalSsdOutput) ToReservationSpecificReservationInstancePropertiesLocalSsdOutput() ReservationSpecificReservationInstancePropertiesLocalSsdOutput { return o } -func (o ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput) ToResourcePolicyInstanceSchedulePolicyVmStartScheduleOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput { +func (o ReservationSpecificReservationInstancePropertiesLocalSsdOutput) ToReservationSpecificReservationInstancePropertiesLocalSsdOutputWithContext(ctx context.Context) ReservationSpecificReservationInstancePropertiesLocalSsdOutput { return o } -func (o ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput) ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { - return o.ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(context.Background()) -} - -func (o ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput) ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicyInstanceSchedulePolicyVmStartSchedule) *ResourcePolicyInstanceSchedulePolicyVmStartSchedule { - return &v - }).(ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) +// The size of the disk in base-2 GB. +// +// *** +func (o ReservationSpecificReservationInstancePropertiesLocalSsdOutput) DiskSizeGb() pulumi.IntOutput { + return o.ApplyT(func(v ReservationSpecificReservationInstancePropertiesLocalSsd) int { return v.DiskSizeGb }).(pulumi.IntOutput) } -// Specifies the frequency for the operation, using the unix-cron format. -func (o ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput) Schedule() pulumi.StringOutput { - return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicyVmStartSchedule) string { return v.Schedule }).(pulumi.StringOutput) +// The disk interface to use for attaching this disk. +// Default value is `SCSI`. +// Possible values are: `SCSI`, `NVME`. +func (o ReservationSpecificReservationInstancePropertiesLocalSsdOutput) Interface() pulumi.StringPtrOutput { + return o.ApplyT(func(v ReservationSpecificReservationInstancePropertiesLocalSsd) *string { return v.Interface }).(pulumi.StringPtrOutput) } -type ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput struct{ *pulumi.OutputState } +type ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput struct{ *pulumi.OutputState } -func (ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicyInstanceSchedulePolicyVmStartSchedule)(nil)).Elem() +func (ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ReservationSpecificReservationInstancePropertiesLocalSsd)(nil)).Elem() } -func (o ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { +func (o ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput) ToReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput() ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput { return o } -func (o ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { +func (o ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput) ToReservationSpecificReservationInstancePropertiesLocalSsdArrayOutputWithContext(ctx context.Context) ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput { return o } -func (o ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) Elem() ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput { - return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicyVmStartSchedule) ResourcePolicyInstanceSchedulePolicyVmStartSchedule { - if v != nil { - return *v - } - var ret ResourcePolicyInstanceSchedulePolicyVmStartSchedule - return ret - }).(ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput) -} - -// Specifies the frequency for the operation, using the unix-cron format. -func (o ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) Schedule() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicyVmStartSchedule) *string { - if v == nil { - return nil - } - return &v.Schedule - }).(pulumi.StringPtrOutput) +func (o ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput) Index(i pulumi.IntInput) ReservationSpecificReservationInstancePropertiesLocalSsdOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ReservationSpecificReservationInstancePropertiesLocalSsd { + return vs[0].([]ReservationSpecificReservationInstancePropertiesLocalSsd)[vs[1].(int)] + }).(ReservationSpecificReservationInstancePropertiesLocalSsdOutput) } -type ResourcePolicyInstanceSchedulePolicyVmStopSchedule struct { - // Specifies the frequency for the operation, using the unix-cron format. - Schedule string `pulumi:"schedule"` +type ResizeRequestRequestedRunDuration struct { + // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. + Nanos *int `pulumi:"nanos"` + // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years + Seconds string `pulumi:"seconds"` } -// ResourcePolicyInstanceSchedulePolicyVmStopScheduleInput is an input type that accepts ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs and ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput values. -// You can construct a concrete instance of `ResourcePolicyInstanceSchedulePolicyVmStopScheduleInput` via: +// ResizeRequestRequestedRunDurationInput is an input type that accepts ResizeRequestRequestedRunDurationArgs and ResizeRequestRequestedRunDurationOutput values. +// You can construct a concrete instance of `ResizeRequestRequestedRunDurationInput` via: // -// ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs{...} -type ResourcePolicyInstanceSchedulePolicyVmStopScheduleInput interface { +// ResizeRequestRequestedRunDurationArgs{...} +type ResizeRequestRequestedRunDurationInput interface { pulumi.Input - ToResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput() ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput - ToResourcePolicyInstanceSchedulePolicyVmStopScheduleOutputWithContext(context.Context) ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput + ToResizeRequestRequestedRunDurationOutput() ResizeRequestRequestedRunDurationOutput + ToResizeRequestRequestedRunDurationOutputWithContext(context.Context) ResizeRequestRequestedRunDurationOutput } -type ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs struct { - // Specifies the frequency for the operation, using the unix-cron format. - Schedule pulumi.StringInput `pulumi:"schedule"` +type ResizeRequestRequestedRunDurationArgs struct { + // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. + Nanos pulumi.IntPtrInput `pulumi:"nanos"` + // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years + Seconds pulumi.StringInput `pulumi:"seconds"` } -func (ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicyInstanceSchedulePolicyVmStopSchedule)(nil)).Elem() +func (ResizeRequestRequestedRunDurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestRequestedRunDuration)(nil)).Elem() } -func (i ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs) ToResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput() ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput { - return i.ToResourcePolicyInstanceSchedulePolicyVmStopScheduleOutputWithContext(context.Background()) +func (i ResizeRequestRequestedRunDurationArgs) ToResizeRequestRequestedRunDurationOutput() ResizeRequestRequestedRunDurationOutput { + return i.ToResizeRequestRequestedRunDurationOutputWithContext(context.Background()) } -func (i ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs) ToResourcePolicyInstanceSchedulePolicyVmStopScheduleOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput) +func (i ResizeRequestRequestedRunDurationArgs) ToResizeRequestRequestedRunDurationOutputWithContext(ctx context.Context) ResizeRequestRequestedRunDurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestRequestedRunDurationOutput) } -func (i ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs) ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { - return i.ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(context.Background()) +func (i ResizeRequestRequestedRunDurationArgs) ToResizeRequestRequestedRunDurationPtrOutput() ResizeRequestRequestedRunDurationPtrOutput { + return i.ToResizeRequestRequestedRunDurationPtrOutputWithContext(context.Background()) } -func (i ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs) ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput).ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(ctx) +func (i ResizeRequestRequestedRunDurationArgs) ToResizeRequestRequestedRunDurationPtrOutputWithContext(ctx context.Context) ResizeRequestRequestedRunDurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestRequestedRunDurationOutput).ToResizeRequestRequestedRunDurationPtrOutputWithContext(ctx) } -// ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrInput is an input type that accepts ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs, ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtr and ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput values. -// You can construct a concrete instance of `ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrInput` via: +// ResizeRequestRequestedRunDurationPtrInput is an input type that accepts ResizeRequestRequestedRunDurationArgs, ResizeRequestRequestedRunDurationPtr and ResizeRequestRequestedRunDurationPtrOutput values. +// You can construct a concrete instance of `ResizeRequestRequestedRunDurationPtrInput` via: // -// ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs{...} +// ResizeRequestRequestedRunDurationArgs{...} // // or: // // nil -type ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrInput interface { +type ResizeRequestRequestedRunDurationPtrInput interface { pulumi.Input - ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput - ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(context.Context) ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput + ToResizeRequestRequestedRunDurationPtrOutput() ResizeRequestRequestedRunDurationPtrOutput + ToResizeRequestRequestedRunDurationPtrOutputWithContext(context.Context) ResizeRequestRequestedRunDurationPtrOutput } -type resourcePolicyInstanceSchedulePolicyVmStopSchedulePtrType ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs +type resizeRequestRequestedRunDurationPtrType ResizeRequestRequestedRunDurationArgs -func ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtr(v *ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs) ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrInput { - return (*resourcePolicyInstanceSchedulePolicyVmStopSchedulePtrType)(v) +func ResizeRequestRequestedRunDurationPtr(v *ResizeRequestRequestedRunDurationArgs) ResizeRequestRequestedRunDurationPtrInput { + return (*resizeRequestRequestedRunDurationPtrType)(v) } -func (*resourcePolicyInstanceSchedulePolicyVmStopSchedulePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicyInstanceSchedulePolicyVmStopSchedule)(nil)).Elem() +func (*resizeRequestRequestedRunDurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResizeRequestRequestedRunDuration)(nil)).Elem() } -func (i *resourcePolicyInstanceSchedulePolicyVmStopSchedulePtrType) ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { - return i.ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(context.Background()) +func (i *resizeRequestRequestedRunDurationPtrType) ToResizeRequestRequestedRunDurationPtrOutput() ResizeRequestRequestedRunDurationPtrOutput { + return i.ToResizeRequestRequestedRunDurationPtrOutputWithContext(context.Background()) } -func (i *resourcePolicyInstanceSchedulePolicyVmStopSchedulePtrType) ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) +func (i *resizeRequestRequestedRunDurationPtrType) ToResizeRequestRequestedRunDurationPtrOutputWithContext(ctx context.Context) ResizeRequestRequestedRunDurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestRequestedRunDurationPtrOutput) } -type ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput struct{ *pulumi.OutputState } +type ResizeRequestRequestedRunDurationOutput struct{ *pulumi.OutputState } -func (ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicyInstanceSchedulePolicyVmStopSchedule)(nil)).Elem() +func (ResizeRequestRequestedRunDurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestRequestedRunDuration)(nil)).Elem() } -func (o ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput) ToResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput() ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput { +func (o ResizeRequestRequestedRunDurationOutput) ToResizeRequestRequestedRunDurationOutput() ResizeRequestRequestedRunDurationOutput { return o } -func (o ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput) ToResourcePolicyInstanceSchedulePolicyVmStopScheduleOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput { +func (o ResizeRequestRequestedRunDurationOutput) ToResizeRequestRequestedRunDurationOutputWithContext(ctx context.Context) ResizeRequestRequestedRunDurationOutput { return o } -func (o ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput) ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { - return o.ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(context.Background()) +func (o ResizeRequestRequestedRunDurationOutput) ToResizeRequestRequestedRunDurationPtrOutput() ResizeRequestRequestedRunDurationPtrOutput { + return o.ToResizeRequestRequestedRunDurationPtrOutputWithContext(context.Background()) } -func (o ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput) ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicyInstanceSchedulePolicyVmStopSchedule) *ResourcePolicyInstanceSchedulePolicyVmStopSchedule { +func (o ResizeRequestRequestedRunDurationOutput) ToResizeRequestRequestedRunDurationPtrOutputWithContext(ctx context.Context) ResizeRequestRequestedRunDurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResizeRequestRequestedRunDuration) *ResizeRequestRequestedRunDuration { return &v - }).(ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) + }).(ResizeRequestRequestedRunDurationPtrOutput) } -// Specifies the frequency for the operation, using the unix-cron format. -func (o ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput) Schedule() pulumi.StringOutput { - return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicyVmStopSchedule) string { return v.Schedule }).(pulumi.StringOutput) +// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. +func (o ResizeRequestRequestedRunDurationOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v ResizeRequestRequestedRunDuration) *int { return v.Nanos }).(pulumi.IntPtrOutput) } -type ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput struct{ *pulumi.OutputState } +// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years +func (o ResizeRequestRequestedRunDurationOutput) Seconds() pulumi.StringOutput { + return o.ApplyT(func(v ResizeRequestRequestedRunDuration) string { return v.Seconds }).(pulumi.StringOutput) +} -func (ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicyInstanceSchedulePolicyVmStopSchedule)(nil)).Elem() +type ResizeRequestRequestedRunDurationPtrOutput struct{ *pulumi.OutputState } + +func (ResizeRequestRequestedRunDurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResizeRequestRequestedRunDuration)(nil)).Elem() } -func (o ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { +func (o ResizeRequestRequestedRunDurationPtrOutput) ToResizeRequestRequestedRunDurationPtrOutput() ResizeRequestRequestedRunDurationPtrOutput { return o } -func (o ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { +func (o ResizeRequestRequestedRunDurationPtrOutput) ToResizeRequestRequestedRunDurationPtrOutputWithContext(ctx context.Context) ResizeRequestRequestedRunDurationPtrOutput { return o } -func (o ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) Elem() ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput { - return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicyVmStopSchedule) ResourcePolicyInstanceSchedulePolicyVmStopSchedule { +func (o ResizeRequestRequestedRunDurationPtrOutput) Elem() ResizeRequestRequestedRunDurationOutput { + return o.ApplyT(func(v *ResizeRequestRequestedRunDuration) ResizeRequestRequestedRunDuration { if v != nil { return *v } - var ret ResourcePolicyInstanceSchedulePolicyVmStopSchedule + var ret ResizeRequestRequestedRunDuration return ret - }).(ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput) + }).(ResizeRequestRequestedRunDurationOutput) } -// Specifies the frequency for the operation, using the unix-cron format. -func (o ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) Schedule() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicyVmStopSchedule) *string { +// Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. +func (o ResizeRequestRequestedRunDurationPtrOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ResizeRequestRequestedRunDuration) *int { if v == nil { return nil } - return &v.Schedule + return v.Nanos + }).(pulumi.IntPtrOutput) +} + +// Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years +func (o ResizeRequestRequestedRunDurationPtrOutput) Seconds() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResizeRequestRequestedRunDuration) *string { + if v == nil { + return nil + } + return &v.Seconds }).(pulumi.StringPtrOutput) } -type ResourcePolicySnapshotSchedulePolicy struct { - // Retention policy applied to snapshots created by this resource policy. - // Structure is documented below. - RetentionPolicy *ResourcePolicySnapshotSchedulePolicyRetentionPolicy `pulumi:"retentionPolicy"` - // Contains one of an `hourlySchedule`, `dailySchedule`, or `weeklySchedule`. +type ResizeRequestStatus struct { + // (Output) + // [Output only] Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. // Structure is documented below. - Schedule ResourcePolicySnapshotSchedulePolicySchedule `pulumi:"schedule"` - // Properties with which the snapshots are created, such as labels. + Errors []ResizeRequestStatusError `pulumi:"errors"` + // (Output) + // [Output only] Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the "error" field only. // Structure is documented below. - SnapshotProperties *ResourcePolicySnapshotSchedulePolicySnapshotProperties `pulumi:"snapshotProperties"` + LastAttempts []ResizeRequestStatusLastAttempt `pulumi:"lastAttempts"` } -// ResourcePolicySnapshotSchedulePolicyInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyArgs and ResourcePolicySnapshotSchedulePolicyOutput values. -// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyInput` via: +// ResizeRequestStatusInput is an input type that accepts ResizeRequestStatusArgs and ResizeRequestStatusOutput values. +// You can construct a concrete instance of `ResizeRequestStatusInput` via: // -// ResourcePolicySnapshotSchedulePolicyArgs{...} -type ResourcePolicySnapshotSchedulePolicyInput interface { +// ResizeRequestStatusArgs{...} +type ResizeRequestStatusInput interface { pulumi.Input - ToResourcePolicySnapshotSchedulePolicyOutput() ResourcePolicySnapshotSchedulePolicyOutput - ToResourcePolicySnapshotSchedulePolicyOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyOutput + ToResizeRequestStatusOutput() ResizeRequestStatusOutput + ToResizeRequestStatusOutputWithContext(context.Context) ResizeRequestStatusOutput } -type ResourcePolicySnapshotSchedulePolicyArgs struct { - // Retention policy applied to snapshots created by this resource policy. - // Structure is documented below. - RetentionPolicy ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrInput `pulumi:"retentionPolicy"` - // Contains one of an `hourlySchedule`, `dailySchedule`, or `weeklySchedule`. +type ResizeRequestStatusArgs struct { + // (Output) + // [Output only] Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. // Structure is documented below. - Schedule ResourcePolicySnapshotSchedulePolicyScheduleInput `pulumi:"schedule"` - // Properties with which the snapshots are created, such as labels. + Errors ResizeRequestStatusErrorArrayInput `pulumi:"errors"` + // (Output) + // [Output only] Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the "error" field only. // Structure is documented below. - SnapshotProperties ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrInput `pulumi:"snapshotProperties"` -} - -func (ResourcePolicySnapshotSchedulePolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicy)(nil)).Elem() -} - -func (i ResourcePolicySnapshotSchedulePolicyArgs) ToResourcePolicySnapshotSchedulePolicyOutput() ResourcePolicySnapshotSchedulePolicyOutput { - return i.ToResourcePolicySnapshotSchedulePolicyOutputWithContext(context.Background()) + LastAttempts ResizeRequestStatusLastAttemptArrayInput `pulumi:"lastAttempts"` } -func (i ResourcePolicySnapshotSchedulePolicyArgs) ToResourcePolicySnapshotSchedulePolicyOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyOutput) +func (ResizeRequestStatusArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatus)(nil)).Elem() } -func (i ResourcePolicySnapshotSchedulePolicyArgs) ToResourcePolicySnapshotSchedulePolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyPtrOutput { - return i.ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(context.Background()) +func (i ResizeRequestStatusArgs) ToResizeRequestStatusOutput() ResizeRequestStatusOutput { + return i.ToResizeRequestStatusOutputWithContext(context.Background()) } -func (i ResourcePolicySnapshotSchedulePolicyArgs) ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyOutput).ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(ctx) +func (i ResizeRequestStatusArgs) ToResizeRequestStatusOutputWithContext(ctx context.Context) ResizeRequestStatusOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusOutput) } -// ResourcePolicySnapshotSchedulePolicyPtrInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyArgs, ResourcePolicySnapshotSchedulePolicyPtr and ResourcePolicySnapshotSchedulePolicyPtrOutput values. -// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyPtrInput` via: -// -// ResourcePolicySnapshotSchedulePolicyArgs{...} -// -// or: +// ResizeRequestStatusArrayInput is an input type that accepts ResizeRequestStatusArray and ResizeRequestStatusArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusArrayInput` via: // -// nil -type ResourcePolicySnapshotSchedulePolicyPtrInput interface { +// ResizeRequestStatusArray{ ResizeRequestStatusArgs{...} } +type ResizeRequestStatusArrayInput interface { pulumi.Input - ToResourcePolicySnapshotSchedulePolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyPtrOutput - ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyPtrOutput -} - -type resourcePolicySnapshotSchedulePolicyPtrType ResourcePolicySnapshotSchedulePolicyArgs - -func ResourcePolicySnapshotSchedulePolicyPtr(v *ResourcePolicySnapshotSchedulePolicyArgs) ResourcePolicySnapshotSchedulePolicyPtrInput { - return (*resourcePolicySnapshotSchedulePolicyPtrType)(v) -} - -func (*resourcePolicySnapshotSchedulePolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicy)(nil)).Elem() -} - -func (i *resourcePolicySnapshotSchedulePolicyPtrType) ToResourcePolicySnapshotSchedulePolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyPtrOutput { - return i.ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(context.Background()) -} - -func (i *resourcePolicySnapshotSchedulePolicyPtrType) ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyPtrOutput) -} - -type ResourcePolicySnapshotSchedulePolicyOutput struct{ *pulumi.OutputState } - -func (ResourcePolicySnapshotSchedulePolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicy)(nil)).Elem() -} - -func (o ResourcePolicySnapshotSchedulePolicyOutput) ToResourcePolicySnapshotSchedulePolicyOutput() ResourcePolicySnapshotSchedulePolicyOutput { - return o -} - -func (o ResourcePolicySnapshotSchedulePolicyOutput) ToResourcePolicySnapshotSchedulePolicyOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyOutput { - return o -} - -func (o ResourcePolicySnapshotSchedulePolicyOutput) ToResourcePolicySnapshotSchedulePolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyPtrOutput { - return o.ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(context.Background()) + ToResizeRequestStatusArrayOutput() ResizeRequestStatusArrayOutput + ToResizeRequestStatusArrayOutputWithContext(context.Context) ResizeRequestStatusArrayOutput } -func (o ResourcePolicySnapshotSchedulePolicyOutput) ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicySnapshotSchedulePolicy) *ResourcePolicySnapshotSchedulePolicy { - return &v - }).(ResourcePolicySnapshotSchedulePolicyPtrOutput) -} +type ResizeRequestStatusArray []ResizeRequestStatusInput -// Retention policy applied to snapshots created by this resource policy. -// Structure is documented below. -func (o ResourcePolicySnapshotSchedulePolicyOutput) RetentionPolicy() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicy) *ResourcePolicySnapshotSchedulePolicyRetentionPolicy { - return v.RetentionPolicy - }).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) +func (ResizeRequestStatusArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatus)(nil)).Elem() } -// Contains one of an `hourlySchedule`, `dailySchedule`, or `weeklySchedule`. -// Structure is documented below. -func (o ResourcePolicySnapshotSchedulePolicyOutput) Schedule() ResourcePolicySnapshotSchedulePolicyScheduleOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicy) ResourcePolicySnapshotSchedulePolicySchedule { - return v.Schedule - }).(ResourcePolicySnapshotSchedulePolicyScheduleOutput) +func (i ResizeRequestStatusArray) ToResizeRequestStatusArrayOutput() ResizeRequestStatusArrayOutput { + return i.ToResizeRequestStatusArrayOutputWithContext(context.Background()) } -// Properties with which the snapshots are created, such as labels. -// Structure is documented below. -func (o ResourcePolicySnapshotSchedulePolicyOutput) SnapshotProperties() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicy) *ResourcePolicySnapshotSchedulePolicySnapshotProperties { - return v.SnapshotProperties - }).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) +func (i ResizeRequestStatusArray) ToResizeRequestStatusArrayOutputWithContext(ctx context.Context) ResizeRequestStatusArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusArrayOutput) } -type ResourcePolicySnapshotSchedulePolicyPtrOutput struct{ *pulumi.OutputState } - -func (ResourcePolicySnapshotSchedulePolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicy)(nil)).Elem() -} +type ResizeRequestStatusOutput struct{ *pulumi.OutputState } -func (o ResourcePolicySnapshotSchedulePolicyPtrOutput) ToResourcePolicySnapshotSchedulePolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyPtrOutput { - return o +func (ResizeRequestStatusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatus)(nil)).Elem() } -func (o ResourcePolicySnapshotSchedulePolicyPtrOutput) ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyPtrOutput { +func (o ResizeRequestStatusOutput) ToResizeRequestStatusOutput() ResizeRequestStatusOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyPtrOutput) Elem() ResourcePolicySnapshotSchedulePolicyOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicy) ResourcePolicySnapshotSchedulePolicy { - if v != nil { - return *v - } - var ret ResourcePolicySnapshotSchedulePolicy - return ret - }).(ResourcePolicySnapshotSchedulePolicyOutput) +func (o ResizeRequestStatusOutput) ToResizeRequestStatusOutputWithContext(ctx context.Context) ResizeRequestStatusOutput { + return o } -// Retention policy applied to snapshots created by this resource policy. +// (Output) +// [Output only] Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. // Structure is documented below. -func (o ResourcePolicySnapshotSchedulePolicyPtrOutput) RetentionPolicy() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicy) *ResourcePolicySnapshotSchedulePolicyRetentionPolicy { - if v == nil { - return nil - } - return v.RetentionPolicy - }).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) +func (o ResizeRequestStatusOutput) Errors() ResizeRequestStatusErrorArrayOutput { + return o.ApplyT(func(v ResizeRequestStatus) []ResizeRequestStatusError { return v.Errors }).(ResizeRequestStatusErrorArrayOutput) } -// Contains one of an `hourlySchedule`, `dailySchedule`, or `weeklySchedule`. +// (Output) +// [Output only] Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the "error" field only. // Structure is documented below. -func (o ResourcePolicySnapshotSchedulePolicyPtrOutput) Schedule() ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicy) *ResourcePolicySnapshotSchedulePolicySchedule { - if v == nil { - return nil - } - return &v.Schedule - }).(ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) +func (o ResizeRequestStatusOutput) LastAttempts() ResizeRequestStatusLastAttemptArrayOutput { + return o.ApplyT(func(v ResizeRequestStatus) []ResizeRequestStatusLastAttempt { return v.LastAttempts }).(ResizeRequestStatusLastAttemptArrayOutput) } -// Properties with which the snapshots are created, such as labels. -// Structure is documented below. -func (o ResourcePolicySnapshotSchedulePolicyPtrOutput) SnapshotProperties() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicy) *ResourcePolicySnapshotSchedulePolicySnapshotProperties { - if v == nil { - return nil - } - return v.SnapshotProperties - }).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) +type ResizeRequestStatusArrayOutput struct{ *pulumi.OutputState } + +func (ResizeRequestStatusArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatus)(nil)).Elem() } -type ResourcePolicySnapshotSchedulePolicyRetentionPolicy struct { - // Maximum age of the snapshot that is allowed to be kept. - MaxRetentionDays int `pulumi:"maxRetentionDays"` - // Specifies the behavior to apply to scheduled snapshots when - // the source disk is deleted. - // Default value is `KEEP_AUTO_SNAPSHOTS`. - // Possible values are: `KEEP_AUTO_SNAPSHOTS`, `APPLY_RETENTION_POLICY`. - OnSourceDiskDelete *string `pulumi:"onSourceDiskDelete"` +func (o ResizeRequestStatusArrayOutput) ToResizeRequestStatusArrayOutput() ResizeRequestStatusArrayOutput { + return o } -// ResourcePolicySnapshotSchedulePolicyRetentionPolicyInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs and ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput values. -// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyRetentionPolicyInput` via: -// -// ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs{...} -type ResourcePolicySnapshotSchedulePolicyRetentionPolicyInput interface { - pulumi.Input +func (o ResizeRequestStatusArrayOutput) ToResizeRequestStatusArrayOutputWithContext(ctx context.Context) ResizeRequestStatusArrayOutput { + return o +} - ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput - ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput +func (o ResizeRequestStatusArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatus { + return vs[0].([]ResizeRequestStatus)[vs[1].(int)] + }).(ResizeRequestStatusOutput) } -type ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs struct { - // Maximum age of the snapshot that is allowed to be kept. - MaxRetentionDays pulumi.IntInput `pulumi:"maxRetentionDays"` - // Specifies the behavior to apply to scheduled snapshots when - // the source disk is deleted. - // Default value is `KEEP_AUTO_SNAPSHOTS`. - // Possible values are: `KEEP_AUTO_SNAPSHOTS`, `APPLY_RETENTION_POLICY`. - OnSourceDiskDelete pulumi.StringPtrInput `pulumi:"onSourceDiskDelete"` +type ResizeRequestStatusError struct { + // (Output) + // [Output Only] The array of errors encountered while processing this operation. + // Structure is documented below. + Errors []ResizeRequestStatusErrorError `pulumi:"errors"` } -func (ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyRetentionPolicy)(nil)).Elem() +// ResizeRequestStatusErrorInput is an input type that accepts ResizeRequestStatusErrorArgs and ResizeRequestStatusErrorOutput values. +// You can construct a concrete instance of `ResizeRequestStatusErrorInput` via: +// +// ResizeRequestStatusErrorArgs{...} +type ResizeRequestStatusErrorInput interface { + pulumi.Input + + ToResizeRequestStatusErrorOutput() ResizeRequestStatusErrorOutput + ToResizeRequestStatusErrorOutputWithContext(context.Context) ResizeRequestStatusErrorOutput } -func (i ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput { - return i.ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutputWithContext(context.Background()) +type ResizeRequestStatusErrorArgs struct { + // (Output) + // [Output Only] The array of errors encountered while processing this operation. + // Structure is documented below. + Errors ResizeRequestStatusErrorErrorArrayInput `pulumi:"errors"` } -func (i ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) +func (ResizeRequestStatusErrorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusError)(nil)).Elem() } -func (i ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { - return i.ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(context.Background()) +func (i ResizeRequestStatusErrorArgs) ToResizeRequestStatusErrorOutput() ResizeRequestStatusErrorOutput { + return i.ToResizeRequestStatusErrorOutputWithContext(context.Background()) } -func (i ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput).ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(ctx) +func (i ResizeRequestStatusErrorArgs) ToResizeRequestStatusErrorOutputWithContext(ctx context.Context) ResizeRequestStatusErrorOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorOutput) } -// ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs, ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtr and ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput values. -// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrInput` via: -// -// ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs{...} -// -// or: +// ResizeRequestStatusErrorArrayInput is an input type that accepts ResizeRequestStatusErrorArray and ResizeRequestStatusErrorArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusErrorArrayInput` via: // -// nil -type ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrInput interface { +// ResizeRequestStatusErrorArray{ ResizeRequestStatusErrorArgs{...} } +type ResizeRequestStatusErrorArrayInput interface { pulumi.Input - ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput - ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput + ToResizeRequestStatusErrorArrayOutput() ResizeRequestStatusErrorArrayOutput + ToResizeRequestStatusErrorArrayOutputWithContext(context.Context) ResizeRequestStatusErrorArrayOutput } -type resourcePolicySnapshotSchedulePolicyRetentionPolicyPtrType ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs - -func ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtr(v *ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs) ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrInput { - return (*resourcePolicySnapshotSchedulePolicyRetentionPolicyPtrType)(v) -} +type ResizeRequestStatusErrorArray []ResizeRequestStatusErrorInput -func (*resourcePolicySnapshotSchedulePolicyRetentionPolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicyRetentionPolicy)(nil)).Elem() +func (ResizeRequestStatusErrorArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusError)(nil)).Elem() } -func (i *resourcePolicySnapshotSchedulePolicyRetentionPolicyPtrType) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { - return i.ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(context.Background()) +func (i ResizeRequestStatusErrorArray) ToResizeRequestStatusErrorArrayOutput() ResizeRequestStatusErrorArrayOutput { + return i.ToResizeRequestStatusErrorArrayOutputWithContext(context.Background()) } -func (i *resourcePolicySnapshotSchedulePolicyRetentionPolicyPtrType) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) +func (i ResizeRequestStatusErrorArray) ToResizeRequestStatusErrorArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorArrayOutput) } -type ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusErrorOutput struct{ *pulumi.OutputState } -func (ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyRetentionPolicy)(nil)).Elem() +func (ResizeRequestStatusErrorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusError)(nil)).Elem() } -func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput { +func (o ResizeRequestStatusErrorOutput) ToResizeRequestStatusErrorOutput() ResizeRequestStatusErrorOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput { +func (o ResizeRequestStatusErrorOutput) ToResizeRequestStatusErrorOutputWithContext(ctx context.Context) ResizeRequestStatusErrorOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { - return o.ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(context.Background()) -} - -func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicySnapshotSchedulePolicyRetentionPolicy) *ResourcePolicySnapshotSchedulePolicyRetentionPolicy { - return &v - }).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) -} - -// Maximum age of the snapshot that is allowed to be kept. -func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) MaxRetentionDays() pulumi.IntOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyRetentionPolicy) int { return v.MaxRetentionDays }).(pulumi.IntOutput) -} - -// Specifies the behavior to apply to scheduled snapshots when -// the source disk is deleted. -// Default value is `KEEP_AUTO_SNAPSHOTS`. -// Possible values are: `KEEP_AUTO_SNAPSHOTS`, `APPLY_RETENTION_POLICY`. -func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) OnSourceDiskDelete() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyRetentionPolicy) *string { return v.OnSourceDiskDelete }).(pulumi.StringPtrOutput) +// (Output) +// [Output Only] The array of errors encountered while processing this operation. +// Structure is documented below. +func (o ResizeRequestStatusErrorOutput) Errors() ResizeRequestStatusErrorErrorArrayOutput { + return o.ApplyT(func(v ResizeRequestStatusError) []ResizeRequestStatusErrorError { return v.Errors }).(ResizeRequestStatusErrorErrorArrayOutput) } -type ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusErrorArrayOutput struct{ *pulumi.OutputState } -func (ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicyRetentionPolicy)(nil)).Elem() +func (ResizeRequestStatusErrorArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusError)(nil)).Elem() } -func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { +func (o ResizeRequestStatusErrorArrayOutput) ToResizeRequestStatusErrorArrayOutput() ResizeRequestStatusErrorArrayOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { +func (o ResizeRequestStatusErrorArrayOutput) ToResizeRequestStatusErrorArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorArrayOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) Elem() ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyRetentionPolicy) ResourcePolicySnapshotSchedulePolicyRetentionPolicy { - if v != nil { - return *v - } - var ret ResourcePolicySnapshotSchedulePolicyRetentionPolicy - return ret - }).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) -} - -// Maximum age of the snapshot that is allowed to be kept. -func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) MaxRetentionDays() pulumi.IntPtrOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyRetentionPolicy) *int { - if v == nil { - return nil - } - return &v.MaxRetentionDays - }).(pulumi.IntPtrOutput) -} - -// Specifies the behavior to apply to scheduled snapshots when -// the source disk is deleted. -// Default value is `KEEP_AUTO_SNAPSHOTS`. -// Possible values are: `KEEP_AUTO_SNAPSHOTS`, `APPLY_RETENTION_POLICY`. -func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) OnSourceDiskDelete() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyRetentionPolicy) *string { - if v == nil { - return nil - } - return v.OnSourceDiskDelete - }).(pulumi.StringPtrOutput) +func (o ResizeRequestStatusErrorArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusErrorOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusError { + return vs[0].([]ResizeRequestStatusError)[vs[1].(int)] + }).(ResizeRequestStatusErrorOutput) } -type ResourcePolicySnapshotSchedulePolicySchedule struct { - // The policy will execute every nth day at the specified time. - // Structure is documented below. - DailySchedule *ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule `pulumi:"dailySchedule"` - // The policy will execute every nth hour starting at the specified time. - // Structure is documented below. - HourlySchedule *ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule `pulumi:"hourlySchedule"` - // Allows specifying a snapshot time for each day of the week. +type ResizeRequestStatusErrorError struct { + // (Output) + // [Output Only] The error type identifier for this error. + Code *string `pulumi:"code"` + // (Output) + // [Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. // Structure is documented below. - WeeklySchedule *ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule `pulumi:"weeklySchedule"` + ErrorDetails []ResizeRequestStatusErrorErrorErrorDetail `pulumi:"errorDetails"` + // (Output) + // Output Only] Indicates the field in the request that caused the error. This property is optional. + Location *string `pulumi:"location"` + // (Output) + // The localized error message in the above locale. + Message *string `pulumi:"message"` } -// ResourcePolicySnapshotSchedulePolicyScheduleInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleArgs and ResourcePolicySnapshotSchedulePolicyScheduleOutput values. -// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleInput` via: +// ResizeRequestStatusErrorErrorInput is an input type that accepts ResizeRequestStatusErrorErrorArgs and ResizeRequestStatusErrorErrorOutput values. +// You can construct a concrete instance of `ResizeRequestStatusErrorErrorInput` via: // -// ResourcePolicySnapshotSchedulePolicyScheduleArgs{...} -type ResourcePolicySnapshotSchedulePolicyScheduleInput interface { +// ResizeRequestStatusErrorErrorArgs{...} +type ResizeRequestStatusErrorErrorInput interface { pulumi.Input - ToResourcePolicySnapshotSchedulePolicyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleOutput - ToResourcePolicySnapshotSchedulePolicyScheduleOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleOutput + ToResizeRequestStatusErrorErrorOutput() ResizeRequestStatusErrorErrorOutput + ToResizeRequestStatusErrorErrorOutputWithContext(context.Context) ResizeRequestStatusErrorErrorOutput } -type ResourcePolicySnapshotSchedulePolicyScheduleArgs struct { - // The policy will execute every nth day at the specified time. - // Structure is documented below. - DailySchedule ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrInput `pulumi:"dailySchedule"` - // The policy will execute every nth hour starting at the specified time. - // Structure is documented below. - HourlySchedule ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrInput `pulumi:"hourlySchedule"` - // Allows specifying a snapshot time for each day of the week. +type ResizeRequestStatusErrorErrorArgs struct { + // (Output) + // [Output Only] The error type identifier for this error. + Code pulumi.StringPtrInput `pulumi:"code"` + // (Output) + // [Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. // Structure is documented below. - WeeklySchedule ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrInput `pulumi:"weeklySchedule"` -} - -func (ResourcePolicySnapshotSchedulePolicyScheduleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicySchedule)(nil)).Elem() -} - -func (i ResourcePolicySnapshotSchedulePolicyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleOutput { - return i.ToResourcePolicySnapshotSchedulePolicyScheduleOutputWithContext(context.Background()) + ErrorDetails ResizeRequestStatusErrorErrorErrorDetailArrayInput `pulumi:"errorDetails"` + // (Output) + // Output Only] Indicates the field in the request that caused the error. This property is optional. + Location pulumi.StringPtrInput `pulumi:"location"` + // (Output) + // The localized error message in the above locale. + Message pulumi.StringPtrInput `pulumi:"message"` } -func (i ResourcePolicySnapshotSchedulePolicyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleOutput) +func (ResizeRequestStatusErrorErrorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusErrorError)(nil)).Elem() } -func (i ResourcePolicySnapshotSchedulePolicyScheduleArgs) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { - return i.ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(context.Background()) +func (i ResizeRequestStatusErrorErrorArgs) ToResizeRequestStatusErrorErrorOutput() ResizeRequestStatusErrorErrorOutput { + return i.ToResizeRequestStatusErrorErrorOutputWithContext(context.Background()) } -func (i ResourcePolicySnapshotSchedulePolicyScheduleArgs) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleOutput).ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(ctx) +func (i ResizeRequestStatusErrorErrorArgs) ToResizeRequestStatusErrorErrorOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorOutput) } -// ResourcePolicySnapshotSchedulePolicySchedulePtrInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleArgs, ResourcePolicySnapshotSchedulePolicySchedulePtr and ResourcePolicySnapshotSchedulePolicySchedulePtrOutput values. -// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicySchedulePtrInput` via: -// -// ResourcePolicySnapshotSchedulePolicyScheduleArgs{...} -// -// or: +// ResizeRequestStatusErrorErrorArrayInput is an input type that accepts ResizeRequestStatusErrorErrorArray and ResizeRequestStatusErrorErrorArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusErrorErrorArrayInput` via: // -// nil -type ResourcePolicySnapshotSchedulePolicySchedulePtrInput interface { +// ResizeRequestStatusErrorErrorArray{ ResizeRequestStatusErrorErrorArgs{...} } +type ResizeRequestStatusErrorErrorArrayInput interface { pulumi.Input - ToResourcePolicySnapshotSchedulePolicySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicySchedulePtrOutput - ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicySchedulePtrOutput + ToResizeRequestStatusErrorErrorArrayOutput() ResizeRequestStatusErrorErrorArrayOutput + ToResizeRequestStatusErrorErrorArrayOutputWithContext(context.Context) ResizeRequestStatusErrorErrorArrayOutput } -type resourcePolicySnapshotSchedulePolicySchedulePtrType ResourcePolicySnapshotSchedulePolicyScheduleArgs - -func ResourcePolicySnapshotSchedulePolicySchedulePtr(v *ResourcePolicySnapshotSchedulePolicyScheduleArgs) ResourcePolicySnapshotSchedulePolicySchedulePtrInput { - return (*resourcePolicySnapshotSchedulePolicySchedulePtrType)(v) -} +type ResizeRequestStatusErrorErrorArray []ResizeRequestStatusErrorErrorInput -func (*resourcePolicySnapshotSchedulePolicySchedulePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicySchedule)(nil)).Elem() +func (ResizeRequestStatusErrorErrorArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusErrorError)(nil)).Elem() } -func (i *resourcePolicySnapshotSchedulePolicySchedulePtrType) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { - return i.ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(context.Background()) +func (i ResizeRequestStatusErrorErrorArray) ToResizeRequestStatusErrorErrorArrayOutput() ResizeRequestStatusErrorErrorArrayOutput { + return i.ToResizeRequestStatusErrorErrorArrayOutputWithContext(context.Background()) } -func (i *resourcePolicySnapshotSchedulePolicySchedulePtrType) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) +func (i ResizeRequestStatusErrorErrorArray) ToResizeRequestStatusErrorErrorArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorArrayOutput) } -type ResourcePolicySnapshotSchedulePolicyScheduleOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusErrorErrorOutput struct{ *pulumi.OutputState } -func (ResourcePolicySnapshotSchedulePolicyScheduleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicySchedule)(nil)).Elem() +func (ResizeRequestStatusErrorErrorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusErrorError)(nil)).Elem() } -func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleOutput { +func (o ResizeRequestStatusErrorErrorOutput) ToResizeRequestStatusErrorErrorOutput() ResizeRequestStatusErrorErrorOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleOutput { +func (o ResizeRequestStatusErrorErrorOutput) ToResizeRequestStatusErrorErrorOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { - return o.ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(context.Background()) -} - -func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicySnapshotSchedulePolicySchedule { - return &v - }).(ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) +// (Output) +// [Output Only] The error type identifier for this error. +func (o ResizeRequestStatusErrorErrorOutput) Code() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorError) *string { return v.Code }).(pulumi.StringPtrOutput) } -// The policy will execute every nth day at the specified time. +// (Output) +// [Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. // Structure is documented below. -func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) DailySchedule() ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule { - return v.DailySchedule - }).(ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) +func (o ResizeRequestStatusErrorErrorOutput) ErrorDetails() ResizeRequestStatusErrorErrorErrorDetailArrayOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorError) []ResizeRequestStatusErrorErrorErrorDetail { + return v.ErrorDetails + }).(ResizeRequestStatusErrorErrorErrorDetailArrayOutput) } -// The policy will execute every nth hour starting at the specified time. -// Structure is documented below. -func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) HourlySchedule() ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule { - return v.HourlySchedule - }).(ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) +// (Output) +// Output Only] Indicates the field in the request that caused the error. This property is optional. +func (o ResizeRequestStatusErrorErrorOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorError) *string { return v.Location }).(pulumi.StringPtrOutput) } -// Allows specifying a snapshot time for each day of the week. -// Structure is documented below. -func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) WeeklySchedule() ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule { - return v.WeeklySchedule - }).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) +// (Output) +// The localized error message in the above locale. +func (o ResizeRequestStatusErrorErrorOutput) Message() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorError) *string { return v.Message }).(pulumi.StringPtrOutput) } -type ResourcePolicySnapshotSchedulePolicySchedulePtrOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusErrorErrorArrayOutput struct{ *pulumi.OutputState } -func (ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicySchedule)(nil)).Elem() +func (ResizeRequestStatusErrorErrorArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusErrorError)(nil)).Elem() } -func (o ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { +func (o ResizeRequestStatusErrorErrorArrayOutput) ToResizeRequestStatusErrorErrorArrayOutput() ResizeRequestStatusErrorErrorArrayOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { +func (o ResizeRequestStatusErrorErrorArrayOutput) ToResizeRequestStatusErrorErrorArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorArrayOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) Elem() ResourcePolicySnapshotSchedulePolicyScheduleOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySchedule) ResourcePolicySnapshotSchedulePolicySchedule { - if v != nil { - return *v - } - var ret ResourcePolicySnapshotSchedulePolicySchedule - return ret - }).(ResourcePolicySnapshotSchedulePolicyScheduleOutput) -} - -// The policy will execute every nth day at the specified time. -// Structure is documented below. -func (o ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) DailySchedule() ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule { - if v == nil { - return nil - } - return v.DailySchedule - }).(ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) -} - -// The policy will execute every nth hour starting at the specified time. -// Structure is documented below. -func (o ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) HourlySchedule() ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule { - if v == nil { - return nil - } - return v.HourlySchedule - }).(ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) -} - -// Allows specifying a snapshot time for each day of the week. -// Structure is documented below. -func (o ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) WeeklySchedule() ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule { - if v == nil { - return nil - } - return v.WeeklySchedule - }).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) +func (o ResizeRequestStatusErrorErrorArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusErrorErrorOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusErrorError { + return vs[0].([]ResizeRequestStatusErrorError)[vs[1].(int)] + }).(ResizeRequestStatusErrorErrorOutput) } -type ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule struct { - // Defines a schedule with units measured in days. The value determines how many days pass between the start of each cycle. Days in cycle for snapshot schedule policy must be 1. - DaysInCycle int `pulumi:"daysInCycle"` - // This must be in UTC format that resolves to one of - // 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, - // both 13:00-5 and 08:00 are valid. - StartTime string `pulumi:"startTime"` +type ResizeRequestStatusErrorErrorErrorDetail struct { + // (Output) + // [Output Only] + // Structure is documented below. + ErrorInfos []ResizeRequestStatusErrorErrorErrorDetailErrorInfo `pulumi:"errorInfos"` + // (Output) + // [Output Only] + // Structure is documented below. + Helps []ResizeRequestStatusErrorErrorErrorDetailHelp `pulumi:"helps"` + // (Output) + // [Output Only] + // Structure is documented below. + LocalizedMessages []ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage `pulumi:"localizedMessages"` + // (Output) + // [Output Only] + // Structure is documented below. + QuotaInfos []ResizeRequestStatusErrorErrorErrorDetailQuotaInfo `pulumi:"quotaInfos"` } -// ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs and ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput values. -// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleInput` via: +// ResizeRequestStatusErrorErrorErrorDetailInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailArgs and ResizeRequestStatusErrorErrorErrorDetailOutput values. +// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailInput` via: // -// ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs{...} -type ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleInput interface { +// ResizeRequestStatusErrorErrorErrorDetailArgs{...} +type ResizeRequestStatusErrorErrorErrorDetailInput interface { pulumi.Input - ToResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput - ToResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput -} - -type ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs struct { - // Defines a schedule with units measured in days. The value determines how many days pass between the start of each cycle. Days in cycle for snapshot schedule policy must be 1. - DaysInCycle pulumi.IntInput `pulumi:"daysInCycle"` - // This must be in UTC format that resolves to one of - // 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, - // both 13:00-5 and 08:00 are valid. - StartTime pulumi.StringInput `pulumi:"startTime"` -} - -func (ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule)(nil)).Elem() + ToResizeRequestStatusErrorErrorErrorDetailOutput() ResizeRequestStatusErrorErrorErrorDetailOutput + ToResizeRequestStatusErrorErrorErrorDetailOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailOutput } -func (i ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput { - return i.ToResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutputWithContext(context.Background()) +type ResizeRequestStatusErrorErrorErrorDetailArgs struct { + // (Output) + // [Output Only] + // Structure is documented below. + ErrorInfos ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayInput `pulumi:"errorInfos"` + // (Output) + // [Output Only] + // Structure is documented below. + Helps ResizeRequestStatusErrorErrorErrorDetailHelpArrayInput `pulumi:"helps"` + // (Output) + // [Output Only] + // Structure is documented below. + LocalizedMessages ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayInput `pulumi:"localizedMessages"` + // (Output) + // [Output Only] + // Structure is documented below. + QuotaInfos ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayInput `pulumi:"quotaInfos"` } -func (i ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) +func (ResizeRequestStatusErrorErrorErrorDetailArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetail)(nil)).Elem() } -func (i ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { - return i.ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(context.Background()) +func (i ResizeRequestStatusErrorErrorErrorDetailArgs) ToResizeRequestStatusErrorErrorErrorDetailOutput() ResizeRequestStatusErrorErrorErrorDetailOutput { + return i.ToResizeRequestStatusErrorErrorErrorDetailOutputWithContext(context.Background()) } -func (i ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput).ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(ctx) +func (i ResizeRequestStatusErrorErrorErrorDetailArgs) ToResizeRequestStatusErrorErrorErrorDetailOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailOutput) } -// ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs, ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtr and ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput values. -// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrInput` via: -// -// ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs{...} -// -// or: +// ResizeRequestStatusErrorErrorErrorDetailArrayInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailArray and ResizeRequestStatusErrorErrorErrorDetailArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailArrayInput` via: // -// nil -type ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrInput interface { +// ResizeRequestStatusErrorErrorErrorDetailArray{ ResizeRequestStatusErrorErrorErrorDetailArgs{...} } +type ResizeRequestStatusErrorErrorErrorDetailArrayInput interface { pulumi.Input - ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput - ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput + ToResizeRequestStatusErrorErrorErrorDetailArrayOutput() ResizeRequestStatusErrorErrorErrorDetailArrayOutput + ToResizeRequestStatusErrorErrorErrorDetailArrayOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailArrayOutput } -type resourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrType ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs - -func ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtr(v *ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs) ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrInput { - return (*resourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrType)(v) -} +type ResizeRequestStatusErrorErrorErrorDetailArray []ResizeRequestStatusErrorErrorErrorDetailInput -func (*resourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule)(nil)).Elem() +func (ResizeRequestStatusErrorErrorErrorDetailArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetail)(nil)).Elem() } -func (i *resourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrType) ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { - return i.ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(context.Background()) +func (i ResizeRequestStatusErrorErrorErrorDetailArray) ToResizeRequestStatusErrorErrorErrorDetailArrayOutput() ResizeRequestStatusErrorErrorErrorDetailArrayOutput { + return i.ToResizeRequestStatusErrorErrorErrorDetailArrayOutputWithContext(context.Background()) } -func (i *resourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrType) ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) +func (i ResizeRequestStatusErrorErrorErrorDetailArray) ToResizeRequestStatusErrorErrorErrorDetailArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailArrayOutput) } -type ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusErrorErrorErrorDetailOutput struct{ *pulumi.OutputState } -func (ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule)(nil)).Elem() +func (ResizeRequestStatusErrorErrorErrorDetailOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetail)(nil)).Elem() } -func (o ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput { +func (o ResizeRequestStatusErrorErrorErrorDetailOutput) ToResizeRequestStatusErrorErrorErrorDetailOutput() ResizeRequestStatusErrorErrorErrorDetailOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput { +func (o ResizeRequestStatusErrorErrorErrorDetailOutput) ToResizeRequestStatusErrorErrorErrorDetailOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { - return o.ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(context.Background()) +// (Output) +// [Output Only] +// Structure is documented below. +func (o ResizeRequestStatusErrorErrorErrorDetailOutput) ErrorInfos() ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetail) []ResizeRequestStatusErrorErrorErrorDetailErrorInfo { + return v.ErrorInfos + }).(ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput) } -func (o ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule { - return &v - }).(ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) +// (Output) +// [Output Only] +// Structure is documented below. +func (o ResizeRequestStatusErrorErrorErrorDetailOutput) Helps() ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetail) []ResizeRequestStatusErrorErrorErrorDetailHelp { + return v.Helps + }).(ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput) } -// Defines a schedule with units measured in days. The value determines how many days pass between the start of each cycle. Days in cycle for snapshot schedule policy must be 1. -func (o ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) DaysInCycle() pulumi.IntOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule) int { return v.DaysInCycle }).(pulumi.IntOutput) +// (Output) +// [Output Only] +// Structure is documented below. +func (o ResizeRequestStatusErrorErrorErrorDetailOutput) LocalizedMessages() ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetail) []ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage { + return v.LocalizedMessages + }).(ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput) } -// This must be in UTC format that resolves to one of -// 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, -// both 13:00-5 and 08:00 are valid. -func (o ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) StartTime() pulumi.StringOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule) string { return v.StartTime }).(pulumi.StringOutput) +// (Output) +// [Output Only] +// Structure is documented below. +func (o ResizeRequestStatusErrorErrorErrorDetailOutput) QuotaInfos() ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetail) []ResizeRequestStatusErrorErrorErrorDetailQuotaInfo { + return v.QuotaInfos + }).(ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput) } -type ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusErrorErrorErrorDetailArrayOutput struct{ *pulumi.OutputState } -func (ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule)(nil)).Elem() +func (ResizeRequestStatusErrorErrorErrorDetailArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetail)(nil)).Elem() } -func (o ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { +func (o ResizeRequestStatusErrorErrorErrorDetailArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailArrayOutput() ResizeRequestStatusErrorErrorErrorDetailArrayOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { +func (o ResizeRequestStatusErrorErrorErrorDetailArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailArrayOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) Elem() ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule) ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule { - if v != nil { - return *v - } - var ret ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule - return ret - }).(ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) -} - -// Defines a schedule with units measured in days. The value determines how many days pass between the start of each cycle. Days in cycle for snapshot schedule policy must be 1. -func (o ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) DaysInCycle() pulumi.IntPtrOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule) *int { - if v == nil { - return nil - } - return &v.DaysInCycle - }).(pulumi.IntPtrOutput) -} - -// This must be in UTC format that resolves to one of -// 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, -// both 13:00-5 and 08:00 are valid. -func (o ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) StartTime() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule) *string { - if v == nil { - return nil - } - return &v.StartTime - }).(pulumi.StringPtrOutput) +func (o ResizeRequestStatusErrorErrorErrorDetailArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusErrorErrorErrorDetailOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusErrorErrorErrorDetail { + return vs[0].([]ResizeRequestStatusErrorErrorErrorDetail)[vs[1].(int)] + }).(ResizeRequestStatusErrorErrorErrorDetailOutput) } -type ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule struct { - // The number of hours between snapshots. - HoursInCycle int `pulumi:"hoursInCycle"` - // Time within the window to start the operations. - // It must be in an hourly format "HH:MM", - // where HH : [00-23] and MM : [00] GMT. eg: 21:00 - StartTime string `pulumi:"startTime"` +type ResizeRequestStatusErrorErrorErrorDetailErrorInfo struct { + // (Output) + // 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". + Domain *string `pulumi:"domain"` + // (Output) + // Additional structured details about this error. + // Keys must match /[a-z][a-zA-Z0-9-_]+/ 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. + Metadatas map[string]string `pulumi:"metadatas"` + // (Output) + // 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_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + Reason *string `pulumi:"reason"` } -// ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs and ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput values. -// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleInput` via: +// ResizeRequestStatusErrorErrorErrorDetailErrorInfoInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs and ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput values. +// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailErrorInfoInput` via: // -// ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs{...} -type ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleInput interface { +// ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs{...} +type ResizeRequestStatusErrorErrorErrorDetailErrorInfoInput interface { pulumi.Input - ToResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput - ToResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput -} - -type ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs struct { - // The number of hours between snapshots. - HoursInCycle pulumi.IntInput `pulumi:"hoursInCycle"` - // Time within the window to start the operations. - // It must be in an hourly format "HH:MM", - // where HH : [00-23] and MM : [00] GMT. eg: 21:00 - StartTime pulumi.StringInput `pulumi:"startTime"` -} - -func (ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule)(nil)).Elem() + ToResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput() ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput + ToResizeRequestStatusErrorErrorErrorDetailErrorInfoOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput } -func (i ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput { - return i.ToResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutputWithContext(context.Background()) +type ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs struct { + // (Output) + // 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". + Domain pulumi.StringPtrInput `pulumi:"domain"` + // (Output) + // Additional structured details about this error. + // Keys must match /[a-z][a-zA-Z0-9-_]+/ 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. + Metadatas pulumi.StringMapInput `pulumi:"metadatas"` + // (Output) + // 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_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + Reason pulumi.StringPtrInput `pulumi:"reason"` } -func (i ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) +func (ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailErrorInfo)(nil)).Elem() } -func (i ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { - return i.ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(context.Background()) +func (i ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs) ToResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput() ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput { + return i.ToResizeRequestStatusErrorErrorErrorDetailErrorInfoOutputWithContext(context.Background()) } -func (i ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput).ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(ctx) +func (i ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs) ToResizeRequestStatusErrorErrorErrorDetailErrorInfoOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput) } -// ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs, ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtr and ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput values. -// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrInput` via: -// -// ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs{...} -// -// or: +// ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailErrorInfoArray and ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayInput` via: // -// nil -type ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrInput interface { +// ResizeRequestStatusErrorErrorErrorDetailErrorInfoArray{ ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs{...} } +type ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayInput interface { pulumi.Input - ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput - ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput + ToResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput() ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput + ToResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput } -type resourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrType ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs - -func ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtr(v *ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs) ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrInput { - return (*resourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrType)(v) -} +type ResizeRequestStatusErrorErrorErrorDetailErrorInfoArray []ResizeRequestStatusErrorErrorErrorDetailErrorInfoInput -func (*resourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule)(nil)).Elem() +func (ResizeRequestStatusErrorErrorErrorDetailErrorInfoArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetailErrorInfo)(nil)).Elem() } -func (i *resourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrType) ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { - return i.ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(context.Background()) +func (i ResizeRequestStatusErrorErrorErrorDetailErrorInfoArray) ToResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput() ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput { + return i.ToResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutputWithContext(context.Background()) } -func (i *resourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrType) ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) +func (i ResizeRequestStatusErrorErrorErrorDetailErrorInfoArray) ToResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput) } -type ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput struct{ *pulumi.OutputState } -func (ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule)(nil)).Elem() +func (ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailErrorInfo)(nil)).Elem() } -func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput { +func (o ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput) ToResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput() ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput { +func (o ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput) ToResizeRequestStatusErrorErrorErrorDetailErrorInfoOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { - return o.ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(context.Background()) -} - -func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule { - return &v - }).(ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) +// (Output) +// 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". +func (o ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput) Domain() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailErrorInfo) *string { return v.Domain }).(pulumi.StringPtrOutput) } -// The number of hours between snapshots. -func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) HoursInCycle() pulumi.IntOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule) int { return v.HoursInCycle }).(pulumi.IntOutput) +// (Output) +// Additional structured details about this error. +// Keys must match /[a-z][a-zA-Z0-9-_]+/ 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. +func (o ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput) Metadatas() pulumi.StringMapOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailErrorInfo) map[string]string { return v.Metadatas }).(pulumi.StringMapOutput) } -// Time within the window to start the operations. -// It must be in an hourly format "HH:MM", -// where HH : [00-23] and MM : [00] GMT. eg: 21:00 -func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) StartTime() pulumi.StringOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule) string { return v.StartTime }).(pulumi.StringOutput) +// (Output) +// 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_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. +func (o ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput) Reason() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailErrorInfo) *string { return v.Reason }).(pulumi.StringPtrOutput) } -type ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput struct{ *pulumi.OutputState } -func (ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule)(nil)).Elem() +func (ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetailErrorInfo)(nil)).Elem() } -func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { +func (o ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput() ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { +func (o ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) Elem() ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule) ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule { - if v != nil { - return *v - } - var ret ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule - return ret - }).(ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) -} - -// The number of hours between snapshots. -func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) HoursInCycle() pulumi.IntPtrOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule) *int { - if v == nil { - return nil - } - return &v.HoursInCycle - }).(pulumi.IntPtrOutput) -} - -// Time within the window to start the operations. -// It must be in an hourly format "HH:MM", -// where HH : [00-23] and MM : [00] GMT. eg: 21:00 -func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) StartTime() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule) *string { - if v == nil { - return nil - } - return &v.StartTime - }).(pulumi.StringPtrOutput) +func (o ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusErrorErrorErrorDetailErrorInfo { + return vs[0].([]ResizeRequestStatusErrorErrorErrorDetailErrorInfo)[vs[1].(int)] + }).(ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput) } -type ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule struct { - // May contain up to seven (one for each day of the week) snapshot times. +type ResizeRequestStatusErrorErrorErrorDetailHelp struct { + // (Output) + // [Output Only] // Structure is documented below. - DayOfWeeks []ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek `pulumi:"dayOfWeeks"` + Links []ResizeRequestStatusErrorErrorErrorDetailHelpLink `pulumi:"links"` } -// ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs and ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput values. -// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleInput` via: +// ResizeRequestStatusErrorErrorErrorDetailHelpInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailHelpArgs and ResizeRequestStatusErrorErrorErrorDetailHelpOutput values. +// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailHelpInput` via: // -// ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs{...} -type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleInput interface { +// ResizeRequestStatusErrorErrorErrorDetailHelpArgs{...} +type ResizeRequestStatusErrorErrorErrorDetailHelpInput interface { pulumi.Input - ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput - ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput + ToResizeRequestStatusErrorErrorErrorDetailHelpOutput() ResizeRequestStatusErrorErrorErrorDetailHelpOutput + ToResizeRequestStatusErrorErrorErrorDetailHelpOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpOutput } -type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs struct { - // May contain up to seven (one for each day of the week) snapshot times. +type ResizeRequestStatusErrorErrorErrorDetailHelpArgs struct { + // (Output) + // [Output Only] // Structure is documented below. - DayOfWeeks ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayInput `pulumi:"dayOfWeeks"` -} - -func (ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule)(nil)).Elem() -} - -func (i ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput { - return i.ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutputWithContext(context.Background()) + Links ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayInput `pulumi:"links"` } -func (i ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput) +func (ResizeRequestStatusErrorErrorErrorDetailHelpArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailHelp)(nil)).Elem() } -func (i ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { - return i.ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(context.Background()) +func (i ResizeRequestStatusErrorErrorErrorDetailHelpArgs) ToResizeRequestStatusErrorErrorErrorDetailHelpOutput() ResizeRequestStatusErrorErrorErrorDetailHelpOutput { + return i.ToResizeRequestStatusErrorErrorErrorDetailHelpOutputWithContext(context.Background()) } -func (i ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput).ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(ctx) +func (i ResizeRequestStatusErrorErrorErrorDetailHelpArgs) ToResizeRequestStatusErrorErrorErrorDetailHelpOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailHelpOutput) } -// ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs, ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtr and ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput values. -// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrInput` via: -// -// ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs{...} -// -// or: +// ResizeRequestStatusErrorErrorErrorDetailHelpArrayInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailHelpArray and ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailHelpArrayInput` via: // -// nil -type ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrInput interface { +// ResizeRequestStatusErrorErrorErrorDetailHelpArray{ ResizeRequestStatusErrorErrorErrorDetailHelpArgs{...} } +type ResizeRequestStatusErrorErrorErrorDetailHelpArrayInput interface { pulumi.Input - ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput - ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput + ToResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput() ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput + ToResizeRequestStatusErrorErrorErrorDetailHelpArrayOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput } -type resourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrType ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs - -func ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtr(v *ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs) ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrInput { - return (*resourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrType)(v) -} +type ResizeRequestStatusErrorErrorErrorDetailHelpArray []ResizeRequestStatusErrorErrorErrorDetailHelpInput -func (*resourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule)(nil)).Elem() +func (ResizeRequestStatusErrorErrorErrorDetailHelpArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetailHelp)(nil)).Elem() } -func (i *resourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrType) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { - return i.ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(context.Background()) +func (i ResizeRequestStatusErrorErrorErrorDetailHelpArray) ToResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput() ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput { + return i.ToResizeRequestStatusErrorErrorErrorDetailHelpArrayOutputWithContext(context.Background()) } -func (i *resourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrType) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) +func (i ResizeRequestStatusErrorErrorErrorDetailHelpArray) ToResizeRequestStatusErrorErrorErrorDetailHelpArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput) } -type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusErrorErrorErrorDetailHelpOutput struct{ *pulumi.OutputState } -func (ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule)(nil)).Elem() +func (ResizeRequestStatusErrorErrorErrorDetailHelpOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailHelp)(nil)).Elem() } -func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput { +func (o ResizeRequestStatusErrorErrorErrorDetailHelpOutput) ToResizeRequestStatusErrorErrorErrorDetailHelpOutput() ResizeRequestStatusErrorErrorErrorDetailHelpOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput { +func (o ResizeRequestStatusErrorErrorErrorDetailHelpOutput) ToResizeRequestStatusErrorErrorErrorDetailHelpOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { - return o.ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(context.Background()) -} - -func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule { - return &v - }).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) -} - -// May contain up to seven (one for each day of the week) snapshot times. +// (Output) +// [Output Only] // Structure is documented below. -func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput) DayOfWeeks() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule) []ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek { - return v.DayOfWeeks - }).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput) +func (o ResizeRequestStatusErrorErrorErrorDetailHelpOutput) Links() ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailHelp) []ResizeRequestStatusErrorErrorErrorDetailHelpLink { + return v.Links + }).(ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput) } -type ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput struct{ *pulumi.OutputState } -func (ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule)(nil)).Elem() +func (ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetailHelp)(nil)).Elem() } -func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { +func (o ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput() ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { +func (o ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailHelpArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) Elem() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule) ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule { - if v != nil { - return *v - } - var ret ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule - return ret - }).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput) -} - -// May contain up to seven (one for each day of the week) snapshot times. -// Structure is documented below. -func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) DayOfWeeks() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule) []ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek { - if v == nil { - return nil - } - return v.DayOfWeeks - }).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput) +func (o ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusErrorErrorErrorDetailHelpOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusErrorErrorErrorDetailHelp { + return vs[0].([]ResizeRequestStatusErrorErrorErrorDetailHelp)[vs[1].(int)] + }).(ResizeRequestStatusErrorErrorErrorDetailHelpOutput) } -type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek struct { - // The day of the week to create the snapshot. e.g. MONDAY - // Possible values are: `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`. - Day string `pulumi:"day"` - // Time within the window to start the operations. - // It must be in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT. - StartTime string `pulumi:"startTime"` +type ResizeRequestStatusErrorErrorErrorDetailHelpLink struct { + // An optional description of this resize-request. + Description *string `pulumi:"description"` + // (Output) + // The URL of the link. + Url *string `pulumi:"url"` } -// ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArgs and ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput values. -// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekInput` via: +// ResizeRequestStatusErrorErrorErrorDetailHelpLinkInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs and ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput values. +// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailHelpLinkInput` via: // -// ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArgs{...} -type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekInput interface { +// ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs{...} +type ResizeRequestStatusErrorErrorErrorDetailHelpLinkInput interface { pulumi.Input - ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput - ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput + ToResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput() ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput + ToResizeRequestStatusErrorErrorErrorDetailHelpLinkOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput } -type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArgs struct { - // The day of the week to create the snapshot. e.g. MONDAY - // Possible values are: `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`. - Day pulumi.StringInput `pulumi:"day"` - // Time within the window to start the operations. - // It must be in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT. - StartTime pulumi.StringInput `pulumi:"startTime"` +type ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs struct { + // An optional description of this resize-request. + Description pulumi.StringPtrInput `pulumi:"description"` + // (Output) + // The URL of the link. + Url pulumi.StringPtrInput `pulumi:"url"` } -func (ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek)(nil)).Elem() +func (ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailHelpLink)(nil)).Elem() } -func (i ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArgs) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput { - return i.ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutputWithContext(context.Background()) +func (i ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs) ToResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput() ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput { + return i.ToResizeRequestStatusErrorErrorErrorDetailHelpLinkOutputWithContext(context.Background()) } -func (i ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArgs) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput) +func (i ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs) ToResizeRequestStatusErrorErrorErrorDetailHelpLinkOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput) } -// ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArray and ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput values. -// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayInput` via: +// ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailHelpLinkArray and ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayInput` via: // -// ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArray{ ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArgs{...} } -type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayInput interface { +// ResizeRequestStatusErrorErrorErrorDetailHelpLinkArray{ ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs{...} } +type ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayInput interface { pulumi.Input - ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput - ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput + ToResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput() ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput + ToResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput } -type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArray []ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekInput +type ResizeRequestStatusErrorErrorErrorDetailHelpLinkArray []ResizeRequestStatusErrorErrorErrorDetailHelpLinkInput -func (ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek)(nil)).Elem() +func (ResizeRequestStatusErrorErrorErrorDetailHelpLinkArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetailHelpLink)(nil)).Elem() } -func (i ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArray) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput { - return i.ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutputWithContext(context.Background()) +func (i ResizeRequestStatusErrorErrorErrorDetailHelpLinkArray) ToResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput() ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput { + return i.ToResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutputWithContext(context.Background()) } -func (i ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArray) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput) +func (i ResizeRequestStatusErrorErrorErrorDetailHelpLinkArray) ToResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput) } -type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput struct{ *pulumi.OutputState } -func (ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek)(nil)).Elem() +func (ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailHelpLink)(nil)).Elem() } -func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput { +func (o ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput) ToResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput() ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput { +func (o ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput) ToResizeRequestStatusErrorErrorErrorDetailHelpLinkOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput { return o } -// The day of the week to create the snapshot. e.g. MONDAY -// Possible values are: `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`. -func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput) Day() pulumi.StringOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek) string { return v.Day }).(pulumi.StringOutput) +// An optional description of this resize-request. +func (o ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailHelpLink) *string { return v.Description }).(pulumi.StringPtrOutput) } -// Time within the window to start the operations. -// It must be in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT. -func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput) StartTime() pulumi.StringOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek) string { return v.StartTime }).(pulumi.StringOutput) +// (Output) +// The URL of the link. +func (o ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput) Url() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailHelpLink) *string { return v.Url }).(pulumi.StringPtrOutput) } -type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput struct{ *pulumi.OutputState } -func (ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek)(nil)).Elem() +func (ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetailHelpLink)(nil)).Elem() } -func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput { +func (o ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput() ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput { +func (o ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput) Index(i pulumi.IntInput) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek { - return vs[0].([]ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek)[vs[1].(int)] - }).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput) +func (o ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusErrorErrorErrorDetailHelpLink { + return vs[0].([]ResizeRequestStatusErrorErrorErrorDetailHelpLink)[vs[1].(int)] + }).(ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput) } -type ResourcePolicySnapshotSchedulePolicySnapshotProperties struct { - // Creates the new snapshot in the snapshot chain labeled with the - // specified name. The chain name must be 1-63 characters long and comply - // with RFC1035. - ChainName *string `pulumi:"chainName"` - // Whether to perform a 'guest aware' snapshot. - GuestFlush *bool `pulumi:"guestFlush"` - // A set of key-value pairs. - Labels map[string]string `pulumi:"labels"` - // Cloud Storage bucket location to store the auto snapshot - // (regional or multi-regional) - StorageLocations *string `pulumi:"storageLocations"` +type ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage struct { + // (Output) + // The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + Locale *string `pulumi:"locale"` + // (Output) + // The localized error message in the above locale. + Message *string `pulumi:"message"` } -// ResourcePolicySnapshotSchedulePolicySnapshotPropertiesInput is an input type that accepts ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs and ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput values. -// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicySnapshotPropertiesInput` via: +// ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs and ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput values. +// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageInput` via: // -// ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs{...} -type ResourcePolicySnapshotSchedulePolicySnapshotPropertiesInput interface { +// ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs{...} +type ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageInput interface { pulumi.Input - ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput - ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput -} - -type ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs struct { - // Creates the new snapshot in the snapshot chain labeled with the - // specified name. The chain name must be 1-63 characters long and comply - // with RFC1035. - ChainName pulumi.StringPtrInput `pulumi:"chainName"` - // Whether to perform a 'guest aware' snapshot. - GuestFlush pulumi.BoolPtrInput `pulumi:"guestFlush"` - // A set of key-value pairs. - Labels pulumi.StringMapInput `pulumi:"labels"` - // Cloud Storage bucket location to store the auto snapshot - // (regional or multi-regional) - StorageLocations pulumi.StringPtrInput `pulumi:"storageLocations"` -} - -func (ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicySnapshotProperties)(nil)).Elem() + ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput() ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput + ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput } -func (i ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput { - return i.ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutputWithContext(context.Background()) +type ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs struct { + // (Output) + // The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + Locale pulumi.StringPtrInput `pulumi:"locale"` + // (Output) + // The localized error message in the above locale. + Message pulumi.StringPtrInput `pulumi:"message"` } -func (i ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) +func (ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage)(nil)).Elem() } -func (i ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { - return i.ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(context.Background()) +func (i ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs) ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput() ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput { + return i.ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutputWithContext(context.Background()) } -func (i ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput).ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(ctx) +func (i ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs) ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput) } -// ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrInput is an input type that accepts ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs, ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtr and ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput values. -// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrInput` via: -// -// ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs{...} -// -// or: +// ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArray and ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayInput` via: // -// nil -type ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrInput interface { +// ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArray{ ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs{...} } +type ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayInput interface { pulumi.Input - ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput - ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput + ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput() ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput + ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput } -type resourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrType ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs - -func ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtr(v *ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrInput { - return (*resourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrType)(v) -} +type ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArray []ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageInput -func (*resourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicySnapshotProperties)(nil)).Elem() +func (ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage)(nil)).Elem() } -func (i *resourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrType) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { - return i.ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(context.Background()) +func (i ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArray) ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput() ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput { + return i.ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutputWithContext(context.Background()) } -func (i *resourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrType) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) +func (i ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArray) ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput) } -type ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput struct{ *pulumi.OutputState } -func (ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicySnapshotProperties)(nil)).Elem() +func (ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage)(nil)).Elem() } -func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput { +func (o ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput) ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput() ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput { +func (o ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput) ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { - return o.ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(context.Background()) -} - -func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicySnapshotSchedulePolicySnapshotProperties) *ResourcePolicySnapshotSchedulePolicySnapshotProperties { - return &v - }).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) -} - -// Creates the new snapshot in the snapshot chain labeled with the -// specified name. The chain name must be 1-63 characters long and comply -// with RFC1035. -func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) ChainName() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySnapshotProperties) *string { return v.ChainName }).(pulumi.StringPtrOutput) +// (Output) +// The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" +func (o ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput) Locale() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage) *string { return v.Locale }).(pulumi.StringPtrOutput) } -// Whether to perform a 'guest aware' snapshot. -func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) GuestFlush() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySnapshotProperties) *bool { return v.GuestFlush }).(pulumi.BoolPtrOutput) +// (Output) +// The localized error message in the above locale. +func (o ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput) Message() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage) *string { return v.Message }).(pulumi.StringPtrOutput) } -// A set of key-value pairs. -func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) Labels() pulumi.StringMapOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySnapshotProperties) map[string]string { return v.Labels }).(pulumi.StringMapOutput) -} +type ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput struct{ *pulumi.OutputState } -// Cloud Storage bucket location to store the auto snapshot -// (regional or multi-regional) -func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) StorageLocations() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySnapshotProperties) *string { return v.StorageLocations }).(pulumi.StringPtrOutput) +func (ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage)(nil)).Elem() } -type ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput struct{ *pulumi.OutputState } - -func (ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicySnapshotProperties)(nil)).Elem() +func (o ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput() ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput { + return o } -func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { +func (o ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { - return o +func (o ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage { + return vs[0].([]ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage)[vs[1].(int)] + }).(ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput) } -func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) Elem() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySnapshotProperties) ResourcePolicySnapshotSchedulePolicySnapshotProperties { - if v != nil { - return *v - } - var ret ResourcePolicySnapshotSchedulePolicySnapshotProperties - return ret - }).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) +type ResizeRequestStatusErrorErrorErrorDetailQuotaInfo struct { + // (Output) + // The map holding related quota dimensions + Dimensions map[string]string `pulumi:"dimensions"` + // (Output) + // Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + FutureLimit *int `pulumi:"futureLimit"` + // (Output) + // Current effective quota limit. The limit's unit depends on the quota type or metric. + Limit *int `pulumi:"limit"` + // (Output) + // The name of the quota limit. + LimitName *string `pulumi:"limitName"` + // (Output) + // The Compute Engine quota metric name. + MetricName *string `pulumi:"metricName"` + // (Output) + // Rollout status of the future quota limit. + RolloutStatus *string `pulumi:"rolloutStatus"` } -// Creates the new snapshot in the snapshot chain labeled with the -// specified name. The chain name must be 1-63 characters long and comply -// with RFC1035. -func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) ChainName() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySnapshotProperties) *string { - if v == nil { - return nil - } - return v.ChainName - }).(pulumi.StringPtrOutput) +// ResizeRequestStatusErrorErrorErrorDetailQuotaInfoInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs and ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput values. +// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailQuotaInfoInput` via: +// +// ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs{...} +type ResizeRequestStatusErrorErrorErrorDetailQuotaInfoInput interface { + pulumi.Input + + ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput() ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput + ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput } -// Whether to perform a 'guest aware' snapshot. -func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) GuestFlush() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySnapshotProperties) *bool { - if v == nil { - return nil - } - return v.GuestFlush - }).(pulumi.BoolPtrOutput) +type ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs struct { + // (Output) + // The map holding related quota dimensions + Dimensions pulumi.StringMapInput `pulumi:"dimensions"` + // (Output) + // Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + FutureLimit pulumi.IntPtrInput `pulumi:"futureLimit"` + // (Output) + // Current effective quota limit. The limit's unit depends on the quota type or metric. + Limit pulumi.IntPtrInput `pulumi:"limit"` + // (Output) + // The name of the quota limit. + LimitName pulumi.StringPtrInput `pulumi:"limitName"` + // (Output) + // The Compute Engine quota metric name. + MetricName pulumi.StringPtrInput `pulumi:"metricName"` + // (Output) + // Rollout status of the future quota limit. + RolloutStatus pulumi.StringPtrInput `pulumi:"rolloutStatus"` } -// A set of key-value pairs. -func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) Labels() pulumi.StringMapOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySnapshotProperties) map[string]string { - if v == nil { - return nil - } - return v.Labels - }).(pulumi.StringMapOutput) +func (ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailQuotaInfo)(nil)).Elem() } -// Cloud Storage bucket location to store the auto snapshot -// (regional or multi-regional) -func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) StorageLocations() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySnapshotProperties) *string { - if v == nil { - return nil - } - return v.StorageLocations - }).(pulumi.StringPtrOutput) +func (i ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs) ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput() ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput { + return i.ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutputWithContext(context.Background()) } -type RouterBgp struct { - // User-specified flag to indicate which mode to use for advertisement. - // Default value is `DEFAULT`. - // Possible values are: `DEFAULT`, `CUSTOM`. - AdvertiseMode *string `pulumi:"advertiseMode"` - // User-specified list of prefix groups to advertise in custom mode. - // This field can only be populated if advertiseMode is CUSTOM and - // is advertised to all peers of the router. These groups will be - // advertised in addition to any specified prefixes. Leave this field - // blank to advertise no custom groups. - // This enum field has the one valid value: ALL_SUBNETS - AdvertisedGroups []string `pulumi:"advertisedGroups"` - // User-specified list of individual IP ranges to advertise in - // custom mode. This field can only be populated if advertiseMode - // is CUSTOM and is advertised to all peers of the router. These IP - // ranges will be advertised in addition to any specified groups. - // Leave this field blank to advertise no custom IP ranges. - // Structure is documented below. - AdvertisedIpRanges []RouterBgpAdvertisedIpRange `pulumi:"advertisedIpRanges"` - // Local BGP Autonomous System Number (ASN). Must be an RFC6996 - // private ASN, either 16-bit or 32-bit. The value will be fixed for - // this router resource. All VPN tunnels that link to this router - // will have the same local ASN. - Asn int `pulumi:"asn"` - // Explicitly specifies a range of valid BGP Identifiers for this Router. - // It is provided as a link-local IPv4 range (from 169.254.0.0/16), of - // size at least /30, even if the BGP sessions are over IPv6. It must - // not overlap with any IPv4 BGP session ranges. Other vendors commonly - // call this router ID. - IdentifierRange *string `pulumi:"identifierRange"` - // The interval in seconds between BGP keepalive messages that are sent - // to the peer. Hold time is three times the interval at which keepalive - // messages are sent, and the hold time is the maximum number of seconds - // allowed to elapse between successive keepalive messages that BGP - // receives from a peer. - // BGP will use the smaller of either the local hold time value or the - // peer's hold time value as the hold time for the BGP connection - // between the two peers. If set, this value must be between 20 and 60. - // The default is 20. - KeepaliveInterval *int `pulumi:"keepaliveInterval"` +func (i ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs) ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) } -// RouterBgpInput is an input type that accepts RouterBgpArgs and RouterBgpOutput values. -// You can construct a concrete instance of `RouterBgpInput` via: +// ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArray and ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayInput` via: // -// RouterBgpArgs{...} -type RouterBgpInput interface { +// ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArray{ ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs{...} } +type ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayInput interface { pulumi.Input - ToRouterBgpOutput() RouterBgpOutput - ToRouterBgpOutputWithContext(context.Context) RouterBgpOutput + ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput() ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput + ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput } -type RouterBgpArgs struct { - // User-specified flag to indicate which mode to use for advertisement. - // Default value is `DEFAULT`. - // Possible values are: `DEFAULT`, `CUSTOM`. - AdvertiseMode pulumi.StringPtrInput `pulumi:"advertiseMode"` - // User-specified list of prefix groups to advertise in custom mode. - // This field can only be populated if advertiseMode is CUSTOM and - // is advertised to all peers of the router. These groups will be - // advertised in addition to any specified prefixes. Leave this field - // blank to advertise no custom groups. - // This enum field has the one valid value: ALL_SUBNETS - AdvertisedGroups pulumi.StringArrayInput `pulumi:"advertisedGroups"` - // User-specified list of individual IP ranges to advertise in - // custom mode. This field can only be populated if advertiseMode - // is CUSTOM and is advertised to all peers of the router. These IP - // ranges will be advertised in addition to any specified groups. - // Leave this field blank to advertise no custom IP ranges. - // Structure is documented below. - AdvertisedIpRanges RouterBgpAdvertisedIpRangeArrayInput `pulumi:"advertisedIpRanges"` - // Local BGP Autonomous System Number (ASN). Must be an RFC6996 - // private ASN, either 16-bit or 32-bit. The value will be fixed for - // this router resource. All VPN tunnels that link to this router - // will have the same local ASN. - Asn pulumi.IntInput `pulumi:"asn"` - // Explicitly specifies a range of valid BGP Identifiers for this Router. - // It is provided as a link-local IPv4 range (from 169.254.0.0/16), of - // size at least /30, even if the BGP sessions are over IPv6. It must - // not overlap with any IPv4 BGP session ranges. Other vendors commonly - // call this router ID. - IdentifierRange pulumi.StringPtrInput `pulumi:"identifierRange"` - // The interval in seconds between BGP keepalive messages that are sent - // to the peer. Hold time is three times the interval at which keepalive - // messages are sent, and the hold time is the maximum number of seconds - // allowed to elapse between successive keepalive messages that BGP - // receives from a peer. - // BGP will use the smaller of either the local hold time value or the - // peer's hold time value as the hold time for the BGP connection - // between the two peers. If set, this value must be between 20 and 60. - // The default is 20. - KeepaliveInterval pulumi.IntPtrInput `pulumi:"keepaliveInterval"` -} +type ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArray []ResizeRequestStatusErrorErrorErrorDetailQuotaInfoInput -func (RouterBgpArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouterBgp)(nil)).Elem() +func (ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetailQuotaInfo)(nil)).Elem() } -func (i RouterBgpArgs) ToRouterBgpOutput() RouterBgpOutput { - return i.ToRouterBgpOutputWithContext(context.Background()) +func (i ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArray) ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput() ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput { + return i.ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutputWithContext(context.Background()) } -func (i RouterBgpArgs) ToRouterBgpOutputWithContext(ctx context.Context) RouterBgpOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterBgpOutput) +func (i ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArray) ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput) } -func (i RouterBgpArgs) ToRouterBgpPtrOutput() RouterBgpPtrOutput { - return i.ToRouterBgpPtrOutputWithContext(context.Background()) +type ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput struct{ *pulumi.OutputState } + +func (ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailQuotaInfo)(nil)).Elem() } -func (i RouterBgpArgs) ToRouterBgpPtrOutputWithContext(ctx context.Context) RouterBgpPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterBgpOutput).ToRouterBgpPtrOutputWithContext(ctx) +func (o ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput() ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput { + return o } -// RouterBgpPtrInput is an input type that accepts RouterBgpArgs, RouterBgpPtr and RouterBgpPtrOutput values. -// You can construct a concrete instance of `RouterBgpPtrInput` via: -// -// RouterBgpArgs{...} -// -// or: -// -// nil -type RouterBgpPtrInput interface { - pulumi.Input +func (o ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput { + return o +} - ToRouterBgpPtrOutput() RouterBgpPtrOutput - ToRouterBgpPtrOutputWithContext(context.Context) RouterBgpPtrOutput +// (Output) +// The map holding related quota dimensions +func (o ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) Dimensions() pulumi.StringMapOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailQuotaInfo) map[string]string { return v.Dimensions }).(pulumi.StringMapOutput) } -type routerBgpPtrType RouterBgpArgs +// (Output) +// Future quota limit being rolled out. The limit's unit depends on the quota type or metric. +func (o ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) FutureLimit() pulumi.IntPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailQuotaInfo) *int { return v.FutureLimit }).(pulumi.IntPtrOutput) +} -func RouterBgpPtr(v *RouterBgpArgs) RouterBgpPtrInput { - return (*routerBgpPtrType)(v) +// (Output) +// Current effective quota limit. The limit's unit depends on the quota type or metric. +func (o ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) Limit() pulumi.IntPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailQuotaInfo) *int { return v.Limit }).(pulumi.IntPtrOutput) } -func (*routerBgpPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouterBgp)(nil)).Elem() +// (Output) +// The name of the quota limit. +func (o ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) LimitName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailQuotaInfo) *string { return v.LimitName }).(pulumi.StringPtrOutput) } -func (i *routerBgpPtrType) ToRouterBgpPtrOutput() RouterBgpPtrOutput { - return i.ToRouterBgpPtrOutputWithContext(context.Background()) +// (Output) +// The Compute Engine quota metric name. +func (o ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) MetricName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailQuotaInfo) *string { return v.MetricName }).(pulumi.StringPtrOutput) } -func (i *routerBgpPtrType) ToRouterBgpPtrOutputWithContext(ctx context.Context) RouterBgpPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterBgpPtrOutput) +// (Output) +// Rollout status of the future quota limit. +func (o ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) RolloutStatus() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailQuotaInfo) *string { return v.RolloutStatus }).(pulumi.StringPtrOutput) } -type RouterBgpOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput struct{ *pulumi.OutputState } -func (RouterBgpOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouterBgp)(nil)).Elem() +func (ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetailQuotaInfo)(nil)).Elem() } -func (o RouterBgpOutput) ToRouterBgpOutput() RouterBgpOutput { +func (o ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput() ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput { return o } -func (o RouterBgpOutput) ToRouterBgpOutputWithContext(ctx context.Context) RouterBgpOutput { +func (o ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput { return o } -func (o RouterBgpOutput) ToRouterBgpPtrOutput() RouterBgpPtrOutput { - return o.ToRouterBgpPtrOutputWithContext(context.Background()) +func (o ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusErrorErrorErrorDetailQuotaInfo { + return vs[0].([]ResizeRequestStatusErrorErrorErrorDetailQuotaInfo)[vs[1].(int)] + }).(ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) } -func (o RouterBgpOutput) ToRouterBgpPtrOutputWithContext(ctx context.Context) RouterBgpPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RouterBgp) *RouterBgp { - return &v - }).(RouterBgpPtrOutput) +type ResizeRequestStatusLastAttempt struct { + // (Output) + // [Output only] Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + // Structure is documented below. + Errors []ResizeRequestStatusLastAttemptError `pulumi:"errors"` } -// User-specified flag to indicate which mode to use for advertisement. -// Default value is `DEFAULT`. -// Possible values are: `DEFAULT`, `CUSTOM`. -func (o RouterBgpOutput) AdvertiseMode() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouterBgp) *string { return v.AdvertiseMode }).(pulumi.StringPtrOutput) +// ResizeRequestStatusLastAttemptInput is an input type that accepts ResizeRequestStatusLastAttemptArgs and ResizeRequestStatusLastAttemptOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptInput` via: +// +// ResizeRequestStatusLastAttemptArgs{...} +type ResizeRequestStatusLastAttemptInput interface { + pulumi.Input + + ToResizeRequestStatusLastAttemptOutput() ResizeRequestStatusLastAttemptOutput + ToResizeRequestStatusLastAttemptOutputWithContext(context.Context) ResizeRequestStatusLastAttemptOutput } -// User-specified list of prefix groups to advertise in custom mode. -// This field can only be populated if advertiseMode is CUSTOM and -// is advertised to all peers of the router. These groups will be -// advertised in addition to any specified prefixes. Leave this field -// blank to advertise no custom groups. -// This enum field has the one valid value: ALL_SUBNETS -func (o RouterBgpOutput) AdvertisedGroups() pulumi.StringArrayOutput { - return o.ApplyT(func(v RouterBgp) []string { return v.AdvertisedGroups }).(pulumi.StringArrayOutput) +type ResizeRequestStatusLastAttemptArgs struct { + // (Output) + // [Output only] Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + // Structure is documented below. + Errors ResizeRequestStatusLastAttemptErrorArrayInput `pulumi:"errors"` } -// User-specified list of individual IP ranges to advertise in -// custom mode. This field can only be populated if advertiseMode -// is CUSTOM and is advertised to all peers of the router. These IP -// ranges will be advertised in addition to any specified groups. -// Leave this field blank to advertise no custom IP ranges. -// Structure is documented below. -func (o RouterBgpOutput) AdvertisedIpRanges() RouterBgpAdvertisedIpRangeArrayOutput { - return o.ApplyT(func(v RouterBgp) []RouterBgpAdvertisedIpRange { return v.AdvertisedIpRanges }).(RouterBgpAdvertisedIpRangeArrayOutput) +func (ResizeRequestStatusLastAttemptArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttempt)(nil)).Elem() } -// Local BGP Autonomous System Number (ASN). Must be an RFC6996 -// private ASN, either 16-bit or 32-bit. The value will be fixed for -// this router resource. All VPN tunnels that link to this router -// will have the same local ASN. -func (o RouterBgpOutput) Asn() pulumi.IntOutput { - return o.ApplyT(func(v RouterBgp) int { return v.Asn }).(pulumi.IntOutput) +func (i ResizeRequestStatusLastAttemptArgs) ToResizeRequestStatusLastAttemptOutput() ResizeRequestStatusLastAttemptOutput { + return i.ToResizeRequestStatusLastAttemptOutputWithContext(context.Background()) } -// Explicitly specifies a range of valid BGP Identifiers for this Router. -// It is provided as a link-local IPv4 range (from 169.254.0.0/16), of -// size at least /30, even if the BGP sessions are over IPv6. It must -// not overlap with any IPv4 BGP session ranges. Other vendors commonly -// call this router ID. -func (o RouterBgpOutput) IdentifierRange() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouterBgp) *string { return v.IdentifierRange }).(pulumi.StringPtrOutput) +func (i ResizeRequestStatusLastAttemptArgs) ToResizeRequestStatusLastAttemptOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptOutput) } -// The interval in seconds between BGP keepalive messages that are sent -// to the peer. Hold time is three times the interval at which keepalive -// messages are sent, and the hold time is the maximum number of seconds -// allowed to elapse between successive keepalive messages that BGP -// receives from a peer. -// BGP will use the smaller of either the local hold time value or the -// peer's hold time value as the hold time for the BGP connection -// between the two peers. If set, this value must be between 20 and 60. -// The default is 20. -func (o RouterBgpOutput) KeepaliveInterval() pulumi.IntPtrOutput { - return o.ApplyT(func(v RouterBgp) *int { return v.KeepaliveInterval }).(pulumi.IntPtrOutput) +// ResizeRequestStatusLastAttemptArrayInput is an input type that accepts ResizeRequestStatusLastAttemptArray and ResizeRequestStatusLastAttemptArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptArrayInput` via: +// +// ResizeRequestStatusLastAttemptArray{ ResizeRequestStatusLastAttemptArgs{...} } +type ResizeRequestStatusLastAttemptArrayInput interface { + pulumi.Input + + ToResizeRequestStatusLastAttemptArrayOutput() ResizeRequestStatusLastAttemptArrayOutput + ToResizeRequestStatusLastAttemptArrayOutputWithContext(context.Context) ResizeRequestStatusLastAttemptArrayOutput } -type RouterBgpPtrOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusLastAttemptArray []ResizeRequestStatusLastAttemptInput -func (RouterBgpPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouterBgp)(nil)).Elem() +func (ResizeRequestStatusLastAttemptArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttempt)(nil)).Elem() } -func (o RouterBgpPtrOutput) ToRouterBgpPtrOutput() RouterBgpPtrOutput { - return o +func (i ResizeRequestStatusLastAttemptArray) ToResizeRequestStatusLastAttemptArrayOutput() ResizeRequestStatusLastAttemptArrayOutput { + return i.ToResizeRequestStatusLastAttemptArrayOutputWithContext(context.Background()) } -func (o RouterBgpPtrOutput) ToRouterBgpPtrOutputWithContext(ctx context.Context) RouterBgpPtrOutput { - return o +func (i ResizeRequestStatusLastAttemptArray) ToResizeRequestStatusLastAttemptArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptArrayOutput) } -func (o RouterBgpPtrOutput) Elem() RouterBgpOutput { - return o.ApplyT(func(v *RouterBgp) RouterBgp { - if v != nil { - return *v - } - var ret RouterBgp - return ret - }).(RouterBgpOutput) +type ResizeRequestStatusLastAttemptOutput struct{ *pulumi.OutputState } + +func (ResizeRequestStatusLastAttemptOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttempt)(nil)).Elem() } -// User-specified flag to indicate which mode to use for advertisement. -// Default value is `DEFAULT`. -// Possible values are: `DEFAULT`, `CUSTOM`. -func (o RouterBgpPtrOutput) AdvertiseMode() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouterBgp) *string { - if v == nil { - return nil - } - return v.AdvertiseMode - }).(pulumi.StringPtrOutput) +func (o ResizeRequestStatusLastAttemptOutput) ToResizeRequestStatusLastAttemptOutput() ResizeRequestStatusLastAttemptOutput { + return o } -// User-specified list of prefix groups to advertise in custom mode. -// This field can only be populated if advertiseMode is CUSTOM and -// is advertised to all peers of the router. These groups will be -// advertised in addition to any specified prefixes. Leave this field -// blank to advertise no custom groups. -// This enum field has the one valid value: ALL_SUBNETS -func (o RouterBgpPtrOutput) AdvertisedGroups() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RouterBgp) []string { - if v == nil { - return nil - } - return v.AdvertisedGroups - }).(pulumi.StringArrayOutput) +func (o ResizeRequestStatusLastAttemptOutput) ToResizeRequestStatusLastAttemptOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptOutput { + return o } -// User-specified list of individual IP ranges to advertise in -// custom mode. This field can only be populated if advertiseMode -// is CUSTOM and is advertised to all peers of the router. These IP -// ranges will be advertised in addition to any specified groups. -// Leave this field blank to advertise no custom IP ranges. +// (Output) +// [Output only] Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. // Structure is documented below. -func (o RouterBgpPtrOutput) AdvertisedIpRanges() RouterBgpAdvertisedIpRangeArrayOutput { - return o.ApplyT(func(v *RouterBgp) []RouterBgpAdvertisedIpRange { - if v == nil { - return nil - } - return v.AdvertisedIpRanges - }).(RouterBgpAdvertisedIpRangeArrayOutput) +func (o ResizeRequestStatusLastAttemptOutput) Errors() ResizeRequestStatusLastAttemptErrorArrayOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttempt) []ResizeRequestStatusLastAttemptError { return v.Errors }).(ResizeRequestStatusLastAttemptErrorArrayOutput) } -// Local BGP Autonomous System Number (ASN). Must be an RFC6996 -// private ASN, either 16-bit or 32-bit. The value will be fixed for -// this router resource. All VPN tunnels that link to this router -// will have the same local ASN. -func (o RouterBgpPtrOutput) Asn() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RouterBgp) *int { - if v == nil { - return nil - } - return &v.Asn - }).(pulumi.IntPtrOutput) +type ResizeRequestStatusLastAttemptArrayOutput struct{ *pulumi.OutputState } + +func (ResizeRequestStatusLastAttemptArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttempt)(nil)).Elem() } -// Explicitly specifies a range of valid BGP Identifiers for this Router. -// It is provided as a link-local IPv4 range (from 169.254.0.0/16), of -// size at least /30, even if the BGP sessions are over IPv6. It must -// not overlap with any IPv4 BGP session ranges. Other vendors commonly -// call this router ID. -func (o RouterBgpPtrOutput) IdentifierRange() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouterBgp) *string { - if v == nil { - return nil - } - return v.IdentifierRange - }).(pulumi.StringPtrOutput) +func (o ResizeRequestStatusLastAttemptArrayOutput) ToResizeRequestStatusLastAttemptArrayOutput() ResizeRequestStatusLastAttemptArrayOutput { + return o } -// The interval in seconds between BGP keepalive messages that are sent -// to the peer. Hold time is three times the interval at which keepalive -// messages are sent, and the hold time is the maximum number of seconds -// allowed to elapse between successive keepalive messages that BGP -// receives from a peer. -// BGP will use the smaller of either the local hold time value or the -// peer's hold time value as the hold time for the BGP connection -// between the two peers. If set, this value must be between 20 and 60. -// The default is 20. -func (o RouterBgpPtrOutput) KeepaliveInterval() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RouterBgp) *int { - if v == nil { - return nil - } - return v.KeepaliveInterval - }).(pulumi.IntPtrOutput) +func (o ResizeRequestStatusLastAttemptArrayOutput) ToResizeRequestStatusLastAttemptArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptArrayOutput { + return o } -type RouterBgpAdvertisedIpRange struct { - // User-specified description for the IP range. - Description *string `pulumi:"description"` - // The IP range to advertise. The value must be a - // CIDR-formatted string. - Range string `pulumi:"range"` +func (o ResizeRequestStatusLastAttemptArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusLastAttemptOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusLastAttempt { + return vs[0].([]ResizeRequestStatusLastAttempt)[vs[1].(int)] + }).(ResizeRequestStatusLastAttemptOutput) } -// RouterBgpAdvertisedIpRangeInput is an input type that accepts RouterBgpAdvertisedIpRangeArgs and RouterBgpAdvertisedIpRangeOutput values. -// You can construct a concrete instance of `RouterBgpAdvertisedIpRangeInput` via: +type ResizeRequestStatusLastAttemptError struct { + // (Output) + // [Output Only] The array of errors encountered while processing this operation. + // Structure is documented below. + Errors []ResizeRequestStatusLastAttemptErrorError `pulumi:"errors"` +} + +// ResizeRequestStatusLastAttemptErrorInput is an input type that accepts ResizeRequestStatusLastAttemptErrorArgs and ResizeRequestStatusLastAttemptErrorOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorInput` via: // -// RouterBgpAdvertisedIpRangeArgs{...} -type RouterBgpAdvertisedIpRangeInput interface { +// ResizeRequestStatusLastAttemptErrorArgs{...} +type ResizeRequestStatusLastAttemptErrorInput interface { pulumi.Input - ToRouterBgpAdvertisedIpRangeOutput() RouterBgpAdvertisedIpRangeOutput - ToRouterBgpAdvertisedIpRangeOutputWithContext(context.Context) RouterBgpAdvertisedIpRangeOutput + ToResizeRequestStatusLastAttemptErrorOutput() ResizeRequestStatusLastAttemptErrorOutput + ToResizeRequestStatusLastAttemptErrorOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorOutput } -type RouterBgpAdvertisedIpRangeArgs struct { - // User-specified description for the IP range. - Description pulumi.StringPtrInput `pulumi:"description"` - // The IP range to advertise. The value must be a - // CIDR-formatted string. - Range pulumi.StringInput `pulumi:"range"` +type ResizeRequestStatusLastAttemptErrorArgs struct { + // (Output) + // [Output Only] The array of errors encountered while processing this operation. + // Structure is documented below. + Errors ResizeRequestStatusLastAttemptErrorErrorArrayInput `pulumi:"errors"` } -func (RouterBgpAdvertisedIpRangeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouterBgpAdvertisedIpRange)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttemptError)(nil)).Elem() } -func (i RouterBgpAdvertisedIpRangeArgs) ToRouterBgpAdvertisedIpRangeOutput() RouterBgpAdvertisedIpRangeOutput { - return i.ToRouterBgpAdvertisedIpRangeOutputWithContext(context.Background()) +func (i ResizeRequestStatusLastAttemptErrorArgs) ToResizeRequestStatusLastAttemptErrorOutput() ResizeRequestStatusLastAttemptErrorOutput { + return i.ToResizeRequestStatusLastAttemptErrorOutputWithContext(context.Background()) } -func (i RouterBgpAdvertisedIpRangeArgs) ToRouterBgpAdvertisedIpRangeOutputWithContext(ctx context.Context) RouterBgpAdvertisedIpRangeOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterBgpAdvertisedIpRangeOutput) +func (i ResizeRequestStatusLastAttemptErrorArgs) ToResizeRequestStatusLastAttemptErrorOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorOutput) } -// RouterBgpAdvertisedIpRangeArrayInput is an input type that accepts RouterBgpAdvertisedIpRangeArray and RouterBgpAdvertisedIpRangeArrayOutput values. -// You can construct a concrete instance of `RouterBgpAdvertisedIpRangeArrayInput` via: +// ResizeRequestStatusLastAttemptErrorArrayInput is an input type that accepts ResizeRequestStatusLastAttemptErrorArray and ResizeRequestStatusLastAttemptErrorArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorArrayInput` via: // -// RouterBgpAdvertisedIpRangeArray{ RouterBgpAdvertisedIpRangeArgs{...} } -type RouterBgpAdvertisedIpRangeArrayInput interface { +// ResizeRequestStatusLastAttemptErrorArray{ ResizeRequestStatusLastAttemptErrorArgs{...} } +type ResizeRequestStatusLastAttemptErrorArrayInput interface { pulumi.Input - ToRouterBgpAdvertisedIpRangeArrayOutput() RouterBgpAdvertisedIpRangeArrayOutput - ToRouterBgpAdvertisedIpRangeArrayOutputWithContext(context.Context) RouterBgpAdvertisedIpRangeArrayOutput + ToResizeRequestStatusLastAttemptErrorArrayOutput() ResizeRequestStatusLastAttemptErrorArrayOutput + ToResizeRequestStatusLastAttemptErrorArrayOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorArrayOutput } -type RouterBgpAdvertisedIpRangeArray []RouterBgpAdvertisedIpRangeInput +type ResizeRequestStatusLastAttemptErrorArray []ResizeRequestStatusLastAttemptErrorInput -func (RouterBgpAdvertisedIpRangeArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouterBgpAdvertisedIpRange)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptError)(nil)).Elem() } -func (i RouterBgpAdvertisedIpRangeArray) ToRouterBgpAdvertisedIpRangeArrayOutput() RouterBgpAdvertisedIpRangeArrayOutput { - return i.ToRouterBgpAdvertisedIpRangeArrayOutputWithContext(context.Background()) +func (i ResizeRequestStatusLastAttemptErrorArray) ToResizeRequestStatusLastAttemptErrorArrayOutput() ResizeRequestStatusLastAttemptErrorArrayOutput { + return i.ToResizeRequestStatusLastAttemptErrorArrayOutputWithContext(context.Background()) } -func (i RouterBgpAdvertisedIpRangeArray) ToRouterBgpAdvertisedIpRangeArrayOutputWithContext(ctx context.Context) RouterBgpAdvertisedIpRangeArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterBgpAdvertisedIpRangeArrayOutput) +func (i ResizeRequestStatusLastAttemptErrorArray) ToResizeRequestStatusLastAttemptErrorArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorArrayOutput) } -type RouterBgpAdvertisedIpRangeOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusLastAttemptErrorOutput struct{ *pulumi.OutputState } -func (RouterBgpAdvertisedIpRangeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouterBgpAdvertisedIpRange)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttemptError)(nil)).Elem() } -func (o RouterBgpAdvertisedIpRangeOutput) ToRouterBgpAdvertisedIpRangeOutput() RouterBgpAdvertisedIpRangeOutput { +func (o ResizeRequestStatusLastAttemptErrorOutput) ToResizeRequestStatusLastAttemptErrorOutput() ResizeRequestStatusLastAttemptErrorOutput { return o } -func (o RouterBgpAdvertisedIpRangeOutput) ToRouterBgpAdvertisedIpRangeOutputWithContext(ctx context.Context) RouterBgpAdvertisedIpRangeOutput { +func (o ResizeRequestStatusLastAttemptErrorOutput) ToResizeRequestStatusLastAttemptErrorOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorOutput { return o } -// User-specified description for the IP range. -func (o RouterBgpAdvertisedIpRangeOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouterBgpAdvertisedIpRange) *string { return v.Description }).(pulumi.StringPtrOutput) -} - -// The IP range to advertise. The value must be a -// CIDR-formatted string. -func (o RouterBgpAdvertisedIpRangeOutput) Range() pulumi.StringOutput { - return o.ApplyT(func(v RouterBgpAdvertisedIpRange) string { return v.Range }).(pulumi.StringOutput) +// (Output) +// [Output Only] The array of errors encountered while processing this operation. +// Structure is documented below. +func (o ResizeRequestStatusLastAttemptErrorOutput) Errors() ResizeRequestStatusLastAttemptErrorErrorArrayOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptError) []ResizeRequestStatusLastAttemptErrorError { + return v.Errors + }).(ResizeRequestStatusLastAttemptErrorErrorArrayOutput) } -type RouterBgpAdvertisedIpRangeArrayOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusLastAttemptErrorArrayOutput struct{ *pulumi.OutputState } -func (RouterBgpAdvertisedIpRangeArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouterBgpAdvertisedIpRange)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptError)(nil)).Elem() } -func (o RouterBgpAdvertisedIpRangeArrayOutput) ToRouterBgpAdvertisedIpRangeArrayOutput() RouterBgpAdvertisedIpRangeArrayOutput { +func (o ResizeRequestStatusLastAttemptErrorArrayOutput) ToResizeRequestStatusLastAttemptErrorArrayOutput() ResizeRequestStatusLastAttemptErrorArrayOutput { return o } -func (o RouterBgpAdvertisedIpRangeArrayOutput) ToRouterBgpAdvertisedIpRangeArrayOutputWithContext(ctx context.Context) RouterBgpAdvertisedIpRangeArrayOutput { +func (o ResizeRequestStatusLastAttemptErrorArrayOutput) ToResizeRequestStatusLastAttemptErrorArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorArrayOutput { return o } -func (o RouterBgpAdvertisedIpRangeArrayOutput) Index(i pulumi.IntInput) RouterBgpAdvertisedIpRangeOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterBgpAdvertisedIpRange { - return vs[0].([]RouterBgpAdvertisedIpRange)[vs[1].(int)] - }).(RouterBgpAdvertisedIpRangeOutput) +func (o ResizeRequestStatusLastAttemptErrorArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusLastAttemptErrorOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusLastAttemptError { + return vs[0].([]ResizeRequestStatusLastAttemptError)[vs[1].(int)] + }).(ResizeRequestStatusLastAttemptErrorOutput) } -type RouterNatLogConfig struct { - // Indicates whether or not to export logs. - Enable bool `pulumi:"enable"` - // Specifies the desired filtering of logs on this NAT. - // Possible values are: `ERRORS_ONLY`, `TRANSLATIONS_ONLY`, `ALL`. - Filter string `pulumi:"filter"` +type ResizeRequestStatusLastAttemptErrorError struct { + // (Output) + // [Output Only] The error type identifier for this error. + Code *string `pulumi:"code"` + // (Output) + // [Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + // Structure is documented below. + ErrorDetails []ResizeRequestStatusLastAttemptErrorErrorErrorDetail `pulumi:"errorDetails"` + // (Output) + // Output Only] Indicates the field in the request that caused the error. This property is optional. + Location *string `pulumi:"location"` + // (Output) + // The localized error message in the above locale. + Message *string `pulumi:"message"` } -// RouterNatLogConfigInput is an input type that accepts RouterNatLogConfigArgs and RouterNatLogConfigOutput values. -// You can construct a concrete instance of `RouterNatLogConfigInput` via: +// ResizeRequestStatusLastAttemptErrorErrorInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorArgs and ResizeRequestStatusLastAttemptErrorErrorOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorInput` via: // -// RouterNatLogConfigArgs{...} -type RouterNatLogConfigInput interface { +// ResizeRequestStatusLastAttemptErrorErrorArgs{...} +type ResizeRequestStatusLastAttemptErrorErrorInput interface { pulumi.Input - ToRouterNatLogConfigOutput() RouterNatLogConfigOutput - ToRouterNatLogConfigOutputWithContext(context.Context) RouterNatLogConfigOutput -} - -type RouterNatLogConfigArgs struct { - // Indicates whether or not to export logs. - Enable pulumi.BoolInput `pulumi:"enable"` - // Specifies the desired filtering of logs on this NAT. - // Possible values are: `ERRORS_ONLY`, `TRANSLATIONS_ONLY`, `ALL`. - Filter pulumi.StringInput `pulumi:"filter"` -} - -func (RouterNatLogConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouterNatLogConfig)(nil)).Elem() + ToResizeRequestStatusLastAttemptErrorErrorOutput() ResizeRequestStatusLastAttemptErrorErrorOutput + ToResizeRequestStatusLastAttemptErrorErrorOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorOutput } -func (i RouterNatLogConfigArgs) ToRouterNatLogConfigOutput() RouterNatLogConfigOutput { - return i.ToRouterNatLogConfigOutputWithContext(context.Background()) +type ResizeRequestStatusLastAttemptErrorErrorArgs struct { + // (Output) + // [Output Only] The error type identifier for this error. + Code pulumi.StringPtrInput `pulumi:"code"` + // (Output) + // [Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + // Structure is documented below. + ErrorDetails ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayInput `pulumi:"errorDetails"` + // (Output) + // Output Only] Indicates the field in the request that caused the error. This property is optional. + Location pulumi.StringPtrInput `pulumi:"location"` + // (Output) + // The localized error message in the above locale. + Message pulumi.StringPtrInput `pulumi:"message"` } -func (i RouterNatLogConfigArgs) ToRouterNatLogConfigOutputWithContext(ctx context.Context) RouterNatLogConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterNatLogConfigOutput) +func (ResizeRequestStatusLastAttemptErrorErrorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorError)(nil)).Elem() } -func (i RouterNatLogConfigArgs) ToRouterNatLogConfigPtrOutput() RouterNatLogConfigPtrOutput { - return i.ToRouterNatLogConfigPtrOutputWithContext(context.Background()) +func (i ResizeRequestStatusLastAttemptErrorErrorArgs) ToResizeRequestStatusLastAttemptErrorErrorOutput() ResizeRequestStatusLastAttemptErrorErrorOutput { + return i.ToResizeRequestStatusLastAttemptErrorErrorOutputWithContext(context.Background()) } -func (i RouterNatLogConfigArgs) ToRouterNatLogConfigPtrOutputWithContext(ctx context.Context) RouterNatLogConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterNatLogConfigOutput).ToRouterNatLogConfigPtrOutputWithContext(ctx) +func (i ResizeRequestStatusLastAttemptErrorErrorArgs) ToResizeRequestStatusLastAttemptErrorErrorOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorOutput) } -// RouterNatLogConfigPtrInput is an input type that accepts RouterNatLogConfigArgs, RouterNatLogConfigPtr and RouterNatLogConfigPtrOutput values. -// You can construct a concrete instance of `RouterNatLogConfigPtrInput` via: -// -// RouterNatLogConfigArgs{...} -// -// or: +// ResizeRequestStatusLastAttemptErrorErrorArrayInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorArray and ResizeRequestStatusLastAttemptErrorErrorArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorArrayInput` via: // -// nil -type RouterNatLogConfigPtrInput interface { +// ResizeRequestStatusLastAttemptErrorErrorArray{ ResizeRequestStatusLastAttemptErrorErrorArgs{...} } +type ResizeRequestStatusLastAttemptErrorErrorArrayInput interface { pulumi.Input - ToRouterNatLogConfigPtrOutput() RouterNatLogConfigPtrOutput - ToRouterNatLogConfigPtrOutputWithContext(context.Context) RouterNatLogConfigPtrOutput + ToResizeRequestStatusLastAttemptErrorErrorArrayOutput() ResizeRequestStatusLastAttemptErrorErrorArrayOutput + ToResizeRequestStatusLastAttemptErrorErrorArrayOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorArrayOutput } -type routerNatLogConfigPtrType RouterNatLogConfigArgs - -func RouterNatLogConfigPtr(v *RouterNatLogConfigArgs) RouterNatLogConfigPtrInput { - return (*routerNatLogConfigPtrType)(v) -} +type ResizeRequestStatusLastAttemptErrorErrorArray []ResizeRequestStatusLastAttemptErrorErrorInput -func (*routerNatLogConfigPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouterNatLogConfig)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorError)(nil)).Elem() } -func (i *routerNatLogConfigPtrType) ToRouterNatLogConfigPtrOutput() RouterNatLogConfigPtrOutput { - return i.ToRouterNatLogConfigPtrOutputWithContext(context.Background()) +func (i ResizeRequestStatusLastAttemptErrorErrorArray) ToResizeRequestStatusLastAttemptErrorErrorArrayOutput() ResizeRequestStatusLastAttemptErrorErrorArrayOutput { + return i.ToResizeRequestStatusLastAttemptErrorErrorArrayOutputWithContext(context.Background()) } -func (i *routerNatLogConfigPtrType) ToRouterNatLogConfigPtrOutputWithContext(ctx context.Context) RouterNatLogConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterNatLogConfigPtrOutput) +func (i ResizeRequestStatusLastAttemptErrorErrorArray) ToResizeRequestStatusLastAttemptErrorErrorArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorArrayOutput) } -type RouterNatLogConfigOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusLastAttemptErrorErrorOutput struct{ *pulumi.OutputState } -func (RouterNatLogConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouterNatLogConfig)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorError)(nil)).Elem() } -func (o RouterNatLogConfigOutput) ToRouterNatLogConfigOutput() RouterNatLogConfigOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorOutput) ToResizeRequestStatusLastAttemptErrorErrorOutput() ResizeRequestStatusLastAttemptErrorErrorOutput { return o } -func (o RouterNatLogConfigOutput) ToRouterNatLogConfigOutputWithContext(ctx context.Context) RouterNatLogConfigOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorOutput) ToResizeRequestStatusLastAttemptErrorErrorOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorOutput { return o } -func (o RouterNatLogConfigOutput) ToRouterNatLogConfigPtrOutput() RouterNatLogConfigPtrOutput { - return o.ToRouterNatLogConfigPtrOutputWithContext(context.Background()) +// (Output) +// [Output Only] The error type identifier for this error. +func (o ResizeRequestStatusLastAttemptErrorErrorOutput) Code() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorError) *string { return v.Code }).(pulumi.StringPtrOutput) } -func (o RouterNatLogConfigOutput) ToRouterNatLogConfigPtrOutputWithContext(ctx context.Context) RouterNatLogConfigPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RouterNatLogConfig) *RouterNatLogConfig { - return &v - }).(RouterNatLogConfigPtrOutput) +// (Output) +// [Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. +// Structure is documented below. +func (o ResizeRequestStatusLastAttemptErrorErrorOutput) ErrorDetails() ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorError) []ResizeRequestStatusLastAttemptErrorErrorErrorDetail { + return v.ErrorDetails + }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput) } -// Indicates whether or not to export logs. -func (o RouterNatLogConfigOutput) Enable() pulumi.BoolOutput { - return o.ApplyT(func(v RouterNatLogConfig) bool { return v.Enable }).(pulumi.BoolOutput) +// (Output) +// Output Only] Indicates the field in the request that caused the error. This property is optional. +func (o ResizeRequestStatusLastAttemptErrorErrorOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorError) *string { return v.Location }).(pulumi.StringPtrOutput) } -// Specifies the desired filtering of logs on this NAT. -// Possible values are: `ERRORS_ONLY`, `TRANSLATIONS_ONLY`, `ALL`. -func (o RouterNatLogConfigOutput) Filter() pulumi.StringOutput { - return o.ApplyT(func(v RouterNatLogConfig) string { return v.Filter }).(pulumi.StringOutput) +// (Output) +// The localized error message in the above locale. +func (o ResizeRequestStatusLastAttemptErrorErrorOutput) Message() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorError) *string { return v.Message }).(pulumi.StringPtrOutput) } -type RouterNatLogConfigPtrOutput struct{ *pulumi.OutputState } - -func (RouterNatLogConfigPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouterNatLogConfig)(nil)).Elem() -} +type ResizeRequestStatusLastAttemptErrorErrorArrayOutput struct{ *pulumi.OutputState } -func (o RouterNatLogConfigPtrOutput) ToRouterNatLogConfigPtrOutput() RouterNatLogConfigPtrOutput { - return o +func (ResizeRequestStatusLastAttemptErrorErrorArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorError)(nil)).Elem() } -func (o RouterNatLogConfigPtrOutput) ToRouterNatLogConfigPtrOutputWithContext(ctx context.Context) RouterNatLogConfigPtrOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorArrayOutput() ResizeRequestStatusLastAttemptErrorErrorArrayOutput { return o } - -func (o RouterNatLogConfigPtrOutput) Elem() RouterNatLogConfigOutput { - return o.ApplyT(func(v *RouterNatLogConfig) RouterNatLogConfig { - if v != nil { - return *v - } - var ret RouterNatLogConfig - return ret - }).(RouterNatLogConfigOutput) -} - -// Indicates whether or not to export logs. -func (o RouterNatLogConfigPtrOutput) Enable() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *RouterNatLogConfig) *bool { - if v == nil { - return nil - } - return &v.Enable - }).(pulumi.BoolPtrOutput) + +func (o ResizeRequestStatusLastAttemptErrorErrorArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorArrayOutput { + return o } -// Specifies the desired filtering of logs on this NAT. -// Possible values are: `ERRORS_ONLY`, `TRANSLATIONS_ONLY`, `ALL`. -func (o RouterNatLogConfigPtrOutput) Filter() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouterNatLogConfig) *string { - if v == nil { - return nil - } - return &v.Filter - }).(pulumi.StringPtrOutput) +func (o ResizeRequestStatusLastAttemptErrorErrorArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusLastAttemptErrorErrorOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusLastAttemptErrorError { + return vs[0].([]ResizeRequestStatusLastAttemptErrorError)[vs[1].(int)] + }).(ResizeRequestStatusLastAttemptErrorErrorOutput) } -type RouterNatRule struct { - // The action to be enforced for traffic that matches this rule. +type ResizeRequestStatusLastAttemptErrorErrorErrorDetail struct { + // (Output) + // [Output Only] // Structure is documented below. - Action *RouterNatRuleAction `pulumi:"action"` - // An optional description of this rule. - Description *string `pulumi:"description"` - // CEL expression that specifies the match condition that egress traffic from a VM is evaluated against. - // If it evaluates to true, the corresponding action is enforced. - // The following examples are valid match expressions for public NAT: - // "inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')" - // "destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'" - // The following example is a valid match expression for private NAT: - // "nexthop.hub == 'https://networkconnectivity.googleapis.com/v1alpha1/projects/my-project/global/hub/hub-1'" - Match string `pulumi:"match"` - // An integer uniquely identifying a rule in the list. - // The rule number must be a positive value between 0 and 65000, and must be unique among rules within a NAT. - RuleNumber int `pulumi:"ruleNumber"` + ErrorInfos []ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo `pulumi:"errorInfos"` + // (Output) + // [Output Only] + // Structure is documented below. + Helps []ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp `pulumi:"helps"` + // (Output) + // [Output Only] + // Structure is documented below. + LocalizedMessages []ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage `pulumi:"localizedMessages"` + // (Output) + // [Output Only] + // Structure is documented below. + QuotaInfos []ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo `pulumi:"quotaInfos"` } -// RouterNatRuleInput is an input type that accepts RouterNatRuleArgs and RouterNatRuleOutput values. -// You can construct a concrete instance of `RouterNatRuleInput` via: +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs and ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailInput` via: // -// RouterNatRuleArgs{...} -type RouterNatRuleInput interface { +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs{...} +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailInput interface { pulumi.Input - ToRouterNatRuleOutput() RouterNatRuleOutput - ToRouterNatRuleOutputWithContext(context.Context) RouterNatRuleOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput } -type RouterNatRuleArgs struct { - // The action to be enforced for traffic that matches this rule. +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs struct { + // (Output) + // [Output Only] // Structure is documented below. - Action RouterNatRuleActionPtrInput `pulumi:"action"` - // An optional description of this rule. - Description pulumi.StringPtrInput `pulumi:"description"` - // CEL expression that specifies the match condition that egress traffic from a VM is evaluated against. - // If it evaluates to true, the corresponding action is enforced. - // The following examples are valid match expressions for public NAT: - // "inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')" - // "destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'" - // The following example is a valid match expression for private NAT: - // "nexthop.hub == 'https://networkconnectivity.googleapis.com/v1alpha1/projects/my-project/global/hub/hub-1'" - Match pulumi.StringInput `pulumi:"match"` - // An integer uniquely identifying a rule in the list. - // The rule number must be a positive value between 0 and 65000, and must be unique among rules within a NAT. - RuleNumber pulumi.IntInput `pulumi:"ruleNumber"` + ErrorInfos ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayInput `pulumi:"errorInfos"` + // (Output) + // [Output Only] + // Structure is documented below. + Helps ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayInput `pulumi:"helps"` + // (Output) + // [Output Only] + // Structure is documented below. + LocalizedMessages ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayInput `pulumi:"localizedMessages"` + // (Output) + // [Output Only] + // Structure is documented below. + QuotaInfos ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayInput `pulumi:"quotaInfos"` } -func (RouterNatRuleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouterNatRule)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetail)(nil)).Elem() } -func (i RouterNatRuleArgs) ToRouterNatRuleOutput() RouterNatRuleOutput { - return i.ToRouterNatRuleOutputWithContext(context.Background()) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput { + return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailOutputWithContext(context.Background()) } -func (i RouterNatRuleArgs) ToRouterNatRuleOutputWithContext(ctx context.Context) RouterNatRuleOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterNatRuleOutput) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) } -// RouterNatRuleArrayInput is an input type that accepts RouterNatRuleArray and RouterNatRuleArrayOutput values. -// You can construct a concrete instance of `RouterNatRuleArrayInput` via: +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailArray and ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayInput` via: // -// RouterNatRuleArray{ RouterNatRuleArgs{...} } -type RouterNatRuleArrayInput interface { +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailArray{ ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs{...} } +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayInput interface { pulumi.Input - ToRouterNatRuleArrayOutput() RouterNatRuleArrayOutput - ToRouterNatRuleArrayOutputWithContext(context.Context) RouterNatRuleArrayOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput } -type RouterNatRuleArray []RouterNatRuleInput +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailArray []ResizeRequestStatusLastAttemptErrorErrorErrorDetailInput -func (RouterNatRuleArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouterNatRule)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetail)(nil)).Elem() } -func (i RouterNatRuleArray) ToRouterNatRuleArrayOutput() RouterNatRuleArrayOutput { - return i.ToRouterNatRuleArrayOutputWithContext(context.Background()) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput { + return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutputWithContext(context.Background()) } -func (i RouterNatRuleArray) ToRouterNatRuleArrayOutputWithContext(ctx context.Context) RouterNatRuleArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterNatRuleArrayOutput) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput) } -type RouterNatRuleOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput struct{ *pulumi.OutputState } -func (RouterNatRuleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouterNatRule)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetail)(nil)).Elem() } -func (o RouterNatRuleOutput) ToRouterNatRuleOutput() RouterNatRuleOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput { return o } -func (o RouterNatRuleOutput) ToRouterNatRuleOutputWithContext(ctx context.Context) RouterNatRuleOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput { return o } -// The action to be enforced for traffic that matches this rule. +// (Output) +// [Output Only] // Structure is documented below. -func (o RouterNatRuleOutput) Action() RouterNatRuleActionPtrOutput { - return o.ApplyT(func(v RouterNatRule) *RouterNatRuleAction { return v.Action }).(RouterNatRuleActionPtrOutput) +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) ErrorInfos() ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetail) []ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo { + return v.ErrorInfos + }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput) } -// An optional description of this rule. -func (o RouterNatRuleOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouterNatRule) *string { return v.Description }).(pulumi.StringPtrOutput) +// (Output) +// [Output Only] +// Structure is documented below. +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) Helps() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetail) []ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp { + return v.Helps + }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput) } -// CEL expression that specifies the match condition that egress traffic from a VM is evaluated against. -// If it evaluates to true, the corresponding action is enforced. -// The following examples are valid match expressions for public NAT: -// "inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')" -// "destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'" -// The following example is a valid match expression for private NAT: -// "nexthop.hub == 'https://networkconnectivity.googleapis.com/v1alpha1/projects/my-project/global/hub/hub-1'" -func (o RouterNatRuleOutput) Match() pulumi.StringOutput { - return o.ApplyT(func(v RouterNatRule) string { return v.Match }).(pulumi.StringOutput) +// (Output) +// [Output Only] +// Structure is documented below. +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) LocalizedMessages() ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetail) []ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage { + return v.LocalizedMessages + }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput) } -// An integer uniquely identifying a rule in the list. -// The rule number must be a positive value between 0 and 65000, and must be unique among rules within a NAT. -func (o RouterNatRuleOutput) RuleNumber() pulumi.IntOutput { - return o.ApplyT(func(v RouterNatRule) int { return v.RuleNumber }).(pulumi.IntOutput) +// (Output) +// [Output Only] +// Structure is documented below. +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) QuotaInfos() ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetail) []ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo { + return v.QuotaInfos + }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput) } -type RouterNatRuleArrayOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput struct{ *pulumi.OutputState } -func (RouterNatRuleArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouterNatRule)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetail)(nil)).Elem() } -func (o RouterNatRuleArrayOutput) ToRouterNatRuleArrayOutput() RouterNatRuleArrayOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput { return o } -func (o RouterNatRuleArrayOutput) ToRouterNatRuleArrayOutputWithContext(ctx context.Context) RouterNatRuleArrayOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput { return o } -func (o RouterNatRuleArrayOutput) Index(i pulumi.IntInput) RouterNatRuleOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterNatRule { - return vs[0].([]RouterNatRule)[vs[1].(int)] - }).(RouterNatRuleOutput) +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusLastAttemptErrorErrorErrorDetail { + return vs[0].([]ResizeRequestStatusLastAttemptErrorErrorErrorDetail)[vs[1].(int)] + }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) } -type RouterNatRuleAction struct { - // A list of URLs of the IP resources used for this NAT rule. - // These IP addresses must be valid static external IP addresses assigned to the project. - // This field is used for public NAT. - SourceNatActiveIps []string `pulumi:"sourceNatActiveIps"` - // A list of URLs of the subnetworks used as source ranges for this NAT Rule. - // These subnetworks must have purpose set to PRIVATE_NAT. - // This field is used for private NAT. - SourceNatActiveRanges []string `pulumi:"sourceNatActiveRanges"` - // A list of URLs of the IP resources to be drained. - // These IPs must be valid static external IPs that have been assigned to the NAT. - // These IPs should be used for updating/patching a NAT rule only. - // This field is used for public NAT. - SourceNatDrainIps []string `pulumi:"sourceNatDrainIps"` - // A list of URLs of subnetworks representing source ranges to be drained. - // This is only supported on patch/update, and these subnetworks must have previously been used as active ranges in this NAT Rule. - // This field is used for private NAT. - SourceNatDrainRanges []string `pulumi:"sourceNatDrainRanges"` +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo struct { + // (Output) + // 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". + Domain *string `pulumi:"domain"` + // (Output) + // Additional structured details about this error. + // Keys must match /[a-z][a-zA-Z0-9-_]+/ 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. + Metadatas map[string]string `pulumi:"metadatas"` + // (Output) + // 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_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + Reason *string `pulumi:"reason"` } -// RouterNatRuleActionInput is an input type that accepts RouterNatRuleActionArgs and RouterNatRuleActionOutput values. -// You can construct a concrete instance of `RouterNatRuleActionInput` via: +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs and ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoInput` via: // -// RouterNatRuleActionArgs{...} -type RouterNatRuleActionInput interface { +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs{...} +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoInput interface { pulumi.Input - ToRouterNatRuleActionOutput() RouterNatRuleActionOutput - ToRouterNatRuleActionOutputWithContext(context.Context) RouterNatRuleActionOutput -} - -type RouterNatRuleActionArgs struct { - // A list of URLs of the IP resources used for this NAT rule. - // These IP addresses must be valid static external IP addresses assigned to the project. - // This field is used for public NAT. - SourceNatActiveIps pulumi.StringArrayInput `pulumi:"sourceNatActiveIps"` - // A list of URLs of the subnetworks used as source ranges for this NAT Rule. - // These subnetworks must have purpose set to PRIVATE_NAT. - // This field is used for private NAT. - SourceNatActiveRanges pulumi.StringArrayInput `pulumi:"sourceNatActiveRanges"` - // A list of URLs of the IP resources to be drained. - // These IPs must be valid static external IPs that have been assigned to the NAT. - // These IPs should be used for updating/patching a NAT rule only. - // This field is used for public NAT. - SourceNatDrainIps pulumi.StringArrayInput `pulumi:"sourceNatDrainIps"` - // A list of URLs of subnetworks representing source ranges to be drained. - // This is only supported on patch/update, and these subnetworks must have previously been used as active ranges in this NAT Rule. - // This field is used for private NAT. - SourceNatDrainRanges pulumi.StringArrayInput `pulumi:"sourceNatDrainRanges"` -} - -func (RouterNatRuleActionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouterNatRuleAction)(nil)).Elem() + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput } -func (i RouterNatRuleActionArgs) ToRouterNatRuleActionOutput() RouterNatRuleActionOutput { - return i.ToRouterNatRuleActionOutputWithContext(context.Background()) +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs struct { + // (Output) + // 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". + Domain pulumi.StringPtrInput `pulumi:"domain"` + // (Output) + // Additional structured details about this error. + // Keys must match /[a-z][a-zA-Z0-9-_]+/ 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. + Metadatas pulumi.StringMapInput `pulumi:"metadatas"` + // (Output) + // 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_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + Reason pulumi.StringPtrInput `pulumi:"reason"` } -func (i RouterNatRuleActionArgs) ToRouterNatRuleActionOutputWithContext(ctx context.Context) RouterNatRuleActionOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterNatRuleActionOutput) +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo)(nil)).Elem() } -func (i RouterNatRuleActionArgs) ToRouterNatRuleActionPtrOutput() RouterNatRuleActionPtrOutput { - return i.ToRouterNatRuleActionPtrOutputWithContext(context.Background()) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput { + return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutputWithContext(context.Background()) } -func (i RouterNatRuleActionArgs) ToRouterNatRuleActionPtrOutputWithContext(ctx context.Context) RouterNatRuleActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterNatRuleActionOutput).ToRouterNatRuleActionPtrOutputWithContext(ctx) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput) } -// RouterNatRuleActionPtrInput is an input type that accepts RouterNatRuleActionArgs, RouterNatRuleActionPtr and RouterNatRuleActionPtrOutput values. -// You can construct a concrete instance of `RouterNatRuleActionPtrInput` via: -// -// RouterNatRuleActionArgs{...} -// -// or: +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArray and ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayInput` via: // -// nil -type RouterNatRuleActionPtrInput interface { +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArray{ ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs{...} } +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayInput interface { pulumi.Input - ToRouterNatRuleActionPtrOutput() RouterNatRuleActionPtrOutput - ToRouterNatRuleActionPtrOutputWithContext(context.Context) RouterNatRuleActionPtrOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput } -type routerNatRuleActionPtrType RouterNatRuleActionArgs - -func RouterNatRuleActionPtr(v *RouterNatRuleActionArgs) RouterNatRuleActionPtrInput { - return (*routerNatRuleActionPtrType)(v) -} +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArray []ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoInput -func (*routerNatRuleActionPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouterNatRuleAction)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo)(nil)).Elem() } -func (i *routerNatRuleActionPtrType) ToRouterNatRuleActionPtrOutput() RouterNatRuleActionPtrOutput { - return i.ToRouterNatRuleActionPtrOutputWithContext(context.Background()) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput { + return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutputWithContext(context.Background()) } -func (i *routerNatRuleActionPtrType) ToRouterNatRuleActionPtrOutputWithContext(ctx context.Context) RouterNatRuleActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterNatRuleActionPtrOutput) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput) } -type RouterNatRuleActionOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput struct{ *pulumi.OutputState } -func (RouterNatRuleActionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouterNatRuleAction)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo)(nil)).Elem() } -func (o RouterNatRuleActionOutput) ToRouterNatRuleActionOutput() RouterNatRuleActionOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput { return o } -func (o RouterNatRuleActionOutput) ToRouterNatRuleActionOutputWithContext(ctx context.Context) RouterNatRuleActionOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput { return o } -func (o RouterNatRuleActionOutput) ToRouterNatRuleActionPtrOutput() RouterNatRuleActionPtrOutput { - return o.ToRouterNatRuleActionPtrOutputWithContext(context.Background()) -} - -func (o RouterNatRuleActionOutput) ToRouterNatRuleActionPtrOutputWithContext(ctx context.Context) RouterNatRuleActionPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RouterNatRuleAction) *RouterNatRuleAction { - return &v - }).(RouterNatRuleActionPtrOutput) -} - -// A list of URLs of the IP resources used for this NAT rule. -// These IP addresses must be valid static external IP addresses assigned to the project. -// This field is used for public NAT. -func (o RouterNatRuleActionOutput) SourceNatActiveIps() pulumi.StringArrayOutput { - return o.ApplyT(func(v RouterNatRuleAction) []string { return v.SourceNatActiveIps }).(pulumi.StringArrayOutput) -} - -// A list of URLs of the subnetworks used as source ranges for this NAT Rule. -// These subnetworks must have purpose set to PRIVATE_NAT. -// This field is used for private NAT. -func (o RouterNatRuleActionOutput) SourceNatActiveRanges() pulumi.StringArrayOutput { - return o.ApplyT(func(v RouterNatRuleAction) []string { return v.SourceNatActiveRanges }).(pulumi.StringArrayOutput) +// (Output) +// 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". +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput) Domain() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo) *string { return v.Domain }).(pulumi.StringPtrOutput) } -// A list of URLs of the IP resources to be drained. -// These IPs must be valid static external IPs that have been assigned to the NAT. -// These IPs should be used for updating/patching a NAT rule only. -// This field is used for public NAT. -func (o RouterNatRuleActionOutput) SourceNatDrainIps() pulumi.StringArrayOutput { - return o.ApplyT(func(v RouterNatRuleAction) []string { return v.SourceNatDrainIps }).(pulumi.StringArrayOutput) +// (Output) +// Additional structured details about this error. +// Keys must match /[a-z][a-zA-Z0-9-_]+/ 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. +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput) Metadatas() pulumi.StringMapOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo) map[string]string { + return v.Metadatas + }).(pulumi.StringMapOutput) } -// A list of URLs of subnetworks representing source ranges to be drained. -// This is only supported on patch/update, and these subnetworks must have previously been used as active ranges in this NAT Rule. -// This field is used for private NAT. -func (o RouterNatRuleActionOutput) SourceNatDrainRanges() pulumi.StringArrayOutput { - return o.ApplyT(func(v RouterNatRuleAction) []string { return v.SourceNatDrainRanges }).(pulumi.StringArrayOutput) +// (Output) +// 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_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput) Reason() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo) *string { return v.Reason }).(pulumi.StringPtrOutput) } -type RouterNatRuleActionPtrOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput struct{ *pulumi.OutputState } -func (RouterNatRuleActionPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouterNatRuleAction)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo)(nil)).Elem() } -func (o RouterNatRuleActionPtrOutput) ToRouterNatRuleActionPtrOutput() RouterNatRuleActionPtrOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput { return o } -func (o RouterNatRuleActionPtrOutput) ToRouterNatRuleActionPtrOutputWithContext(ctx context.Context) RouterNatRuleActionPtrOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput { return o } -func (o RouterNatRuleActionPtrOutput) Elem() RouterNatRuleActionOutput { - return o.ApplyT(func(v *RouterNatRuleAction) RouterNatRuleAction { - if v != nil { - return *v - } - var ret RouterNatRuleAction - return ret - }).(RouterNatRuleActionOutput) -} - -// A list of URLs of the IP resources used for this NAT rule. -// These IP addresses must be valid static external IP addresses assigned to the project. -// This field is used for public NAT. -func (o RouterNatRuleActionPtrOutput) SourceNatActiveIps() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RouterNatRuleAction) []string { - if v == nil { - return nil - } - return v.SourceNatActiveIps - }).(pulumi.StringArrayOutput) -} - -// A list of URLs of the subnetworks used as source ranges for this NAT Rule. -// These subnetworks must have purpose set to PRIVATE_NAT. -// This field is used for private NAT. -func (o RouterNatRuleActionPtrOutput) SourceNatActiveRanges() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RouterNatRuleAction) []string { - if v == nil { - return nil - } - return v.SourceNatActiveRanges - }).(pulumi.StringArrayOutput) -} - -// A list of URLs of the IP resources to be drained. -// These IPs must be valid static external IPs that have been assigned to the NAT. -// These IPs should be used for updating/patching a NAT rule only. -// This field is used for public NAT. -func (o RouterNatRuleActionPtrOutput) SourceNatDrainIps() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RouterNatRuleAction) []string { - if v == nil { - return nil - } - return v.SourceNatDrainIps - }).(pulumi.StringArrayOutput) -} - -// A list of URLs of subnetworks representing source ranges to be drained. -// This is only supported on patch/update, and these subnetworks must have previously been used as active ranges in this NAT Rule. -// This field is used for private NAT. -func (o RouterNatRuleActionPtrOutput) SourceNatDrainRanges() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RouterNatRuleAction) []string { - if v == nil { - return nil - } - return v.SourceNatDrainRanges - }).(pulumi.StringArrayOutput) +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo { + return vs[0].([]ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo)[vs[1].(int)] + }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput) } -type RouterNatSubnetwork struct { - // Self-link of subnetwork to NAT - Name string `pulumi:"name"` - // List of the secondary ranges of the subnetwork that are allowed - // to use NAT. This can be populated only if - // `LIST_OF_SECONDARY_IP_RANGES` is one of the values in - // sourceIpRangesToNat - SecondaryIpRangeNames []string `pulumi:"secondaryIpRangeNames"` - // List of options for which source IPs in the subnetwork - // should have NAT enabled. Supported values include: - // `ALL_IP_RANGES`, `LIST_OF_SECONDARY_IP_RANGES`, - // `PRIMARY_IP_RANGE`. - SourceIpRangesToNats []string `pulumi:"sourceIpRangesToNats"` +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp struct { + // (Output) + // [Output Only] + // Structure is documented below. + Links []ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink `pulumi:"links"` } -// RouterNatSubnetworkInput is an input type that accepts RouterNatSubnetworkArgs and RouterNatSubnetworkOutput values. -// You can construct a concrete instance of `RouterNatSubnetworkInput` via: +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs and ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpInput` via: // -// RouterNatSubnetworkArgs{...} -type RouterNatSubnetworkInput interface { +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs{...} +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpInput interface { pulumi.Input - ToRouterNatSubnetworkOutput() RouterNatSubnetworkOutput - ToRouterNatSubnetworkOutputWithContext(context.Context) RouterNatSubnetworkOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput } -type RouterNatSubnetworkArgs struct { - // Self-link of subnetwork to NAT - Name pulumi.StringInput `pulumi:"name"` - // List of the secondary ranges of the subnetwork that are allowed - // to use NAT. This can be populated only if - // `LIST_OF_SECONDARY_IP_RANGES` is one of the values in - // sourceIpRangesToNat - SecondaryIpRangeNames pulumi.StringArrayInput `pulumi:"secondaryIpRangeNames"` - // List of options for which source IPs in the subnetwork - // should have NAT enabled. Supported values include: - // `ALL_IP_RANGES`, `LIST_OF_SECONDARY_IP_RANGES`, - // `PRIMARY_IP_RANGE`. - SourceIpRangesToNats pulumi.StringArrayInput `pulumi:"sourceIpRangesToNats"` +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs struct { + // (Output) + // [Output Only] + // Structure is documented below. + Links ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayInput `pulumi:"links"` } -func (RouterNatSubnetworkArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouterNatSubnetwork)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp)(nil)).Elem() } - -func (i RouterNatSubnetworkArgs) ToRouterNatSubnetworkOutput() RouterNatSubnetworkOutput { - return i.ToRouterNatSubnetworkOutputWithContext(context.Background()) + +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput { + return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutputWithContext(context.Background()) } -func (i RouterNatSubnetworkArgs) ToRouterNatSubnetworkOutputWithContext(ctx context.Context) RouterNatSubnetworkOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterNatSubnetworkOutput) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput) } -// RouterNatSubnetworkArrayInput is an input type that accepts RouterNatSubnetworkArray and RouterNatSubnetworkArrayOutput values. -// You can construct a concrete instance of `RouterNatSubnetworkArrayInput` via: +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArray and ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayInput` via: // -// RouterNatSubnetworkArray{ RouterNatSubnetworkArgs{...} } -type RouterNatSubnetworkArrayInput interface { +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArray{ ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs{...} } +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayInput interface { pulumi.Input - ToRouterNatSubnetworkArrayOutput() RouterNatSubnetworkArrayOutput - ToRouterNatSubnetworkArrayOutputWithContext(context.Context) RouterNatSubnetworkArrayOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput } -type RouterNatSubnetworkArray []RouterNatSubnetworkInput +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArray []ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpInput -func (RouterNatSubnetworkArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouterNatSubnetwork)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp)(nil)).Elem() } -func (i RouterNatSubnetworkArray) ToRouterNatSubnetworkArrayOutput() RouterNatSubnetworkArrayOutput { - return i.ToRouterNatSubnetworkArrayOutputWithContext(context.Background()) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput { + return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutputWithContext(context.Background()) } -func (i RouterNatSubnetworkArray) ToRouterNatSubnetworkArrayOutputWithContext(ctx context.Context) RouterNatSubnetworkArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterNatSubnetworkArrayOutput) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput) } -type RouterNatSubnetworkOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput struct{ *pulumi.OutputState } -func (RouterNatSubnetworkOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouterNatSubnetwork)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp)(nil)).Elem() } -func (o RouterNatSubnetworkOutput) ToRouterNatSubnetworkOutput() RouterNatSubnetworkOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput { return o } -func (o RouterNatSubnetworkOutput) ToRouterNatSubnetworkOutputWithContext(ctx context.Context) RouterNatSubnetworkOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput { return o } -// Self-link of subnetwork to NAT -func (o RouterNatSubnetworkOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v RouterNatSubnetwork) string { return v.Name }).(pulumi.StringOutput) -} - -// List of the secondary ranges of the subnetwork that are allowed -// to use NAT. This can be populated only if -// `LIST_OF_SECONDARY_IP_RANGES` is one of the values in -// sourceIpRangesToNat -func (o RouterNatSubnetworkOutput) SecondaryIpRangeNames() pulumi.StringArrayOutput { - return o.ApplyT(func(v RouterNatSubnetwork) []string { return v.SecondaryIpRangeNames }).(pulumi.StringArrayOutput) -} - -// List of options for which source IPs in the subnetwork -// should have NAT enabled. Supported values include: -// `ALL_IP_RANGES`, `LIST_OF_SECONDARY_IP_RANGES`, -// `PRIMARY_IP_RANGE`. -func (o RouterNatSubnetworkOutput) SourceIpRangesToNats() pulumi.StringArrayOutput { - return o.ApplyT(func(v RouterNatSubnetwork) []string { return v.SourceIpRangesToNats }).(pulumi.StringArrayOutput) +// (Output) +// [Output Only] +// Structure is documented below. +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput) Links() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp) []ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink { + return v.Links + }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput) } -type RouterNatSubnetworkArrayOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput struct{ *pulumi.OutputState } -func (RouterNatSubnetworkArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouterNatSubnetwork)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp)(nil)).Elem() } -func (o RouterNatSubnetworkArrayOutput) ToRouterNatSubnetworkArrayOutput() RouterNatSubnetworkArrayOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput { return o } -func (o RouterNatSubnetworkArrayOutput) ToRouterNatSubnetworkArrayOutputWithContext(ctx context.Context) RouterNatSubnetworkArrayOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput { return o } -func (o RouterNatSubnetworkArrayOutput) Index(i pulumi.IntInput) RouterNatSubnetworkOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterNatSubnetwork { - return vs[0].([]RouterNatSubnetwork)[vs[1].(int)] - }).(RouterNatSubnetworkOutput) +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp { + return vs[0].([]ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp)[vs[1].(int)] + }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput) } -type RouterPeerAdvertisedIpRange struct { - // User-specified description for the IP range. +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink struct { + // An optional description of this resize-request. Description *string `pulumi:"description"` - // The IP range to advertise. The value must be a - // CIDR-formatted string. - Range string `pulumi:"range"` + // (Output) + // The URL of the link. + Url *string `pulumi:"url"` } -// RouterPeerAdvertisedIpRangeInput is an input type that accepts RouterPeerAdvertisedIpRangeArgs and RouterPeerAdvertisedIpRangeOutput values. -// You can construct a concrete instance of `RouterPeerAdvertisedIpRangeInput` via: +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs and ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkInput` via: // -// RouterPeerAdvertisedIpRangeArgs{...} -type RouterPeerAdvertisedIpRangeInput interface { +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs{...} +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkInput interface { pulumi.Input - ToRouterPeerAdvertisedIpRangeOutput() RouterPeerAdvertisedIpRangeOutput - ToRouterPeerAdvertisedIpRangeOutputWithContext(context.Context) RouterPeerAdvertisedIpRangeOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput } -type RouterPeerAdvertisedIpRangeArgs struct { - // User-specified description for the IP range. +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs struct { + // An optional description of this resize-request. Description pulumi.StringPtrInput `pulumi:"description"` - // The IP range to advertise. The value must be a - // CIDR-formatted string. - Range pulumi.StringInput `pulumi:"range"` + // (Output) + // The URL of the link. + Url pulumi.StringPtrInput `pulumi:"url"` } -func (RouterPeerAdvertisedIpRangeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouterPeerAdvertisedIpRange)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink)(nil)).Elem() } -func (i RouterPeerAdvertisedIpRangeArgs) ToRouterPeerAdvertisedIpRangeOutput() RouterPeerAdvertisedIpRangeOutput { - return i.ToRouterPeerAdvertisedIpRangeOutputWithContext(context.Background()) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput { + return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutputWithContext(context.Background()) } -func (i RouterPeerAdvertisedIpRangeArgs) ToRouterPeerAdvertisedIpRangeOutputWithContext(ctx context.Context) RouterPeerAdvertisedIpRangeOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterPeerAdvertisedIpRangeOutput) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput) } -// RouterPeerAdvertisedIpRangeArrayInput is an input type that accepts RouterPeerAdvertisedIpRangeArray and RouterPeerAdvertisedIpRangeArrayOutput values. -// You can construct a concrete instance of `RouterPeerAdvertisedIpRangeArrayInput` via: +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArray and ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayInput` via: // -// RouterPeerAdvertisedIpRangeArray{ RouterPeerAdvertisedIpRangeArgs{...} } -type RouterPeerAdvertisedIpRangeArrayInput interface { +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArray{ ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs{...} } +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayInput interface { pulumi.Input - ToRouterPeerAdvertisedIpRangeArrayOutput() RouterPeerAdvertisedIpRangeArrayOutput - ToRouterPeerAdvertisedIpRangeArrayOutputWithContext(context.Context) RouterPeerAdvertisedIpRangeArrayOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput } -type RouterPeerAdvertisedIpRangeArray []RouterPeerAdvertisedIpRangeInput +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArray []ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkInput -func (RouterPeerAdvertisedIpRangeArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouterPeerAdvertisedIpRange)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink)(nil)).Elem() } -func (i RouterPeerAdvertisedIpRangeArray) ToRouterPeerAdvertisedIpRangeArrayOutput() RouterPeerAdvertisedIpRangeArrayOutput { - return i.ToRouterPeerAdvertisedIpRangeArrayOutputWithContext(context.Background()) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput { + return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutputWithContext(context.Background()) } -func (i RouterPeerAdvertisedIpRangeArray) ToRouterPeerAdvertisedIpRangeArrayOutputWithContext(ctx context.Context) RouterPeerAdvertisedIpRangeArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterPeerAdvertisedIpRangeArrayOutput) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput) } -type RouterPeerAdvertisedIpRangeOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput struct{ *pulumi.OutputState } -func (RouterPeerAdvertisedIpRangeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouterPeerAdvertisedIpRange)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink)(nil)).Elem() } -func (o RouterPeerAdvertisedIpRangeOutput) ToRouterPeerAdvertisedIpRangeOutput() RouterPeerAdvertisedIpRangeOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput { return o } -func (o RouterPeerAdvertisedIpRangeOutput) ToRouterPeerAdvertisedIpRangeOutputWithContext(ctx context.Context) RouterPeerAdvertisedIpRangeOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput { return o } -// User-specified description for the IP range. -func (o RouterPeerAdvertisedIpRangeOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouterPeerAdvertisedIpRange) *string { return v.Description }).(pulumi.StringPtrOutput) +// An optional description of this resize-request. +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink) *string { return v.Description }).(pulumi.StringPtrOutput) } -// The IP range to advertise. The value must be a -// CIDR-formatted string. -func (o RouterPeerAdvertisedIpRangeOutput) Range() pulumi.StringOutput { - return o.ApplyT(func(v RouterPeerAdvertisedIpRange) string { return v.Range }).(pulumi.StringOutput) +// (Output) +// The URL of the link. +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput) Url() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink) *string { return v.Url }).(pulumi.StringPtrOutput) } -type RouterPeerAdvertisedIpRangeArrayOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput struct{ *pulumi.OutputState } -func (RouterPeerAdvertisedIpRangeArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouterPeerAdvertisedIpRange)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink)(nil)).Elem() } -func (o RouterPeerAdvertisedIpRangeArrayOutput) ToRouterPeerAdvertisedIpRangeArrayOutput() RouterPeerAdvertisedIpRangeArrayOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput { return o } -func (o RouterPeerAdvertisedIpRangeArrayOutput) ToRouterPeerAdvertisedIpRangeArrayOutputWithContext(ctx context.Context) RouterPeerAdvertisedIpRangeArrayOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput { return o } -func (o RouterPeerAdvertisedIpRangeArrayOutput) Index(i pulumi.IntInput) RouterPeerAdvertisedIpRangeOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterPeerAdvertisedIpRange { - return vs[0].([]RouterPeerAdvertisedIpRange)[vs[1].(int)] - }).(RouterPeerAdvertisedIpRangeOutput) +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink { + return vs[0].([]ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink)[vs[1].(int)] + }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput) } -type RouterPeerBfd struct { - // The minimum interval, in milliseconds, between BFD control packets - // received from the peer router. The actual value is negotiated - // between the two routers and is equal to the greater of this value - // and the transmit interval of the other router. If set, this value - // must be between 1000 and 30000. - MinReceiveInterval *int `pulumi:"minReceiveInterval"` - // The minimum interval, in milliseconds, between BFD control packets - // transmitted to the peer router. The actual value is negotiated - // between the two routers and is equal to the greater of this value - // and the corresponding receive interval of the other router. If set, - // this value must be between 1000 and 30000. - MinTransmitInterval *int `pulumi:"minTransmitInterval"` - // The number of consecutive BFD packets that must be missed before - // BFD declares that a peer is unavailable. If set, the value must - // be a value between 5 and 16. - // - // The `md5AuthenticationKey` block supports: - Multiplier *int `pulumi:"multiplier"` - // The BFD session initialization mode for this BGP peer. - // If set to `ACTIVE`, the Cloud Router will initiate the BFD session - // for this BGP peer. If set to `PASSIVE`, the Cloud Router will wait - // for the peer router to initiate the BFD session for this BGP peer. - // If set to `DISABLED`, BFD is disabled for this BGP peer. - // Possible values are: `ACTIVE`, `DISABLED`, `PASSIVE`. - SessionInitializationMode string `pulumi:"sessionInitializationMode"` +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage struct { + // (Output) + // The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + Locale *string `pulumi:"locale"` + // (Output) + // The localized error message in the above locale. + Message *string `pulumi:"message"` } -// RouterPeerBfdInput is an input type that accepts RouterPeerBfdArgs and RouterPeerBfdOutput values. -// You can construct a concrete instance of `RouterPeerBfdInput` via: +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs and ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageInput` via: // -// RouterPeerBfdArgs{...} -type RouterPeerBfdInput interface { +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs{...} +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageInput interface { pulumi.Input - ToRouterPeerBfdOutput() RouterPeerBfdOutput - ToRouterPeerBfdOutputWithContext(context.Context) RouterPeerBfdOutput -} - -type RouterPeerBfdArgs struct { - // The minimum interval, in milliseconds, between BFD control packets - // received from the peer router. The actual value is negotiated - // between the two routers and is equal to the greater of this value - // and the transmit interval of the other router. If set, this value - // must be between 1000 and 30000. - MinReceiveInterval pulumi.IntPtrInput `pulumi:"minReceiveInterval"` - // The minimum interval, in milliseconds, between BFD control packets - // transmitted to the peer router. The actual value is negotiated - // between the two routers and is equal to the greater of this value - // and the corresponding receive interval of the other router. If set, - // this value must be between 1000 and 30000. - MinTransmitInterval pulumi.IntPtrInput `pulumi:"minTransmitInterval"` - // The number of consecutive BFD packets that must be missed before - // BFD declares that a peer is unavailable. If set, the value must - // be a value between 5 and 16. - // - // The `md5AuthenticationKey` block supports: - Multiplier pulumi.IntPtrInput `pulumi:"multiplier"` - // The BFD session initialization mode for this BGP peer. - // If set to `ACTIVE`, the Cloud Router will initiate the BFD session - // for this BGP peer. If set to `PASSIVE`, the Cloud Router will wait - // for the peer router to initiate the BFD session for this BGP peer. - // If set to `DISABLED`, BFD is disabled for this BGP peer. - // Possible values are: `ACTIVE`, `DISABLED`, `PASSIVE`. - SessionInitializationMode pulumi.StringInput `pulumi:"sessionInitializationMode"` -} - -func (RouterPeerBfdArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouterPeerBfd)(nil)).Elem() + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput } -func (i RouterPeerBfdArgs) ToRouterPeerBfdOutput() RouterPeerBfdOutput { - return i.ToRouterPeerBfdOutputWithContext(context.Background()) +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs struct { + // (Output) + // The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + Locale pulumi.StringPtrInput `pulumi:"locale"` + // (Output) + // The localized error message in the above locale. + Message pulumi.StringPtrInput `pulumi:"message"` } -func (i RouterPeerBfdArgs) ToRouterPeerBfdOutputWithContext(ctx context.Context) RouterPeerBfdOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterPeerBfdOutput) +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage)(nil)).Elem() } -func (i RouterPeerBfdArgs) ToRouterPeerBfdPtrOutput() RouterPeerBfdPtrOutput { - return i.ToRouterPeerBfdPtrOutputWithContext(context.Background()) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput { + return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutputWithContext(context.Background()) } -func (i RouterPeerBfdArgs) ToRouterPeerBfdPtrOutputWithContext(ctx context.Context) RouterPeerBfdPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterPeerBfdOutput).ToRouterPeerBfdPtrOutputWithContext(ctx) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput) } -// RouterPeerBfdPtrInput is an input type that accepts RouterPeerBfdArgs, RouterPeerBfdPtr and RouterPeerBfdPtrOutput values. -// You can construct a concrete instance of `RouterPeerBfdPtrInput` via: -// -// RouterPeerBfdArgs{...} -// -// or: +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArray and ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayInput` via: // -// nil -type RouterPeerBfdPtrInput interface { +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArray{ ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs{...} } +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayInput interface { pulumi.Input - ToRouterPeerBfdPtrOutput() RouterPeerBfdPtrOutput - ToRouterPeerBfdPtrOutputWithContext(context.Context) RouterPeerBfdPtrOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput } -type routerPeerBfdPtrType RouterPeerBfdArgs - -func RouterPeerBfdPtr(v *RouterPeerBfdArgs) RouterPeerBfdPtrInput { - return (*routerPeerBfdPtrType)(v) -} +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArray []ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageInput -func (*routerPeerBfdPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouterPeerBfd)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage)(nil)).Elem() } -func (i *routerPeerBfdPtrType) ToRouterPeerBfdPtrOutput() RouterPeerBfdPtrOutput { - return i.ToRouterPeerBfdPtrOutputWithContext(context.Background()) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput { + return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutputWithContext(context.Background()) } -func (i *routerPeerBfdPtrType) ToRouterPeerBfdPtrOutputWithContext(ctx context.Context) RouterPeerBfdPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterPeerBfdPtrOutput) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput) } -type RouterPeerBfdOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput struct{ *pulumi.OutputState } -func (RouterPeerBfdOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouterPeerBfd)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage)(nil)).Elem() } -func (o RouterPeerBfdOutput) ToRouterPeerBfdOutput() RouterPeerBfdOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput { return o } -func (o RouterPeerBfdOutput) ToRouterPeerBfdOutputWithContext(ctx context.Context) RouterPeerBfdOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput { return o } -func (o RouterPeerBfdOutput) ToRouterPeerBfdPtrOutput() RouterPeerBfdPtrOutput { - return o.ToRouterPeerBfdPtrOutputWithContext(context.Background()) -} - -func (o RouterPeerBfdOutput) ToRouterPeerBfdPtrOutputWithContext(ctx context.Context) RouterPeerBfdPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RouterPeerBfd) *RouterPeerBfd { - return &v - }).(RouterPeerBfdPtrOutput) -} - -// The minimum interval, in milliseconds, between BFD control packets -// received from the peer router. The actual value is negotiated -// between the two routers and is equal to the greater of this value -// and the transmit interval of the other router. If set, this value -// must be between 1000 and 30000. -func (o RouterPeerBfdOutput) MinReceiveInterval() pulumi.IntPtrOutput { - return o.ApplyT(func(v RouterPeerBfd) *int { return v.MinReceiveInterval }).(pulumi.IntPtrOutput) -} - -// The minimum interval, in milliseconds, between BFD control packets -// transmitted to the peer router. The actual value is negotiated -// between the two routers and is equal to the greater of this value -// and the corresponding receive interval of the other router. If set, -// this value must be between 1000 and 30000. -func (o RouterPeerBfdOutput) MinTransmitInterval() pulumi.IntPtrOutput { - return o.ApplyT(func(v RouterPeerBfd) *int { return v.MinTransmitInterval }).(pulumi.IntPtrOutput) -} - -// The number of consecutive BFD packets that must be missed before -// BFD declares that a peer is unavailable. If set, the value must -// be a value between 5 and 16. -// -// The `md5AuthenticationKey` block supports: -func (o RouterPeerBfdOutput) Multiplier() pulumi.IntPtrOutput { - return o.ApplyT(func(v RouterPeerBfd) *int { return v.Multiplier }).(pulumi.IntPtrOutput) +// (Output) +// The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput) Locale() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage) *string { return v.Locale }).(pulumi.StringPtrOutput) } -// The BFD session initialization mode for this BGP peer. -// If set to `ACTIVE`, the Cloud Router will initiate the BFD session -// for this BGP peer. If set to `PASSIVE`, the Cloud Router will wait -// for the peer router to initiate the BFD session for this BGP peer. -// If set to `DISABLED`, BFD is disabled for this BGP peer. -// Possible values are: `ACTIVE`, `DISABLED`, `PASSIVE`. -func (o RouterPeerBfdOutput) SessionInitializationMode() pulumi.StringOutput { - return o.ApplyT(func(v RouterPeerBfd) string { return v.SessionInitializationMode }).(pulumi.StringOutput) +// (Output) +// The localized error message in the above locale. +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput) Message() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage) *string { return v.Message }).(pulumi.StringPtrOutput) } -type RouterPeerBfdPtrOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput struct{ *pulumi.OutputState } -func (RouterPeerBfdPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouterPeerBfd)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage)(nil)).Elem() } -func (o RouterPeerBfdPtrOutput) ToRouterPeerBfdPtrOutput() RouterPeerBfdPtrOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput { return o } -func (o RouterPeerBfdPtrOutput) ToRouterPeerBfdPtrOutputWithContext(ctx context.Context) RouterPeerBfdPtrOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput { return o } -func (o RouterPeerBfdPtrOutput) Elem() RouterPeerBfdOutput { - return o.ApplyT(func(v *RouterPeerBfd) RouterPeerBfd { - if v != nil { - return *v - } - var ret RouterPeerBfd - return ret - }).(RouterPeerBfdOutput) +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage { + return vs[0].([]ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage)[vs[1].(int)] + }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput) } -// The minimum interval, in milliseconds, between BFD control packets -// received from the peer router. The actual value is negotiated -// between the two routers and is equal to the greater of this value -// and the transmit interval of the other router. If set, this value -// must be between 1000 and 30000. -func (o RouterPeerBfdPtrOutput) MinReceiveInterval() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RouterPeerBfd) *int { - if v == nil { - return nil - } - return v.MinReceiveInterval - }).(pulumi.IntPtrOutput) +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo struct { + // (Output) + // The map holding related quota dimensions + Dimensions map[string]string `pulumi:"dimensions"` + // (Output) + // Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + FutureLimit *int `pulumi:"futureLimit"` + // (Output) + // Current effective quota limit. The limit's unit depends on the quota type or metric. + Limit *int `pulumi:"limit"` + // (Output) + // The name of the quota limit. + LimitName *string `pulumi:"limitName"` + // (Output) + // The Compute Engine quota metric name. + MetricName *string `pulumi:"metricName"` + // (Output) + // Rollout status of the future quota limit. + RolloutStatus *string `pulumi:"rolloutStatus"` } -// The minimum interval, in milliseconds, between BFD control packets -// transmitted to the peer router. The actual value is negotiated -// between the two routers and is equal to the greater of this value -// and the corresponding receive interval of the other router. If set, -// this value must be between 1000 and 30000. -func (o RouterPeerBfdPtrOutput) MinTransmitInterval() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RouterPeerBfd) *int { - if v == nil { - return nil - } - return v.MinTransmitInterval - }).(pulumi.IntPtrOutput) +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs and ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoInput` via: +// +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs{...} +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoInput interface { + pulumi.Input + + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput } -// The number of consecutive BFD packets that must be missed before -// BFD declares that a peer is unavailable. If set, the value must -// be a value between 5 and 16. -// -// The `md5AuthenticationKey` block supports: -func (o RouterPeerBfdPtrOutput) Multiplier() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RouterPeerBfd) *int { - if v == nil { - return nil - } - return v.Multiplier - }).(pulumi.IntPtrOutput) +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs struct { + // (Output) + // The map holding related quota dimensions + Dimensions pulumi.StringMapInput `pulumi:"dimensions"` + // (Output) + // Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + FutureLimit pulumi.IntPtrInput `pulumi:"futureLimit"` + // (Output) + // Current effective quota limit. The limit's unit depends on the quota type or metric. + Limit pulumi.IntPtrInput `pulumi:"limit"` + // (Output) + // The name of the quota limit. + LimitName pulumi.StringPtrInput `pulumi:"limitName"` + // (Output) + // The Compute Engine quota metric name. + MetricName pulumi.StringPtrInput `pulumi:"metricName"` + // (Output) + // Rollout status of the future quota limit. + RolloutStatus pulumi.StringPtrInput `pulumi:"rolloutStatus"` } -// The BFD session initialization mode for this BGP peer. -// If set to `ACTIVE`, the Cloud Router will initiate the BFD session -// for this BGP peer. If set to `PASSIVE`, the Cloud Router will wait -// for the peer router to initiate the BFD session for this BGP peer. -// If set to `DISABLED`, BFD is disabled for this BGP peer. -// Possible values are: `ACTIVE`, `DISABLED`, `PASSIVE`. -func (o RouterPeerBfdPtrOutput) SessionInitializationMode() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouterPeerBfd) *string { - if v == nil { - return nil - } - return &v.SessionInitializationMode - }).(pulumi.StringPtrOutput) +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo)(nil)).Elem() } -type RouterPeerCustomLearnedIpRange struct { - // The IP range to advertise. The value must be a - // CIDR-formatted string. - Range string `pulumi:"range"` +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput { + return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutputWithContext(context.Background()) } -// RouterPeerCustomLearnedIpRangeInput is an input type that accepts RouterPeerCustomLearnedIpRangeArgs and RouterPeerCustomLearnedIpRangeOutput values. -// You can construct a concrete instance of `RouterPeerCustomLearnedIpRangeInput` via: +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) +} + +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArray and ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayInput` via: // -// RouterPeerCustomLearnedIpRangeArgs{...} -type RouterPeerCustomLearnedIpRangeInput interface { +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArray{ ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs{...} } +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayInput interface { pulumi.Input - ToRouterPeerCustomLearnedIpRangeOutput() RouterPeerCustomLearnedIpRangeOutput - ToRouterPeerCustomLearnedIpRangeOutputWithContext(context.Context) RouterPeerCustomLearnedIpRangeOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput } -type RouterPeerCustomLearnedIpRangeArgs struct { - // The IP range to advertise. The value must be a - // CIDR-formatted string. - Range pulumi.StringInput `pulumi:"range"` -} +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArray []ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoInput -func (RouterPeerCustomLearnedIpRangeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouterPeerCustomLearnedIpRange)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo)(nil)).Elem() } -func (i RouterPeerCustomLearnedIpRangeArgs) ToRouterPeerCustomLearnedIpRangeOutput() RouterPeerCustomLearnedIpRangeOutput { - return i.ToRouterPeerCustomLearnedIpRangeOutputWithContext(context.Background()) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput { + return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutputWithContext(context.Background()) } -func (i RouterPeerCustomLearnedIpRangeArgs) ToRouterPeerCustomLearnedIpRangeOutputWithContext(ctx context.Context) RouterPeerCustomLearnedIpRangeOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterPeerCustomLearnedIpRangeOutput) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput) } -// RouterPeerCustomLearnedIpRangeArrayInput is an input type that accepts RouterPeerCustomLearnedIpRangeArray and RouterPeerCustomLearnedIpRangeArrayOutput values. -// You can construct a concrete instance of `RouterPeerCustomLearnedIpRangeArrayInput` via: -// -// RouterPeerCustomLearnedIpRangeArray{ RouterPeerCustomLearnedIpRangeArgs{...} } -type RouterPeerCustomLearnedIpRangeArrayInput interface { - pulumi.Input +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput struct{ *pulumi.OutputState } - ToRouterPeerCustomLearnedIpRangeArrayOutput() RouterPeerCustomLearnedIpRangeArrayOutput - ToRouterPeerCustomLearnedIpRangeArrayOutputWithContext(context.Context) RouterPeerCustomLearnedIpRangeArrayOutput +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo)(nil)).Elem() } -type RouterPeerCustomLearnedIpRangeArray []RouterPeerCustomLearnedIpRangeInput - -func (RouterPeerCustomLearnedIpRangeArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouterPeerCustomLearnedIpRange)(nil)).Elem() +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput { + return o } -func (i RouterPeerCustomLearnedIpRangeArray) ToRouterPeerCustomLearnedIpRangeArrayOutput() RouterPeerCustomLearnedIpRangeArrayOutput { - return i.ToRouterPeerCustomLearnedIpRangeArrayOutputWithContext(context.Background()) +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput { + return o } -func (i RouterPeerCustomLearnedIpRangeArray) ToRouterPeerCustomLearnedIpRangeArrayOutputWithContext(ctx context.Context) RouterPeerCustomLearnedIpRangeArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterPeerCustomLearnedIpRangeArrayOutput) +// (Output) +// The map holding related quota dimensions +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) Dimensions() pulumi.StringMapOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo) map[string]string { + return v.Dimensions + }).(pulumi.StringMapOutput) } -type RouterPeerCustomLearnedIpRangeOutput struct{ *pulumi.OutputState } +// (Output) +// Future quota limit being rolled out. The limit's unit depends on the quota type or metric. +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) FutureLimit() pulumi.IntPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo) *int { return v.FutureLimit }).(pulumi.IntPtrOutput) +} -func (RouterPeerCustomLearnedIpRangeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouterPeerCustomLearnedIpRange)(nil)).Elem() +// (Output) +// Current effective quota limit. The limit's unit depends on the quota type or metric. +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) Limit() pulumi.IntPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo) *int { return v.Limit }).(pulumi.IntPtrOutput) } -func (o RouterPeerCustomLearnedIpRangeOutput) ToRouterPeerCustomLearnedIpRangeOutput() RouterPeerCustomLearnedIpRangeOutput { - return o +// (Output) +// The name of the quota limit. +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) LimitName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo) *string { return v.LimitName }).(pulumi.StringPtrOutput) } -func (o RouterPeerCustomLearnedIpRangeOutput) ToRouterPeerCustomLearnedIpRangeOutputWithContext(ctx context.Context) RouterPeerCustomLearnedIpRangeOutput { - return o +// (Output) +// The Compute Engine quota metric name. +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) MetricName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo) *string { return v.MetricName }).(pulumi.StringPtrOutput) } -// The IP range to advertise. The value must be a -// CIDR-formatted string. -func (o RouterPeerCustomLearnedIpRangeOutput) Range() pulumi.StringOutput { - return o.ApplyT(func(v RouterPeerCustomLearnedIpRange) string { return v.Range }).(pulumi.StringOutput) +// (Output) +// Rollout status of the future quota limit. +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) RolloutStatus() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo) *string { return v.RolloutStatus }).(pulumi.StringPtrOutput) } -type RouterPeerCustomLearnedIpRangeArrayOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput struct{ *pulumi.OutputState } -func (RouterPeerCustomLearnedIpRangeArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouterPeerCustomLearnedIpRange)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo)(nil)).Elem() } -func (o RouterPeerCustomLearnedIpRangeArrayOutput) ToRouterPeerCustomLearnedIpRangeArrayOutput() RouterPeerCustomLearnedIpRangeArrayOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput { return o } -func (o RouterPeerCustomLearnedIpRangeArrayOutput) ToRouterPeerCustomLearnedIpRangeArrayOutputWithContext(ctx context.Context) RouterPeerCustomLearnedIpRangeArrayOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput { return o } -func (o RouterPeerCustomLearnedIpRangeArrayOutput) Index(i pulumi.IntInput) RouterPeerCustomLearnedIpRangeOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterPeerCustomLearnedIpRange { - return vs[0].([]RouterPeerCustomLearnedIpRange)[vs[1].(int)] - }).(RouterPeerCustomLearnedIpRangeOutput) +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo { + return vs[0].([]ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo)[vs[1].(int)] + }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) } -type RouterPeerMd5AuthenticationKey struct { - // Value of the key. - Key string `pulumi:"key"` - // Name of this BGP peer. The name must be 1-63 characters long, - // and comply with RFC1035. Specifically, the name must be 1-63 characters - // long and match the regular expression `a-z?` which - // means the first character must be a lowercase letter, and all - // following characters must be a dash, lowercase letter, or digit, - // except the last character, which cannot be a dash. - Name string `pulumi:"name"` +type ResourcePolicyDiskConsistencyGroupPolicy struct { + // Enable disk consistency on the resource policy. + Enabled bool `pulumi:"enabled"` } -// RouterPeerMd5AuthenticationKeyInput is an input type that accepts RouterPeerMd5AuthenticationKeyArgs and RouterPeerMd5AuthenticationKeyOutput values. -// You can construct a concrete instance of `RouterPeerMd5AuthenticationKeyInput` via: +// ResourcePolicyDiskConsistencyGroupPolicyInput is an input type that accepts ResourcePolicyDiskConsistencyGroupPolicyArgs and ResourcePolicyDiskConsistencyGroupPolicyOutput values. +// You can construct a concrete instance of `ResourcePolicyDiskConsistencyGroupPolicyInput` via: // -// RouterPeerMd5AuthenticationKeyArgs{...} -type RouterPeerMd5AuthenticationKeyInput interface { +// ResourcePolicyDiskConsistencyGroupPolicyArgs{...} +type ResourcePolicyDiskConsistencyGroupPolicyInput interface { pulumi.Input - ToRouterPeerMd5AuthenticationKeyOutput() RouterPeerMd5AuthenticationKeyOutput - ToRouterPeerMd5AuthenticationKeyOutputWithContext(context.Context) RouterPeerMd5AuthenticationKeyOutput + ToResourcePolicyDiskConsistencyGroupPolicyOutput() ResourcePolicyDiskConsistencyGroupPolicyOutput + ToResourcePolicyDiskConsistencyGroupPolicyOutputWithContext(context.Context) ResourcePolicyDiskConsistencyGroupPolicyOutput } -type RouterPeerMd5AuthenticationKeyArgs struct { - // Value of the key. - Key pulumi.StringInput `pulumi:"key"` - // Name of this BGP peer. The name must be 1-63 characters long, - // and comply with RFC1035. Specifically, the name must be 1-63 characters - // long and match the regular expression `a-z?` which - // means the first character must be a lowercase letter, and all - // following characters must be a dash, lowercase letter, or digit, - // except the last character, which cannot be a dash. - Name pulumi.StringInput `pulumi:"name"` +type ResourcePolicyDiskConsistencyGroupPolicyArgs struct { + // Enable disk consistency on the resource policy. + Enabled pulumi.BoolInput `pulumi:"enabled"` } -func (RouterPeerMd5AuthenticationKeyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouterPeerMd5AuthenticationKey)(nil)).Elem() +func (ResourcePolicyDiskConsistencyGroupPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicyDiskConsistencyGroupPolicy)(nil)).Elem() } -func (i RouterPeerMd5AuthenticationKeyArgs) ToRouterPeerMd5AuthenticationKeyOutput() RouterPeerMd5AuthenticationKeyOutput { - return i.ToRouterPeerMd5AuthenticationKeyOutputWithContext(context.Background()) +func (i ResourcePolicyDiskConsistencyGroupPolicyArgs) ToResourcePolicyDiskConsistencyGroupPolicyOutput() ResourcePolicyDiskConsistencyGroupPolicyOutput { + return i.ToResourcePolicyDiskConsistencyGroupPolicyOutputWithContext(context.Background()) } -func (i RouterPeerMd5AuthenticationKeyArgs) ToRouterPeerMd5AuthenticationKeyOutputWithContext(ctx context.Context) RouterPeerMd5AuthenticationKeyOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterPeerMd5AuthenticationKeyOutput) +func (i ResourcePolicyDiskConsistencyGroupPolicyArgs) ToResourcePolicyDiskConsistencyGroupPolicyOutputWithContext(ctx context.Context) ResourcePolicyDiskConsistencyGroupPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyDiskConsistencyGroupPolicyOutput) } -func (i RouterPeerMd5AuthenticationKeyArgs) ToRouterPeerMd5AuthenticationKeyPtrOutput() RouterPeerMd5AuthenticationKeyPtrOutput { - return i.ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(context.Background()) +func (i ResourcePolicyDiskConsistencyGroupPolicyArgs) ToResourcePolicyDiskConsistencyGroupPolicyPtrOutput() ResourcePolicyDiskConsistencyGroupPolicyPtrOutput { + return i.ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(context.Background()) } -func (i RouterPeerMd5AuthenticationKeyArgs) ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(ctx context.Context) RouterPeerMd5AuthenticationKeyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterPeerMd5AuthenticationKeyOutput).ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(ctx) +func (i ResourcePolicyDiskConsistencyGroupPolicyArgs) ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyDiskConsistencyGroupPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyDiskConsistencyGroupPolicyOutput).ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(ctx) } -// RouterPeerMd5AuthenticationKeyPtrInput is an input type that accepts RouterPeerMd5AuthenticationKeyArgs, RouterPeerMd5AuthenticationKeyPtr and RouterPeerMd5AuthenticationKeyPtrOutput values. -// You can construct a concrete instance of `RouterPeerMd5AuthenticationKeyPtrInput` via: +// ResourcePolicyDiskConsistencyGroupPolicyPtrInput is an input type that accepts ResourcePolicyDiskConsistencyGroupPolicyArgs, ResourcePolicyDiskConsistencyGroupPolicyPtr and ResourcePolicyDiskConsistencyGroupPolicyPtrOutput values. +// You can construct a concrete instance of `ResourcePolicyDiskConsistencyGroupPolicyPtrInput` via: // -// RouterPeerMd5AuthenticationKeyArgs{...} +// ResourcePolicyDiskConsistencyGroupPolicyArgs{...} // // or: // // nil -type RouterPeerMd5AuthenticationKeyPtrInput interface { +type ResourcePolicyDiskConsistencyGroupPolicyPtrInput interface { pulumi.Input - ToRouterPeerMd5AuthenticationKeyPtrOutput() RouterPeerMd5AuthenticationKeyPtrOutput - ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(context.Context) RouterPeerMd5AuthenticationKeyPtrOutput + ToResourcePolicyDiskConsistencyGroupPolicyPtrOutput() ResourcePolicyDiskConsistencyGroupPolicyPtrOutput + ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(context.Context) ResourcePolicyDiskConsistencyGroupPolicyPtrOutput } -type routerPeerMd5AuthenticationKeyPtrType RouterPeerMd5AuthenticationKeyArgs +type resourcePolicyDiskConsistencyGroupPolicyPtrType ResourcePolicyDiskConsistencyGroupPolicyArgs -func RouterPeerMd5AuthenticationKeyPtr(v *RouterPeerMd5AuthenticationKeyArgs) RouterPeerMd5AuthenticationKeyPtrInput { - return (*routerPeerMd5AuthenticationKeyPtrType)(v) +func ResourcePolicyDiskConsistencyGroupPolicyPtr(v *ResourcePolicyDiskConsistencyGroupPolicyArgs) ResourcePolicyDiskConsistencyGroupPolicyPtrInput { + return (*resourcePolicyDiskConsistencyGroupPolicyPtrType)(v) } -func (*routerPeerMd5AuthenticationKeyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouterPeerMd5AuthenticationKey)(nil)).Elem() +func (*resourcePolicyDiskConsistencyGroupPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicyDiskConsistencyGroupPolicy)(nil)).Elem() } -func (i *routerPeerMd5AuthenticationKeyPtrType) ToRouterPeerMd5AuthenticationKeyPtrOutput() RouterPeerMd5AuthenticationKeyPtrOutput { - return i.ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(context.Background()) +func (i *resourcePolicyDiskConsistencyGroupPolicyPtrType) ToResourcePolicyDiskConsistencyGroupPolicyPtrOutput() ResourcePolicyDiskConsistencyGroupPolicyPtrOutput { + return i.ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(context.Background()) } -func (i *routerPeerMd5AuthenticationKeyPtrType) ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(ctx context.Context) RouterPeerMd5AuthenticationKeyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterPeerMd5AuthenticationKeyPtrOutput) +func (i *resourcePolicyDiskConsistencyGroupPolicyPtrType) ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyDiskConsistencyGroupPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyDiskConsistencyGroupPolicyPtrOutput) } -type RouterPeerMd5AuthenticationKeyOutput struct{ *pulumi.OutputState } +type ResourcePolicyDiskConsistencyGroupPolicyOutput struct{ *pulumi.OutputState } -func (RouterPeerMd5AuthenticationKeyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouterPeerMd5AuthenticationKey)(nil)).Elem() +func (ResourcePolicyDiskConsistencyGroupPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicyDiskConsistencyGroupPolicy)(nil)).Elem() } -func (o RouterPeerMd5AuthenticationKeyOutput) ToRouterPeerMd5AuthenticationKeyOutput() RouterPeerMd5AuthenticationKeyOutput { +func (o ResourcePolicyDiskConsistencyGroupPolicyOutput) ToResourcePolicyDiskConsistencyGroupPolicyOutput() ResourcePolicyDiskConsistencyGroupPolicyOutput { return o } -func (o RouterPeerMd5AuthenticationKeyOutput) ToRouterPeerMd5AuthenticationKeyOutputWithContext(ctx context.Context) RouterPeerMd5AuthenticationKeyOutput { +func (o ResourcePolicyDiskConsistencyGroupPolicyOutput) ToResourcePolicyDiskConsistencyGroupPolicyOutputWithContext(ctx context.Context) ResourcePolicyDiskConsistencyGroupPolicyOutput { return o } -func (o RouterPeerMd5AuthenticationKeyOutput) ToRouterPeerMd5AuthenticationKeyPtrOutput() RouterPeerMd5AuthenticationKeyPtrOutput { - return o.ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(context.Background()) +func (o ResourcePolicyDiskConsistencyGroupPolicyOutput) ToResourcePolicyDiskConsistencyGroupPolicyPtrOutput() ResourcePolicyDiskConsistencyGroupPolicyPtrOutput { + return o.ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(context.Background()) } -func (o RouterPeerMd5AuthenticationKeyOutput) ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(ctx context.Context) RouterPeerMd5AuthenticationKeyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RouterPeerMd5AuthenticationKey) *RouterPeerMd5AuthenticationKey { +func (o ResourcePolicyDiskConsistencyGroupPolicyOutput) ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyDiskConsistencyGroupPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicyDiskConsistencyGroupPolicy) *ResourcePolicyDiskConsistencyGroupPolicy { return &v - }).(RouterPeerMd5AuthenticationKeyPtrOutput) -} - -// Value of the key. -func (o RouterPeerMd5AuthenticationKeyOutput) Key() pulumi.StringOutput { - return o.ApplyT(func(v RouterPeerMd5AuthenticationKey) string { return v.Key }).(pulumi.StringOutput) + }).(ResourcePolicyDiskConsistencyGroupPolicyPtrOutput) } -// Name of this BGP peer. The name must be 1-63 characters long, -// and comply with RFC1035. Specifically, the name must be 1-63 characters -// long and match the regular expression `a-z?` which -// means the first character must be a lowercase letter, and all -// following characters must be a dash, lowercase letter, or digit, -// except the last character, which cannot be a dash. -func (o RouterPeerMd5AuthenticationKeyOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v RouterPeerMd5AuthenticationKey) string { return v.Name }).(pulumi.StringOutput) +// Enable disk consistency on the resource policy. +func (o ResourcePolicyDiskConsistencyGroupPolicyOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v ResourcePolicyDiskConsistencyGroupPolicy) bool { return v.Enabled }).(pulumi.BoolOutput) } -type RouterPeerMd5AuthenticationKeyPtrOutput struct{ *pulumi.OutputState } +type ResourcePolicyDiskConsistencyGroupPolicyPtrOutput struct{ *pulumi.OutputState } -func (RouterPeerMd5AuthenticationKeyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouterPeerMd5AuthenticationKey)(nil)).Elem() +func (ResourcePolicyDiskConsistencyGroupPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicyDiskConsistencyGroupPolicy)(nil)).Elem() } -func (o RouterPeerMd5AuthenticationKeyPtrOutput) ToRouterPeerMd5AuthenticationKeyPtrOutput() RouterPeerMd5AuthenticationKeyPtrOutput { +func (o ResourcePolicyDiskConsistencyGroupPolicyPtrOutput) ToResourcePolicyDiskConsistencyGroupPolicyPtrOutput() ResourcePolicyDiskConsistencyGroupPolicyPtrOutput { return o } -func (o RouterPeerMd5AuthenticationKeyPtrOutput) ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(ctx context.Context) RouterPeerMd5AuthenticationKeyPtrOutput { +func (o ResourcePolicyDiskConsistencyGroupPolicyPtrOutput) ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyDiskConsistencyGroupPolicyPtrOutput { return o } -func (o RouterPeerMd5AuthenticationKeyPtrOutput) Elem() RouterPeerMd5AuthenticationKeyOutput { - return o.ApplyT(func(v *RouterPeerMd5AuthenticationKey) RouterPeerMd5AuthenticationKey { +func (o ResourcePolicyDiskConsistencyGroupPolicyPtrOutput) Elem() ResourcePolicyDiskConsistencyGroupPolicyOutput { + return o.ApplyT(func(v *ResourcePolicyDiskConsistencyGroupPolicy) ResourcePolicyDiskConsistencyGroupPolicy { if v != nil { return *v } - var ret RouterPeerMd5AuthenticationKey + var ret ResourcePolicyDiskConsistencyGroupPolicy return ret - }).(RouterPeerMd5AuthenticationKeyOutput) -} - -// Value of the key. -func (o RouterPeerMd5AuthenticationKeyPtrOutput) Key() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouterPeerMd5AuthenticationKey) *string { - if v == nil { - return nil - } - return &v.Key - }).(pulumi.StringPtrOutput) + }).(ResourcePolicyDiskConsistencyGroupPolicyOutput) } -// Name of this BGP peer. The name must be 1-63 characters long, -// and comply with RFC1035. Specifically, the name must be 1-63 characters -// long and match the regular expression `a-z?` which -// means the first character must be a lowercase letter, and all -// following characters must be a dash, lowercase letter, or digit, -// except the last character, which cannot be a dash. -func (o RouterPeerMd5AuthenticationKeyPtrOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouterPeerMd5AuthenticationKey) *string { +// Enable disk consistency on the resource policy. +func (o ResourcePolicyDiskConsistencyGroupPolicyPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ResourcePolicyDiskConsistencyGroupPolicy) *bool { if v == nil { return nil } - return &v.Name - }).(pulumi.StringPtrOutput) -} - -type RouterRoutePolicyTerm struct { - // 'CEL expressions to evaluate to modify a route when this term matches.'\ - // Structure is documented below. - Actions []RouterRoutePolicyTermAction `pulumi:"actions"` - // CEL expression evaluated against a route to determine if this term applies (see Policy Language). When not set, the term applies to all routes. - // Structure is documented below. - Match *RouterRoutePolicyTermMatch `pulumi:"match"` - // The evaluation priority for this term, which must be between 0 (inclusive) and 231 (exclusive), and unique within the list. - Priority int `pulumi:"priority"` -} - -// RouterRoutePolicyTermInput is an input type that accepts RouterRoutePolicyTermArgs and RouterRoutePolicyTermOutput values. -// You can construct a concrete instance of `RouterRoutePolicyTermInput` via: -// -// RouterRoutePolicyTermArgs{...} -type RouterRoutePolicyTermInput interface { - pulumi.Input - - ToRouterRoutePolicyTermOutput() RouterRoutePolicyTermOutput - ToRouterRoutePolicyTermOutputWithContext(context.Context) RouterRoutePolicyTermOutput -} - -type RouterRoutePolicyTermArgs struct { - // 'CEL expressions to evaluate to modify a route when this term matches.'\ - // Structure is documented below. - Actions RouterRoutePolicyTermActionArrayInput `pulumi:"actions"` - // CEL expression evaluated against a route to determine if this term applies (see Policy Language). When not set, the term applies to all routes. - // Structure is documented below. - Match RouterRoutePolicyTermMatchPtrInput `pulumi:"match"` - // The evaluation priority for this term, which must be between 0 (inclusive) and 231 (exclusive), and unique within the list. - Priority pulumi.IntInput `pulumi:"priority"` -} - -func (RouterRoutePolicyTermArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouterRoutePolicyTerm)(nil)).Elem() -} - -func (i RouterRoutePolicyTermArgs) ToRouterRoutePolicyTermOutput() RouterRoutePolicyTermOutput { - return i.ToRouterRoutePolicyTermOutputWithContext(context.Background()) + return &v.Enabled + }).(pulumi.BoolPtrOutput) } -func (i RouterRoutePolicyTermArgs) ToRouterRoutePolicyTermOutputWithContext(ctx context.Context) RouterRoutePolicyTermOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterRoutePolicyTermOutput) +type ResourcePolicyGroupPlacementPolicy struct { + // The number of availability domains instances will be spread across. If two instances are in different + // availability domain, they will not be put in the same low latency network + AvailabilityDomainCount *int `pulumi:"availabilityDomainCount"` + // Collocation specifies whether to place VMs inside the same availability domain on the same low-latency network. + // Specify `COLLOCATED` to enable collocation. Can only be specified with `vmCount`. If compute instances are created + // with a COLLOCATED policy, then exactly `vmCount` instances must be created at the same time with the resource policy + // attached. + // Possible values are: `COLLOCATED`. + Collocation *string `pulumi:"collocation"` + // Specifies the number of max logical switches. + MaxDistance *int `pulumi:"maxDistance"` + // Number of VMs in this placement group. Google does not recommend that you use this field + // unless you use a compact policy and you want your policy to work only if it contains this + // exact number of VMs. + VmCount *int `pulumi:"vmCount"` } -// RouterRoutePolicyTermArrayInput is an input type that accepts RouterRoutePolicyTermArray and RouterRoutePolicyTermArrayOutput values. -// You can construct a concrete instance of `RouterRoutePolicyTermArrayInput` via: +// ResourcePolicyGroupPlacementPolicyInput is an input type that accepts ResourcePolicyGroupPlacementPolicyArgs and ResourcePolicyGroupPlacementPolicyOutput values. +// You can construct a concrete instance of `ResourcePolicyGroupPlacementPolicyInput` via: // -// RouterRoutePolicyTermArray{ RouterRoutePolicyTermArgs{...} } -type RouterRoutePolicyTermArrayInput interface { +// ResourcePolicyGroupPlacementPolicyArgs{...} +type ResourcePolicyGroupPlacementPolicyInput interface { pulumi.Input - ToRouterRoutePolicyTermArrayOutput() RouterRoutePolicyTermArrayOutput - ToRouterRoutePolicyTermArrayOutputWithContext(context.Context) RouterRoutePolicyTermArrayOutput -} - -type RouterRoutePolicyTermArray []RouterRoutePolicyTermInput - -func (RouterRoutePolicyTermArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouterRoutePolicyTerm)(nil)).Elem() -} - -func (i RouterRoutePolicyTermArray) ToRouterRoutePolicyTermArrayOutput() RouterRoutePolicyTermArrayOutput { - return i.ToRouterRoutePolicyTermArrayOutputWithContext(context.Background()) -} - -func (i RouterRoutePolicyTermArray) ToRouterRoutePolicyTermArrayOutputWithContext(ctx context.Context) RouterRoutePolicyTermArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterRoutePolicyTermArrayOutput) -} - -type RouterRoutePolicyTermOutput struct{ *pulumi.OutputState } - -func (RouterRoutePolicyTermOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouterRoutePolicyTerm)(nil)).Elem() -} - -func (o RouterRoutePolicyTermOutput) ToRouterRoutePolicyTermOutput() RouterRoutePolicyTermOutput { - return o -} - -func (o RouterRoutePolicyTermOutput) ToRouterRoutePolicyTermOutputWithContext(ctx context.Context) RouterRoutePolicyTermOutput { - return o -} - -// 'CEL expressions to evaluate to modify a route when this term matches.'\ -// Structure is documented below. -func (o RouterRoutePolicyTermOutput) Actions() RouterRoutePolicyTermActionArrayOutput { - return o.ApplyT(func(v RouterRoutePolicyTerm) []RouterRoutePolicyTermAction { return v.Actions }).(RouterRoutePolicyTermActionArrayOutput) -} - -// CEL expression evaluated against a route to determine if this term applies (see Policy Language). When not set, the term applies to all routes. -// Structure is documented below. -func (o RouterRoutePolicyTermOutput) Match() RouterRoutePolicyTermMatchPtrOutput { - return o.ApplyT(func(v RouterRoutePolicyTerm) *RouterRoutePolicyTermMatch { return v.Match }).(RouterRoutePolicyTermMatchPtrOutput) + ToResourcePolicyGroupPlacementPolicyOutput() ResourcePolicyGroupPlacementPolicyOutput + ToResourcePolicyGroupPlacementPolicyOutputWithContext(context.Context) ResourcePolicyGroupPlacementPolicyOutput } -// The evaluation priority for this term, which must be between 0 (inclusive) and 231 (exclusive), and unique within the list. -func (o RouterRoutePolicyTermOutput) Priority() pulumi.IntOutput { - return o.ApplyT(func(v RouterRoutePolicyTerm) int { return v.Priority }).(pulumi.IntOutput) +type ResourcePolicyGroupPlacementPolicyArgs struct { + // The number of availability domains instances will be spread across. If two instances are in different + // availability domain, they will not be put in the same low latency network + AvailabilityDomainCount pulumi.IntPtrInput `pulumi:"availabilityDomainCount"` + // Collocation specifies whether to place VMs inside the same availability domain on the same low-latency network. + // Specify `COLLOCATED` to enable collocation. Can only be specified with `vmCount`. If compute instances are created + // with a COLLOCATED policy, then exactly `vmCount` instances must be created at the same time with the resource policy + // attached. + // Possible values are: `COLLOCATED`. + Collocation pulumi.StringPtrInput `pulumi:"collocation"` + // Specifies the number of max logical switches. + MaxDistance pulumi.IntPtrInput `pulumi:"maxDistance"` + // Number of VMs in this placement group. Google does not recommend that you use this field + // unless you use a compact policy and you want your policy to work only if it contains this + // exact number of VMs. + VmCount pulumi.IntPtrInput `pulumi:"vmCount"` } -type RouterRoutePolicyTermArrayOutput struct{ *pulumi.OutputState } - -func (RouterRoutePolicyTermArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouterRoutePolicyTerm)(nil)).Elem() +func (ResourcePolicyGroupPlacementPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicyGroupPlacementPolicy)(nil)).Elem() } -func (o RouterRoutePolicyTermArrayOutput) ToRouterRoutePolicyTermArrayOutput() RouterRoutePolicyTermArrayOutput { - return o +func (i ResourcePolicyGroupPlacementPolicyArgs) ToResourcePolicyGroupPlacementPolicyOutput() ResourcePolicyGroupPlacementPolicyOutput { + return i.ToResourcePolicyGroupPlacementPolicyOutputWithContext(context.Background()) } -func (o RouterRoutePolicyTermArrayOutput) ToRouterRoutePolicyTermArrayOutputWithContext(ctx context.Context) RouterRoutePolicyTermArrayOutput { - return o +func (i ResourcePolicyGroupPlacementPolicyArgs) ToResourcePolicyGroupPlacementPolicyOutputWithContext(ctx context.Context) ResourcePolicyGroupPlacementPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyGroupPlacementPolicyOutput) } -func (o RouterRoutePolicyTermArrayOutput) Index(i pulumi.IntInput) RouterRoutePolicyTermOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterRoutePolicyTerm { - return vs[0].([]RouterRoutePolicyTerm)[vs[1].(int)] - }).(RouterRoutePolicyTermOutput) +func (i ResourcePolicyGroupPlacementPolicyArgs) ToResourcePolicyGroupPlacementPolicyPtrOutput() ResourcePolicyGroupPlacementPolicyPtrOutput { + return i.ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(context.Background()) } -type RouterRoutePolicyTermAction struct { - // Description of the expression - Description *string `pulumi:"description"` - // Textual representation of an expression in Common Expression - // Language syntax. - Expression string `pulumi:"expression"` - // String indicating the location of the expression for error - // reporting, e.g. a file name and a position in the file - // - // *** - Location *string `pulumi:"location"` - // Title for the expression, i.e. a short string describing its - // purpose. - Title *string `pulumi:"title"` +func (i ResourcePolicyGroupPlacementPolicyArgs) ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyGroupPlacementPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyGroupPlacementPolicyOutput).ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(ctx) } -// RouterRoutePolicyTermActionInput is an input type that accepts RouterRoutePolicyTermActionArgs and RouterRoutePolicyTermActionOutput values. -// You can construct a concrete instance of `RouterRoutePolicyTermActionInput` via: +// ResourcePolicyGroupPlacementPolicyPtrInput is an input type that accepts ResourcePolicyGroupPlacementPolicyArgs, ResourcePolicyGroupPlacementPolicyPtr and ResourcePolicyGroupPlacementPolicyPtrOutput values. +// You can construct a concrete instance of `ResourcePolicyGroupPlacementPolicyPtrInput` via: // -// RouterRoutePolicyTermActionArgs{...} -type RouterRoutePolicyTermActionInput interface { +// ResourcePolicyGroupPlacementPolicyArgs{...} +// +// or: +// +// nil +type ResourcePolicyGroupPlacementPolicyPtrInput interface { pulumi.Input - ToRouterRoutePolicyTermActionOutput() RouterRoutePolicyTermActionOutput - ToRouterRoutePolicyTermActionOutputWithContext(context.Context) RouterRoutePolicyTermActionOutput -} - -type RouterRoutePolicyTermActionArgs struct { - // Description of the expression - Description pulumi.StringPtrInput `pulumi:"description"` - // Textual representation of an expression in Common Expression - // Language syntax. - Expression pulumi.StringInput `pulumi:"expression"` - // String indicating the location of the expression for error - // reporting, e.g. a file name and a position in the file - // - // *** - Location pulumi.StringPtrInput `pulumi:"location"` - // Title for the expression, i.e. a short string describing its - // purpose. - Title pulumi.StringPtrInput `pulumi:"title"` -} - -func (RouterRoutePolicyTermActionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouterRoutePolicyTermAction)(nil)).Elem() -} - -func (i RouterRoutePolicyTermActionArgs) ToRouterRoutePolicyTermActionOutput() RouterRoutePolicyTermActionOutput { - return i.ToRouterRoutePolicyTermActionOutputWithContext(context.Background()) -} - -func (i RouterRoutePolicyTermActionArgs) ToRouterRoutePolicyTermActionOutputWithContext(ctx context.Context) RouterRoutePolicyTermActionOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterRoutePolicyTermActionOutput) + ToResourcePolicyGroupPlacementPolicyPtrOutput() ResourcePolicyGroupPlacementPolicyPtrOutput + ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(context.Context) ResourcePolicyGroupPlacementPolicyPtrOutput } -// RouterRoutePolicyTermActionArrayInput is an input type that accepts RouterRoutePolicyTermActionArray and RouterRoutePolicyTermActionArrayOutput values. -// You can construct a concrete instance of `RouterRoutePolicyTermActionArrayInput` via: -// -// RouterRoutePolicyTermActionArray{ RouterRoutePolicyTermActionArgs{...} } -type RouterRoutePolicyTermActionArrayInput interface { - pulumi.Input +type resourcePolicyGroupPlacementPolicyPtrType ResourcePolicyGroupPlacementPolicyArgs - ToRouterRoutePolicyTermActionArrayOutput() RouterRoutePolicyTermActionArrayOutput - ToRouterRoutePolicyTermActionArrayOutputWithContext(context.Context) RouterRoutePolicyTermActionArrayOutput +func ResourcePolicyGroupPlacementPolicyPtr(v *ResourcePolicyGroupPlacementPolicyArgs) ResourcePolicyGroupPlacementPolicyPtrInput { + return (*resourcePolicyGroupPlacementPolicyPtrType)(v) } -type RouterRoutePolicyTermActionArray []RouterRoutePolicyTermActionInput - -func (RouterRoutePolicyTermActionArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouterRoutePolicyTermAction)(nil)).Elem() +func (*resourcePolicyGroupPlacementPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicyGroupPlacementPolicy)(nil)).Elem() } -func (i RouterRoutePolicyTermActionArray) ToRouterRoutePolicyTermActionArrayOutput() RouterRoutePolicyTermActionArrayOutput { - return i.ToRouterRoutePolicyTermActionArrayOutputWithContext(context.Background()) +func (i *resourcePolicyGroupPlacementPolicyPtrType) ToResourcePolicyGroupPlacementPolicyPtrOutput() ResourcePolicyGroupPlacementPolicyPtrOutput { + return i.ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(context.Background()) } -func (i RouterRoutePolicyTermActionArray) ToRouterRoutePolicyTermActionArrayOutputWithContext(ctx context.Context) RouterRoutePolicyTermActionArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterRoutePolicyTermActionArrayOutput) +func (i *resourcePolicyGroupPlacementPolicyPtrType) ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyGroupPlacementPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyGroupPlacementPolicyPtrOutput) } -type RouterRoutePolicyTermActionOutput struct{ *pulumi.OutputState } +type ResourcePolicyGroupPlacementPolicyOutput struct{ *pulumi.OutputState } -func (RouterRoutePolicyTermActionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouterRoutePolicyTermAction)(nil)).Elem() +func (ResourcePolicyGroupPlacementPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicyGroupPlacementPolicy)(nil)).Elem() } -func (o RouterRoutePolicyTermActionOutput) ToRouterRoutePolicyTermActionOutput() RouterRoutePolicyTermActionOutput { +func (o ResourcePolicyGroupPlacementPolicyOutput) ToResourcePolicyGroupPlacementPolicyOutput() ResourcePolicyGroupPlacementPolicyOutput { return o } -func (o RouterRoutePolicyTermActionOutput) ToRouterRoutePolicyTermActionOutputWithContext(ctx context.Context) RouterRoutePolicyTermActionOutput { +func (o ResourcePolicyGroupPlacementPolicyOutput) ToResourcePolicyGroupPlacementPolicyOutputWithContext(ctx context.Context) ResourcePolicyGroupPlacementPolicyOutput { return o } -// Description of the expression -func (o RouterRoutePolicyTermActionOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouterRoutePolicyTermAction) *string { return v.Description }).(pulumi.StringPtrOutput) +func (o ResourcePolicyGroupPlacementPolicyOutput) ToResourcePolicyGroupPlacementPolicyPtrOutput() ResourcePolicyGroupPlacementPolicyPtrOutput { + return o.ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(context.Background()) } -// Textual representation of an expression in Common Expression -// Language syntax. -func (o RouterRoutePolicyTermActionOutput) Expression() pulumi.StringOutput { - return o.ApplyT(func(v RouterRoutePolicyTermAction) string { return v.Expression }).(pulumi.StringOutput) +func (o ResourcePolicyGroupPlacementPolicyOutput) ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyGroupPlacementPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicyGroupPlacementPolicy) *ResourcePolicyGroupPlacementPolicy { + return &v + }).(ResourcePolicyGroupPlacementPolicyPtrOutput) } -// String indicating the location of the expression for error -// reporting, e.g. a file name and a position in the file -// -// *** -func (o RouterRoutePolicyTermActionOutput) Location() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouterRoutePolicyTermAction) *string { return v.Location }).(pulumi.StringPtrOutput) +// The number of availability domains instances will be spread across. If two instances are in different +// availability domain, they will not be put in the same low latency network +func (o ResourcePolicyGroupPlacementPolicyOutput) AvailabilityDomainCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v ResourcePolicyGroupPlacementPolicy) *int { return v.AvailabilityDomainCount }).(pulumi.IntPtrOutput) } -// Title for the expression, i.e. a short string describing its -// purpose. -func (o RouterRoutePolicyTermActionOutput) Title() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouterRoutePolicyTermAction) *string { return v.Title }).(pulumi.StringPtrOutput) +// Collocation specifies whether to place VMs inside the same availability domain on the same low-latency network. +// Specify `COLLOCATED` to enable collocation. Can only be specified with `vmCount`. If compute instances are created +// with a COLLOCATED policy, then exactly `vmCount` instances must be created at the same time with the resource policy +// attached. +// Possible values are: `COLLOCATED`. +func (o ResourcePolicyGroupPlacementPolicyOutput) Collocation() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourcePolicyGroupPlacementPolicy) *string { return v.Collocation }).(pulumi.StringPtrOutput) } -type RouterRoutePolicyTermActionArrayOutput struct{ *pulumi.OutputState } +// Specifies the number of max logical switches. +func (o ResourcePolicyGroupPlacementPolicyOutput) MaxDistance() pulumi.IntPtrOutput { + return o.ApplyT(func(v ResourcePolicyGroupPlacementPolicy) *int { return v.MaxDistance }).(pulumi.IntPtrOutput) +} -func (RouterRoutePolicyTermActionArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouterRoutePolicyTermAction)(nil)).Elem() +// Number of VMs in this placement group. Google does not recommend that you use this field +// unless you use a compact policy and you want your policy to work only if it contains this +// exact number of VMs. +func (o ResourcePolicyGroupPlacementPolicyOutput) VmCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v ResourcePolicyGroupPlacementPolicy) *int { return v.VmCount }).(pulumi.IntPtrOutput) } -func (o RouterRoutePolicyTermActionArrayOutput) ToRouterRoutePolicyTermActionArrayOutput() RouterRoutePolicyTermActionArrayOutput { +type ResourcePolicyGroupPlacementPolicyPtrOutput struct{ *pulumi.OutputState } + +func (ResourcePolicyGroupPlacementPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicyGroupPlacementPolicy)(nil)).Elem() +} + +func (o ResourcePolicyGroupPlacementPolicyPtrOutput) ToResourcePolicyGroupPlacementPolicyPtrOutput() ResourcePolicyGroupPlacementPolicyPtrOutput { return o } -func (o RouterRoutePolicyTermActionArrayOutput) ToRouterRoutePolicyTermActionArrayOutputWithContext(ctx context.Context) RouterRoutePolicyTermActionArrayOutput { +func (o ResourcePolicyGroupPlacementPolicyPtrOutput) ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyGroupPlacementPolicyPtrOutput { return o } -func (o RouterRoutePolicyTermActionArrayOutput) Index(i pulumi.IntInput) RouterRoutePolicyTermActionOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterRoutePolicyTermAction { - return vs[0].([]RouterRoutePolicyTermAction)[vs[1].(int)] - }).(RouterRoutePolicyTermActionOutput) +func (o ResourcePolicyGroupPlacementPolicyPtrOutput) Elem() ResourcePolicyGroupPlacementPolicyOutput { + return o.ApplyT(func(v *ResourcePolicyGroupPlacementPolicy) ResourcePolicyGroupPlacementPolicy { + if v != nil { + return *v + } + var ret ResourcePolicyGroupPlacementPolicy + return ret + }).(ResourcePolicyGroupPlacementPolicyOutput) } -type RouterRoutePolicyTermMatch struct { - // Description of the expression - Description *string `pulumi:"description"` - // Textual representation of an expression in Common Expression Language syntax. - Expression string `pulumi:"expression"` - // String indicating the location of the expression for error reporting, e.g. a file name and a position in the file - Location *string `pulumi:"location"` - // Title for the expression, i.e. a short string describing its purpose. - Title *string `pulumi:"title"` +// The number of availability domains instances will be spread across. If two instances are in different +// availability domain, they will not be put in the same low latency network +func (o ResourcePolicyGroupPlacementPolicyPtrOutput) AvailabilityDomainCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ResourcePolicyGroupPlacementPolicy) *int { + if v == nil { + return nil + } + return v.AvailabilityDomainCount + }).(pulumi.IntPtrOutput) } -// RouterRoutePolicyTermMatchInput is an input type that accepts RouterRoutePolicyTermMatchArgs and RouterRoutePolicyTermMatchOutput values. -// You can construct a concrete instance of `RouterRoutePolicyTermMatchInput` via: +// Collocation specifies whether to place VMs inside the same availability domain on the same low-latency network. +// Specify `COLLOCATED` to enable collocation. Can only be specified with `vmCount`. If compute instances are created +// with a COLLOCATED policy, then exactly `vmCount` instances must be created at the same time with the resource policy +// attached. +// Possible values are: `COLLOCATED`. +func (o ResourcePolicyGroupPlacementPolicyPtrOutput) Collocation() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourcePolicyGroupPlacementPolicy) *string { + if v == nil { + return nil + } + return v.Collocation + }).(pulumi.StringPtrOutput) +} + +// Specifies the number of max logical switches. +func (o ResourcePolicyGroupPlacementPolicyPtrOutput) MaxDistance() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ResourcePolicyGroupPlacementPolicy) *int { + if v == nil { + return nil + } + return v.MaxDistance + }).(pulumi.IntPtrOutput) +} + +// Number of VMs in this placement group. Google does not recommend that you use this field +// unless you use a compact policy and you want your policy to work only if it contains this +// exact number of VMs. +func (o ResourcePolicyGroupPlacementPolicyPtrOutput) VmCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ResourcePolicyGroupPlacementPolicy) *int { + if v == nil { + return nil + } + return v.VmCount + }).(pulumi.IntPtrOutput) +} + +type ResourcePolicyInstanceSchedulePolicy struct { + // The expiration time of the schedule. The timestamp is an RFC3339 string. + ExpirationTime *string `pulumi:"expirationTime"` + // The start time of the schedule. The timestamp is an RFC3339 string. + StartTime *string `pulumi:"startTime"` + // Specifies the time zone to be used in interpreting the schedule. The value of this field must be a time zone name + // from the tz database: http://en.wikipedia.org/wiki/Tz_database. + TimeZone string `pulumi:"timeZone"` + // Specifies the schedule for starting instances. + // Structure is documented below. + VmStartSchedule *ResourcePolicyInstanceSchedulePolicyVmStartSchedule `pulumi:"vmStartSchedule"` + // Specifies the schedule for stopping instances. + // Structure is documented below. + VmStopSchedule *ResourcePolicyInstanceSchedulePolicyVmStopSchedule `pulumi:"vmStopSchedule"` +} + +// ResourcePolicyInstanceSchedulePolicyInput is an input type that accepts ResourcePolicyInstanceSchedulePolicyArgs and ResourcePolicyInstanceSchedulePolicyOutput values. +// You can construct a concrete instance of `ResourcePolicyInstanceSchedulePolicyInput` via: // -// RouterRoutePolicyTermMatchArgs{...} -type RouterRoutePolicyTermMatchInput interface { +// ResourcePolicyInstanceSchedulePolicyArgs{...} +type ResourcePolicyInstanceSchedulePolicyInput interface { pulumi.Input - ToRouterRoutePolicyTermMatchOutput() RouterRoutePolicyTermMatchOutput - ToRouterRoutePolicyTermMatchOutputWithContext(context.Context) RouterRoutePolicyTermMatchOutput + ToResourcePolicyInstanceSchedulePolicyOutput() ResourcePolicyInstanceSchedulePolicyOutput + ToResourcePolicyInstanceSchedulePolicyOutputWithContext(context.Context) ResourcePolicyInstanceSchedulePolicyOutput } -type RouterRoutePolicyTermMatchArgs struct { - // Description of the expression - Description pulumi.StringPtrInput `pulumi:"description"` - // Textual representation of an expression in Common Expression Language syntax. - Expression pulumi.StringInput `pulumi:"expression"` - // String indicating the location of the expression for error reporting, e.g. a file name and a position in the file - Location pulumi.StringPtrInput `pulumi:"location"` - // Title for the expression, i.e. a short string describing its purpose. - Title pulumi.StringPtrInput `pulumi:"title"` +type ResourcePolicyInstanceSchedulePolicyArgs struct { + // The expiration time of the schedule. The timestamp is an RFC3339 string. + ExpirationTime pulumi.StringPtrInput `pulumi:"expirationTime"` + // The start time of the schedule. The timestamp is an RFC3339 string. + StartTime pulumi.StringPtrInput `pulumi:"startTime"` + // Specifies the time zone to be used in interpreting the schedule. The value of this field must be a time zone name + // from the tz database: http://en.wikipedia.org/wiki/Tz_database. + TimeZone pulumi.StringInput `pulumi:"timeZone"` + // Specifies the schedule for starting instances. + // Structure is documented below. + VmStartSchedule ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrInput `pulumi:"vmStartSchedule"` + // Specifies the schedule for stopping instances. + // Structure is documented below. + VmStopSchedule ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrInput `pulumi:"vmStopSchedule"` } -func (RouterRoutePolicyTermMatchArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouterRoutePolicyTermMatch)(nil)).Elem() +func (ResourcePolicyInstanceSchedulePolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicyInstanceSchedulePolicy)(nil)).Elem() } -func (i RouterRoutePolicyTermMatchArgs) ToRouterRoutePolicyTermMatchOutput() RouterRoutePolicyTermMatchOutput { - return i.ToRouterRoutePolicyTermMatchOutputWithContext(context.Background()) +func (i ResourcePolicyInstanceSchedulePolicyArgs) ToResourcePolicyInstanceSchedulePolicyOutput() ResourcePolicyInstanceSchedulePolicyOutput { + return i.ToResourcePolicyInstanceSchedulePolicyOutputWithContext(context.Background()) } -func (i RouterRoutePolicyTermMatchArgs) ToRouterRoutePolicyTermMatchOutputWithContext(ctx context.Context) RouterRoutePolicyTermMatchOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterRoutePolicyTermMatchOutput) +func (i ResourcePolicyInstanceSchedulePolicyArgs) ToResourcePolicyInstanceSchedulePolicyOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyOutput) } -func (i RouterRoutePolicyTermMatchArgs) ToRouterRoutePolicyTermMatchPtrOutput() RouterRoutePolicyTermMatchPtrOutput { - return i.ToRouterRoutePolicyTermMatchPtrOutputWithContext(context.Background()) +func (i ResourcePolicyInstanceSchedulePolicyArgs) ToResourcePolicyInstanceSchedulePolicyPtrOutput() ResourcePolicyInstanceSchedulePolicyPtrOutput { + return i.ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(context.Background()) } -func (i RouterRoutePolicyTermMatchArgs) ToRouterRoutePolicyTermMatchPtrOutputWithContext(ctx context.Context) RouterRoutePolicyTermMatchPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterRoutePolicyTermMatchOutput).ToRouterRoutePolicyTermMatchPtrOutputWithContext(ctx) +func (i ResourcePolicyInstanceSchedulePolicyArgs) ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyOutput).ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(ctx) } -// RouterRoutePolicyTermMatchPtrInput is an input type that accepts RouterRoutePolicyTermMatchArgs, RouterRoutePolicyTermMatchPtr and RouterRoutePolicyTermMatchPtrOutput values. -// You can construct a concrete instance of `RouterRoutePolicyTermMatchPtrInput` via: +// ResourcePolicyInstanceSchedulePolicyPtrInput is an input type that accepts ResourcePolicyInstanceSchedulePolicyArgs, ResourcePolicyInstanceSchedulePolicyPtr and ResourcePolicyInstanceSchedulePolicyPtrOutput values. +// You can construct a concrete instance of `ResourcePolicyInstanceSchedulePolicyPtrInput` via: // -// RouterRoutePolicyTermMatchArgs{...} +// ResourcePolicyInstanceSchedulePolicyArgs{...} // // or: // // nil -type RouterRoutePolicyTermMatchPtrInput interface { +type ResourcePolicyInstanceSchedulePolicyPtrInput interface { pulumi.Input - ToRouterRoutePolicyTermMatchPtrOutput() RouterRoutePolicyTermMatchPtrOutput - ToRouterRoutePolicyTermMatchPtrOutputWithContext(context.Context) RouterRoutePolicyTermMatchPtrOutput + ToResourcePolicyInstanceSchedulePolicyPtrOutput() ResourcePolicyInstanceSchedulePolicyPtrOutput + ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(context.Context) ResourcePolicyInstanceSchedulePolicyPtrOutput } -type routerRoutePolicyTermMatchPtrType RouterRoutePolicyTermMatchArgs +type resourcePolicyInstanceSchedulePolicyPtrType ResourcePolicyInstanceSchedulePolicyArgs -func RouterRoutePolicyTermMatchPtr(v *RouterRoutePolicyTermMatchArgs) RouterRoutePolicyTermMatchPtrInput { - return (*routerRoutePolicyTermMatchPtrType)(v) +func ResourcePolicyInstanceSchedulePolicyPtr(v *ResourcePolicyInstanceSchedulePolicyArgs) ResourcePolicyInstanceSchedulePolicyPtrInput { + return (*resourcePolicyInstanceSchedulePolicyPtrType)(v) } -func (*routerRoutePolicyTermMatchPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouterRoutePolicyTermMatch)(nil)).Elem() +func (*resourcePolicyInstanceSchedulePolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicyInstanceSchedulePolicy)(nil)).Elem() } -func (i *routerRoutePolicyTermMatchPtrType) ToRouterRoutePolicyTermMatchPtrOutput() RouterRoutePolicyTermMatchPtrOutput { - return i.ToRouterRoutePolicyTermMatchPtrOutputWithContext(context.Background()) +func (i *resourcePolicyInstanceSchedulePolicyPtrType) ToResourcePolicyInstanceSchedulePolicyPtrOutput() ResourcePolicyInstanceSchedulePolicyPtrOutput { + return i.ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(context.Background()) } -func (i *routerRoutePolicyTermMatchPtrType) ToRouterRoutePolicyTermMatchPtrOutputWithContext(ctx context.Context) RouterRoutePolicyTermMatchPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterRoutePolicyTermMatchPtrOutput) +func (i *resourcePolicyInstanceSchedulePolicyPtrType) ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyPtrOutput) } -type RouterRoutePolicyTermMatchOutput struct{ *pulumi.OutputState } +type ResourcePolicyInstanceSchedulePolicyOutput struct{ *pulumi.OutputState } -func (RouterRoutePolicyTermMatchOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouterRoutePolicyTermMatch)(nil)).Elem() +func (ResourcePolicyInstanceSchedulePolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicyInstanceSchedulePolicy)(nil)).Elem() } -func (o RouterRoutePolicyTermMatchOutput) ToRouterRoutePolicyTermMatchOutput() RouterRoutePolicyTermMatchOutput { +func (o ResourcePolicyInstanceSchedulePolicyOutput) ToResourcePolicyInstanceSchedulePolicyOutput() ResourcePolicyInstanceSchedulePolicyOutput { return o } -func (o RouterRoutePolicyTermMatchOutput) ToRouterRoutePolicyTermMatchOutputWithContext(ctx context.Context) RouterRoutePolicyTermMatchOutput { +func (o ResourcePolicyInstanceSchedulePolicyOutput) ToResourcePolicyInstanceSchedulePolicyOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyOutput { return o } -func (o RouterRoutePolicyTermMatchOutput) ToRouterRoutePolicyTermMatchPtrOutput() RouterRoutePolicyTermMatchPtrOutput { - return o.ToRouterRoutePolicyTermMatchPtrOutputWithContext(context.Background()) +func (o ResourcePolicyInstanceSchedulePolicyOutput) ToResourcePolicyInstanceSchedulePolicyPtrOutput() ResourcePolicyInstanceSchedulePolicyPtrOutput { + return o.ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(context.Background()) } -func (o RouterRoutePolicyTermMatchOutput) ToRouterRoutePolicyTermMatchPtrOutputWithContext(ctx context.Context) RouterRoutePolicyTermMatchPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RouterRoutePolicyTermMatch) *RouterRoutePolicyTermMatch { +func (o ResourcePolicyInstanceSchedulePolicyOutput) ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicyInstanceSchedulePolicy) *ResourcePolicyInstanceSchedulePolicy { return &v - }).(RouterRoutePolicyTermMatchPtrOutput) + }).(ResourcePolicyInstanceSchedulePolicyPtrOutput) } -// Description of the expression -func (o RouterRoutePolicyTermMatchOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouterRoutePolicyTermMatch) *string { return v.Description }).(pulumi.StringPtrOutput) +// The expiration time of the schedule. The timestamp is an RFC3339 string. +func (o ResourcePolicyInstanceSchedulePolicyOutput) ExpirationTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicy) *string { return v.ExpirationTime }).(pulumi.StringPtrOutput) } -// Textual representation of an expression in Common Expression Language syntax. -func (o RouterRoutePolicyTermMatchOutput) Expression() pulumi.StringOutput { - return o.ApplyT(func(v RouterRoutePolicyTermMatch) string { return v.Expression }).(pulumi.StringOutput) +// The start time of the schedule. The timestamp is an RFC3339 string. +func (o ResourcePolicyInstanceSchedulePolicyOutput) StartTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicy) *string { return v.StartTime }).(pulumi.StringPtrOutput) } -// String indicating the location of the expression for error reporting, e.g. a file name and a position in the file -func (o RouterRoutePolicyTermMatchOutput) Location() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouterRoutePolicyTermMatch) *string { return v.Location }).(pulumi.StringPtrOutput) +// Specifies the time zone to be used in interpreting the schedule. The value of this field must be a time zone name +// from the tz database: http://en.wikipedia.org/wiki/Tz_database. +func (o ResourcePolicyInstanceSchedulePolicyOutput) TimeZone() pulumi.StringOutput { + return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicy) string { return v.TimeZone }).(pulumi.StringOutput) } -// Title for the expression, i.e. a short string describing its purpose. -func (o RouterRoutePolicyTermMatchOutput) Title() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouterRoutePolicyTermMatch) *string { return v.Title }).(pulumi.StringPtrOutput) +// Specifies the schedule for starting instances. +// Structure is documented below. +func (o ResourcePolicyInstanceSchedulePolicyOutput) VmStartSchedule() ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { + return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicy) *ResourcePolicyInstanceSchedulePolicyVmStartSchedule { + return v.VmStartSchedule + }).(ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) } -type RouterRoutePolicyTermMatchPtrOutput struct{ *pulumi.OutputState } +// Specifies the schedule for stopping instances. +// Structure is documented below. +func (o ResourcePolicyInstanceSchedulePolicyOutput) VmStopSchedule() ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { + return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicy) *ResourcePolicyInstanceSchedulePolicyVmStopSchedule { + return v.VmStopSchedule + }).(ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) +} -func (RouterRoutePolicyTermMatchPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouterRoutePolicyTermMatch)(nil)).Elem() +type ResourcePolicyInstanceSchedulePolicyPtrOutput struct{ *pulumi.OutputState } + +func (ResourcePolicyInstanceSchedulePolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicyInstanceSchedulePolicy)(nil)).Elem() } -func (o RouterRoutePolicyTermMatchPtrOutput) ToRouterRoutePolicyTermMatchPtrOutput() RouterRoutePolicyTermMatchPtrOutput { +func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) ToResourcePolicyInstanceSchedulePolicyPtrOutput() ResourcePolicyInstanceSchedulePolicyPtrOutput { return o } -func (o RouterRoutePolicyTermMatchPtrOutput) ToRouterRoutePolicyTermMatchPtrOutputWithContext(ctx context.Context) RouterRoutePolicyTermMatchPtrOutput { +func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyPtrOutput { return o } -func (o RouterRoutePolicyTermMatchPtrOutput) Elem() RouterRoutePolicyTermMatchOutput { - return o.ApplyT(func(v *RouterRoutePolicyTermMatch) RouterRoutePolicyTermMatch { +func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) Elem() ResourcePolicyInstanceSchedulePolicyOutput { + return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicy) ResourcePolicyInstanceSchedulePolicy { if v != nil { return *v } - var ret RouterRoutePolicyTermMatch + var ret ResourcePolicyInstanceSchedulePolicy return ret - }).(RouterRoutePolicyTermMatchOutput) -} - -// Description of the expression -func (o RouterRoutePolicyTermMatchPtrOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouterRoutePolicyTermMatch) *string { - if v == nil { - return nil - } - return v.Description - }).(pulumi.StringPtrOutput) -} - -// Textual representation of an expression in Common Expression Language syntax. -func (o RouterRoutePolicyTermMatchPtrOutput) Expression() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouterRoutePolicyTermMatch) *string { - if v == nil { - return nil - } - return &v.Expression - }).(pulumi.StringPtrOutput) + }).(ResourcePolicyInstanceSchedulePolicyOutput) } -// String indicating the location of the expression for error reporting, e.g. a file name and a position in the file -func (o RouterRoutePolicyTermMatchPtrOutput) Location() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouterRoutePolicyTermMatch) *string { +// The expiration time of the schedule. The timestamp is an RFC3339 string. +func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) ExpirationTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicy) *string { if v == nil { return nil } - return v.Location + return v.ExpirationTime }).(pulumi.StringPtrOutput) } -// Title for the expression, i.e. a short string describing its purpose. -func (o RouterRoutePolicyTermMatchPtrOutput) Title() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouterRoutePolicyTermMatch) *string { +// The start time of the schedule. The timestamp is an RFC3339 string. +func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) StartTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicy) *string { if v == nil { return nil } - return v.Title + return v.StartTime }).(pulumi.StringPtrOutput) } -type RouterStatusBestRoute struct { - // An optional description of this resource. Provide this property - // when you create the resource. - Description string `pulumi:"description"` - // The destination range of outgoing packets that this route applies to. - // Only IPv4 is supported. - DestRange string `pulumi:"destRange"` - // The name of the router. - Name string `pulumi:"name"` - // The network name or resource link to the parent - // network of this subnetwork. - Network string `pulumi:"network"` - // URL to a gateway that should handle matching packets. - // Currently, you can only specify the internet gateway, using a full or - // partial valid URL: - // * 'https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway' - // * 'projects/project/global/gateways/default-internet-gateway' - // * 'global/gateways/default-internet-gateway' - // * The string 'default-internet-gateway'. - NextHopGateway string `pulumi:"nextHopGateway"` - // The IP address or URL to a forwarding rule of type - // loadBalancingScheme=INTERNAL that should handle matching - // packets. - // - // With the GA provider you can only specify the forwarding - // rule as a partial or full URL. For example, the following - // are all valid values: - // * 10.128.0.56 - // * https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule - // * regions/region/forwardingRules/forwardingRule - // - // When the beta provider, you can also specify the IP address - // of a forwarding rule from the same VPC or any peered VPC. - // - // Note that this can only be used when the destinationRange is - // a public (non-RFC 1918) IP CIDR range. - NextHopIlb string `pulumi:"nextHopIlb"` - // URL to an instance that should handle matching packets. - // You can specify this as a full or partial URL. For example: - // * 'https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance' - // * 'projects/project/zones/zone/instances/instance' - // * 'zones/zone/instances/instance' - // * Just the instance name, with the zone in 'next_hop_instance_zone'. - NextHopInstance string `pulumi:"nextHopInstance"` - // The zone of the instance specified in next_hop_instance. Omit if nextHopInstance is specified as a URL. - NextHopInstanceZone string `pulumi:"nextHopInstanceZone"` - // Internal fixed region-to-region cost that Google Cloud calculates based on factors such as network performance, distance, and available bandwidth between regions. - NextHopInterRegionCost string `pulumi:"nextHopInterRegionCost"` - // Network IP address of an instance that should handle matching packets. - NextHopIp string `pulumi:"nextHopIp"` - // Multi-Exit Discriminator, a BGP route metric that indicates the desirability of a particular route in a network. - NextHopMed string `pulumi:"nextHopMed"` - // URL to a Network that should handle matching packets. - NextHopNetwork string `pulumi:"nextHopNetwork"` - // Indicates the origin of the route. Can be IGP (Interior Gateway Protocol), EGP (Exterior Gateway Protocol), or INCOMPLETE. - NextHopOrigin string `pulumi:"nextHopOrigin"` - // URL to a VpnTunnel that should handle matching packets. - NextHopVpnTunnel string `pulumi:"nextHopVpnTunnel"` - // The priority of this route. Priority is used to break ties in cases - // where there is more than one matching route of equal prefix length. - // - // In the case of two routes with equal prefix length, the one with the - // lowest-numbered priority value wins. - // - // Default value is 1000. Valid range is 0 through 65535. - Priority int `pulumi:"priority"` - // The ID of the project in which the resource - // belongs. If it is not provided, the provider project is used. - Project string `pulumi:"project"` - SelfLink string `pulumi:"selfLink"` - // A list of instance tags to which this route applies. - Tags []string `pulumi:"tags"` -} - -// RouterStatusBestRouteInput is an input type that accepts RouterStatusBestRouteArgs and RouterStatusBestRouteOutput values. -// You can construct a concrete instance of `RouterStatusBestRouteInput` via: -// -// RouterStatusBestRouteArgs{...} -type RouterStatusBestRouteInput interface { - pulumi.Input - - ToRouterStatusBestRouteOutput() RouterStatusBestRouteOutput - ToRouterStatusBestRouteOutputWithContext(context.Context) RouterStatusBestRouteOutput -} - -type RouterStatusBestRouteArgs struct { - // An optional description of this resource. Provide this property - // when you create the resource. - Description pulumi.StringInput `pulumi:"description"` - // The destination range of outgoing packets that this route applies to. - // Only IPv4 is supported. - DestRange pulumi.StringInput `pulumi:"destRange"` - // The name of the router. - Name pulumi.StringInput `pulumi:"name"` - // The network name or resource link to the parent - // network of this subnetwork. - Network pulumi.StringInput `pulumi:"network"` - // URL to a gateway that should handle matching packets. - // Currently, you can only specify the internet gateway, using a full or - // partial valid URL: - // * 'https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway' - // * 'projects/project/global/gateways/default-internet-gateway' - // * 'global/gateways/default-internet-gateway' - // * The string 'default-internet-gateway'. - NextHopGateway pulumi.StringInput `pulumi:"nextHopGateway"` - // The IP address or URL to a forwarding rule of type - // loadBalancingScheme=INTERNAL that should handle matching - // packets. - // - // With the GA provider you can only specify the forwarding - // rule as a partial or full URL. For example, the following - // are all valid values: - // * 10.128.0.56 - // * https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule - // * regions/region/forwardingRules/forwardingRule - // - // When the beta provider, you can also specify the IP address - // of a forwarding rule from the same VPC or any peered VPC. - // - // Note that this can only be used when the destinationRange is - // a public (non-RFC 1918) IP CIDR range. - NextHopIlb pulumi.StringInput `pulumi:"nextHopIlb"` - // URL to an instance that should handle matching packets. - // You can specify this as a full or partial URL. For example: - // * 'https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance' - // * 'projects/project/zones/zone/instances/instance' - // * 'zones/zone/instances/instance' - // * Just the instance name, with the zone in 'next_hop_instance_zone'. - NextHopInstance pulumi.StringInput `pulumi:"nextHopInstance"` - // The zone of the instance specified in next_hop_instance. Omit if nextHopInstance is specified as a URL. - NextHopInstanceZone pulumi.StringInput `pulumi:"nextHopInstanceZone"` - // Internal fixed region-to-region cost that Google Cloud calculates based on factors such as network performance, distance, and available bandwidth between regions. - NextHopInterRegionCost pulumi.StringInput `pulumi:"nextHopInterRegionCost"` - // Network IP address of an instance that should handle matching packets. - NextHopIp pulumi.StringInput `pulumi:"nextHopIp"` - // Multi-Exit Discriminator, a BGP route metric that indicates the desirability of a particular route in a network. - NextHopMed pulumi.StringInput `pulumi:"nextHopMed"` - // URL to a Network that should handle matching packets. - NextHopNetwork pulumi.StringInput `pulumi:"nextHopNetwork"` - // Indicates the origin of the route. Can be IGP (Interior Gateway Protocol), EGP (Exterior Gateway Protocol), or INCOMPLETE. - NextHopOrigin pulumi.StringInput `pulumi:"nextHopOrigin"` - // URL to a VpnTunnel that should handle matching packets. - NextHopVpnTunnel pulumi.StringInput `pulumi:"nextHopVpnTunnel"` - // The priority of this route. Priority is used to break ties in cases - // where there is more than one matching route of equal prefix length. - // - // In the case of two routes with equal prefix length, the one with the - // lowest-numbered priority value wins. - // - // Default value is 1000. Valid range is 0 through 65535. - Priority pulumi.IntInput `pulumi:"priority"` - // The ID of the project in which the resource - // belongs. If it is not provided, the provider project is used. - Project pulumi.StringInput `pulumi:"project"` - SelfLink pulumi.StringInput `pulumi:"selfLink"` - // A list of instance tags to which this route applies. - Tags pulumi.StringArrayInput `pulumi:"tags"` +// Specifies the time zone to be used in interpreting the schedule. The value of this field must be a time zone name +// from the tz database: http://en.wikipedia.org/wiki/Tz_database. +func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) TimeZone() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicy) *string { + if v == nil { + return nil + } + return &v.TimeZone + }).(pulumi.StringPtrOutput) } -func (RouterStatusBestRouteArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouterStatusBestRoute)(nil)).Elem() +// Specifies the schedule for starting instances. +// Structure is documented below. +func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) VmStartSchedule() ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { + return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicy) *ResourcePolicyInstanceSchedulePolicyVmStartSchedule { + if v == nil { + return nil + } + return v.VmStartSchedule + }).(ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) } -func (i RouterStatusBestRouteArgs) ToRouterStatusBestRouteOutput() RouterStatusBestRouteOutput { - return i.ToRouterStatusBestRouteOutputWithContext(context.Background()) +// Specifies the schedule for stopping instances. +// Structure is documented below. +func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) VmStopSchedule() ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { + return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicy) *ResourcePolicyInstanceSchedulePolicyVmStopSchedule { + if v == nil { + return nil + } + return v.VmStopSchedule + }).(ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) } -func (i RouterStatusBestRouteArgs) ToRouterStatusBestRouteOutputWithContext(ctx context.Context) RouterStatusBestRouteOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterStatusBestRouteOutput) +type ResourcePolicyInstanceSchedulePolicyVmStartSchedule struct { + // Specifies the frequency for the operation, using the unix-cron format. + Schedule string `pulumi:"schedule"` } -// RouterStatusBestRouteArrayInput is an input type that accepts RouterStatusBestRouteArray and RouterStatusBestRouteArrayOutput values. -// You can construct a concrete instance of `RouterStatusBestRouteArrayInput` via: +// ResourcePolicyInstanceSchedulePolicyVmStartScheduleInput is an input type that accepts ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs and ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput values. +// You can construct a concrete instance of `ResourcePolicyInstanceSchedulePolicyVmStartScheduleInput` via: // -// RouterStatusBestRouteArray{ RouterStatusBestRouteArgs{...} } -type RouterStatusBestRouteArrayInput interface { +// ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs{...} +type ResourcePolicyInstanceSchedulePolicyVmStartScheduleInput interface { pulumi.Input - ToRouterStatusBestRouteArrayOutput() RouterStatusBestRouteArrayOutput - ToRouterStatusBestRouteArrayOutputWithContext(context.Context) RouterStatusBestRouteArrayOutput + ToResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput() ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput + ToResourcePolicyInstanceSchedulePolicyVmStartScheduleOutputWithContext(context.Context) ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput } -type RouterStatusBestRouteArray []RouterStatusBestRouteInput +type ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs struct { + // Specifies the frequency for the operation, using the unix-cron format. + Schedule pulumi.StringInput `pulumi:"schedule"` +} -func (RouterStatusBestRouteArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouterStatusBestRoute)(nil)).Elem() +func (ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicyInstanceSchedulePolicyVmStartSchedule)(nil)).Elem() } -func (i RouterStatusBestRouteArray) ToRouterStatusBestRouteArrayOutput() RouterStatusBestRouteArrayOutput { - return i.ToRouterStatusBestRouteArrayOutputWithContext(context.Background()) +func (i ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs) ToResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput() ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput { + return i.ToResourcePolicyInstanceSchedulePolicyVmStartScheduleOutputWithContext(context.Background()) } -func (i RouterStatusBestRouteArray) ToRouterStatusBestRouteArrayOutputWithContext(ctx context.Context) RouterStatusBestRouteArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterStatusBestRouteArrayOutput) +func (i ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs) ToResourcePolicyInstanceSchedulePolicyVmStartScheduleOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput) } -type RouterStatusBestRouteOutput struct{ *pulumi.OutputState } +func (i ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs) ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { + return i.ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(context.Background()) +} -func (RouterStatusBestRouteOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouterStatusBestRoute)(nil)).Elem() +func (i ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs) ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput).ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(ctx) } -func (o RouterStatusBestRouteOutput) ToRouterStatusBestRouteOutput() RouterStatusBestRouteOutput { - return o +// ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrInput is an input type that accepts ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs, ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtr and ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput values. +// You can construct a concrete instance of `ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrInput` via: +// +// ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs{...} +// +// or: +// +// nil +type ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrInput interface { + pulumi.Input + + ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput + ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(context.Context) ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput } -func (o RouterStatusBestRouteOutput) ToRouterStatusBestRouteOutputWithContext(ctx context.Context) RouterStatusBestRouteOutput { - return o +type resourcePolicyInstanceSchedulePolicyVmStartSchedulePtrType ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs + +func ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtr(v *ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs) ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrInput { + return (*resourcePolicyInstanceSchedulePolicyVmStartSchedulePtrType)(v) } -// An optional description of this resource. Provide this property -// when you create the resource. -func (o RouterStatusBestRouteOutput) Description() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoute) string { return v.Description }).(pulumi.StringOutput) +func (*resourcePolicyInstanceSchedulePolicyVmStartSchedulePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicyInstanceSchedulePolicyVmStartSchedule)(nil)).Elem() } -// The destination range of outgoing packets that this route applies to. -// Only IPv4 is supported. -func (o RouterStatusBestRouteOutput) DestRange() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoute) string { return v.DestRange }).(pulumi.StringOutput) +func (i *resourcePolicyInstanceSchedulePolicyVmStartSchedulePtrType) ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { + return i.ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(context.Background()) } -// The name of the router. -func (o RouterStatusBestRouteOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoute) string { return v.Name }).(pulumi.StringOutput) +func (i *resourcePolicyInstanceSchedulePolicyVmStartSchedulePtrType) ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) } -// The network name or resource link to the parent -// network of this subnetwork. -func (o RouterStatusBestRouteOutput) Network() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoute) string { return v.Network }).(pulumi.StringOutput) +type ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput struct{ *pulumi.OutputState } + +func (ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicyInstanceSchedulePolicyVmStartSchedule)(nil)).Elem() } -// URL to a gateway that should handle matching packets. -// Currently, you can only specify the internet gateway, using a full or -// partial valid URL: -// * 'https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway' -// * 'projects/project/global/gateways/default-internet-gateway' -// * 'global/gateways/default-internet-gateway' -// * The string 'default-internet-gateway'. -func (o RouterStatusBestRouteOutput) NextHopGateway() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoute) string { return v.NextHopGateway }).(pulumi.StringOutput) +func (o ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput) ToResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput() ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput { + return o } -// The IP address or URL to a forwarding rule of type -// loadBalancingScheme=INTERNAL that should handle matching -// packets. -// -// With the GA provider you can only specify the forwarding -// rule as a partial or full URL. For example, the following -// are all valid values: -// * 10.128.0.56 -// * https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule -// * regions/region/forwardingRules/forwardingRule -// -// When the beta provider, you can also specify the IP address -// of a forwarding rule from the same VPC or any peered VPC. -// -// Note that this can only be used when the destinationRange is -// a public (non-RFC 1918) IP CIDR range. -func (o RouterStatusBestRouteOutput) NextHopIlb() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoute) string { return v.NextHopIlb }).(pulumi.StringOutput) +func (o ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput) ToResourcePolicyInstanceSchedulePolicyVmStartScheduleOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput { + return o } -// URL to an instance that should handle matching packets. -// You can specify this as a full or partial URL. For example: -// * 'https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance' -// * 'projects/project/zones/zone/instances/instance' -// * 'zones/zone/instances/instance' -// * Just the instance name, with the zone in 'next_hop_instance_zone'. -func (o RouterStatusBestRouteOutput) NextHopInstance() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoute) string { return v.NextHopInstance }).(pulumi.StringOutput) +func (o ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput) ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { + return o.ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(context.Background()) } -// The zone of the instance specified in next_hop_instance. Omit if nextHopInstance is specified as a URL. -func (o RouterStatusBestRouteOutput) NextHopInstanceZone() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoute) string { return v.NextHopInstanceZone }).(pulumi.StringOutput) +func (o ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput) ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicyInstanceSchedulePolicyVmStartSchedule) *ResourcePolicyInstanceSchedulePolicyVmStartSchedule { + return &v + }).(ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) } -// Internal fixed region-to-region cost that Google Cloud calculates based on factors such as network performance, distance, and available bandwidth between regions. -func (o RouterStatusBestRouteOutput) NextHopInterRegionCost() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoute) string { return v.NextHopInterRegionCost }).(pulumi.StringOutput) +// Specifies the frequency for the operation, using the unix-cron format. +func (o ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput) Schedule() pulumi.StringOutput { + return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicyVmStartSchedule) string { return v.Schedule }).(pulumi.StringOutput) } -// Network IP address of an instance that should handle matching packets. -func (o RouterStatusBestRouteOutput) NextHopIp() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoute) string { return v.NextHopIp }).(pulumi.StringOutput) +type ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput struct{ *pulumi.OutputState } + +func (ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicyInstanceSchedulePolicyVmStartSchedule)(nil)).Elem() } -// Multi-Exit Discriminator, a BGP route metric that indicates the desirability of a particular route in a network. -func (o RouterStatusBestRouteOutput) NextHopMed() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoute) string { return v.NextHopMed }).(pulumi.StringOutput) +func (o ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { + return o } -// URL to a Network that should handle matching packets. -func (o RouterStatusBestRouteOutput) NextHopNetwork() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoute) string { return v.NextHopNetwork }).(pulumi.StringOutput) +func (o ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { + return o } -// Indicates the origin of the route. Can be IGP (Interior Gateway Protocol), EGP (Exterior Gateway Protocol), or INCOMPLETE. -func (o RouterStatusBestRouteOutput) NextHopOrigin() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoute) string { return v.NextHopOrigin }).(pulumi.StringOutput) +func (o ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) Elem() ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput { + return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicyVmStartSchedule) ResourcePolicyInstanceSchedulePolicyVmStartSchedule { + if v != nil { + return *v + } + var ret ResourcePolicyInstanceSchedulePolicyVmStartSchedule + return ret + }).(ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput) } -// URL to a VpnTunnel that should handle matching packets. -func (o RouterStatusBestRouteOutput) NextHopVpnTunnel() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoute) string { return v.NextHopVpnTunnel }).(pulumi.StringOutput) +// Specifies the frequency for the operation, using the unix-cron format. +func (o ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) Schedule() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicyVmStartSchedule) *string { + if v == nil { + return nil + } + return &v.Schedule + }).(pulumi.StringPtrOutput) } -// The priority of this route. Priority is used to break ties in cases -// where there is more than one matching route of equal prefix length. -// -// In the case of two routes with equal prefix length, the one with the -// lowest-numbered priority value wins. +type ResourcePolicyInstanceSchedulePolicyVmStopSchedule struct { + // Specifies the frequency for the operation, using the unix-cron format. + Schedule string `pulumi:"schedule"` +} + +// ResourcePolicyInstanceSchedulePolicyVmStopScheduleInput is an input type that accepts ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs and ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput values. +// You can construct a concrete instance of `ResourcePolicyInstanceSchedulePolicyVmStopScheduleInput` via: // -// Default value is 1000. Valid range is 0 through 65535. -func (o RouterStatusBestRouteOutput) Priority() pulumi.IntOutput { - return o.ApplyT(func(v RouterStatusBestRoute) int { return v.Priority }).(pulumi.IntOutput) +// ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs{...} +type ResourcePolicyInstanceSchedulePolicyVmStopScheduleInput interface { + pulumi.Input + + ToResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput() ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput + ToResourcePolicyInstanceSchedulePolicyVmStopScheduleOutputWithContext(context.Context) ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput } -// The ID of the project in which the resource -// belongs. If it is not provided, the provider project is used. -func (o RouterStatusBestRouteOutput) Project() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoute) string { return v.Project }).(pulumi.StringOutput) +type ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs struct { + // Specifies the frequency for the operation, using the unix-cron format. + Schedule pulumi.StringInput `pulumi:"schedule"` } -func (o RouterStatusBestRouteOutput) SelfLink() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoute) string { return v.SelfLink }).(pulumi.StringOutput) +func (ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicyInstanceSchedulePolicyVmStopSchedule)(nil)).Elem() } -// A list of instance tags to which this route applies. -func (o RouterStatusBestRouteOutput) Tags() pulumi.StringArrayOutput { - return o.ApplyT(func(v RouterStatusBestRoute) []string { return v.Tags }).(pulumi.StringArrayOutput) +func (i ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs) ToResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput() ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput { + return i.ToResourcePolicyInstanceSchedulePolicyVmStopScheduleOutputWithContext(context.Background()) } -type RouterStatusBestRouteArrayOutput struct{ *pulumi.OutputState } +func (i ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs) ToResourcePolicyInstanceSchedulePolicyVmStopScheduleOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput) +} -func (RouterStatusBestRouteArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouterStatusBestRoute)(nil)).Elem() +func (i ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs) ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { + return i.ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(context.Background()) } -func (o RouterStatusBestRouteArrayOutput) ToRouterStatusBestRouteArrayOutput() RouterStatusBestRouteArrayOutput { - return o +func (i ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs) ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput).ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(ctx) } -func (o RouterStatusBestRouteArrayOutput) ToRouterStatusBestRouteArrayOutputWithContext(ctx context.Context) RouterStatusBestRouteArrayOutput { - return o +// ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrInput is an input type that accepts ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs, ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtr and ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput values. +// You can construct a concrete instance of `ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrInput` via: +// +// ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs{...} +// +// or: +// +// nil +type ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrInput interface { + pulumi.Input + + ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput + ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(context.Context) ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput } -func (o RouterStatusBestRouteArrayOutput) Index(i pulumi.IntInput) RouterStatusBestRouteOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterStatusBestRoute { - return vs[0].([]RouterStatusBestRoute)[vs[1].(int)] - }).(RouterStatusBestRouteOutput) +type resourcePolicyInstanceSchedulePolicyVmStopSchedulePtrType ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs + +func ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtr(v *ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs) ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrInput { + return (*resourcePolicyInstanceSchedulePolicyVmStopSchedulePtrType)(v) } -type RouterStatusBestRoutesForRouter struct { - // An optional description of this resource. Provide this property - // when you create the resource. - Description string `pulumi:"description"` - // The destination range of outgoing packets that this route applies to. - // Only IPv4 is supported. - DestRange string `pulumi:"destRange"` - // The name of the router. - Name string `pulumi:"name"` - // The network name or resource link to the parent - // network of this subnetwork. - Network string `pulumi:"network"` - // URL to a gateway that should handle matching packets. - // Currently, you can only specify the internet gateway, using a full or - // partial valid URL: - // * 'https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway' - // * 'projects/project/global/gateways/default-internet-gateway' - // * 'global/gateways/default-internet-gateway' - // * The string 'default-internet-gateway'. - NextHopGateway string `pulumi:"nextHopGateway"` - // The IP address or URL to a forwarding rule of type - // loadBalancingScheme=INTERNAL that should handle matching - // packets. - // - // With the GA provider you can only specify the forwarding - // rule as a partial or full URL. For example, the following - // are all valid values: - // * 10.128.0.56 - // * https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule - // * regions/region/forwardingRules/forwardingRule - // - // When the beta provider, you can also specify the IP address - // of a forwarding rule from the same VPC or any peered VPC. - // - // Note that this can only be used when the destinationRange is - // a public (non-RFC 1918) IP CIDR range. - NextHopIlb string `pulumi:"nextHopIlb"` - // URL to an instance that should handle matching packets. - // You can specify this as a full or partial URL. For example: - // * 'https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance' - // * 'projects/project/zones/zone/instances/instance' - // * 'zones/zone/instances/instance' - // * Just the instance name, with the zone in 'next_hop_instance_zone'. - NextHopInstance string `pulumi:"nextHopInstance"` - // The zone of the instance specified in next_hop_instance. Omit if nextHopInstance is specified as a URL. - NextHopInstanceZone string `pulumi:"nextHopInstanceZone"` - // Internal fixed region-to-region cost that Google Cloud calculates based on factors such as network performance, distance, and available bandwidth between regions. - NextHopInterRegionCost string `pulumi:"nextHopInterRegionCost"` - // Network IP address of an instance that should handle matching packets. - NextHopIp string `pulumi:"nextHopIp"` - // Multi-Exit Discriminator, a BGP route metric that indicates the desirability of a particular route in a network. - NextHopMed string `pulumi:"nextHopMed"` - // URL to a Network that should handle matching packets. - NextHopNetwork string `pulumi:"nextHopNetwork"` - // Indicates the origin of the route. Can be IGP (Interior Gateway Protocol), EGP (Exterior Gateway Protocol), or INCOMPLETE. - NextHopOrigin string `pulumi:"nextHopOrigin"` - // URL to a VpnTunnel that should handle matching packets. - NextHopVpnTunnel string `pulumi:"nextHopVpnTunnel"` - // The priority of this route. Priority is used to break ties in cases - // where there is more than one matching route of equal prefix length. - // - // In the case of two routes with equal prefix length, the one with the - // lowest-numbered priority value wins. - // - // Default value is 1000. Valid range is 0 through 65535. - Priority int `pulumi:"priority"` - // The ID of the project in which the resource - // belongs. If it is not provided, the provider project is used. - Project string `pulumi:"project"` - SelfLink string `pulumi:"selfLink"` - // A list of instance tags to which this route applies. - Tags []string `pulumi:"tags"` +func (*resourcePolicyInstanceSchedulePolicyVmStopSchedulePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicyInstanceSchedulePolicyVmStopSchedule)(nil)).Elem() } -// RouterStatusBestRoutesForRouterInput is an input type that accepts RouterStatusBestRoutesForRouterArgs and RouterStatusBestRoutesForRouterOutput values. -// You can construct a concrete instance of `RouterStatusBestRoutesForRouterInput` via: -// -// RouterStatusBestRoutesForRouterArgs{...} -type RouterStatusBestRoutesForRouterInput interface { - pulumi.Input +func (i *resourcePolicyInstanceSchedulePolicyVmStopSchedulePtrType) ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { + return i.ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(context.Background()) +} - ToRouterStatusBestRoutesForRouterOutput() RouterStatusBestRoutesForRouterOutput - ToRouterStatusBestRoutesForRouterOutputWithContext(context.Context) RouterStatusBestRoutesForRouterOutput +func (i *resourcePolicyInstanceSchedulePolicyVmStopSchedulePtrType) ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) } -type RouterStatusBestRoutesForRouterArgs struct { - // An optional description of this resource. Provide this property - // when you create the resource. - Description pulumi.StringInput `pulumi:"description"` - // The destination range of outgoing packets that this route applies to. - // Only IPv4 is supported. - DestRange pulumi.StringInput `pulumi:"destRange"` - // The name of the router. - Name pulumi.StringInput `pulumi:"name"` - // The network name or resource link to the parent - // network of this subnetwork. - Network pulumi.StringInput `pulumi:"network"` - // URL to a gateway that should handle matching packets. - // Currently, you can only specify the internet gateway, using a full or - // partial valid URL: - // * 'https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway' - // * 'projects/project/global/gateways/default-internet-gateway' - // * 'global/gateways/default-internet-gateway' - // * The string 'default-internet-gateway'. - NextHopGateway pulumi.StringInput `pulumi:"nextHopGateway"` - // The IP address or URL to a forwarding rule of type - // loadBalancingScheme=INTERNAL that should handle matching - // packets. - // - // With the GA provider you can only specify the forwarding - // rule as a partial or full URL. For example, the following - // are all valid values: - // * 10.128.0.56 - // * https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule - // * regions/region/forwardingRules/forwardingRule - // - // When the beta provider, you can also specify the IP address - // of a forwarding rule from the same VPC or any peered VPC. - // - // Note that this can only be used when the destinationRange is - // a public (non-RFC 1918) IP CIDR range. - NextHopIlb pulumi.StringInput `pulumi:"nextHopIlb"` - // URL to an instance that should handle matching packets. - // You can specify this as a full or partial URL. For example: - // * 'https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance' - // * 'projects/project/zones/zone/instances/instance' - // * 'zones/zone/instances/instance' - // * Just the instance name, with the zone in 'next_hop_instance_zone'. - NextHopInstance pulumi.StringInput `pulumi:"nextHopInstance"` - // The zone of the instance specified in next_hop_instance. Omit if nextHopInstance is specified as a URL. - NextHopInstanceZone pulumi.StringInput `pulumi:"nextHopInstanceZone"` - // Internal fixed region-to-region cost that Google Cloud calculates based on factors such as network performance, distance, and available bandwidth between regions. - NextHopInterRegionCost pulumi.StringInput `pulumi:"nextHopInterRegionCost"` - // Network IP address of an instance that should handle matching packets. - NextHopIp pulumi.StringInput `pulumi:"nextHopIp"` - // Multi-Exit Discriminator, a BGP route metric that indicates the desirability of a particular route in a network. - NextHopMed pulumi.StringInput `pulumi:"nextHopMed"` - // URL to a Network that should handle matching packets. - NextHopNetwork pulumi.StringInput `pulumi:"nextHopNetwork"` - // Indicates the origin of the route. Can be IGP (Interior Gateway Protocol), EGP (Exterior Gateway Protocol), or INCOMPLETE. - NextHopOrigin pulumi.StringInput `pulumi:"nextHopOrigin"` - // URL to a VpnTunnel that should handle matching packets. - NextHopVpnTunnel pulumi.StringInput `pulumi:"nextHopVpnTunnel"` - // The priority of this route. Priority is used to break ties in cases - // where there is more than one matching route of equal prefix length. - // - // In the case of two routes with equal prefix length, the one with the - // lowest-numbered priority value wins. - // - // Default value is 1000. Valid range is 0 through 65535. - Priority pulumi.IntInput `pulumi:"priority"` - // The ID of the project in which the resource - // belongs. If it is not provided, the provider project is used. - Project pulumi.StringInput `pulumi:"project"` - SelfLink pulumi.StringInput `pulumi:"selfLink"` - // A list of instance tags to which this route applies. - Tags pulumi.StringArrayInput `pulumi:"tags"` +type ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput struct{ *pulumi.OutputState } + +func (ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicyInstanceSchedulePolicyVmStopSchedule)(nil)).Elem() } -func (RouterStatusBestRoutesForRouterArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouterStatusBestRoutesForRouter)(nil)).Elem() +func (o ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput) ToResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput() ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput { + return o } -func (i RouterStatusBestRoutesForRouterArgs) ToRouterStatusBestRoutesForRouterOutput() RouterStatusBestRoutesForRouterOutput { - return i.ToRouterStatusBestRoutesForRouterOutputWithContext(context.Background()) +func (o ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput) ToResourcePolicyInstanceSchedulePolicyVmStopScheduleOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput { + return o } -func (i RouterStatusBestRoutesForRouterArgs) ToRouterStatusBestRoutesForRouterOutputWithContext(ctx context.Context) RouterStatusBestRoutesForRouterOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterStatusBestRoutesForRouterOutput) +func (o ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput) ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { + return o.ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(context.Background()) } -// RouterStatusBestRoutesForRouterArrayInput is an input type that accepts RouterStatusBestRoutesForRouterArray and RouterStatusBestRoutesForRouterArrayOutput values. -// You can construct a concrete instance of `RouterStatusBestRoutesForRouterArrayInput` via: -// -// RouterStatusBestRoutesForRouterArray{ RouterStatusBestRoutesForRouterArgs{...} } -type RouterStatusBestRoutesForRouterArrayInput interface { - pulumi.Input +func (o ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput) ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicyInstanceSchedulePolicyVmStopSchedule) *ResourcePolicyInstanceSchedulePolicyVmStopSchedule { + return &v + }).(ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) +} - ToRouterStatusBestRoutesForRouterArrayOutput() RouterStatusBestRoutesForRouterArrayOutput - ToRouterStatusBestRoutesForRouterArrayOutputWithContext(context.Context) RouterStatusBestRoutesForRouterArrayOutput +// Specifies the frequency for the operation, using the unix-cron format. +func (o ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput) Schedule() pulumi.StringOutput { + return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicyVmStopSchedule) string { return v.Schedule }).(pulumi.StringOutput) } -type RouterStatusBestRoutesForRouterArray []RouterStatusBestRoutesForRouterInput +type ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput struct{ *pulumi.OutputState } -func (RouterStatusBestRoutesForRouterArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouterStatusBestRoutesForRouter)(nil)).Elem() +func (ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicyInstanceSchedulePolicyVmStopSchedule)(nil)).Elem() } -func (i RouterStatusBestRoutesForRouterArray) ToRouterStatusBestRoutesForRouterArrayOutput() RouterStatusBestRoutesForRouterArrayOutput { - return i.ToRouterStatusBestRoutesForRouterArrayOutputWithContext(context.Background()) +func (o ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { + return o } -func (i RouterStatusBestRoutesForRouterArray) ToRouterStatusBestRoutesForRouterArrayOutputWithContext(ctx context.Context) RouterStatusBestRoutesForRouterArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterStatusBestRoutesForRouterArrayOutput) +func (o ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { + return o +} + +func (o ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) Elem() ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput { + return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicyVmStopSchedule) ResourcePolicyInstanceSchedulePolicyVmStopSchedule { + if v != nil { + return *v + } + var ret ResourcePolicyInstanceSchedulePolicyVmStopSchedule + return ret + }).(ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput) +} + +// Specifies the frequency for the operation, using the unix-cron format. +func (o ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) Schedule() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicyVmStopSchedule) *string { + if v == nil { + return nil + } + return &v.Schedule + }).(pulumi.StringPtrOutput) +} + +type ResourcePolicySnapshotSchedulePolicy struct { + // Retention policy applied to snapshots created by this resource policy. + // Structure is documented below. + RetentionPolicy *ResourcePolicySnapshotSchedulePolicyRetentionPolicy `pulumi:"retentionPolicy"` + // Contains one of an `hourlySchedule`, `dailySchedule`, or `weeklySchedule`. + // Structure is documented below. + Schedule ResourcePolicySnapshotSchedulePolicySchedule `pulumi:"schedule"` + // Properties with which the snapshots are created, such as labels. + // Structure is documented below. + SnapshotProperties *ResourcePolicySnapshotSchedulePolicySnapshotProperties `pulumi:"snapshotProperties"` } -type RouterStatusBestRoutesForRouterOutput struct{ *pulumi.OutputState } - -func (RouterStatusBestRoutesForRouterOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouterStatusBestRoutesForRouter)(nil)).Elem() -} +// ResourcePolicySnapshotSchedulePolicyInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyArgs and ResourcePolicySnapshotSchedulePolicyOutput values. +// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyInput` via: +// +// ResourcePolicySnapshotSchedulePolicyArgs{...} +type ResourcePolicySnapshotSchedulePolicyInput interface { + pulumi.Input -func (o RouterStatusBestRoutesForRouterOutput) ToRouterStatusBestRoutesForRouterOutput() RouterStatusBestRoutesForRouterOutput { - return o + ToResourcePolicySnapshotSchedulePolicyOutput() ResourcePolicySnapshotSchedulePolicyOutput + ToResourcePolicySnapshotSchedulePolicyOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyOutput } -func (o RouterStatusBestRoutesForRouterOutput) ToRouterStatusBestRoutesForRouterOutputWithContext(ctx context.Context) RouterStatusBestRoutesForRouterOutput { - return o +type ResourcePolicySnapshotSchedulePolicyArgs struct { + // Retention policy applied to snapshots created by this resource policy. + // Structure is documented below. + RetentionPolicy ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrInput `pulumi:"retentionPolicy"` + // Contains one of an `hourlySchedule`, `dailySchedule`, or `weeklySchedule`. + // Structure is documented below. + Schedule ResourcePolicySnapshotSchedulePolicyScheduleInput `pulumi:"schedule"` + // Properties with which the snapshots are created, such as labels. + // Structure is documented below. + SnapshotProperties ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrInput `pulumi:"snapshotProperties"` } -// An optional description of this resource. Provide this property -// when you create the resource. -func (o RouterStatusBestRoutesForRouterOutput) Description() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.Description }).(pulumi.StringOutput) +func (ResourcePolicySnapshotSchedulePolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicy)(nil)).Elem() } -// The destination range of outgoing packets that this route applies to. -// Only IPv4 is supported. -func (o RouterStatusBestRoutesForRouterOutput) DestRange() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.DestRange }).(pulumi.StringOutput) +func (i ResourcePolicySnapshotSchedulePolicyArgs) ToResourcePolicySnapshotSchedulePolicyOutput() ResourcePolicySnapshotSchedulePolicyOutput { + return i.ToResourcePolicySnapshotSchedulePolicyOutputWithContext(context.Background()) } -// The name of the router. -func (o RouterStatusBestRoutesForRouterOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.Name }).(pulumi.StringOutput) +func (i ResourcePolicySnapshotSchedulePolicyArgs) ToResourcePolicySnapshotSchedulePolicyOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyOutput) } -// The network name or resource link to the parent -// network of this subnetwork. -func (o RouterStatusBestRoutesForRouterOutput) Network() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.Network }).(pulumi.StringOutput) +func (i ResourcePolicySnapshotSchedulePolicyArgs) ToResourcePolicySnapshotSchedulePolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyPtrOutput { + return i.ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(context.Background()) } -// URL to a gateway that should handle matching packets. -// Currently, you can only specify the internet gateway, using a full or -// partial valid URL: -// * 'https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway' -// * 'projects/project/global/gateways/default-internet-gateway' -// * 'global/gateways/default-internet-gateway' -// * The string 'default-internet-gateway'. -func (o RouterStatusBestRoutesForRouterOutput) NextHopGateway() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.NextHopGateway }).(pulumi.StringOutput) +func (i ResourcePolicySnapshotSchedulePolicyArgs) ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyOutput).ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(ctx) } -// The IP address or URL to a forwarding rule of type -// loadBalancingScheme=INTERNAL that should handle matching -// packets. +// ResourcePolicySnapshotSchedulePolicyPtrInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyArgs, ResourcePolicySnapshotSchedulePolicyPtr and ResourcePolicySnapshotSchedulePolicyPtrOutput values. +// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyPtrInput` via: // -// With the GA provider you can only specify the forwarding -// rule as a partial or full URL. For example, the following -// are all valid values: -// * 10.128.0.56 -// * https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule -// * regions/region/forwardingRules/forwardingRule +// ResourcePolicySnapshotSchedulePolicyArgs{...} // -// When the beta provider, you can also specify the IP address -// of a forwarding rule from the same VPC or any peered VPC. +// or: // -// Note that this can only be used when the destinationRange is -// a public (non-RFC 1918) IP CIDR range. -func (o RouterStatusBestRoutesForRouterOutput) NextHopIlb() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.NextHopIlb }).(pulumi.StringOutput) +// nil +type ResourcePolicySnapshotSchedulePolicyPtrInput interface { + pulumi.Input + + ToResourcePolicySnapshotSchedulePolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyPtrOutput + ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyPtrOutput } -// URL to an instance that should handle matching packets. -// You can specify this as a full or partial URL. For example: -// * 'https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance' -// * 'projects/project/zones/zone/instances/instance' -// * 'zones/zone/instances/instance' -// * Just the instance name, with the zone in 'next_hop_instance_zone'. -func (o RouterStatusBestRoutesForRouterOutput) NextHopInstance() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.NextHopInstance }).(pulumi.StringOutput) +type resourcePolicySnapshotSchedulePolicyPtrType ResourcePolicySnapshotSchedulePolicyArgs + +func ResourcePolicySnapshotSchedulePolicyPtr(v *ResourcePolicySnapshotSchedulePolicyArgs) ResourcePolicySnapshotSchedulePolicyPtrInput { + return (*resourcePolicySnapshotSchedulePolicyPtrType)(v) } -// The zone of the instance specified in next_hop_instance. Omit if nextHopInstance is specified as a URL. -func (o RouterStatusBestRoutesForRouterOutput) NextHopInstanceZone() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.NextHopInstanceZone }).(pulumi.StringOutput) +func (*resourcePolicySnapshotSchedulePolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicy)(nil)).Elem() } -// Internal fixed region-to-region cost that Google Cloud calculates based on factors such as network performance, distance, and available bandwidth between regions. -func (o RouterStatusBestRoutesForRouterOutput) NextHopInterRegionCost() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.NextHopInterRegionCost }).(pulumi.StringOutput) +func (i *resourcePolicySnapshotSchedulePolicyPtrType) ToResourcePolicySnapshotSchedulePolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyPtrOutput { + return i.ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(context.Background()) } -// Network IP address of an instance that should handle matching packets. -func (o RouterStatusBestRoutesForRouterOutput) NextHopIp() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.NextHopIp }).(pulumi.StringOutput) +func (i *resourcePolicySnapshotSchedulePolicyPtrType) ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyPtrOutput) } -// Multi-Exit Discriminator, a BGP route metric that indicates the desirability of a particular route in a network. -func (o RouterStatusBestRoutesForRouterOutput) NextHopMed() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.NextHopMed }).(pulumi.StringOutput) +type ResourcePolicySnapshotSchedulePolicyOutput struct{ *pulumi.OutputState } + +func (ResourcePolicySnapshotSchedulePolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicy)(nil)).Elem() } -// URL to a Network that should handle matching packets. -func (o RouterStatusBestRoutesForRouterOutput) NextHopNetwork() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.NextHopNetwork }).(pulumi.StringOutput) +func (o ResourcePolicySnapshotSchedulePolicyOutput) ToResourcePolicySnapshotSchedulePolicyOutput() ResourcePolicySnapshotSchedulePolicyOutput { + return o } -// Indicates the origin of the route. Can be IGP (Interior Gateway Protocol), EGP (Exterior Gateway Protocol), or INCOMPLETE. -func (o RouterStatusBestRoutesForRouterOutput) NextHopOrigin() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.NextHopOrigin }).(pulumi.StringOutput) +func (o ResourcePolicySnapshotSchedulePolicyOutput) ToResourcePolicySnapshotSchedulePolicyOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyOutput { + return o } -// URL to a VpnTunnel that should handle matching packets. -func (o RouterStatusBestRoutesForRouterOutput) NextHopVpnTunnel() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.NextHopVpnTunnel }).(pulumi.StringOutput) +func (o ResourcePolicySnapshotSchedulePolicyOutput) ToResourcePolicySnapshotSchedulePolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyPtrOutput { + return o.ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(context.Background()) } -// The priority of this route. Priority is used to break ties in cases -// where there is more than one matching route of equal prefix length. -// -// In the case of two routes with equal prefix length, the one with the -// lowest-numbered priority value wins. -// -// Default value is 1000. Valid range is 0 through 65535. -func (o RouterStatusBestRoutesForRouterOutput) Priority() pulumi.IntOutput { - return o.ApplyT(func(v RouterStatusBestRoutesForRouter) int { return v.Priority }).(pulumi.IntOutput) +func (o ResourcePolicySnapshotSchedulePolicyOutput) ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicySnapshotSchedulePolicy) *ResourcePolicySnapshotSchedulePolicy { + return &v + }).(ResourcePolicySnapshotSchedulePolicyPtrOutput) } -// The ID of the project in which the resource -// belongs. If it is not provided, the provider project is used. -func (o RouterStatusBestRoutesForRouterOutput) Project() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.Project }).(pulumi.StringOutput) +// Retention policy applied to snapshots created by this resource policy. +// Structure is documented below. +func (o ResourcePolicySnapshotSchedulePolicyOutput) RetentionPolicy() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicy) *ResourcePolicySnapshotSchedulePolicyRetentionPolicy { + return v.RetentionPolicy + }).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) } -func (o RouterStatusBestRoutesForRouterOutput) SelfLink() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.SelfLink }).(pulumi.StringOutput) +// Contains one of an `hourlySchedule`, `dailySchedule`, or `weeklySchedule`. +// Structure is documented below. +func (o ResourcePolicySnapshotSchedulePolicyOutput) Schedule() ResourcePolicySnapshotSchedulePolicyScheduleOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicy) ResourcePolicySnapshotSchedulePolicySchedule { + return v.Schedule + }).(ResourcePolicySnapshotSchedulePolicyScheduleOutput) } -// A list of instance tags to which this route applies. -func (o RouterStatusBestRoutesForRouterOutput) Tags() pulumi.StringArrayOutput { - return o.ApplyT(func(v RouterStatusBestRoutesForRouter) []string { return v.Tags }).(pulumi.StringArrayOutput) +// Properties with which the snapshots are created, such as labels. +// Structure is documented below. +func (o ResourcePolicySnapshotSchedulePolicyOutput) SnapshotProperties() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicy) *ResourcePolicySnapshotSchedulePolicySnapshotProperties { + return v.SnapshotProperties + }).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) } -type RouterStatusBestRoutesForRouterArrayOutput struct{ *pulumi.OutputState } +type ResourcePolicySnapshotSchedulePolicyPtrOutput struct{ *pulumi.OutputState } -func (RouterStatusBestRoutesForRouterArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouterStatusBestRoutesForRouter)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicy)(nil)).Elem() } -func (o RouterStatusBestRoutesForRouterArrayOutput) ToRouterStatusBestRoutesForRouterArrayOutput() RouterStatusBestRoutesForRouterArrayOutput { +func (o ResourcePolicySnapshotSchedulePolicyPtrOutput) ToResourcePolicySnapshotSchedulePolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyPtrOutput { return o } -func (o RouterStatusBestRoutesForRouterArrayOutput) ToRouterStatusBestRoutesForRouterArrayOutputWithContext(ctx context.Context) RouterStatusBestRoutesForRouterArrayOutput { +func (o ResourcePolicySnapshotSchedulePolicyPtrOutput) ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyPtrOutput { return o } -func (o RouterStatusBestRoutesForRouterArrayOutput) Index(i pulumi.IntInput) RouterStatusBestRoutesForRouterOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterStatusBestRoutesForRouter { - return vs[0].([]RouterStatusBestRoutesForRouter)[vs[1].(int)] - }).(RouterStatusBestRoutesForRouterOutput) +func (o ResourcePolicySnapshotSchedulePolicyPtrOutput) Elem() ResourcePolicySnapshotSchedulePolicyOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicy) ResourcePolicySnapshotSchedulePolicy { + if v != nil { + return *v + } + var ret ResourcePolicySnapshotSchedulePolicy + return ret + }).(ResourcePolicySnapshotSchedulePolicyOutput) } -type SecurityPolicyAdaptiveProtectionConfig struct { - // Configuration for [Automatically deploy Adaptive Protection suggested rules](https://cloud.google.com/armor/docs/adaptive-protection-auto-deploy?hl=en). Structure is documented below. - // - // The `layer7DdosDefenseConfig` block supports: - AutoDeployConfig *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig `pulumi:"autoDeployConfig"` - // Configuration for [Google Cloud Armor Adaptive Protection Layer 7 DDoS Defense](https://cloud.google.com/armor/docs/adaptive-protection-overview?hl=en). Structure is documented below. - Layer7DdosDefenseConfig *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig `pulumi:"layer7DdosDefenseConfig"` +// Retention policy applied to snapshots created by this resource policy. +// Structure is documented below. +func (o ResourcePolicySnapshotSchedulePolicyPtrOutput) RetentionPolicy() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicy) *ResourcePolicySnapshotSchedulePolicyRetentionPolicy { + if v == nil { + return nil + } + return v.RetentionPolicy + }).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) } -// SecurityPolicyAdaptiveProtectionConfigInput is an input type that accepts SecurityPolicyAdaptiveProtectionConfigArgs and SecurityPolicyAdaptiveProtectionConfigOutput values. -// You can construct a concrete instance of `SecurityPolicyAdaptiveProtectionConfigInput` via: +// Contains one of an `hourlySchedule`, `dailySchedule`, or `weeklySchedule`. +// Structure is documented below. +func (o ResourcePolicySnapshotSchedulePolicyPtrOutput) Schedule() ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicy) *ResourcePolicySnapshotSchedulePolicySchedule { + if v == nil { + return nil + } + return &v.Schedule + }).(ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) +} + +// Properties with which the snapshots are created, such as labels. +// Structure is documented below. +func (o ResourcePolicySnapshotSchedulePolicyPtrOutput) SnapshotProperties() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicy) *ResourcePolicySnapshotSchedulePolicySnapshotProperties { + if v == nil { + return nil + } + return v.SnapshotProperties + }).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) +} + +type ResourcePolicySnapshotSchedulePolicyRetentionPolicy struct { + // Maximum age of the snapshot that is allowed to be kept. + MaxRetentionDays int `pulumi:"maxRetentionDays"` + // Specifies the behavior to apply to scheduled snapshots when + // the source disk is deleted. + // Default value is `KEEP_AUTO_SNAPSHOTS`. + // Possible values are: `KEEP_AUTO_SNAPSHOTS`, `APPLY_RETENTION_POLICY`. + OnSourceDiskDelete *string `pulumi:"onSourceDiskDelete"` +} + +// ResourcePolicySnapshotSchedulePolicyRetentionPolicyInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs and ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput values. +// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyRetentionPolicyInput` via: // -// SecurityPolicyAdaptiveProtectionConfigArgs{...} -type SecurityPolicyAdaptiveProtectionConfigInput interface { +// ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs{...} +type ResourcePolicySnapshotSchedulePolicyRetentionPolicyInput interface { pulumi.Input - ToSecurityPolicyAdaptiveProtectionConfigOutput() SecurityPolicyAdaptiveProtectionConfigOutput - ToSecurityPolicyAdaptiveProtectionConfigOutputWithContext(context.Context) SecurityPolicyAdaptiveProtectionConfigOutput + ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput + ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput } -type SecurityPolicyAdaptiveProtectionConfigArgs struct { - // Configuration for [Automatically deploy Adaptive Protection suggested rules](https://cloud.google.com/armor/docs/adaptive-protection-auto-deploy?hl=en). Structure is documented below. - // - // The `layer7DdosDefenseConfig` block supports: - AutoDeployConfig SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrInput `pulumi:"autoDeployConfig"` - // Configuration for [Google Cloud Armor Adaptive Protection Layer 7 DDoS Defense](https://cloud.google.com/armor/docs/adaptive-protection-overview?hl=en). Structure is documented below. - Layer7DdosDefenseConfig SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrInput `pulumi:"layer7DdosDefenseConfig"` +type ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs struct { + // Maximum age of the snapshot that is allowed to be kept. + MaxRetentionDays pulumi.IntInput `pulumi:"maxRetentionDays"` + // Specifies the behavior to apply to scheduled snapshots when + // the source disk is deleted. + // Default value is `KEEP_AUTO_SNAPSHOTS`. + // Possible values are: `KEEP_AUTO_SNAPSHOTS`, `APPLY_RETENTION_POLICY`. + OnSourceDiskDelete pulumi.StringPtrInput `pulumi:"onSourceDiskDelete"` } -func (SecurityPolicyAdaptiveProtectionConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyAdaptiveProtectionConfig)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyRetentionPolicy)(nil)).Elem() } -func (i SecurityPolicyAdaptiveProtectionConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigOutput() SecurityPolicyAdaptiveProtectionConfigOutput { - return i.ToSecurityPolicyAdaptiveProtectionConfigOutputWithContext(context.Background()) +func (i ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput { + return i.ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutputWithContext(context.Background()) } -func (i SecurityPolicyAdaptiveProtectionConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigOutput) +func (i ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) } -func (i SecurityPolicyAdaptiveProtectionConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigPtrOutput { - return i.ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(context.Background()) +func (i ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { + return i.ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(context.Background()) } -func (i SecurityPolicyAdaptiveProtectionConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigOutput).ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(ctx) +func (i ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput).ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(ctx) } -// SecurityPolicyAdaptiveProtectionConfigPtrInput is an input type that accepts SecurityPolicyAdaptiveProtectionConfigArgs, SecurityPolicyAdaptiveProtectionConfigPtr and SecurityPolicyAdaptiveProtectionConfigPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyAdaptiveProtectionConfigPtrInput` via: +// ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs, ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtr and ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput values. +// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrInput` via: // -// SecurityPolicyAdaptiveProtectionConfigArgs{...} +// ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs{...} // // or: // // nil -type SecurityPolicyAdaptiveProtectionConfigPtrInput interface { +type ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrInput interface { pulumi.Input - ToSecurityPolicyAdaptiveProtectionConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigPtrOutput - ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(context.Context) SecurityPolicyAdaptiveProtectionConfigPtrOutput + ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput + ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput } -type securityPolicyAdaptiveProtectionConfigPtrType SecurityPolicyAdaptiveProtectionConfigArgs +type resourcePolicySnapshotSchedulePolicyRetentionPolicyPtrType ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs -func SecurityPolicyAdaptiveProtectionConfigPtr(v *SecurityPolicyAdaptiveProtectionConfigArgs) SecurityPolicyAdaptiveProtectionConfigPtrInput { - return (*securityPolicyAdaptiveProtectionConfigPtrType)(v) +func ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtr(v *ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs) ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrInput { + return (*resourcePolicySnapshotSchedulePolicyRetentionPolicyPtrType)(v) } -func (*securityPolicyAdaptiveProtectionConfigPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyAdaptiveProtectionConfig)(nil)).Elem() +func (*resourcePolicySnapshotSchedulePolicyRetentionPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicyRetentionPolicy)(nil)).Elem() } -func (i *securityPolicyAdaptiveProtectionConfigPtrType) ToSecurityPolicyAdaptiveProtectionConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigPtrOutput { - return i.ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(context.Background()) +func (i *resourcePolicySnapshotSchedulePolicyRetentionPolicyPtrType) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { + return i.ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(context.Background()) } -func (i *securityPolicyAdaptiveProtectionConfigPtrType) ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigPtrOutput) +func (i *resourcePolicySnapshotSchedulePolicyRetentionPolicyPtrType) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) } -type SecurityPolicyAdaptiveProtectionConfigOutput struct{ *pulumi.OutputState } +type ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput struct{ *pulumi.OutputState } -func (SecurityPolicyAdaptiveProtectionConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyAdaptiveProtectionConfig)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyRetentionPolicy)(nil)).Elem() } -func (o SecurityPolicyAdaptiveProtectionConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigOutput() SecurityPolicyAdaptiveProtectionConfigOutput { +func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput { return o } -func (o SecurityPolicyAdaptiveProtectionConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigOutput { +func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput { return o } -func (o SecurityPolicyAdaptiveProtectionConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigPtrOutput { - return o.ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(context.Background()) +func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { + return o.ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(context.Background()) } -func (o SecurityPolicyAdaptiveProtectionConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyAdaptiveProtectionConfig) *SecurityPolicyAdaptiveProtectionConfig { +func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicySnapshotSchedulePolicyRetentionPolicy) *ResourcePolicySnapshotSchedulePolicyRetentionPolicy { return &v - }).(SecurityPolicyAdaptiveProtectionConfigPtrOutput) + }).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) } -// Configuration for [Automatically deploy Adaptive Protection suggested rules](https://cloud.google.com/armor/docs/adaptive-protection-auto-deploy?hl=en). Structure is documented below. -// -// The `layer7DdosDefenseConfig` block supports: -func (o SecurityPolicyAdaptiveProtectionConfigOutput) AutoDeployConfig() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { - return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfig) *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig { - return v.AutoDeployConfig - }).(SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) +// Maximum age of the snapshot that is allowed to be kept. +func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) MaxRetentionDays() pulumi.IntOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyRetentionPolicy) int { return v.MaxRetentionDays }).(pulumi.IntOutput) } -// Configuration for [Google Cloud Armor Adaptive Protection Layer 7 DDoS Defense](https://cloud.google.com/armor/docs/adaptive-protection-overview?hl=en). Structure is documented below. -func (o SecurityPolicyAdaptiveProtectionConfigOutput) Layer7DdosDefenseConfig() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { - return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfig) *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig { - return v.Layer7DdosDefenseConfig - }).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) +// Specifies the behavior to apply to scheduled snapshots when +// the source disk is deleted. +// Default value is `KEEP_AUTO_SNAPSHOTS`. +// Possible values are: `KEEP_AUTO_SNAPSHOTS`, `APPLY_RETENTION_POLICY`. +func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) OnSourceDiskDelete() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyRetentionPolicy) *string { return v.OnSourceDiskDelete }).(pulumi.StringPtrOutput) } -type SecurityPolicyAdaptiveProtectionConfigPtrOutput struct{ *pulumi.OutputState } +type ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput struct{ *pulumi.OutputState } -func (SecurityPolicyAdaptiveProtectionConfigPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyAdaptiveProtectionConfig)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicyRetentionPolicy)(nil)).Elem() } -func (o SecurityPolicyAdaptiveProtectionConfigPtrOutput) ToSecurityPolicyAdaptiveProtectionConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigPtrOutput { +func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { return o } -func (o SecurityPolicyAdaptiveProtectionConfigPtrOutput) ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigPtrOutput { +func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { return o } -func (o SecurityPolicyAdaptiveProtectionConfigPtrOutput) Elem() SecurityPolicyAdaptiveProtectionConfigOutput { - return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfig) SecurityPolicyAdaptiveProtectionConfig { +func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) Elem() ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyRetentionPolicy) ResourcePolicySnapshotSchedulePolicyRetentionPolicy { if v != nil { return *v } - var ret SecurityPolicyAdaptiveProtectionConfig + var ret ResourcePolicySnapshotSchedulePolicyRetentionPolicy return ret - }).(SecurityPolicyAdaptiveProtectionConfigOutput) + }).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) } -// Configuration for [Automatically deploy Adaptive Protection suggested rules](https://cloud.google.com/armor/docs/adaptive-protection-auto-deploy?hl=en). Structure is documented below. -// -// The `layer7DdosDefenseConfig` block supports: -func (o SecurityPolicyAdaptiveProtectionConfigPtrOutput) AutoDeployConfig() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { - return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfig) *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig { +// Maximum age of the snapshot that is allowed to be kept. +func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) MaxRetentionDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyRetentionPolicy) *int { if v == nil { return nil } - return v.AutoDeployConfig - }).(SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) + return &v.MaxRetentionDays + }).(pulumi.IntPtrOutput) } -// Configuration for [Google Cloud Armor Adaptive Protection Layer 7 DDoS Defense](https://cloud.google.com/armor/docs/adaptive-protection-overview?hl=en). Structure is documented below. -func (o SecurityPolicyAdaptiveProtectionConfigPtrOutput) Layer7DdosDefenseConfig() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { - return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfig) *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig { +// Specifies the behavior to apply to scheduled snapshots when +// the source disk is deleted. +// Default value is `KEEP_AUTO_SNAPSHOTS`. +// Possible values are: `KEEP_AUTO_SNAPSHOTS`, `APPLY_RETENTION_POLICY`. +func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) OnSourceDiskDelete() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyRetentionPolicy) *string { if v == nil { return nil } - return v.Layer7DdosDefenseConfig - }).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) + return v.OnSourceDiskDelete + }).(pulumi.StringPtrOutput) } -type SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig struct { - // Rules are only automatically deployed for alerts on potential attacks with confidence scores greater than this threshold. - ConfidenceThreshold *float64 `pulumi:"confidenceThreshold"` - // Google Cloud Armor stops applying the action in the automatically deployed rule to an identified attacker after this duration. The rule continues to operate against new requests. - ExpirationSec *int `pulumi:"expirationSec"` - // Rules are only automatically deployed when the estimated impact to baseline traffic from the suggested mitigation is below this threshold. - ImpactedBaselineThreshold *float64 `pulumi:"impactedBaselineThreshold"` - // Identifies new attackers only when the load to the backend service that is under attack exceeds this threshold. - LoadThreshold *float64 `pulumi:"loadThreshold"` +type ResourcePolicySnapshotSchedulePolicySchedule struct { + // The policy will execute every nth day at the specified time. + // Structure is documented below. + DailySchedule *ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule `pulumi:"dailySchedule"` + // The policy will execute every nth hour starting at the specified time. + // Structure is documented below. + HourlySchedule *ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule `pulumi:"hourlySchedule"` + // Allows specifying a snapshot time for each day of the week. + // Structure is documented below. + WeeklySchedule *ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule `pulumi:"weeklySchedule"` } -// SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigInput is an input type that accepts SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs and SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput values. -// You can construct a concrete instance of `SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigInput` via: +// ResourcePolicySnapshotSchedulePolicyScheduleInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleArgs and ResourcePolicySnapshotSchedulePolicyScheduleOutput values. +// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleInput` via: // -// SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs{...} -type SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigInput interface { +// ResourcePolicySnapshotSchedulePolicyScheduleArgs{...} +type ResourcePolicySnapshotSchedulePolicyScheduleInput interface { pulumi.Input - ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput - ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutputWithContext(context.Context) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput + ToResourcePolicySnapshotSchedulePolicyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleOutput + ToResourcePolicySnapshotSchedulePolicyScheduleOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleOutput } -type SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs struct { - // Rules are only automatically deployed for alerts on potential attacks with confidence scores greater than this threshold. - ConfidenceThreshold pulumi.Float64PtrInput `pulumi:"confidenceThreshold"` - // Google Cloud Armor stops applying the action in the automatically deployed rule to an identified attacker after this duration. The rule continues to operate against new requests. - ExpirationSec pulumi.IntPtrInput `pulumi:"expirationSec"` - // Rules are only automatically deployed when the estimated impact to baseline traffic from the suggested mitigation is below this threshold. - ImpactedBaselineThreshold pulumi.Float64PtrInput `pulumi:"impactedBaselineThreshold"` - // Identifies new attackers only when the load to the backend service that is under attack exceeds this threshold. - LoadThreshold pulumi.Float64PtrInput `pulumi:"loadThreshold"` +type ResourcePolicySnapshotSchedulePolicyScheduleArgs struct { + // The policy will execute every nth day at the specified time. + // Structure is documented below. + DailySchedule ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrInput `pulumi:"dailySchedule"` + // The policy will execute every nth hour starting at the specified time. + // Structure is documented below. + HourlySchedule ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrInput `pulumi:"hourlySchedule"` + // Allows specifying a snapshot time for each day of the week. + // Structure is documented below. + WeeklySchedule ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrInput `pulumi:"weeklySchedule"` } -func (SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicyScheduleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicySchedule)(nil)).Elem() } -func (i SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput { - return i.ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutputWithContext(context.Background()) +func (i ResourcePolicySnapshotSchedulePolicyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleOutput { + return i.ToResourcePolicySnapshotSchedulePolicyScheduleOutputWithContext(context.Background()) } -func (i SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) +func (i ResourcePolicySnapshotSchedulePolicyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleOutput) } -func (i SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { - return i.ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(context.Background()) +func (i ResourcePolicySnapshotSchedulePolicyScheduleArgs) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { + return i.ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(context.Background()) } -func (i SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput).ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(ctx) +func (i ResourcePolicySnapshotSchedulePolicyScheduleArgs) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleOutput).ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(ctx) } -// SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrInput is an input type that accepts SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs, SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtr and SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrInput` via: +// ResourcePolicySnapshotSchedulePolicySchedulePtrInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleArgs, ResourcePolicySnapshotSchedulePolicySchedulePtr and ResourcePolicySnapshotSchedulePolicySchedulePtrOutput values. +// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicySchedulePtrInput` via: // -// SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs{...} +// ResourcePolicySnapshotSchedulePolicyScheduleArgs{...} // // or: // // nil -type SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrInput interface { +type ResourcePolicySnapshotSchedulePolicySchedulePtrInput interface { pulumi.Input - ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput - ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(context.Context) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput + ToResourcePolicySnapshotSchedulePolicySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicySchedulePtrOutput + ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicySchedulePtrOutput } -type securityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrType SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs +type resourcePolicySnapshotSchedulePolicySchedulePtrType ResourcePolicySnapshotSchedulePolicyScheduleArgs -func SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtr(v *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrInput { - return (*securityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrType)(v) +func ResourcePolicySnapshotSchedulePolicySchedulePtr(v *ResourcePolicySnapshotSchedulePolicyScheduleArgs) ResourcePolicySnapshotSchedulePolicySchedulePtrInput { + return (*resourcePolicySnapshotSchedulePolicySchedulePtrType)(v) } -func (*securityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig)(nil)).Elem() +func (*resourcePolicySnapshotSchedulePolicySchedulePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicySchedule)(nil)).Elem() } -func (i *securityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrType) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { - return i.ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(context.Background()) +func (i *resourcePolicySnapshotSchedulePolicySchedulePtrType) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { + return i.ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(context.Background()) } -func (i *securityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrType) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) +func (i *resourcePolicySnapshotSchedulePolicySchedulePtrType) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) } -type SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput struct{ *pulumi.OutputState } +type ResourcePolicySnapshotSchedulePolicyScheduleOutput struct{ *pulumi.OutputState } -func (SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicyScheduleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicySchedule)(nil)).Elem() } -func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput { +func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleOutput { return o } -func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput { +func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleOutput { return o } -func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { - return o.ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(context.Background()) +func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { + return o.ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(context.Background()) } -func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig { +func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicySnapshotSchedulePolicySchedule { return &v - }).(SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) -} - -// Rules are only automatically deployed for alerts on potential attacks with confidence scores greater than this threshold. -func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) ConfidenceThreshold() pulumi.Float64PtrOutput { - return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *float64 { return v.ConfidenceThreshold }).(pulumi.Float64PtrOutput) + }).(ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) } -// Google Cloud Armor stops applying the action in the automatically deployed rule to an identified attacker after this duration. The rule continues to operate against new requests. -func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) ExpirationSec() pulumi.IntPtrOutput { - return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *int { return v.ExpirationSec }).(pulumi.IntPtrOutput) +// The policy will execute every nth day at the specified time. +// Structure is documented below. +func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) DailySchedule() ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule { + return v.DailySchedule + }).(ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) } -// Rules are only automatically deployed when the estimated impact to baseline traffic from the suggested mitigation is below this threshold. -func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) ImpactedBaselineThreshold() pulumi.Float64PtrOutput { - return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *float64 { - return v.ImpactedBaselineThreshold - }).(pulumi.Float64PtrOutput) +// The policy will execute every nth hour starting at the specified time. +// Structure is documented below. +func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) HourlySchedule() ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule { + return v.HourlySchedule + }).(ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) } -// Identifies new attackers only when the load to the backend service that is under attack exceeds this threshold. -func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) LoadThreshold() pulumi.Float64PtrOutput { - return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *float64 { return v.LoadThreshold }).(pulumi.Float64PtrOutput) +// Allows specifying a snapshot time for each day of the week. +// Structure is documented below. +func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) WeeklySchedule() ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule { + return v.WeeklySchedule + }).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) } -type SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput struct{ *pulumi.OutputState } +type ResourcePolicySnapshotSchedulePolicySchedulePtrOutput struct{ *pulumi.OutputState } -func (SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicySchedule)(nil)).Elem() } -func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { +func (o ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { return o } -func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { +func (o ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { return o } -func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) Elem() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput { - return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig { +func (o ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) Elem() ResourcePolicySnapshotSchedulePolicyScheduleOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySchedule) ResourcePolicySnapshotSchedulePolicySchedule { if v != nil { return *v } - var ret SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig + var ret ResourcePolicySnapshotSchedulePolicySchedule return ret - }).(SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) -} - -// Rules are only automatically deployed for alerts on potential attacks with confidence scores greater than this threshold. -func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) ConfidenceThreshold() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *float64 { - if v == nil { - return nil - } - return v.ConfidenceThreshold - }).(pulumi.Float64PtrOutput) + }).(ResourcePolicySnapshotSchedulePolicyScheduleOutput) } -// Google Cloud Armor stops applying the action in the automatically deployed rule to an identified attacker after this duration. The rule continues to operate against new requests. -func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) ExpirationSec() pulumi.IntPtrOutput { - return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *int { +// The policy will execute every nth day at the specified time. +// Structure is documented below. +func (o ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) DailySchedule() ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule { if v == nil { return nil } - return v.ExpirationSec - }).(pulumi.IntPtrOutput) + return v.DailySchedule + }).(ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) } -// Rules are only automatically deployed when the estimated impact to baseline traffic from the suggested mitigation is below this threshold. -func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) ImpactedBaselineThreshold() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *float64 { +// The policy will execute every nth hour starting at the specified time. +// Structure is documented below. +func (o ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) HourlySchedule() ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule { if v == nil { return nil } - return v.ImpactedBaselineThreshold - }).(pulumi.Float64PtrOutput) + return v.HourlySchedule + }).(ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) } -// Identifies new attackers only when the load to the backend service that is under attack exceeds this threshold. -func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) LoadThreshold() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *float64 { +// Allows specifying a snapshot time for each day of the week. +// Structure is documented below. +func (o ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) WeeklySchedule() ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule { if v == nil { return nil } - return v.LoadThreshold - }).(pulumi.Float64PtrOutput) + return v.WeeklySchedule + }).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) } -type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig struct { - // If set to true, enables CAAP for L7 DDoS detection. - Enable *bool `pulumi:"enable"` - // Rule visibility. Supported values include: "STANDARD", "PREMIUM". - RuleVisibility *string `pulumi:"ruleVisibility"` +type ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule struct { + // Defines a schedule with units measured in days. The value determines how many days pass between the start of each cycle. Days in cycle for snapshot schedule policy must be 1. + DaysInCycle int `pulumi:"daysInCycle"` + // This must be in UTC format that resolves to one of + // 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, + // both 13:00-5 and 08:00 are valid. + StartTime string `pulumi:"startTime"` } -// SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigInput is an input type that accepts SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs and SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput values. -// You can construct a concrete instance of `SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigInput` via: +// ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs and ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput values. +// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleInput` via: // -// SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs{...} -type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigInput interface { +// ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs{...} +type ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleInput interface { pulumi.Input - ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput - ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutputWithContext(context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput + ToResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput + ToResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput } -type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs struct { - // If set to true, enables CAAP for L7 DDoS detection. - Enable pulumi.BoolPtrInput `pulumi:"enable"` - // Rule visibility. Supported values include: "STANDARD", "PREMIUM". - RuleVisibility pulumi.StringPtrInput `pulumi:"ruleVisibility"` +type ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs struct { + // Defines a schedule with units measured in days. The value determines how many days pass between the start of each cycle. Days in cycle for snapshot schedule policy must be 1. + DaysInCycle pulumi.IntInput `pulumi:"daysInCycle"` + // This must be in UTC format that resolves to one of + // 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, + // both 13:00-5 and 08:00 are valid. + StartTime pulumi.StringInput `pulumi:"startTime"` } -func (SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule)(nil)).Elem() } -func (i SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput { - return i.ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutputWithContext(context.Background()) +func (i ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput { + return i.ToResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutputWithContext(context.Background()) } -func (i SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) +func (i ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) } -func (i SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { - return i.ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(context.Background()) +func (i ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { + return i.ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(context.Background()) } -func (i SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput).ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(ctx) +func (i ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput).ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(ctx) } -// SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrInput is an input type that accepts SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs, SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtr and SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrInput` via: +// ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs, ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtr and ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput values. +// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrInput` via: // -// SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs{...} +// ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs{...} // // or: // // nil -type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrInput interface { +type ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrInput interface { pulumi.Input - ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput - ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput + ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput + ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput } -type securityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrType SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs +type resourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrType ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs -func SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtr(v *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrInput { - return (*securityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrType)(v) +func ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtr(v *ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs) ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrInput { + return (*resourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrType)(v) } -func (*securityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig)(nil)).Elem() +func (*resourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule)(nil)).Elem() } -func (i *securityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrType) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { - return i.ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(context.Background()) +func (i *resourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrType) ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { + return i.ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(context.Background()) } -func (i *securityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrType) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) +func (i *resourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrType) ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) } -type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput struct{ *pulumi.OutputState } +type ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput struct{ *pulumi.OutputState } -func (SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule)(nil)).Elem() } -func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput { +func (o ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput { return o } -func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput { +func (o ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput { return o } -func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { - return o.ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(context.Background()) +func (o ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { + return o.ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(context.Background()) } -func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig { +func (o ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule { return &v - }).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) + }).(ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) } -// If set to true, enables CAAP for L7 DDoS detection. -func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) Enable() pulumi.BoolPtrOutput { - return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) *bool { return v.Enable }).(pulumi.BoolPtrOutput) +// Defines a schedule with units measured in days. The value determines how many days pass between the start of each cycle. Days in cycle for snapshot schedule policy must be 1. +func (o ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) DaysInCycle() pulumi.IntOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule) int { return v.DaysInCycle }).(pulumi.IntOutput) } -// Rule visibility. Supported values include: "STANDARD", "PREMIUM". -func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) RuleVisibility() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) *string { return v.RuleVisibility }).(pulumi.StringPtrOutput) +// This must be in UTC format that resolves to one of +// 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, +// both 13:00-5 and 08:00 are valid. +func (o ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) StartTime() pulumi.StringOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule) string { return v.StartTime }).(pulumi.StringOutput) } -type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput struct{ *pulumi.OutputState } +type ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput struct{ *pulumi.OutputState } -func (SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule)(nil)).Elem() } -func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { +func (o ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { return o } -func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { +func (o ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { return o } -func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) Elem() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput { - return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig { +func (o ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) Elem() ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule) ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule { if v != nil { return *v } - var ret SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig + var ret ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule return ret - }).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) + }).(ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) } -// If set to true, enables CAAP for L7 DDoS detection. -func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) Enable() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) *bool { +// Defines a schedule with units measured in days. The value determines how many days pass between the start of each cycle. Days in cycle for snapshot schedule policy must be 1. +func (o ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) DaysInCycle() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule) *int { if v == nil { return nil } - return v.Enable - }).(pulumi.BoolPtrOutput) + return &v.DaysInCycle + }).(pulumi.IntPtrOutput) } -// Rule visibility. Supported values include: "STANDARD", "PREMIUM". -func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) RuleVisibility() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) *string { +// This must be in UTC format that resolves to one of +// 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, +// both 13:00-5 and 08:00 are valid. +func (o ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) StartTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule) *string { if v == nil { return nil } - return v.RuleVisibility + return &v.StartTime }).(pulumi.StringPtrOutput) } -type SecurityPolicyAdvancedOptionsConfig struct { - // Custom configuration to apply the JSON parsing. Only applicable when - // `jsonParsing` is set to `STANDARD`. Structure is documented below. - JsonCustomConfig *SecurityPolicyAdvancedOptionsConfigJsonCustomConfig `pulumi:"jsonCustomConfig"` - // Whether or not to JSON parse the payload body. Defaults to `DISABLED`. - // * `DISABLED` - Don't parse JSON payloads in POST bodies. - // * `STANDARD` - Parse JSON payloads in POST bodies. - // * `STANDARD_WITH_GRAPHQL` - Parse JSON and GraphQL payloads in POST bodies. - JsonParsing *string `pulumi:"jsonParsing"` - // Log level to use. Defaults to `NORMAL`. - // * `NORMAL` - Normal log level. - // * `VERBOSE` - Verbose log level. - LogLevel *string `pulumi:"logLevel"` - // An optional list of case-insensitive request header names to use for resolving the callers client IP address. - UserIpRequestHeaders []string `pulumi:"userIpRequestHeaders"` +type ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule struct { + // The number of hours between snapshots. + HoursInCycle int `pulumi:"hoursInCycle"` + // Time within the window to start the operations. + // It must be in an hourly format "HH:MM", + // where HH : [00-23] and MM : [00] GMT. eg: 21:00 + StartTime string `pulumi:"startTime"` } -// SecurityPolicyAdvancedOptionsConfigInput is an input type that accepts SecurityPolicyAdvancedOptionsConfigArgs and SecurityPolicyAdvancedOptionsConfigOutput values. -// You can construct a concrete instance of `SecurityPolicyAdvancedOptionsConfigInput` via: +// ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs and ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput values. +// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleInput` via: // -// SecurityPolicyAdvancedOptionsConfigArgs{...} -type SecurityPolicyAdvancedOptionsConfigInput interface { +// ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs{...} +type ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleInput interface { pulumi.Input - ToSecurityPolicyAdvancedOptionsConfigOutput() SecurityPolicyAdvancedOptionsConfigOutput - ToSecurityPolicyAdvancedOptionsConfigOutputWithContext(context.Context) SecurityPolicyAdvancedOptionsConfigOutput + ToResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput + ToResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput } -type SecurityPolicyAdvancedOptionsConfigArgs struct { - // Custom configuration to apply the JSON parsing. Only applicable when - // `jsonParsing` is set to `STANDARD`. Structure is documented below. - JsonCustomConfig SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrInput `pulumi:"jsonCustomConfig"` - // Whether or not to JSON parse the payload body. Defaults to `DISABLED`. - // * `DISABLED` - Don't parse JSON payloads in POST bodies. - // * `STANDARD` - Parse JSON payloads in POST bodies. - // * `STANDARD_WITH_GRAPHQL` - Parse JSON and GraphQL payloads in POST bodies. - JsonParsing pulumi.StringPtrInput `pulumi:"jsonParsing"` - // Log level to use. Defaults to `NORMAL`. - // * `NORMAL` - Normal log level. - // * `VERBOSE` - Verbose log level. - LogLevel pulumi.StringPtrInput `pulumi:"logLevel"` - // An optional list of case-insensitive request header names to use for resolving the callers client IP address. - UserIpRequestHeaders pulumi.StringArrayInput `pulumi:"userIpRequestHeaders"` +type ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs struct { + // The number of hours between snapshots. + HoursInCycle pulumi.IntInput `pulumi:"hoursInCycle"` + // Time within the window to start the operations. + // It must be in an hourly format "HH:MM", + // where HH : [00-23] and MM : [00] GMT. eg: 21:00 + StartTime pulumi.StringInput `pulumi:"startTime"` } -func (SecurityPolicyAdvancedOptionsConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyAdvancedOptionsConfig)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule)(nil)).Elem() } -func (i SecurityPolicyAdvancedOptionsConfigArgs) ToSecurityPolicyAdvancedOptionsConfigOutput() SecurityPolicyAdvancedOptionsConfigOutput { - return i.ToSecurityPolicyAdvancedOptionsConfigOutputWithContext(context.Background()) +func (i ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput { + return i.ToResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutputWithContext(context.Background()) } -func (i SecurityPolicyAdvancedOptionsConfigArgs) ToSecurityPolicyAdvancedOptionsConfigOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdvancedOptionsConfigOutput) +func (i ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) } -func (i SecurityPolicyAdvancedOptionsConfigArgs) ToSecurityPolicyAdvancedOptionsConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigPtrOutput { - return i.ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(context.Background()) +func (i ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { + return i.ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(context.Background()) } -func (i SecurityPolicyAdvancedOptionsConfigArgs) ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdvancedOptionsConfigOutput).ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(ctx) +func (i ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput).ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(ctx) } -// SecurityPolicyAdvancedOptionsConfigPtrInput is an input type that accepts SecurityPolicyAdvancedOptionsConfigArgs, SecurityPolicyAdvancedOptionsConfigPtr and SecurityPolicyAdvancedOptionsConfigPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyAdvancedOptionsConfigPtrInput` via: +// ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs, ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtr and ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput values. +// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrInput` via: // -// SecurityPolicyAdvancedOptionsConfigArgs{...} +// ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs{...} // // or: // // nil -type SecurityPolicyAdvancedOptionsConfigPtrInput interface { +type ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrInput interface { pulumi.Input - ToSecurityPolicyAdvancedOptionsConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigPtrOutput - ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(context.Context) SecurityPolicyAdvancedOptionsConfigPtrOutput + ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput + ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput } -type securityPolicyAdvancedOptionsConfigPtrType SecurityPolicyAdvancedOptionsConfigArgs +type resourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrType ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs -func SecurityPolicyAdvancedOptionsConfigPtr(v *SecurityPolicyAdvancedOptionsConfigArgs) SecurityPolicyAdvancedOptionsConfigPtrInput { - return (*securityPolicyAdvancedOptionsConfigPtrType)(v) +func ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtr(v *ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs) ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrInput { + return (*resourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrType)(v) } -func (*securityPolicyAdvancedOptionsConfigPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyAdvancedOptionsConfig)(nil)).Elem() +func (*resourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule)(nil)).Elem() } -func (i *securityPolicyAdvancedOptionsConfigPtrType) ToSecurityPolicyAdvancedOptionsConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigPtrOutput { - return i.ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(context.Background()) +func (i *resourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrType) ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { + return i.ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(context.Background()) } -func (i *securityPolicyAdvancedOptionsConfigPtrType) ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdvancedOptionsConfigPtrOutput) +func (i *resourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrType) ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) } -type SecurityPolicyAdvancedOptionsConfigOutput struct{ *pulumi.OutputState } +type ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput struct{ *pulumi.OutputState } -func (SecurityPolicyAdvancedOptionsConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyAdvancedOptionsConfig)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule)(nil)).Elem() } -func (o SecurityPolicyAdvancedOptionsConfigOutput) ToSecurityPolicyAdvancedOptionsConfigOutput() SecurityPolicyAdvancedOptionsConfigOutput { +func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput { return o } -func (o SecurityPolicyAdvancedOptionsConfigOutput) ToSecurityPolicyAdvancedOptionsConfigOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigOutput { +func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput { return o } -func (o SecurityPolicyAdvancedOptionsConfigOutput) ToSecurityPolicyAdvancedOptionsConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigPtrOutput { - return o.ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(context.Background()) +func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { + return o.ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(context.Background()) } -func (o SecurityPolicyAdvancedOptionsConfigOutput) ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyAdvancedOptionsConfig) *SecurityPolicyAdvancedOptionsConfig { +func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule { return &v - }).(SecurityPolicyAdvancedOptionsConfigPtrOutput) -} - -// Custom configuration to apply the JSON parsing. Only applicable when -// `jsonParsing` is set to `STANDARD`. Structure is documented below. -func (o SecurityPolicyAdvancedOptionsConfigOutput) JsonCustomConfig() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { - return o.ApplyT(func(v SecurityPolicyAdvancedOptionsConfig) *SecurityPolicyAdvancedOptionsConfigJsonCustomConfig { - return v.JsonCustomConfig - }).(SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) -} - -// Whether or not to JSON parse the payload body. Defaults to `DISABLED`. -// * `DISABLED` - Don't parse JSON payloads in POST bodies. -// * `STANDARD` - Parse JSON payloads in POST bodies. -// * `STANDARD_WITH_GRAPHQL` - Parse JSON and GraphQL payloads in POST bodies. -func (o SecurityPolicyAdvancedOptionsConfigOutput) JsonParsing() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyAdvancedOptionsConfig) *string { return v.JsonParsing }).(pulumi.StringPtrOutput) + }).(ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) } -// Log level to use. Defaults to `NORMAL`. -// * `NORMAL` - Normal log level. -// * `VERBOSE` - Verbose log level. -func (o SecurityPolicyAdvancedOptionsConfigOutput) LogLevel() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyAdvancedOptionsConfig) *string { return v.LogLevel }).(pulumi.StringPtrOutput) +// The number of hours between snapshots. +func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) HoursInCycle() pulumi.IntOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule) int { return v.HoursInCycle }).(pulumi.IntOutput) } -// An optional list of case-insensitive request header names to use for resolving the callers client IP address. -func (o SecurityPolicyAdvancedOptionsConfigOutput) UserIpRequestHeaders() pulumi.StringArrayOutput { - return o.ApplyT(func(v SecurityPolicyAdvancedOptionsConfig) []string { return v.UserIpRequestHeaders }).(pulumi.StringArrayOutput) +// Time within the window to start the operations. +// It must be in an hourly format "HH:MM", +// where HH : [00-23] and MM : [00] GMT. eg: 21:00 +func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) StartTime() pulumi.StringOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule) string { return v.StartTime }).(pulumi.StringOutput) } -type SecurityPolicyAdvancedOptionsConfigPtrOutput struct{ *pulumi.OutputState } +type ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput struct{ *pulumi.OutputState } -func (SecurityPolicyAdvancedOptionsConfigPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyAdvancedOptionsConfig)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule)(nil)).Elem() } -func (o SecurityPolicyAdvancedOptionsConfigPtrOutput) ToSecurityPolicyAdvancedOptionsConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigPtrOutput { +func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { return o } -func (o SecurityPolicyAdvancedOptionsConfigPtrOutput) ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigPtrOutput { +func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { return o } -func (o SecurityPolicyAdvancedOptionsConfigPtrOutput) Elem() SecurityPolicyAdvancedOptionsConfigOutput { - return o.ApplyT(func(v *SecurityPolicyAdvancedOptionsConfig) SecurityPolicyAdvancedOptionsConfig { +func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) Elem() ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule) ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule { if v != nil { return *v } - var ret SecurityPolicyAdvancedOptionsConfig + var ret ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule return ret - }).(SecurityPolicyAdvancedOptionsConfigOutput) -} - -// Custom configuration to apply the JSON parsing. Only applicable when -// `jsonParsing` is set to `STANDARD`. Structure is documented below. -func (o SecurityPolicyAdvancedOptionsConfigPtrOutput) JsonCustomConfig() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { - return o.ApplyT(func(v *SecurityPolicyAdvancedOptionsConfig) *SecurityPolicyAdvancedOptionsConfigJsonCustomConfig { - if v == nil { - return nil - } - return v.JsonCustomConfig - }).(SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) + }).(ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) } -// Whether or not to JSON parse the payload body. Defaults to `DISABLED`. -// * `DISABLED` - Don't parse JSON payloads in POST bodies. -// * `STANDARD` - Parse JSON payloads in POST bodies. -// * `STANDARD_WITH_GRAPHQL` - Parse JSON and GraphQL payloads in POST bodies. -func (o SecurityPolicyAdvancedOptionsConfigPtrOutput) JsonParsing() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityPolicyAdvancedOptionsConfig) *string { +// The number of hours between snapshots. +func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) HoursInCycle() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule) *int { if v == nil { return nil } - return v.JsonParsing - }).(pulumi.StringPtrOutput) + return &v.HoursInCycle + }).(pulumi.IntPtrOutput) } -// Log level to use. Defaults to `NORMAL`. -// * `NORMAL` - Normal log level. -// * `VERBOSE` - Verbose log level. -func (o SecurityPolicyAdvancedOptionsConfigPtrOutput) LogLevel() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityPolicyAdvancedOptionsConfig) *string { +// Time within the window to start the operations. +// It must be in an hourly format "HH:MM", +// where HH : [00-23] and MM : [00] GMT. eg: 21:00 +func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) StartTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule) *string { if v == nil { return nil } - return v.LogLevel + return &v.StartTime }).(pulumi.StringPtrOutput) } -// An optional list of case-insensitive request header names to use for resolving the callers client IP address. -func (o SecurityPolicyAdvancedOptionsConfigPtrOutput) UserIpRequestHeaders() pulumi.StringArrayOutput { - return o.ApplyT(func(v *SecurityPolicyAdvancedOptionsConfig) []string { - if v == nil { - return nil - } - return v.UserIpRequestHeaders - }).(pulumi.StringArrayOutput) -} - -type SecurityPolicyAdvancedOptionsConfigJsonCustomConfig struct { - // A list of custom Content-Type header values to apply the JSON parsing. The - // format of the Content-Type header values is defined in - // [RFC 1341](https://www.ietf.org/rfc/rfc1341.txt). When configuring a custom Content-Type header - // value, only the type/subtype needs to be specified, and the parameters should be excluded. - ContentTypes []string `pulumi:"contentTypes"` +type ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule struct { + // May contain up to seven (one for each day of the week) snapshot times. + // Structure is documented below. + DayOfWeeks []ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek `pulumi:"dayOfWeeks"` } -// SecurityPolicyAdvancedOptionsConfigJsonCustomConfigInput is an input type that accepts SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs and SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput values. -// You can construct a concrete instance of `SecurityPolicyAdvancedOptionsConfigJsonCustomConfigInput` via: -// -// SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs{...} -type SecurityPolicyAdvancedOptionsConfigJsonCustomConfigInput interface { +// ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs and ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput values. +// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleInput` via: +// +// ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs{...} +type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleInput interface { pulumi.Input - ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput - ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutputWithContext(context.Context) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput + ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput + ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput } -type SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs struct { - // A list of custom Content-Type header values to apply the JSON parsing. The - // format of the Content-Type header values is defined in - // [RFC 1341](https://www.ietf.org/rfc/rfc1341.txt). When configuring a custom Content-Type header - // value, only the type/subtype needs to be specified, and the parameters should be excluded. - ContentTypes pulumi.StringArrayInput `pulumi:"contentTypes"` +type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs struct { + // May contain up to seven (one for each day of the week) snapshot times. + // Structure is documented below. + DayOfWeeks ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayInput `pulumi:"dayOfWeeks"` } -func (SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyAdvancedOptionsConfigJsonCustomConfig)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule)(nil)).Elem() } -func (i SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput { - return i.ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutputWithContext(context.Background()) +func (i ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput { + return i.ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutputWithContext(context.Background()) } -func (i SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput) +func (i ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput) } -func (i SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { - return i.ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(context.Background()) +func (i ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { + return i.ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(context.Background()) } -func (i SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput).ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(ctx) +func (i ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput).ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(ctx) } -// SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrInput is an input type that accepts SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs, SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtr and SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrInput` via: +// ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs, ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtr and ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput values. +// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrInput` via: // -// SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs{...} +// ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs{...} // // or: // // nil -type SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrInput interface { +type ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrInput interface { pulumi.Input - ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput - ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(context.Context) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput + ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput + ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput } -type securityPolicyAdvancedOptionsConfigJsonCustomConfigPtrType SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs +type resourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrType ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs -func SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtr(v *SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrInput { - return (*securityPolicyAdvancedOptionsConfigJsonCustomConfigPtrType)(v) +func ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtr(v *ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs) ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrInput { + return (*resourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrType)(v) } -func (*securityPolicyAdvancedOptionsConfigJsonCustomConfigPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyAdvancedOptionsConfigJsonCustomConfig)(nil)).Elem() +func (*resourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule)(nil)).Elem() } -func (i *securityPolicyAdvancedOptionsConfigJsonCustomConfigPtrType) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { - return i.ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(context.Background()) +func (i *resourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrType) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { + return i.ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(context.Background()) } -func (i *securityPolicyAdvancedOptionsConfigJsonCustomConfigPtrType) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) +func (i *resourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrType) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) } -type SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput struct{ *pulumi.OutputState } +type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput struct{ *pulumi.OutputState } -func (SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyAdvancedOptionsConfigJsonCustomConfig)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule)(nil)).Elem() } -func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput { +func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput { return o } -func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput { +func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput { return o } -func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { - return o.ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(context.Background()) +func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { + return o.ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(context.Background()) } -func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyAdvancedOptionsConfigJsonCustomConfig) *SecurityPolicyAdvancedOptionsConfigJsonCustomConfig { +func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule { return &v - }).(SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) + }).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) } -// A list of custom Content-Type header values to apply the JSON parsing. The -// format of the Content-Type header values is defined in -// [RFC 1341](https://www.ietf.org/rfc/rfc1341.txt). When configuring a custom Content-Type header -// value, only the type/subtype needs to be specified, and the parameters should be excluded. -func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput) ContentTypes() pulumi.StringArrayOutput { - return o.ApplyT(func(v SecurityPolicyAdvancedOptionsConfigJsonCustomConfig) []string { return v.ContentTypes }).(pulumi.StringArrayOutput) +// May contain up to seven (one for each day of the week) snapshot times. +// Structure is documented below. +func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput) DayOfWeeks() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule) []ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek { + return v.DayOfWeeks + }).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput) } -type SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput struct{ *pulumi.OutputState } +type ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput struct{ *pulumi.OutputState } -func (SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyAdvancedOptionsConfigJsonCustomConfig)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule)(nil)).Elem() } -func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { +func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { return o } -func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { +func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { return o } -func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) Elem() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput { - return o.ApplyT(func(v *SecurityPolicyAdvancedOptionsConfigJsonCustomConfig) SecurityPolicyAdvancedOptionsConfigJsonCustomConfig { +func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) Elem() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule) ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule { if v != nil { return *v } - var ret SecurityPolicyAdvancedOptionsConfigJsonCustomConfig + var ret ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule return ret - }).(SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput) + }).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput) } -// A list of custom Content-Type header values to apply the JSON parsing. The -// format of the Content-Type header values is defined in -// [RFC 1341](https://www.ietf.org/rfc/rfc1341.txt). When configuring a custom Content-Type header -// value, only the type/subtype needs to be specified, and the parameters should be excluded. -func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) ContentTypes() pulumi.StringArrayOutput { - return o.ApplyT(func(v *SecurityPolicyAdvancedOptionsConfigJsonCustomConfig) []string { +// May contain up to seven (one for each day of the week) snapshot times. +// Structure is documented below. +func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) DayOfWeeks() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule) []ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek { if v == nil { return nil } - return v.ContentTypes - }).(pulumi.StringArrayOutput) + return v.DayOfWeeks + }).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput) } -type SecurityPolicyRecaptchaOptionsConfig struct { - // A field to supply a reCAPTCHA site key to be used for all the rules using the redirect action with the type of `GOOGLE_RECAPTCHA` under the security policy. The specified site key needs to be created from the reCAPTCHA API. The user is responsible for the validity of the specified site key. If not specified, a Google-managed site key is used. - RedirectSiteKey string `pulumi:"redirectSiteKey"` +type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek struct { + // The day of the week to create the snapshot. e.g. MONDAY + // Possible values are: `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`. + Day string `pulumi:"day"` + // Time within the window to start the operations. + // It must be in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT. + StartTime string `pulumi:"startTime"` } -// SecurityPolicyRecaptchaOptionsConfigInput is an input type that accepts SecurityPolicyRecaptchaOptionsConfigArgs and SecurityPolicyRecaptchaOptionsConfigOutput values. -// You can construct a concrete instance of `SecurityPolicyRecaptchaOptionsConfigInput` via: +// ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArgs and ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput values. +// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekInput` via: // -// SecurityPolicyRecaptchaOptionsConfigArgs{...} -type SecurityPolicyRecaptchaOptionsConfigInput interface { +// ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArgs{...} +type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekInput interface { pulumi.Input - ToSecurityPolicyRecaptchaOptionsConfigOutput() SecurityPolicyRecaptchaOptionsConfigOutput - ToSecurityPolicyRecaptchaOptionsConfigOutputWithContext(context.Context) SecurityPolicyRecaptchaOptionsConfigOutput -} - -type SecurityPolicyRecaptchaOptionsConfigArgs struct { - // A field to supply a reCAPTCHA site key to be used for all the rules using the redirect action with the type of `GOOGLE_RECAPTCHA` under the security policy. The specified site key needs to be created from the reCAPTCHA API. The user is responsible for the validity of the specified site key. If not specified, a Google-managed site key is used. - RedirectSiteKey pulumi.StringInput `pulumi:"redirectSiteKey"` -} - -func (SecurityPolicyRecaptchaOptionsConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRecaptchaOptionsConfig)(nil)).Elem() + ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput + ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput } -func (i SecurityPolicyRecaptchaOptionsConfigArgs) ToSecurityPolicyRecaptchaOptionsConfigOutput() SecurityPolicyRecaptchaOptionsConfigOutput { - return i.ToSecurityPolicyRecaptchaOptionsConfigOutputWithContext(context.Background()) +type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArgs struct { + // The day of the week to create the snapshot. e.g. MONDAY + // Possible values are: `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`. + Day pulumi.StringInput `pulumi:"day"` + // Time within the window to start the operations. + // It must be in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT. + StartTime pulumi.StringInput `pulumi:"startTime"` } -func (i SecurityPolicyRecaptchaOptionsConfigArgs) ToSecurityPolicyRecaptchaOptionsConfigOutputWithContext(ctx context.Context) SecurityPolicyRecaptchaOptionsConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRecaptchaOptionsConfigOutput) +func (ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek)(nil)).Elem() } -func (i SecurityPolicyRecaptchaOptionsConfigArgs) ToSecurityPolicyRecaptchaOptionsConfigPtrOutput() SecurityPolicyRecaptchaOptionsConfigPtrOutput { - return i.ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(context.Background()) +func (i ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArgs) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput { + return i.ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutputWithContext(context.Background()) } -func (i SecurityPolicyRecaptchaOptionsConfigArgs) ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRecaptchaOptionsConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRecaptchaOptionsConfigOutput).ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(ctx) +func (i ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArgs) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput) } -// SecurityPolicyRecaptchaOptionsConfigPtrInput is an input type that accepts SecurityPolicyRecaptchaOptionsConfigArgs, SecurityPolicyRecaptchaOptionsConfigPtr and SecurityPolicyRecaptchaOptionsConfigPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyRecaptchaOptionsConfigPtrInput` via: -// -// SecurityPolicyRecaptchaOptionsConfigArgs{...} -// -// or: +// ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArray and ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput values. +// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayInput` via: // -// nil -type SecurityPolicyRecaptchaOptionsConfigPtrInput interface { +// ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArray{ ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArgs{...} } +type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayInput interface { pulumi.Input - ToSecurityPolicyRecaptchaOptionsConfigPtrOutput() SecurityPolicyRecaptchaOptionsConfigPtrOutput - ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(context.Context) SecurityPolicyRecaptchaOptionsConfigPtrOutput + ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput + ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput } -type securityPolicyRecaptchaOptionsConfigPtrType SecurityPolicyRecaptchaOptionsConfigArgs - -func SecurityPolicyRecaptchaOptionsConfigPtr(v *SecurityPolicyRecaptchaOptionsConfigArgs) SecurityPolicyRecaptchaOptionsConfigPtrInput { - return (*securityPolicyRecaptchaOptionsConfigPtrType)(v) -} +type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArray []ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekInput -func (*securityPolicyRecaptchaOptionsConfigPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRecaptchaOptionsConfig)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek)(nil)).Elem() } -func (i *securityPolicyRecaptchaOptionsConfigPtrType) ToSecurityPolicyRecaptchaOptionsConfigPtrOutput() SecurityPolicyRecaptchaOptionsConfigPtrOutput { - return i.ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(context.Background()) +func (i ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArray) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput { + return i.ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutputWithContext(context.Background()) } -func (i *securityPolicyRecaptchaOptionsConfigPtrType) ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRecaptchaOptionsConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRecaptchaOptionsConfigPtrOutput) +func (i ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArray) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput) } -type SecurityPolicyRecaptchaOptionsConfigOutput struct{ *pulumi.OutputState } +type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRecaptchaOptionsConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRecaptchaOptionsConfig)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek)(nil)).Elem() } -func (o SecurityPolicyRecaptchaOptionsConfigOutput) ToSecurityPolicyRecaptchaOptionsConfigOutput() SecurityPolicyRecaptchaOptionsConfigOutput { +func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput { return o } -func (o SecurityPolicyRecaptchaOptionsConfigOutput) ToSecurityPolicyRecaptchaOptionsConfigOutputWithContext(ctx context.Context) SecurityPolicyRecaptchaOptionsConfigOutput { +func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput { return o } -func (o SecurityPolicyRecaptchaOptionsConfigOutput) ToSecurityPolicyRecaptchaOptionsConfigPtrOutput() SecurityPolicyRecaptchaOptionsConfigPtrOutput { - return o.ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(context.Background()) -} - -func (o SecurityPolicyRecaptchaOptionsConfigOutput) ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRecaptchaOptionsConfigPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRecaptchaOptionsConfig) *SecurityPolicyRecaptchaOptionsConfig { - return &v - }).(SecurityPolicyRecaptchaOptionsConfigPtrOutput) +// The day of the week to create the snapshot. e.g. MONDAY +// Possible values are: `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`. +func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput) Day() pulumi.StringOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek) string { return v.Day }).(pulumi.StringOutput) } -// A field to supply a reCAPTCHA site key to be used for all the rules using the redirect action with the type of `GOOGLE_RECAPTCHA` under the security policy. The specified site key needs to be created from the reCAPTCHA API. The user is responsible for the validity of the specified site key. If not specified, a Google-managed site key is used. -func (o SecurityPolicyRecaptchaOptionsConfigOutput) RedirectSiteKey() pulumi.StringOutput { - return o.ApplyT(func(v SecurityPolicyRecaptchaOptionsConfig) string { return v.RedirectSiteKey }).(pulumi.StringOutput) +// Time within the window to start the operations. +// It must be in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT. +func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput) StartTime() pulumi.StringOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek) string { return v.StartTime }).(pulumi.StringOutput) } -type SecurityPolicyRecaptchaOptionsConfigPtrOutput struct{ *pulumi.OutputState } +type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRecaptchaOptionsConfigPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRecaptchaOptionsConfig)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek)(nil)).Elem() } -func (o SecurityPolicyRecaptchaOptionsConfigPtrOutput) ToSecurityPolicyRecaptchaOptionsConfigPtrOutput() SecurityPolicyRecaptchaOptionsConfigPtrOutput { +func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput { return o } -func (o SecurityPolicyRecaptchaOptionsConfigPtrOutput) ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRecaptchaOptionsConfigPtrOutput { +func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput { return o } -func (o SecurityPolicyRecaptchaOptionsConfigPtrOutput) Elem() SecurityPolicyRecaptchaOptionsConfigOutput { - return o.ApplyT(func(v *SecurityPolicyRecaptchaOptionsConfig) SecurityPolicyRecaptchaOptionsConfig { - if v != nil { - return *v - } - var ret SecurityPolicyRecaptchaOptionsConfig - return ret - }).(SecurityPolicyRecaptchaOptionsConfigOutput) -} - -// A field to supply a reCAPTCHA site key to be used for all the rules using the redirect action with the type of `GOOGLE_RECAPTCHA` under the security policy. The specified site key needs to be created from the reCAPTCHA API. The user is responsible for the validity of the specified site key. If not specified, a Google-managed site key is used. -func (o SecurityPolicyRecaptchaOptionsConfigPtrOutput) RedirectSiteKey() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRecaptchaOptionsConfig) *string { - if v == nil { - return nil - } - return &v.RedirectSiteKey - }).(pulumi.StringPtrOutput) +func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput) Index(i pulumi.IntInput) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek { + return vs[0].([]ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek)[vs[1].(int)] + }).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput) } -type SecurityPolicyRuleType struct { - // Action to take when `match` matches the request. Valid values: - Action string `pulumi:"action"` - // An optional description of this rule. Max size is 64. - Description *string `pulumi:"description"` - // Additional actions that are performed on headers. Structure is documented below. - HeaderAction *SecurityPolicyRuleHeaderAction `pulumi:"headerAction"` - // A match condition that incoming traffic is evaluated against. - // If it evaluates to true, the corresponding `action` is enforced. Structure is documented below. - Match SecurityPolicyRuleMatch `pulumi:"match"` - // Preconfigured WAF configuration to be applied for the rule. If the rule does not evaluate preconfigured WAF rules, i.e., if `evaluatePreconfiguredWaf()` is not used, this field will have no effect. Structure is documented below. - PreconfiguredWafConfig *SecurityPolicyRulePreconfiguredWafConfig `pulumi:"preconfiguredWafConfig"` - // When set to true, the `action` specified above is not enforced. - // Stackdriver logs for requests that trigger a preview action are annotated as such. - Preview *bool `pulumi:"preview"` - // An unique positive integer indicating the priority of evaluation for a rule. - // Rules are evaluated from highest priority (lowest numerically) to lowest priority (highest numerically) in order. - Priority int `pulumi:"priority"` - // Must be specified if the `action` is `rateBasedBan` or `throttle`. Cannot be specified for other actions. Structure is documented below. - RateLimitOptions *SecurityPolicyRuleRateLimitOptions `pulumi:"rateLimitOptions"` - // Can be specified if the `action` is `redirect`. Cannot be specified for other actions. Structure is documented below. - RedirectOptions *SecurityPolicyRuleRedirectOptions `pulumi:"redirectOptions"` +type ResourcePolicySnapshotSchedulePolicySnapshotProperties struct { + // Creates the new snapshot in the snapshot chain labeled with the + // specified name. The chain name must be 1-63 characters long and comply + // with RFC1035. + ChainName *string `pulumi:"chainName"` + // Whether to perform a 'guest aware' snapshot. + GuestFlush *bool `pulumi:"guestFlush"` + // A set of key-value pairs. + Labels map[string]string `pulumi:"labels"` + // Cloud Storage bucket location to store the auto snapshot + // (regional or multi-regional) + StorageLocations *string `pulumi:"storageLocations"` } -// SecurityPolicyRuleTypeInput is an input type that accepts SecurityPolicyRuleTypeArgs and SecurityPolicyRuleTypeOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleTypeInput` via: +// ResourcePolicySnapshotSchedulePolicySnapshotPropertiesInput is an input type that accepts ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs and ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput values. +// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicySnapshotPropertiesInput` via: // -// SecurityPolicyRuleTypeArgs{...} -type SecurityPolicyRuleTypeInput interface { +// ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs{...} +type ResourcePolicySnapshotSchedulePolicySnapshotPropertiesInput interface { pulumi.Input - ToSecurityPolicyRuleTypeOutput() SecurityPolicyRuleTypeOutput - ToSecurityPolicyRuleTypeOutputWithContext(context.Context) SecurityPolicyRuleTypeOutput + ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput + ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput } -type SecurityPolicyRuleTypeArgs struct { - // Action to take when `match` matches the request. Valid values: - Action pulumi.StringInput `pulumi:"action"` - // An optional description of this rule. Max size is 64. - Description pulumi.StringPtrInput `pulumi:"description"` - // Additional actions that are performed on headers. Structure is documented below. - HeaderAction SecurityPolicyRuleHeaderActionPtrInput `pulumi:"headerAction"` - // A match condition that incoming traffic is evaluated against. - // If it evaluates to true, the corresponding `action` is enforced. Structure is documented below. - Match SecurityPolicyRuleMatchInput `pulumi:"match"` - // Preconfigured WAF configuration to be applied for the rule. If the rule does not evaluate preconfigured WAF rules, i.e., if `evaluatePreconfiguredWaf()` is not used, this field will have no effect. Structure is documented below. - PreconfiguredWafConfig SecurityPolicyRulePreconfiguredWafConfigPtrInput `pulumi:"preconfiguredWafConfig"` - // When set to true, the `action` specified above is not enforced. - // Stackdriver logs for requests that trigger a preview action are annotated as such. - Preview pulumi.BoolPtrInput `pulumi:"preview"` - // An unique positive integer indicating the priority of evaluation for a rule. - // Rules are evaluated from highest priority (lowest numerically) to lowest priority (highest numerically) in order. - Priority pulumi.IntInput `pulumi:"priority"` - // Must be specified if the `action` is `rateBasedBan` or `throttle`. Cannot be specified for other actions. Structure is documented below. - RateLimitOptions SecurityPolicyRuleRateLimitOptionsPtrInput `pulumi:"rateLimitOptions"` - // Can be specified if the `action` is `redirect`. Cannot be specified for other actions. Structure is documented below. - RedirectOptions SecurityPolicyRuleRedirectOptionsPtrInput `pulumi:"redirectOptions"` +type ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs struct { + // Creates the new snapshot in the snapshot chain labeled with the + // specified name. The chain name must be 1-63 characters long and comply + // with RFC1035. + ChainName pulumi.StringPtrInput `pulumi:"chainName"` + // Whether to perform a 'guest aware' snapshot. + GuestFlush pulumi.BoolPtrInput `pulumi:"guestFlush"` + // A set of key-value pairs. + Labels pulumi.StringMapInput `pulumi:"labels"` + // Cloud Storage bucket location to store the auto snapshot + // (regional or multi-regional) + StorageLocations pulumi.StringPtrInput `pulumi:"storageLocations"` +} + +func (ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicySnapshotProperties)(nil)).Elem() +} + +func (i ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput { + return i.ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutputWithContext(context.Background()) } -func (SecurityPolicyRuleTypeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleType)(nil)).Elem() +func (i ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) } -func (i SecurityPolicyRuleTypeArgs) ToSecurityPolicyRuleTypeOutput() SecurityPolicyRuleTypeOutput { - return i.ToSecurityPolicyRuleTypeOutputWithContext(context.Background()) +func (i ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { + return i.ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(context.Background()) } -func (i SecurityPolicyRuleTypeArgs) ToSecurityPolicyRuleTypeOutputWithContext(ctx context.Context) SecurityPolicyRuleTypeOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleTypeOutput) +func (i ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput).ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(ctx) } -// SecurityPolicyRuleTypeArrayInput is an input type that accepts SecurityPolicyRuleTypeArray and SecurityPolicyRuleTypeArrayOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleTypeArrayInput` via: +// ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrInput is an input type that accepts ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs, ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtr and ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput values. +// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrInput` via: +// +// ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs{...} +// +// or: // -// SecurityPolicyRuleTypeArray{ SecurityPolicyRuleTypeArgs{...} } -type SecurityPolicyRuleTypeArrayInput interface { +// nil +type ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrInput interface { pulumi.Input - ToSecurityPolicyRuleTypeArrayOutput() SecurityPolicyRuleTypeArrayOutput - ToSecurityPolicyRuleTypeArrayOutputWithContext(context.Context) SecurityPolicyRuleTypeArrayOutput + ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput + ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput } -type SecurityPolicyRuleTypeArray []SecurityPolicyRuleTypeInput +type resourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrType ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs + +func ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtr(v *ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrInput { + return (*resourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrType)(v) +} -func (SecurityPolicyRuleTypeArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityPolicyRuleType)(nil)).Elem() +func (*resourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicySnapshotProperties)(nil)).Elem() } -func (i SecurityPolicyRuleTypeArray) ToSecurityPolicyRuleTypeArrayOutput() SecurityPolicyRuleTypeArrayOutput { - return i.ToSecurityPolicyRuleTypeArrayOutputWithContext(context.Background()) +func (i *resourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrType) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { + return i.ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(context.Background()) } -func (i SecurityPolicyRuleTypeArray) ToSecurityPolicyRuleTypeArrayOutputWithContext(ctx context.Context) SecurityPolicyRuleTypeArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleTypeArrayOutput) +func (i *resourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrType) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) } -type SecurityPolicyRuleTypeOutput struct{ *pulumi.OutputState } +type ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleTypeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleType)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicySnapshotProperties)(nil)).Elem() } -func (o SecurityPolicyRuleTypeOutput) ToSecurityPolicyRuleTypeOutput() SecurityPolicyRuleTypeOutput { +func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput { return o } -func (o SecurityPolicyRuleTypeOutput) ToSecurityPolicyRuleTypeOutputWithContext(ctx context.Context) SecurityPolicyRuleTypeOutput { +func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput { return o } -// Action to take when `match` matches the request. Valid values: -func (o SecurityPolicyRuleTypeOutput) Action() pulumi.StringOutput { - return o.ApplyT(func(v SecurityPolicyRuleType) string { return v.Action }).(pulumi.StringOutput) +func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { + return o.ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(context.Background()) } -// An optional description of this rule. Max size is 64. -func (o SecurityPolicyRuleTypeOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleType) *string { return v.Description }).(pulumi.StringPtrOutput) +func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicySnapshotSchedulePolicySnapshotProperties) *ResourcePolicySnapshotSchedulePolicySnapshotProperties { + return &v + }).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) } -// Additional actions that are performed on headers. Structure is documented below. -func (o SecurityPolicyRuleTypeOutput) HeaderAction() SecurityPolicyRuleHeaderActionPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleType) *SecurityPolicyRuleHeaderAction { return v.HeaderAction }).(SecurityPolicyRuleHeaderActionPtrOutput) +// Creates the new snapshot in the snapshot chain labeled with the +// specified name. The chain name must be 1-63 characters long and comply +// with RFC1035. +func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) ChainName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySnapshotProperties) *string { return v.ChainName }).(pulumi.StringPtrOutput) } -// A match condition that incoming traffic is evaluated against. -// If it evaluates to true, the corresponding `action` is enforced. Structure is documented below. -func (o SecurityPolicyRuleTypeOutput) Match() SecurityPolicyRuleMatchOutput { - return o.ApplyT(func(v SecurityPolicyRuleType) SecurityPolicyRuleMatch { return v.Match }).(SecurityPolicyRuleMatchOutput) +// Whether to perform a 'guest aware' snapshot. +func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) GuestFlush() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySnapshotProperties) *bool { return v.GuestFlush }).(pulumi.BoolPtrOutput) } -// Preconfigured WAF configuration to be applied for the rule. If the rule does not evaluate preconfigured WAF rules, i.e., if `evaluatePreconfiguredWaf()` is not used, this field will have no effect. Structure is documented below. -func (o SecurityPolicyRuleTypeOutput) PreconfiguredWafConfig() SecurityPolicyRulePreconfiguredWafConfigPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleType) *SecurityPolicyRulePreconfiguredWafConfig { - return v.PreconfiguredWafConfig - }).(SecurityPolicyRulePreconfiguredWafConfigPtrOutput) +// A set of key-value pairs. +func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) Labels() pulumi.StringMapOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySnapshotProperties) map[string]string { return v.Labels }).(pulumi.StringMapOutput) } -// When set to true, the `action` specified above is not enforced. -// Stackdriver logs for requests that trigger a preview action are annotated as such. -func (o SecurityPolicyRuleTypeOutput) Preview() pulumi.BoolPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleType) *bool { return v.Preview }).(pulumi.BoolPtrOutput) +// Cloud Storage bucket location to store the auto snapshot +// (regional or multi-regional) +func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) StorageLocations() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySnapshotProperties) *string { return v.StorageLocations }).(pulumi.StringPtrOutput) } -// An unique positive integer indicating the priority of evaluation for a rule. -// Rules are evaluated from highest priority (lowest numerically) to lowest priority (highest numerically) in order. -func (o SecurityPolicyRuleTypeOutput) Priority() pulumi.IntOutput { - return o.ApplyT(func(v SecurityPolicyRuleType) int { return v.Priority }).(pulumi.IntOutput) +type ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput struct{ *pulumi.OutputState } + +func (ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicySnapshotProperties)(nil)).Elem() } -// Must be specified if the `action` is `rateBasedBan` or `throttle`. Cannot be specified for other actions. Structure is documented below. -func (o SecurityPolicyRuleTypeOutput) RateLimitOptions() SecurityPolicyRuleRateLimitOptionsPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleType) *SecurityPolicyRuleRateLimitOptions { return v.RateLimitOptions }).(SecurityPolicyRuleRateLimitOptionsPtrOutput) +func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { + return o } -// Can be specified if the `action` is `redirect`. Cannot be specified for other actions. Structure is documented below. -func (o SecurityPolicyRuleTypeOutput) RedirectOptions() SecurityPolicyRuleRedirectOptionsPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleType) *SecurityPolicyRuleRedirectOptions { return v.RedirectOptions }).(SecurityPolicyRuleRedirectOptionsPtrOutput) +func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { + return o } -type SecurityPolicyRuleTypeArrayOutput struct{ *pulumi.OutputState } +func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) Elem() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySnapshotProperties) ResourcePolicySnapshotSchedulePolicySnapshotProperties { + if v != nil { + return *v + } + var ret ResourcePolicySnapshotSchedulePolicySnapshotProperties + return ret + }).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) +} -func (SecurityPolicyRuleTypeArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityPolicyRuleType)(nil)).Elem() +// Creates the new snapshot in the snapshot chain labeled with the +// specified name. The chain name must be 1-63 characters long and comply +// with RFC1035. +func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) ChainName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySnapshotProperties) *string { + if v == nil { + return nil + } + return v.ChainName + }).(pulumi.StringPtrOutput) } -func (o SecurityPolicyRuleTypeArrayOutput) ToSecurityPolicyRuleTypeArrayOutput() SecurityPolicyRuleTypeArrayOutput { - return o +// Whether to perform a 'guest aware' snapshot. +func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) GuestFlush() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySnapshotProperties) *bool { + if v == nil { + return nil + } + return v.GuestFlush + }).(pulumi.BoolPtrOutput) } -func (o SecurityPolicyRuleTypeArrayOutput) ToSecurityPolicyRuleTypeArrayOutputWithContext(ctx context.Context) SecurityPolicyRuleTypeArrayOutput { - return o +// A set of key-value pairs. +func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) Labels() pulumi.StringMapOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySnapshotProperties) map[string]string { + if v == nil { + return nil + } + return v.Labels + }).(pulumi.StringMapOutput) } -func (o SecurityPolicyRuleTypeArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRuleTypeOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRuleType { - return vs[0].([]SecurityPolicyRuleType)[vs[1].(int)] - }).(SecurityPolicyRuleTypeOutput) +// Cloud Storage bucket location to store the auto snapshot +// (regional or multi-regional) +func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) StorageLocations() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySnapshotProperties) *string { + if v == nil { + return nil + } + return v.StorageLocations + }).(pulumi.StringPtrOutput) } -type SecurityPolicyRuleHeaderAction struct { - // The list of request headers to add or overwrite if they're already present. +type RouterBgp struct { + // User-specified flag to indicate which mode to use for advertisement. + // Default value is `DEFAULT`. + // Possible values are: `DEFAULT`, `CUSTOM`. + AdvertiseMode *string `pulumi:"advertiseMode"` + // User-specified list of prefix groups to advertise in custom mode. + // This field can only be populated if advertiseMode is CUSTOM and + // is advertised to all peers of the router. These groups will be + // advertised in addition to any specified prefixes. Leave this field + // blank to advertise no custom groups. + // This enum field has the one valid value: ALL_SUBNETS + AdvertisedGroups []string `pulumi:"advertisedGroups"` + // User-specified list of individual IP ranges to advertise in + // custom mode. This field can only be populated if advertiseMode + // is CUSTOM and is advertised to all peers of the router. These IP + // ranges will be advertised in addition to any specified groups. + // Leave this field blank to advertise no custom IP ranges. // Structure is documented below. - RequestHeadersToAdds []SecurityPolicyRuleHeaderActionRequestHeadersToAdd `pulumi:"requestHeadersToAdds"` + AdvertisedIpRanges []RouterBgpAdvertisedIpRange `pulumi:"advertisedIpRanges"` + // Local BGP Autonomous System Number (ASN). Must be an RFC6996 + // private ASN, either 16-bit or 32-bit. The value will be fixed for + // this router resource. All VPN tunnels that link to this router + // will have the same local ASN. + Asn int `pulumi:"asn"` + // Explicitly specifies a range of valid BGP Identifiers for this Router. + // It is provided as a link-local IPv4 range (from 169.254.0.0/16), of + // size at least /30, even if the BGP sessions are over IPv6. It must + // not overlap with any IPv4 BGP session ranges. Other vendors commonly + // call this router ID. + IdentifierRange *string `pulumi:"identifierRange"` + // The interval in seconds between BGP keepalive messages that are sent + // to the peer. Hold time is three times the interval at which keepalive + // messages are sent, and the hold time is the maximum number of seconds + // allowed to elapse between successive keepalive messages that BGP + // receives from a peer. + // BGP will use the smaller of either the local hold time value or the + // peer's hold time value as the hold time for the BGP connection + // between the two peers. If set, this value must be between 20 and 60. + // The default is 20. + KeepaliveInterval *int `pulumi:"keepaliveInterval"` } -// SecurityPolicyRuleHeaderActionInput is an input type that accepts SecurityPolicyRuleHeaderActionArgs and SecurityPolicyRuleHeaderActionOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleHeaderActionInput` via: +// RouterBgpInput is an input type that accepts RouterBgpArgs and RouterBgpOutput values. +// You can construct a concrete instance of `RouterBgpInput` via: // -// SecurityPolicyRuleHeaderActionArgs{...} -type SecurityPolicyRuleHeaderActionInput interface { +// RouterBgpArgs{...} +type RouterBgpInput interface { pulumi.Input - ToSecurityPolicyRuleHeaderActionOutput() SecurityPolicyRuleHeaderActionOutput - ToSecurityPolicyRuleHeaderActionOutputWithContext(context.Context) SecurityPolicyRuleHeaderActionOutput + ToRouterBgpOutput() RouterBgpOutput + ToRouterBgpOutputWithContext(context.Context) RouterBgpOutput } -type SecurityPolicyRuleHeaderActionArgs struct { - // The list of request headers to add or overwrite if they're already present. +type RouterBgpArgs struct { + // User-specified flag to indicate which mode to use for advertisement. + // Default value is `DEFAULT`. + // Possible values are: `DEFAULT`, `CUSTOM`. + AdvertiseMode pulumi.StringPtrInput `pulumi:"advertiseMode"` + // User-specified list of prefix groups to advertise in custom mode. + // This field can only be populated if advertiseMode is CUSTOM and + // is advertised to all peers of the router. These groups will be + // advertised in addition to any specified prefixes. Leave this field + // blank to advertise no custom groups. + // This enum field has the one valid value: ALL_SUBNETS + AdvertisedGroups pulumi.StringArrayInput `pulumi:"advertisedGroups"` + // User-specified list of individual IP ranges to advertise in + // custom mode. This field can only be populated if advertiseMode + // is CUSTOM and is advertised to all peers of the router. These IP + // ranges will be advertised in addition to any specified groups. + // Leave this field blank to advertise no custom IP ranges. // Structure is documented below. - RequestHeadersToAdds SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayInput `pulumi:"requestHeadersToAdds"` + AdvertisedIpRanges RouterBgpAdvertisedIpRangeArrayInput `pulumi:"advertisedIpRanges"` + // Local BGP Autonomous System Number (ASN). Must be an RFC6996 + // private ASN, either 16-bit or 32-bit. The value will be fixed for + // this router resource. All VPN tunnels that link to this router + // will have the same local ASN. + Asn pulumi.IntInput `pulumi:"asn"` + // Explicitly specifies a range of valid BGP Identifiers for this Router. + // It is provided as a link-local IPv4 range (from 169.254.0.0/16), of + // size at least /30, even if the BGP sessions are over IPv6. It must + // not overlap with any IPv4 BGP session ranges. Other vendors commonly + // call this router ID. + IdentifierRange pulumi.StringPtrInput `pulumi:"identifierRange"` + // The interval in seconds between BGP keepalive messages that are sent + // to the peer. Hold time is three times the interval at which keepalive + // messages are sent, and the hold time is the maximum number of seconds + // allowed to elapse between successive keepalive messages that BGP + // receives from a peer. + // BGP will use the smaller of either the local hold time value or the + // peer's hold time value as the hold time for the BGP connection + // between the two peers. If set, this value must be between 20 and 60. + // The default is 20. + KeepaliveInterval pulumi.IntPtrInput `pulumi:"keepaliveInterval"` } -func (SecurityPolicyRuleHeaderActionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleHeaderAction)(nil)).Elem() +func (RouterBgpArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouterBgp)(nil)).Elem() } -func (i SecurityPolicyRuleHeaderActionArgs) ToSecurityPolicyRuleHeaderActionOutput() SecurityPolicyRuleHeaderActionOutput { - return i.ToSecurityPolicyRuleHeaderActionOutputWithContext(context.Background()) +func (i RouterBgpArgs) ToRouterBgpOutput() RouterBgpOutput { + return i.ToRouterBgpOutputWithContext(context.Background()) } -func (i SecurityPolicyRuleHeaderActionArgs) ToSecurityPolicyRuleHeaderActionOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleHeaderActionOutput) +func (i RouterBgpArgs) ToRouterBgpOutputWithContext(ctx context.Context) RouterBgpOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterBgpOutput) } -func (i SecurityPolicyRuleHeaderActionArgs) ToSecurityPolicyRuleHeaderActionPtrOutput() SecurityPolicyRuleHeaderActionPtrOutput { - return i.ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(context.Background()) +func (i RouterBgpArgs) ToRouterBgpPtrOutput() RouterBgpPtrOutput { + return i.ToRouterBgpPtrOutputWithContext(context.Background()) } -func (i SecurityPolicyRuleHeaderActionArgs) ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleHeaderActionOutput).ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(ctx) +func (i RouterBgpArgs) ToRouterBgpPtrOutputWithContext(ctx context.Context) RouterBgpPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterBgpOutput).ToRouterBgpPtrOutputWithContext(ctx) } -// SecurityPolicyRuleHeaderActionPtrInput is an input type that accepts SecurityPolicyRuleHeaderActionArgs, SecurityPolicyRuleHeaderActionPtr and SecurityPolicyRuleHeaderActionPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleHeaderActionPtrInput` via: +// RouterBgpPtrInput is an input type that accepts RouterBgpArgs, RouterBgpPtr and RouterBgpPtrOutput values. +// You can construct a concrete instance of `RouterBgpPtrInput` via: // -// SecurityPolicyRuleHeaderActionArgs{...} +// RouterBgpArgs{...} // // or: // // nil -type SecurityPolicyRuleHeaderActionPtrInput interface { +type RouterBgpPtrInput interface { pulumi.Input - ToSecurityPolicyRuleHeaderActionPtrOutput() SecurityPolicyRuleHeaderActionPtrOutput - ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(context.Context) SecurityPolicyRuleHeaderActionPtrOutput + ToRouterBgpPtrOutput() RouterBgpPtrOutput + ToRouterBgpPtrOutputWithContext(context.Context) RouterBgpPtrOutput +} + +type routerBgpPtrType RouterBgpArgs + +func RouterBgpPtr(v *RouterBgpArgs) RouterBgpPtrInput { + return (*routerBgpPtrType)(v) +} + +func (*routerBgpPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouterBgp)(nil)).Elem() +} + +func (i *routerBgpPtrType) ToRouterBgpPtrOutput() RouterBgpPtrOutput { + return i.ToRouterBgpPtrOutputWithContext(context.Background()) +} + +func (i *routerBgpPtrType) ToRouterBgpPtrOutputWithContext(ctx context.Context) RouterBgpPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterBgpPtrOutput) +} + +type RouterBgpOutput struct{ *pulumi.OutputState } + +func (RouterBgpOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouterBgp)(nil)).Elem() +} + +func (o RouterBgpOutput) ToRouterBgpOutput() RouterBgpOutput { + return o +} + +func (o RouterBgpOutput) ToRouterBgpOutputWithContext(ctx context.Context) RouterBgpOutput { + return o +} + +func (o RouterBgpOutput) ToRouterBgpPtrOutput() RouterBgpPtrOutput { + return o.ToRouterBgpPtrOutputWithContext(context.Background()) +} + +func (o RouterBgpOutput) ToRouterBgpPtrOutputWithContext(ctx context.Context) RouterBgpPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RouterBgp) *RouterBgp { + return &v + }).(RouterBgpPtrOutput) +} + +// User-specified flag to indicate which mode to use for advertisement. +// Default value is `DEFAULT`. +// Possible values are: `DEFAULT`, `CUSTOM`. +func (o RouterBgpOutput) AdvertiseMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouterBgp) *string { return v.AdvertiseMode }).(pulumi.StringPtrOutput) } -type securityPolicyRuleHeaderActionPtrType SecurityPolicyRuleHeaderActionArgs +// User-specified list of prefix groups to advertise in custom mode. +// This field can only be populated if advertiseMode is CUSTOM and +// is advertised to all peers of the router. These groups will be +// advertised in addition to any specified prefixes. Leave this field +// blank to advertise no custom groups. +// This enum field has the one valid value: ALL_SUBNETS +func (o RouterBgpOutput) AdvertisedGroups() pulumi.StringArrayOutput { + return o.ApplyT(func(v RouterBgp) []string { return v.AdvertisedGroups }).(pulumi.StringArrayOutput) +} -func SecurityPolicyRuleHeaderActionPtr(v *SecurityPolicyRuleHeaderActionArgs) SecurityPolicyRuleHeaderActionPtrInput { - return (*securityPolicyRuleHeaderActionPtrType)(v) +// User-specified list of individual IP ranges to advertise in +// custom mode. This field can only be populated if advertiseMode +// is CUSTOM and is advertised to all peers of the router. These IP +// ranges will be advertised in addition to any specified groups. +// Leave this field blank to advertise no custom IP ranges. +// Structure is documented below. +func (o RouterBgpOutput) AdvertisedIpRanges() RouterBgpAdvertisedIpRangeArrayOutput { + return o.ApplyT(func(v RouterBgp) []RouterBgpAdvertisedIpRange { return v.AdvertisedIpRanges }).(RouterBgpAdvertisedIpRangeArrayOutput) } -func (*securityPolicyRuleHeaderActionPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleHeaderAction)(nil)).Elem() +// Local BGP Autonomous System Number (ASN). Must be an RFC6996 +// private ASN, either 16-bit or 32-bit. The value will be fixed for +// this router resource. All VPN tunnels that link to this router +// will have the same local ASN. +func (o RouterBgpOutput) Asn() pulumi.IntOutput { + return o.ApplyT(func(v RouterBgp) int { return v.Asn }).(pulumi.IntOutput) } -func (i *securityPolicyRuleHeaderActionPtrType) ToSecurityPolicyRuleHeaderActionPtrOutput() SecurityPolicyRuleHeaderActionPtrOutput { - return i.ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(context.Background()) +// Explicitly specifies a range of valid BGP Identifiers for this Router. +// It is provided as a link-local IPv4 range (from 169.254.0.0/16), of +// size at least /30, even if the BGP sessions are over IPv6. It must +// not overlap with any IPv4 BGP session ranges. Other vendors commonly +// call this router ID. +func (o RouterBgpOutput) IdentifierRange() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouterBgp) *string { return v.IdentifierRange }).(pulumi.StringPtrOutput) } -func (i *securityPolicyRuleHeaderActionPtrType) ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleHeaderActionPtrOutput) +// The interval in seconds between BGP keepalive messages that are sent +// to the peer. Hold time is three times the interval at which keepalive +// messages are sent, and the hold time is the maximum number of seconds +// allowed to elapse between successive keepalive messages that BGP +// receives from a peer. +// BGP will use the smaller of either the local hold time value or the +// peer's hold time value as the hold time for the BGP connection +// between the two peers. If set, this value must be between 20 and 60. +// The default is 20. +func (o RouterBgpOutput) KeepaliveInterval() pulumi.IntPtrOutput { + return o.ApplyT(func(v RouterBgp) *int { return v.KeepaliveInterval }).(pulumi.IntPtrOutput) } -type SecurityPolicyRuleHeaderActionOutput struct{ *pulumi.OutputState } +type RouterBgpPtrOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleHeaderActionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleHeaderAction)(nil)).Elem() +func (RouterBgpPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouterBgp)(nil)).Elem() } -func (o SecurityPolicyRuleHeaderActionOutput) ToSecurityPolicyRuleHeaderActionOutput() SecurityPolicyRuleHeaderActionOutput { +func (o RouterBgpPtrOutput) ToRouterBgpPtrOutput() RouterBgpPtrOutput { return o } -func (o SecurityPolicyRuleHeaderActionOutput) ToSecurityPolicyRuleHeaderActionOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionOutput { +func (o RouterBgpPtrOutput) ToRouterBgpPtrOutputWithContext(ctx context.Context) RouterBgpPtrOutput { return o } -func (o SecurityPolicyRuleHeaderActionOutput) ToSecurityPolicyRuleHeaderActionPtrOutput() SecurityPolicyRuleHeaderActionPtrOutput { - return o.ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(context.Background()) -} - -func (o SecurityPolicyRuleHeaderActionOutput) ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleHeaderAction) *SecurityPolicyRuleHeaderAction { - return &v - }).(SecurityPolicyRuleHeaderActionPtrOutput) +func (o RouterBgpPtrOutput) Elem() RouterBgpOutput { + return o.ApplyT(func(v *RouterBgp) RouterBgp { + if v != nil { + return *v + } + var ret RouterBgp + return ret + }).(RouterBgpOutput) } -// The list of request headers to add or overwrite if they're already present. -// Structure is documented below. -func (o SecurityPolicyRuleHeaderActionOutput) RequestHeadersToAdds() SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput { - return o.ApplyT(func(v SecurityPolicyRuleHeaderAction) []SecurityPolicyRuleHeaderActionRequestHeadersToAdd { - return v.RequestHeadersToAdds - }).(SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput) +// User-specified flag to indicate which mode to use for advertisement. +// Default value is `DEFAULT`. +// Possible values are: `DEFAULT`, `CUSTOM`. +func (o RouterBgpPtrOutput) AdvertiseMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouterBgp) *string { + if v == nil { + return nil + } + return v.AdvertiseMode + }).(pulumi.StringPtrOutput) } -type SecurityPolicyRuleHeaderActionPtrOutput struct{ *pulumi.OutputState } - -func (SecurityPolicyRuleHeaderActionPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleHeaderAction)(nil)).Elem() +// User-specified list of prefix groups to advertise in custom mode. +// This field can only be populated if advertiseMode is CUSTOM and +// is advertised to all peers of the router. These groups will be +// advertised in addition to any specified prefixes. Leave this field +// blank to advertise no custom groups. +// This enum field has the one valid value: ALL_SUBNETS +func (o RouterBgpPtrOutput) AdvertisedGroups() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RouterBgp) []string { + if v == nil { + return nil + } + return v.AdvertisedGroups + }).(pulumi.StringArrayOutput) } -func (o SecurityPolicyRuleHeaderActionPtrOutput) ToSecurityPolicyRuleHeaderActionPtrOutput() SecurityPolicyRuleHeaderActionPtrOutput { - return o +// User-specified list of individual IP ranges to advertise in +// custom mode. This field can only be populated if advertiseMode +// is CUSTOM and is advertised to all peers of the router. These IP +// ranges will be advertised in addition to any specified groups. +// Leave this field blank to advertise no custom IP ranges. +// Structure is documented below. +func (o RouterBgpPtrOutput) AdvertisedIpRanges() RouterBgpAdvertisedIpRangeArrayOutput { + return o.ApplyT(func(v *RouterBgp) []RouterBgpAdvertisedIpRange { + if v == nil { + return nil + } + return v.AdvertisedIpRanges + }).(RouterBgpAdvertisedIpRangeArrayOutput) } -func (o SecurityPolicyRuleHeaderActionPtrOutput) ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionPtrOutput { - return o +// Local BGP Autonomous System Number (ASN). Must be an RFC6996 +// private ASN, either 16-bit or 32-bit. The value will be fixed for +// this router resource. All VPN tunnels that link to this router +// will have the same local ASN. +func (o RouterBgpPtrOutput) Asn() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RouterBgp) *int { + if v == nil { + return nil + } + return &v.Asn + }).(pulumi.IntPtrOutput) } -func (o SecurityPolicyRuleHeaderActionPtrOutput) Elem() SecurityPolicyRuleHeaderActionOutput { - return o.ApplyT(func(v *SecurityPolicyRuleHeaderAction) SecurityPolicyRuleHeaderAction { - if v != nil { - return *v +// Explicitly specifies a range of valid BGP Identifiers for this Router. +// It is provided as a link-local IPv4 range (from 169.254.0.0/16), of +// size at least /30, even if the BGP sessions are over IPv6. It must +// not overlap with any IPv4 BGP session ranges. Other vendors commonly +// call this router ID. +func (o RouterBgpPtrOutput) IdentifierRange() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouterBgp) *string { + if v == nil { + return nil } - var ret SecurityPolicyRuleHeaderAction - return ret - }).(SecurityPolicyRuleHeaderActionOutput) + return v.IdentifierRange + }).(pulumi.StringPtrOutput) } -// The list of request headers to add or overwrite if they're already present. -// Structure is documented below. -func (o SecurityPolicyRuleHeaderActionPtrOutput) RequestHeadersToAdds() SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput { - return o.ApplyT(func(v *SecurityPolicyRuleHeaderAction) []SecurityPolicyRuleHeaderActionRequestHeadersToAdd { +// The interval in seconds between BGP keepalive messages that are sent +// to the peer. Hold time is three times the interval at which keepalive +// messages are sent, and the hold time is the maximum number of seconds +// allowed to elapse between successive keepalive messages that BGP +// receives from a peer. +// BGP will use the smaller of either the local hold time value or the +// peer's hold time value as the hold time for the BGP connection +// between the two peers. If set, this value must be between 20 and 60. +// The default is 20. +func (o RouterBgpPtrOutput) KeepaliveInterval() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RouterBgp) *int { if v == nil { return nil } - return v.RequestHeadersToAdds - }).(SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput) + return v.KeepaliveInterval + }).(pulumi.IntPtrOutput) } -type SecurityPolicyRuleHeaderActionRequestHeadersToAdd struct { - // The name of the header to set. - HeaderName *string `pulumi:"headerName"` - // The value to set the named header to. - HeaderValue *string `pulumi:"headerValue"` +type RouterBgpAdvertisedIpRange struct { + // User-specified description for the IP range. + Description *string `pulumi:"description"` + // The IP range to advertise. The value must be a + // CIDR-formatted string. + Range string `pulumi:"range"` } -// SecurityPolicyRuleHeaderActionRequestHeadersToAddInput is an input type that accepts SecurityPolicyRuleHeaderActionRequestHeadersToAddArgs and SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleHeaderActionRequestHeadersToAddInput` via: +// RouterBgpAdvertisedIpRangeInput is an input type that accepts RouterBgpAdvertisedIpRangeArgs and RouterBgpAdvertisedIpRangeOutput values. +// You can construct a concrete instance of `RouterBgpAdvertisedIpRangeInput` via: // -// SecurityPolicyRuleHeaderActionRequestHeadersToAddArgs{...} -type SecurityPolicyRuleHeaderActionRequestHeadersToAddInput interface { +// RouterBgpAdvertisedIpRangeArgs{...} +type RouterBgpAdvertisedIpRangeInput interface { pulumi.Input - ToSecurityPolicyRuleHeaderActionRequestHeadersToAddOutput() SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput - ToSecurityPolicyRuleHeaderActionRequestHeadersToAddOutputWithContext(context.Context) SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput + ToRouterBgpAdvertisedIpRangeOutput() RouterBgpAdvertisedIpRangeOutput + ToRouterBgpAdvertisedIpRangeOutputWithContext(context.Context) RouterBgpAdvertisedIpRangeOutput } -type SecurityPolicyRuleHeaderActionRequestHeadersToAddArgs struct { - // The name of the header to set. - HeaderName pulumi.StringPtrInput `pulumi:"headerName"` - // The value to set the named header to. - HeaderValue pulumi.StringPtrInput `pulumi:"headerValue"` +type RouterBgpAdvertisedIpRangeArgs struct { + // User-specified description for the IP range. + Description pulumi.StringPtrInput `pulumi:"description"` + // The IP range to advertise. The value must be a + // CIDR-formatted string. + Range pulumi.StringInput `pulumi:"range"` } -func (SecurityPolicyRuleHeaderActionRequestHeadersToAddArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleHeaderActionRequestHeadersToAdd)(nil)).Elem() +func (RouterBgpAdvertisedIpRangeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouterBgpAdvertisedIpRange)(nil)).Elem() } -func (i SecurityPolicyRuleHeaderActionRequestHeadersToAddArgs) ToSecurityPolicyRuleHeaderActionRequestHeadersToAddOutput() SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput { - return i.ToSecurityPolicyRuleHeaderActionRequestHeadersToAddOutputWithContext(context.Background()) +func (i RouterBgpAdvertisedIpRangeArgs) ToRouterBgpAdvertisedIpRangeOutput() RouterBgpAdvertisedIpRangeOutput { + return i.ToRouterBgpAdvertisedIpRangeOutputWithContext(context.Background()) } -func (i SecurityPolicyRuleHeaderActionRequestHeadersToAddArgs) ToSecurityPolicyRuleHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput) +func (i RouterBgpAdvertisedIpRangeArgs) ToRouterBgpAdvertisedIpRangeOutputWithContext(ctx context.Context) RouterBgpAdvertisedIpRangeOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterBgpAdvertisedIpRangeOutput) } -// SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayInput is an input type that accepts SecurityPolicyRuleHeaderActionRequestHeadersToAddArray and SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayInput` via: +// RouterBgpAdvertisedIpRangeArrayInput is an input type that accepts RouterBgpAdvertisedIpRangeArray and RouterBgpAdvertisedIpRangeArrayOutput values. +// You can construct a concrete instance of `RouterBgpAdvertisedIpRangeArrayInput` via: // -// SecurityPolicyRuleHeaderActionRequestHeadersToAddArray{ SecurityPolicyRuleHeaderActionRequestHeadersToAddArgs{...} } -type SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayInput interface { +// RouterBgpAdvertisedIpRangeArray{ RouterBgpAdvertisedIpRangeArgs{...} } +type RouterBgpAdvertisedIpRangeArrayInput interface { pulumi.Input - ToSecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput() SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput - ToSecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Context) SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput + ToRouterBgpAdvertisedIpRangeArrayOutput() RouterBgpAdvertisedIpRangeArrayOutput + ToRouterBgpAdvertisedIpRangeArrayOutputWithContext(context.Context) RouterBgpAdvertisedIpRangeArrayOutput } -type SecurityPolicyRuleHeaderActionRequestHeadersToAddArray []SecurityPolicyRuleHeaderActionRequestHeadersToAddInput +type RouterBgpAdvertisedIpRangeArray []RouterBgpAdvertisedIpRangeInput -func (SecurityPolicyRuleHeaderActionRequestHeadersToAddArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityPolicyRuleHeaderActionRequestHeadersToAdd)(nil)).Elem() +func (RouterBgpAdvertisedIpRangeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterBgpAdvertisedIpRange)(nil)).Elem() } -func (i SecurityPolicyRuleHeaderActionRequestHeadersToAddArray) ToSecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput() SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput { - return i.ToSecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Background()) +func (i RouterBgpAdvertisedIpRangeArray) ToRouterBgpAdvertisedIpRangeArrayOutput() RouterBgpAdvertisedIpRangeArrayOutput { + return i.ToRouterBgpAdvertisedIpRangeArrayOutputWithContext(context.Background()) } -func (i SecurityPolicyRuleHeaderActionRequestHeadersToAddArray) ToSecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput) +func (i RouterBgpAdvertisedIpRangeArray) ToRouterBgpAdvertisedIpRangeArrayOutputWithContext(ctx context.Context) RouterBgpAdvertisedIpRangeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterBgpAdvertisedIpRangeArrayOutput) } -type SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput struct{ *pulumi.OutputState } +type RouterBgpAdvertisedIpRangeOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleHeaderActionRequestHeadersToAdd)(nil)).Elem() +func (RouterBgpAdvertisedIpRangeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouterBgpAdvertisedIpRange)(nil)).Elem() } -func (o SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput) ToSecurityPolicyRuleHeaderActionRequestHeadersToAddOutput() SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput { +func (o RouterBgpAdvertisedIpRangeOutput) ToRouterBgpAdvertisedIpRangeOutput() RouterBgpAdvertisedIpRangeOutput { return o } -func (o SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput) ToSecurityPolicyRuleHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput { +func (o RouterBgpAdvertisedIpRangeOutput) ToRouterBgpAdvertisedIpRangeOutputWithContext(ctx context.Context) RouterBgpAdvertisedIpRangeOutput { return o } -// The name of the header to set. -func (o SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput) HeaderName() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleHeaderActionRequestHeadersToAdd) *string { return v.HeaderName }).(pulumi.StringPtrOutput) +// User-specified description for the IP range. +func (o RouterBgpAdvertisedIpRangeOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouterBgpAdvertisedIpRange) *string { return v.Description }).(pulumi.StringPtrOutput) } -// The value to set the named header to. -func (o SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput) HeaderValue() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleHeaderActionRequestHeadersToAdd) *string { return v.HeaderValue }).(pulumi.StringPtrOutput) +// The IP range to advertise. The value must be a +// CIDR-formatted string. +func (o RouterBgpAdvertisedIpRangeOutput) Range() pulumi.StringOutput { + return o.ApplyT(func(v RouterBgpAdvertisedIpRange) string { return v.Range }).(pulumi.StringOutput) } -type SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput struct{ *pulumi.OutputState } +type RouterBgpAdvertisedIpRangeArrayOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityPolicyRuleHeaderActionRequestHeadersToAdd)(nil)).Elem() +func (RouterBgpAdvertisedIpRangeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterBgpAdvertisedIpRange)(nil)).Elem() } -func (o SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput) ToSecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput() SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput { +func (o RouterBgpAdvertisedIpRangeArrayOutput) ToRouterBgpAdvertisedIpRangeArrayOutput() RouterBgpAdvertisedIpRangeArrayOutput { return o } -func (o SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput) ToSecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput { +func (o RouterBgpAdvertisedIpRangeArrayOutput) ToRouterBgpAdvertisedIpRangeArrayOutputWithContext(ctx context.Context) RouterBgpAdvertisedIpRangeArrayOutput { return o } -func (o SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRuleHeaderActionRequestHeadersToAdd { - return vs[0].([]SecurityPolicyRuleHeaderActionRequestHeadersToAdd)[vs[1].(int)] - }).(SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput) +func (o RouterBgpAdvertisedIpRangeArrayOutput) Index(i pulumi.IntInput) RouterBgpAdvertisedIpRangeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterBgpAdvertisedIpRange { + return vs[0].([]RouterBgpAdvertisedIpRange)[vs[1].(int)] + }).(RouterBgpAdvertisedIpRangeOutput) } -type SecurityPolicyRuleMatch struct { - // The configuration options available when specifying versionedExpr. - // This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified. - // Structure is documented below. - Config *SecurityPolicyRuleMatchConfig `pulumi:"config"` - // User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. - // Structure is documented below. - Expr *SecurityPolicyRuleMatchExpr `pulumi:"expr"` - // The configuration options available when specifying a user defined CEVAL expression (i.e., 'expr'). - // Structure is documented below. - ExprOptions *SecurityPolicyRuleMatchExprOptions `pulumi:"exprOptions"` - // Preconfigured versioned expression. If this field is specified, config must also be specified. - // Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config. - // Possible values are: `SRC_IPS_V1`. - VersionedExpr *string `pulumi:"versionedExpr"` +type RouterNatLogConfig struct { + // Indicates whether or not to export logs. + Enable bool `pulumi:"enable"` + // Specifies the desired filtering of logs on this NAT. + // Possible values are: `ERRORS_ONLY`, `TRANSLATIONS_ONLY`, `ALL`. + Filter string `pulumi:"filter"` } -// SecurityPolicyRuleMatchInput is an input type that accepts SecurityPolicyRuleMatchArgs and SecurityPolicyRuleMatchOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleMatchInput` via: +// RouterNatLogConfigInput is an input type that accepts RouterNatLogConfigArgs and RouterNatLogConfigOutput values. +// You can construct a concrete instance of `RouterNatLogConfigInput` via: // -// SecurityPolicyRuleMatchArgs{...} -type SecurityPolicyRuleMatchInput interface { +// RouterNatLogConfigArgs{...} +type RouterNatLogConfigInput interface { pulumi.Input - ToSecurityPolicyRuleMatchOutput() SecurityPolicyRuleMatchOutput - ToSecurityPolicyRuleMatchOutputWithContext(context.Context) SecurityPolicyRuleMatchOutput + ToRouterNatLogConfigOutput() RouterNatLogConfigOutput + ToRouterNatLogConfigOutputWithContext(context.Context) RouterNatLogConfigOutput } -type SecurityPolicyRuleMatchArgs struct { - // The configuration options available when specifying versionedExpr. - // This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified. - // Structure is documented below. - Config SecurityPolicyRuleMatchConfigPtrInput `pulumi:"config"` - // User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. - // Structure is documented below. - Expr SecurityPolicyRuleMatchExprPtrInput `pulumi:"expr"` - // The configuration options available when specifying a user defined CEVAL expression (i.e., 'expr'). - // Structure is documented below. - ExprOptions SecurityPolicyRuleMatchExprOptionsPtrInput `pulumi:"exprOptions"` - // Preconfigured versioned expression. If this field is specified, config must also be specified. - // Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config. - // Possible values are: `SRC_IPS_V1`. - VersionedExpr pulumi.StringPtrInput `pulumi:"versionedExpr"` +type RouterNatLogConfigArgs struct { + // Indicates whether or not to export logs. + Enable pulumi.BoolInput `pulumi:"enable"` + // Specifies the desired filtering of logs on this NAT. + // Possible values are: `ERRORS_ONLY`, `TRANSLATIONS_ONLY`, `ALL`. + Filter pulumi.StringInput `pulumi:"filter"` } -func (SecurityPolicyRuleMatchArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleMatch)(nil)).Elem() +func (RouterNatLogConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouterNatLogConfig)(nil)).Elem() } -func (i SecurityPolicyRuleMatchArgs) ToSecurityPolicyRuleMatchOutput() SecurityPolicyRuleMatchOutput { - return i.ToSecurityPolicyRuleMatchOutputWithContext(context.Background()) +func (i RouterNatLogConfigArgs) ToRouterNatLogConfigOutput() RouterNatLogConfigOutput { + return i.ToRouterNatLogConfigOutputWithContext(context.Background()) } -func (i SecurityPolicyRuleMatchArgs) ToSecurityPolicyRuleMatchOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchOutput) +func (i RouterNatLogConfigArgs) ToRouterNatLogConfigOutputWithContext(ctx context.Context) RouterNatLogConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterNatLogConfigOutput) } -func (i SecurityPolicyRuleMatchArgs) ToSecurityPolicyRuleMatchPtrOutput() SecurityPolicyRuleMatchPtrOutput { - return i.ToSecurityPolicyRuleMatchPtrOutputWithContext(context.Background()) +func (i RouterNatLogConfigArgs) ToRouterNatLogConfigPtrOutput() RouterNatLogConfigPtrOutput { + return i.ToRouterNatLogConfigPtrOutputWithContext(context.Background()) } -func (i SecurityPolicyRuleMatchArgs) ToSecurityPolicyRuleMatchPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchOutput).ToSecurityPolicyRuleMatchPtrOutputWithContext(ctx) +func (i RouterNatLogConfigArgs) ToRouterNatLogConfigPtrOutputWithContext(ctx context.Context) RouterNatLogConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterNatLogConfigOutput).ToRouterNatLogConfigPtrOutputWithContext(ctx) } -// SecurityPolicyRuleMatchPtrInput is an input type that accepts SecurityPolicyRuleMatchArgs, SecurityPolicyRuleMatchPtr and SecurityPolicyRuleMatchPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleMatchPtrInput` via: +// RouterNatLogConfigPtrInput is an input type that accepts RouterNatLogConfigArgs, RouterNatLogConfigPtr and RouterNatLogConfigPtrOutput values. +// You can construct a concrete instance of `RouterNatLogConfigPtrInput` via: // -// SecurityPolicyRuleMatchArgs{...} +// RouterNatLogConfigArgs{...} // // or: // // nil -type SecurityPolicyRuleMatchPtrInput interface { +type RouterNatLogConfigPtrInput interface { pulumi.Input - ToSecurityPolicyRuleMatchPtrOutput() SecurityPolicyRuleMatchPtrOutput - ToSecurityPolicyRuleMatchPtrOutputWithContext(context.Context) SecurityPolicyRuleMatchPtrOutput + ToRouterNatLogConfigPtrOutput() RouterNatLogConfigPtrOutput + ToRouterNatLogConfigPtrOutputWithContext(context.Context) RouterNatLogConfigPtrOutput } -type securityPolicyRuleMatchPtrType SecurityPolicyRuleMatchArgs +type routerNatLogConfigPtrType RouterNatLogConfigArgs -func SecurityPolicyRuleMatchPtr(v *SecurityPolicyRuleMatchArgs) SecurityPolicyRuleMatchPtrInput { - return (*securityPolicyRuleMatchPtrType)(v) +func RouterNatLogConfigPtr(v *RouterNatLogConfigArgs) RouterNatLogConfigPtrInput { + return (*routerNatLogConfigPtrType)(v) } -func (*securityPolicyRuleMatchPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleMatch)(nil)).Elem() +func (*routerNatLogConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouterNatLogConfig)(nil)).Elem() } -func (i *securityPolicyRuleMatchPtrType) ToSecurityPolicyRuleMatchPtrOutput() SecurityPolicyRuleMatchPtrOutput { - return i.ToSecurityPolicyRuleMatchPtrOutputWithContext(context.Background()) +func (i *routerNatLogConfigPtrType) ToRouterNatLogConfigPtrOutput() RouterNatLogConfigPtrOutput { + return i.ToRouterNatLogConfigPtrOutputWithContext(context.Background()) } -func (i *securityPolicyRuleMatchPtrType) ToSecurityPolicyRuleMatchPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchPtrOutput) +func (i *routerNatLogConfigPtrType) ToRouterNatLogConfigPtrOutputWithContext(ctx context.Context) RouterNatLogConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterNatLogConfigPtrOutput) } -type SecurityPolicyRuleMatchOutput struct{ *pulumi.OutputState } +type RouterNatLogConfigOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleMatchOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleMatch)(nil)).Elem() +func (RouterNatLogConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouterNatLogConfig)(nil)).Elem() } -func (o SecurityPolicyRuleMatchOutput) ToSecurityPolicyRuleMatchOutput() SecurityPolicyRuleMatchOutput { +func (o RouterNatLogConfigOutput) ToRouterNatLogConfigOutput() RouterNatLogConfigOutput { return o } -func (o SecurityPolicyRuleMatchOutput) ToSecurityPolicyRuleMatchOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchOutput { +func (o RouterNatLogConfigOutput) ToRouterNatLogConfigOutputWithContext(ctx context.Context) RouterNatLogConfigOutput { return o } -func (o SecurityPolicyRuleMatchOutput) ToSecurityPolicyRuleMatchPtrOutput() SecurityPolicyRuleMatchPtrOutput { - return o.ToSecurityPolicyRuleMatchPtrOutputWithContext(context.Background()) +func (o RouterNatLogConfigOutput) ToRouterNatLogConfigPtrOutput() RouterNatLogConfigPtrOutput { + return o.ToRouterNatLogConfigPtrOutputWithContext(context.Background()) } -func (o SecurityPolicyRuleMatchOutput) ToSecurityPolicyRuleMatchPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleMatch) *SecurityPolicyRuleMatch { +func (o RouterNatLogConfigOutput) ToRouterNatLogConfigPtrOutputWithContext(ctx context.Context) RouterNatLogConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RouterNatLogConfig) *RouterNatLogConfig { return &v - }).(SecurityPolicyRuleMatchPtrOutput) -} - -// The configuration options available when specifying versionedExpr. -// This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified. -// Structure is documented below. -func (o SecurityPolicyRuleMatchOutput) Config() SecurityPolicyRuleMatchConfigPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleMatch) *SecurityPolicyRuleMatchConfig { return v.Config }).(SecurityPolicyRuleMatchConfigPtrOutput) -} - -// User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. -// Structure is documented below. -func (o SecurityPolicyRuleMatchOutput) Expr() SecurityPolicyRuleMatchExprPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleMatch) *SecurityPolicyRuleMatchExpr { return v.Expr }).(SecurityPolicyRuleMatchExprPtrOutput) + }).(RouterNatLogConfigPtrOutput) } -// The configuration options available when specifying a user defined CEVAL expression (i.e., 'expr'). -// Structure is documented below. -func (o SecurityPolicyRuleMatchOutput) ExprOptions() SecurityPolicyRuleMatchExprOptionsPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleMatch) *SecurityPolicyRuleMatchExprOptions { return v.ExprOptions }).(SecurityPolicyRuleMatchExprOptionsPtrOutput) +// Indicates whether or not to export logs. +func (o RouterNatLogConfigOutput) Enable() pulumi.BoolOutput { + return o.ApplyT(func(v RouterNatLogConfig) bool { return v.Enable }).(pulumi.BoolOutput) } -// Preconfigured versioned expression. If this field is specified, config must also be specified. -// Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config. -// Possible values are: `SRC_IPS_V1`. -func (o SecurityPolicyRuleMatchOutput) VersionedExpr() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleMatch) *string { return v.VersionedExpr }).(pulumi.StringPtrOutput) +// Specifies the desired filtering of logs on this NAT. +// Possible values are: `ERRORS_ONLY`, `TRANSLATIONS_ONLY`, `ALL`. +func (o RouterNatLogConfigOutput) Filter() pulumi.StringOutput { + return o.ApplyT(func(v RouterNatLogConfig) string { return v.Filter }).(pulumi.StringOutput) } -type SecurityPolicyRuleMatchPtrOutput struct{ *pulumi.OutputState } +type RouterNatLogConfigPtrOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleMatchPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleMatch)(nil)).Elem() +func (RouterNatLogConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouterNatLogConfig)(nil)).Elem() } -func (o SecurityPolicyRuleMatchPtrOutput) ToSecurityPolicyRuleMatchPtrOutput() SecurityPolicyRuleMatchPtrOutput { +func (o RouterNatLogConfigPtrOutput) ToRouterNatLogConfigPtrOutput() RouterNatLogConfigPtrOutput { return o } -func (o SecurityPolicyRuleMatchPtrOutput) ToSecurityPolicyRuleMatchPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchPtrOutput { +func (o RouterNatLogConfigPtrOutput) ToRouterNatLogConfigPtrOutputWithContext(ctx context.Context) RouterNatLogConfigPtrOutput { return o } -func (o SecurityPolicyRuleMatchPtrOutput) Elem() SecurityPolicyRuleMatchOutput { - return o.ApplyT(func(v *SecurityPolicyRuleMatch) SecurityPolicyRuleMatch { +func (o RouterNatLogConfigPtrOutput) Elem() RouterNatLogConfigOutput { + return o.ApplyT(func(v *RouterNatLogConfig) RouterNatLogConfig { if v != nil { return *v } - var ret SecurityPolicyRuleMatch + var ret RouterNatLogConfig return ret - }).(SecurityPolicyRuleMatchOutput) -} - -// The configuration options available when specifying versionedExpr. -// This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified. -// Structure is documented below. -func (o SecurityPolicyRuleMatchPtrOutput) Config() SecurityPolicyRuleMatchConfigPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleMatch) *SecurityPolicyRuleMatchConfig { - if v == nil { - return nil - } - return v.Config - }).(SecurityPolicyRuleMatchConfigPtrOutput) -} - -// User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. -// Structure is documented below. -func (o SecurityPolicyRuleMatchPtrOutput) Expr() SecurityPolicyRuleMatchExprPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleMatch) *SecurityPolicyRuleMatchExpr { - if v == nil { - return nil - } - return v.Expr - }).(SecurityPolicyRuleMatchExprPtrOutput) + }).(RouterNatLogConfigOutput) } -// The configuration options available when specifying a user defined CEVAL expression (i.e., 'expr'). -// Structure is documented below. -func (o SecurityPolicyRuleMatchPtrOutput) ExprOptions() SecurityPolicyRuleMatchExprOptionsPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleMatch) *SecurityPolicyRuleMatchExprOptions { +// Indicates whether or not to export logs. +func (o RouterNatLogConfigPtrOutput) Enable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RouterNatLogConfig) *bool { if v == nil { return nil } - return v.ExprOptions - }).(SecurityPolicyRuleMatchExprOptionsPtrOutput) + return &v.Enable + }).(pulumi.BoolPtrOutput) } -// Preconfigured versioned expression. If this field is specified, config must also be specified. -// Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config. -// Possible values are: `SRC_IPS_V1`. -func (o SecurityPolicyRuleMatchPtrOutput) VersionedExpr() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleMatch) *string { +// Specifies the desired filtering of logs on this NAT. +// Possible values are: `ERRORS_ONLY`, `TRANSLATIONS_ONLY`, `ALL`. +func (o RouterNatLogConfigPtrOutput) Filter() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouterNatLogConfig) *string { if v == nil { return nil } - return v.VersionedExpr + return &v.Filter }).(pulumi.StringPtrOutput) } -type SecurityPolicyRuleMatchConfig struct { - // CIDR IP address range. Maximum number of srcIpRanges allowed is 10. - SrcIpRanges []string `pulumi:"srcIpRanges"` +type RouterNatRule struct { + // The action to be enforced for traffic that matches this rule. + // Structure is documented below. + Action *RouterNatRuleAction `pulumi:"action"` + // An optional description of this rule. + Description *string `pulumi:"description"` + // CEL expression that specifies the match condition that egress traffic from a VM is evaluated against. + // If it evaluates to true, the corresponding action is enforced. + // The following examples are valid match expressions for public NAT: + // "inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')" + // "destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'" + // The following example is a valid match expression for private NAT: + // "nexthop.hub == 'https://networkconnectivity.googleapis.com/v1alpha1/projects/my-project/global/hub/hub-1'" + Match string `pulumi:"match"` + // An integer uniquely identifying a rule in the list. + // The rule number must be a positive value between 0 and 65000, and must be unique among rules within a NAT. + RuleNumber int `pulumi:"ruleNumber"` } -// SecurityPolicyRuleMatchConfigInput is an input type that accepts SecurityPolicyRuleMatchConfigArgs and SecurityPolicyRuleMatchConfigOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleMatchConfigInput` via: +// RouterNatRuleInput is an input type that accepts RouterNatRuleArgs and RouterNatRuleOutput values. +// You can construct a concrete instance of `RouterNatRuleInput` via: // -// SecurityPolicyRuleMatchConfigArgs{...} -type SecurityPolicyRuleMatchConfigInput interface { +// RouterNatRuleArgs{...} +type RouterNatRuleInput interface { pulumi.Input - ToSecurityPolicyRuleMatchConfigOutput() SecurityPolicyRuleMatchConfigOutput - ToSecurityPolicyRuleMatchConfigOutputWithContext(context.Context) SecurityPolicyRuleMatchConfigOutput -} - -type SecurityPolicyRuleMatchConfigArgs struct { - // CIDR IP address range. Maximum number of srcIpRanges allowed is 10. - SrcIpRanges pulumi.StringArrayInput `pulumi:"srcIpRanges"` -} - -func (SecurityPolicyRuleMatchConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleMatchConfig)(nil)).Elem() + ToRouterNatRuleOutput() RouterNatRuleOutput + ToRouterNatRuleOutputWithContext(context.Context) RouterNatRuleOutput } -func (i SecurityPolicyRuleMatchConfigArgs) ToSecurityPolicyRuleMatchConfigOutput() SecurityPolicyRuleMatchConfigOutput { - return i.ToSecurityPolicyRuleMatchConfigOutputWithContext(context.Background()) +type RouterNatRuleArgs struct { + // The action to be enforced for traffic that matches this rule. + // Structure is documented below. + Action RouterNatRuleActionPtrInput `pulumi:"action"` + // An optional description of this rule. + Description pulumi.StringPtrInput `pulumi:"description"` + // CEL expression that specifies the match condition that egress traffic from a VM is evaluated against. + // If it evaluates to true, the corresponding action is enforced. + // The following examples are valid match expressions for public NAT: + // "inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')" + // "destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'" + // The following example is a valid match expression for private NAT: + // "nexthop.hub == 'https://networkconnectivity.googleapis.com/v1alpha1/projects/my-project/global/hub/hub-1'" + Match pulumi.StringInput `pulumi:"match"` + // An integer uniquely identifying a rule in the list. + // The rule number must be a positive value between 0 and 65000, and must be unique among rules within a NAT. + RuleNumber pulumi.IntInput `pulumi:"ruleNumber"` } -func (i SecurityPolicyRuleMatchConfigArgs) ToSecurityPolicyRuleMatchConfigOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchConfigOutput) +func (RouterNatRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouterNatRule)(nil)).Elem() } -func (i SecurityPolicyRuleMatchConfigArgs) ToSecurityPolicyRuleMatchConfigPtrOutput() SecurityPolicyRuleMatchConfigPtrOutput { - return i.ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(context.Background()) +func (i RouterNatRuleArgs) ToRouterNatRuleOutput() RouterNatRuleOutput { + return i.ToRouterNatRuleOutputWithContext(context.Background()) } -func (i SecurityPolicyRuleMatchConfigArgs) ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchConfigOutput).ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(ctx) +func (i RouterNatRuleArgs) ToRouterNatRuleOutputWithContext(ctx context.Context) RouterNatRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterNatRuleOutput) } -// SecurityPolicyRuleMatchConfigPtrInput is an input type that accepts SecurityPolicyRuleMatchConfigArgs, SecurityPolicyRuleMatchConfigPtr and SecurityPolicyRuleMatchConfigPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleMatchConfigPtrInput` via: -// -// SecurityPolicyRuleMatchConfigArgs{...} -// -// or: +// RouterNatRuleArrayInput is an input type that accepts RouterNatRuleArray and RouterNatRuleArrayOutput values. +// You can construct a concrete instance of `RouterNatRuleArrayInput` via: // -// nil -type SecurityPolicyRuleMatchConfigPtrInput interface { +// RouterNatRuleArray{ RouterNatRuleArgs{...} } +type RouterNatRuleArrayInput interface { pulumi.Input - ToSecurityPolicyRuleMatchConfigPtrOutput() SecurityPolicyRuleMatchConfigPtrOutput - ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(context.Context) SecurityPolicyRuleMatchConfigPtrOutput + ToRouterNatRuleArrayOutput() RouterNatRuleArrayOutput + ToRouterNatRuleArrayOutputWithContext(context.Context) RouterNatRuleArrayOutput } -type securityPolicyRuleMatchConfigPtrType SecurityPolicyRuleMatchConfigArgs - -func SecurityPolicyRuleMatchConfigPtr(v *SecurityPolicyRuleMatchConfigArgs) SecurityPolicyRuleMatchConfigPtrInput { - return (*securityPolicyRuleMatchConfigPtrType)(v) -} +type RouterNatRuleArray []RouterNatRuleInput -func (*securityPolicyRuleMatchConfigPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleMatchConfig)(nil)).Elem() +func (RouterNatRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterNatRule)(nil)).Elem() } -func (i *securityPolicyRuleMatchConfigPtrType) ToSecurityPolicyRuleMatchConfigPtrOutput() SecurityPolicyRuleMatchConfigPtrOutput { - return i.ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(context.Background()) +func (i RouterNatRuleArray) ToRouterNatRuleArrayOutput() RouterNatRuleArrayOutput { + return i.ToRouterNatRuleArrayOutputWithContext(context.Background()) } -func (i *securityPolicyRuleMatchConfigPtrType) ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchConfigPtrOutput) +func (i RouterNatRuleArray) ToRouterNatRuleArrayOutputWithContext(ctx context.Context) RouterNatRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterNatRuleArrayOutput) } -type SecurityPolicyRuleMatchConfigOutput struct{ *pulumi.OutputState } +type RouterNatRuleOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleMatchConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleMatchConfig)(nil)).Elem() +func (RouterNatRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouterNatRule)(nil)).Elem() } -func (o SecurityPolicyRuleMatchConfigOutput) ToSecurityPolicyRuleMatchConfigOutput() SecurityPolicyRuleMatchConfigOutput { +func (o RouterNatRuleOutput) ToRouterNatRuleOutput() RouterNatRuleOutput { return o } -func (o SecurityPolicyRuleMatchConfigOutput) ToSecurityPolicyRuleMatchConfigOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchConfigOutput { +func (o RouterNatRuleOutput) ToRouterNatRuleOutputWithContext(ctx context.Context) RouterNatRuleOutput { return o } -func (o SecurityPolicyRuleMatchConfigOutput) ToSecurityPolicyRuleMatchConfigPtrOutput() SecurityPolicyRuleMatchConfigPtrOutput { - return o.ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(context.Background()) +// The action to be enforced for traffic that matches this rule. +// Structure is documented below. +func (o RouterNatRuleOutput) Action() RouterNatRuleActionPtrOutput { + return o.ApplyT(func(v RouterNatRule) *RouterNatRuleAction { return v.Action }).(RouterNatRuleActionPtrOutput) } -func (o SecurityPolicyRuleMatchConfigOutput) ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchConfigPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleMatchConfig) *SecurityPolicyRuleMatchConfig { - return &v - }).(SecurityPolicyRuleMatchConfigPtrOutput) +// An optional description of this rule. +func (o RouterNatRuleOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouterNatRule) *string { return v.Description }).(pulumi.StringPtrOutput) } -// CIDR IP address range. Maximum number of srcIpRanges allowed is 10. -func (o SecurityPolicyRuleMatchConfigOutput) SrcIpRanges() pulumi.StringArrayOutput { - return o.ApplyT(func(v SecurityPolicyRuleMatchConfig) []string { return v.SrcIpRanges }).(pulumi.StringArrayOutput) +// CEL expression that specifies the match condition that egress traffic from a VM is evaluated against. +// If it evaluates to true, the corresponding action is enforced. +// The following examples are valid match expressions for public NAT: +// "inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')" +// "destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'" +// The following example is a valid match expression for private NAT: +// "nexthop.hub == 'https://networkconnectivity.googleapis.com/v1alpha1/projects/my-project/global/hub/hub-1'" +func (o RouterNatRuleOutput) Match() pulumi.StringOutput { + return o.ApplyT(func(v RouterNatRule) string { return v.Match }).(pulumi.StringOutput) } -type SecurityPolicyRuleMatchConfigPtrOutput struct{ *pulumi.OutputState } - -func (SecurityPolicyRuleMatchConfigPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleMatchConfig)(nil)).Elem() +// An integer uniquely identifying a rule in the list. +// The rule number must be a positive value between 0 and 65000, and must be unique among rules within a NAT. +func (o RouterNatRuleOutput) RuleNumber() pulumi.IntOutput { + return o.ApplyT(func(v RouterNatRule) int { return v.RuleNumber }).(pulumi.IntOutput) } -func (o SecurityPolicyRuleMatchConfigPtrOutput) ToSecurityPolicyRuleMatchConfigPtrOutput() SecurityPolicyRuleMatchConfigPtrOutput { - return o +type RouterNatRuleArrayOutput struct{ *pulumi.OutputState } + +func (RouterNatRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterNatRule)(nil)).Elem() } -func (o SecurityPolicyRuleMatchConfigPtrOutput) ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchConfigPtrOutput { +func (o RouterNatRuleArrayOutput) ToRouterNatRuleArrayOutput() RouterNatRuleArrayOutput { return o } -func (o SecurityPolicyRuleMatchConfigPtrOutput) Elem() SecurityPolicyRuleMatchConfigOutput { - return o.ApplyT(func(v *SecurityPolicyRuleMatchConfig) SecurityPolicyRuleMatchConfig { - if v != nil { - return *v - } - var ret SecurityPolicyRuleMatchConfig - return ret - }).(SecurityPolicyRuleMatchConfigOutput) +func (o RouterNatRuleArrayOutput) ToRouterNatRuleArrayOutputWithContext(ctx context.Context) RouterNatRuleArrayOutput { + return o } -// CIDR IP address range. Maximum number of srcIpRanges allowed is 10. -func (o SecurityPolicyRuleMatchConfigPtrOutput) SrcIpRanges() pulumi.StringArrayOutput { - return o.ApplyT(func(v *SecurityPolicyRuleMatchConfig) []string { - if v == nil { - return nil - } - return v.SrcIpRanges - }).(pulumi.StringArrayOutput) +func (o RouterNatRuleArrayOutput) Index(i pulumi.IntInput) RouterNatRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterNatRule { + return vs[0].([]RouterNatRule)[vs[1].(int)] + }).(RouterNatRuleOutput) } -type SecurityPolicyRuleMatchExpr struct { - // Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported. - Expression string `pulumi:"expression"` +type RouterNatRuleAction struct { + // A list of URLs of the IP resources used for this NAT rule. + // These IP addresses must be valid static external IP addresses assigned to the project. + // This field is used for public NAT. + SourceNatActiveIps []string `pulumi:"sourceNatActiveIps"` + // A list of URLs of the subnetworks used as source ranges for this NAT Rule. + // These subnetworks must have purpose set to PRIVATE_NAT. + // This field is used for private NAT. + SourceNatActiveRanges []string `pulumi:"sourceNatActiveRanges"` + // A list of URLs of the IP resources to be drained. + // These IPs must be valid static external IPs that have been assigned to the NAT. + // These IPs should be used for updating/patching a NAT rule only. + // This field is used for public NAT. + SourceNatDrainIps []string `pulumi:"sourceNatDrainIps"` + // A list of URLs of subnetworks representing source ranges to be drained. + // This is only supported on patch/update, and these subnetworks must have previously been used as active ranges in this NAT Rule. + // This field is used for private NAT. + SourceNatDrainRanges []string `pulumi:"sourceNatDrainRanges"` } -// SecurityPolicyRuleMatchExprInput is an input type that accepts SecurityPolicyRuleMatchExprArgs and SecurityPolicyRuleMatchExprOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleMatchExprInput` via: +// RouterNatRuleActionInput is an input type that accepts RouterNatRuleActionArgs and RouterNatRuleActionOutput values. +// You can construct a concrete instance of `RouterNatRuleActionInput` via: // -// SecurityPolicyRuleMatchExprArgs{...} -type SecurityPolicyRuleMatchExprInput interface { +// RouterNatRuleActionArgs{...} +type RouterNatRuleActionInput interface { pulumi.Input - ToSecurityPolicyRuleMatchExprOutput() SecurityPolicyRuleMatchExprOutput - ToSecurityPolicyRuleMatchExprOutputWithContext(context.Context) SecurityPolicyRuleMatchExprOutput + ToRouterNatRuleActionOutput() RouterNatRuleActionOutput + ToRouterNatRuleActionOutputWithContext(context.Context) RouterNatRuleActionOutput } -type SecurityPolicyRuleMatchExprArgs struct { - // Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported. - Expression pulumi.StringInput `pulumi:"expression"` +type RouterNatRuleActionArgs struct { + // A list of URLs of the IP resources used for this NAT rule. + // These IP addresses must be valid static external IP addresses assigned to the project. + // This field is used for public NAT. + SourceNatActiveIps pulumi.StringArrayInput `pulumi:"sourceNatActiveIps"` + // A list of URLs of the subnetworks used as source ranges for this NAT Rule. + // These subnetworks must have purpose set to PRIVATE_NAT. + // This field is used for private NAT. + SourceNatActiveRanges pulumi.StringArrayInput `pulumi:"sourceNatActiveRanges"` + // A list of URLs of the IP resources to be drained. + // These IPs must be valid static external IPs that have been assigned to the NAT. + // These IPs should be used for updating/patching a NAT rule only. + // This field is used for public NAT. + SourceNatDrainIps pulumi.StringArrayInput `pulumi:"sourceNatDrainIps"` + // A list of URLs of subnetworks representing source ranges to be drained. + // This is only supported on patch/update, and these subnetworks must have previously been used as active ranges in this NAT Rule. + // This field is used for private NAT. + SourceNatDrainRanges pulumi.StringArrayInput `pulumi:"sourceNatDrainRanges"` } -func (SecurityPolicyRuleMatchExprArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleMatchExpr)(nil)).Elem() +func (RouterNatRuleActionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouterNatRuleAction)(nil)).Elem() } -func (i SecurityPolicyRuleMatchExprArgs) ToSecurityPolicyRuleMatchExprOutput() SecurityPolicyRuleMatchExprOutput { - return i.ToSecurityPolicyRuleMatchExprOutputWithContext(context.Background()) +func (i RouterNatRuleActionArgs) ToRouterNatRuleActionOutput() RouterNatRuleActionOutput { + return i.ToRouterNatRuleActionOutputWithContext(context.Background()) } -func (i SecurityPolicyRuleMatchExprArgs) ToSecurityPolicyRuleMatchExprOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprOutput) +func (i RouterNatRuleActionArgs) ToRouterNatRuleActionOutputWithContext(ctx context.Context) RouterNatRuleActionOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterNatRuleActionOutput) } -func (i SecurityPolicyRuleMatchExprArgs) ToSecurityPolicyRuleMatchExprPtrOutput() SecurityPolicyRuleMatchExprPtrOutput { - return i.ToSecurityPolicyRuleMatchExprPtrOutputWithContext(context.Background()) +func (i RouterNatRuleActionArgs) ToRouterNatRuleActionPtrOutput() RouterNatRuleActionPtrOutput { + return i.ToRouterNatRuleActionPtrOutputWithContext(context.Background()) } -func (i SecurityPolicyRuleMatchExprArgs) ToSecurityPolicyRuleMatchExprPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprOutput).ToSecurityPolicyRuleMatchExprPtrOutputWithContext(ctx) +func (i RouterNatRuleActionArgs) ToRouterNatRuleActionPtrOutputWithContext(ctx context.Context) RouterNatRuleActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterNatRuleActionOutput).ToRouterNatRuleActionPtrOutputWithContext(ctx) } -// SecurityPolicyRuleMatchExprPtrInput is an input type that accepts SecurityPolicyRuleMatchExprArgs, SecurityPolicyRuleMatchExprPtr and SecurityPolicyRuleMatchExprPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleMatchExprPtrInput` via: +// RouterNatRuleActionPtrInput is an input type that accepts RouterNatRuleActionArgs, RouterNatRuleActionPtr and RouterNatRuleActionPtrOutput values. +// You can construct a concrete instance of `RouterNatRuleActionPtrInput` via: // -// SecurityPolicyRuleMatchExprArgs{...} +// RouterNatRuleActionArgs{...} // // or: // // nil -type SecurityPolicyRuleMatchExprPtrInput interface { +type RouterNatRuleActionPtrInput interface { pulumi.Input - ToSecurityPolicyRuleMatchExprPtrOutput() SecurityPolicyRuleMatchExprPtrOutput - ToSecurityPolicyRuleMatchExprPtrOutputWithContext(context.Context) SecurityPolicyRuleMatchExprPtrOutput + ToRouterNatRuleActionPtrOutput() RouterNatRuleActionPtrOutput + ToRouterNatRuleActionPtrOutputWithContext(context.Context) RouterNatRuleActionPtrOutput } -type securityPolicyRuleMatchExprPtrType SecurityPolicyRuleMatchExprArgs +type routerNatRuleActionPtrType RouterNatRuleActionArgs -func SecurityPolicyRuleMatchExprPtr(v *SecurityPolicyRuleMatchExprArgs) SecurityPolicyRuleMatchExprPtrInput { - return (*securityPolicyRuleMatchExprPtrType)(v) +func RouterNatRuleActionPtr(v *RouterNatRuleActionArgs) RouterNatRuleActionPtrInput { + return (*routerNatRuleActionPtrType)(v) } -func (*securityPolicyRuleMatchExprPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleMatchExpr)(nil)).Elem() +func (*routerNatRuleActionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouterNatRuleAction)(nil)).Elem() } -func (i *securityPolicyRuleMatchExprPtrType) ToSecurityPolicyRuleMatchExprPtrOutput() SecurityPolicyRuleMatchExprPtrOutput { - return i.ToSecurityPolicyRuleMatchExprPtrOutputWithContext(context.Background()) +func (i *routerNatRuleActionPtrType) ToRouterNatRuleActionPtrOutput() RouterNatRuleActionPtrOutput { + return i.ToRouterNatRuleActionPtrOutputWithContext(context.Background()) } -func (i *securityPolicyRuleMatchExprPtrType) ToSecurityPolicyRuleMatchExprPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprPtrOutput) +func (i *routerNatRuleActionPtrType) ToRouterNatRuleActionPtrOutputWithContext(ctx context.Context) RouterNatRuleActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterNatRuleActionPtrOutput) } -type SecurityPolicyRuleMatchExprOutput struct{ *pulumi.OutputState } +type RouterNatRuleActionOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleMatchExprOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleMatchExpr)(nil)).Elem() +func (RouterNatRuleActionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouterNatRuleAction)(nil)).Elem() } -func (o SecurityPolicyRuleMatchExprOutput) ToSecurityPolicyRuleMatchExprOutput() SecurityPolicyRuleMatchExprOutput { +func (o RouterNatRuleActionOutput) ToRouterNatRuleActionOutput() RouterNatRuleActionOutput { return o } -func (o SecurityPolicyRuleMatchExprOutput) ToSecurityPolicyRuleMatchExprOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOutput { +func (o RouterNatRuleActionOutput) ToRouterNatRuleActionOutputWithContext(ctx context.Context) RouterNatRuleActionOutput { return o } -func (o SecurityPolicyRuleMatchExprOutput) ToSecurityPolicyRuleMatchExprPtrOutput() SecurityPolicyRuleMatchExprPtrOutput { - return o.ToSecurityPolicyRuleMatchExprPtrOutputWithContext(context.Background()) +func (o RouterNatRuleActionOutput) ToRouterNatRuleActionPtrOutput() RouterNatRuleActionPtrOutput { + return o.ToRouterNatRuleActionPtrOutputWithContext(context.Background()) } -func (o SecurityPolicyRuleMatchExprOutput) ToSecurityPolicyRuleMatchExprPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleMatchExpr) *SecurityPolicyRuleMatchExpr { +func (o RouterNatRuleActionOutput) ToRouterNatRuleActionPtrOutputWithContext(ctx context.Context) RouterNatRuleActionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RouterNatRuleAction) *RouterNatRuleAction { return &v - }).(SecurityPolicyRuleMatchExprPtrOutput) + }).(RouterNatRuleActionPtrOutput) } -// Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported. -func (o SecurityPolicyRuleMatchExprOutput) Expression() pulumi.StringOutput { - return o.ApplyT(func(v SecurityPolicyRuleMatchExpr) string { return v.Expression }).(pulumi.StringOutput) +// A list of URLs of the IP resources used for this NAT rule. +// These IP addresses must be valid static external IP addresses assigned to the project. +// This field is used for public NAT. +func (o RouterNatRuleActionOutput) SourceNatActiveIps() pulumi.StringArrayOutput { + return o.ApplyT(func(v RouterNatRuleAction) []string { return v.SourceNatActiveIps }).(pulumi.StringArrayOutput) +} + +// A list of URLs of the subnetworks used as source ranges for this NAT Rule. +// These subnetworks must have purpose set to PRIVATE_NAT. +// This field is used for private NAT. +func (o RouterNatRuleActionOutput) SourceNatActiveRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v RouterNatRuleAction) []string { return v.SourceNatActiveRanges }).(pulumi.StringArrayOutput) } -type SecurityPolicyRuleMatchExprPtrOutput struct{ *pulumi.OutputState } +// A list of URLs of the IP resources to be drained. +// These IPs must be valid static external IPs that have been assigned to the NAT. +// These IPs should be used for updating/patching a NAT rule only. +// This field is used for public NAT. +func (o RouterNatRuleActionOutput) SourceNatDrainIps() pulumi.StringArrayOutput { + return o.ApplyT(func(v RouterNatRuleAction) []string { return v.SourceNatDrainIps }).(pulumi.StringArrayOutput) +} + +// A list of URLs of subnetworks representing source ranges to be drained. +// This is only supported on patch/update, and these subnetworks must have previously been used as active ranges in this NAT Rule. +// This field is used for private NAT. +func (o RouterNatRuleActionOutput) SourceNatDrainRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v RouterNatRuleAction) []string { return v.SourceNatDrainRanges }).(pulumi.StringArrayOutput) +} + +type RouterNatRuleActionPtrOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleMatchExprPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleMatchExpr)(nil)).Elem() +func (RouterNatRuleActionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouterNatRuleAction)(nil)).Elem() } -func (o SecurityPolicyRuleMatchExprPtrOutput) ToSecurityPolicyRuleMatchExprPtrOutput() SecurityPolicyRuleMatchExprPtrOutput { +func (o RouterNatRuleActionPtrOutput) ToRouterNatRuleActionPtrOutput() RouterNatRuleActionPtrOutput { return o } -func (o SecurityPolicyRuleMatchExprPtrOutput) ToSecurityPolicyRuleMatchExprPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprPtrOutput { +func (o RouterNatRuleActionPtrOutput) ToRouterNatRuleActionPtrOutputWithContext(ctx context.Context) RouterNatRuleActionPtrOutput { return o } -func (o SecurityPolicyRuleMatchExprPtrOutput) Elem() SecurityPolicyRuleMatchExprOutput { - return o.ApplyT(func(v *SecurityPolicyRuleMatchExpr) SecurityPolicyRuleMatchExpr { +func (o RouterNatRuleActionPtrOutput) Elem() RouterNatRuleActionOutput { + return o.ApplyT(func(v *RouterNatRuleAction) RouterNatRuleAction { if v != nil { return *v } - var ret SecurityPolicyRuleMatchExpr + var ret RouterNatRuleAction return ret - }).(SecurityPolicyRuleMatchExprOutput) + }).(RouterNatRuleActionOutput) } -// Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported. -func (o SecurityPolicyRuleMatchExprPtrOutput) Expression() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleMatchExpr) *string { +// A list of URLs of the IP resources used for this NAT rule. +// These IP addresses must be valid static external IP addresses assigned to the project. +// This field is used for public NAT. +func (o RouterNatRuleActionPtrOutput) SourceNatActiveIps() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RouterNatRuleAction) []string { if v == nil { return nil } - return &v.Expression - }).(pulumi.StringPtrOutput) + return v.SourceNatActiveIps + }).(pulumi.StringArrayOutput) } -type SecurityPolicyRuleMatchExprOptions struct { - // reCAPTCHA configuration options to be applied for the rule. If the rule does not evaluate reCAPTCHA tokens, this field has no effect. - // Structure is documented below. - RecaptchaOptions SecurityPolicyRuleMatchExprOptionsRecaptchaOptions `pulumi:"recaptchaOptions"` +// A list of URLs of the subnetworks used as source ranges for this NAT Rule. +// These subnetworks must have purpose set to PRIVATE_NAT. +// This field is used for private NAT. +func (o RouterNatRuleActionPtrOutput) SourceNatActiveRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RouterNatRuleAction) []string { + if v == nil { + return nil + } + return v.SourceNatActiveRanges + }).(pulumi.StringArrayOutput) } -// SecurityPolicyRuleMatchExprOptionsInput is an input type that accepts SecurityPolicyRuleMatchExprOptionsArgs and SecurityPolicyRuleMatchExprOptionsOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleMatchExprOptionsInput` via: -// -// SecurityPolicyRuleMatchExprOptionsArgs{...} -type SecurityPolicyRuleMatchExprOptionsInput interface { - pulumi.Input +// A list of URLs of the IP resources to be drained. +// These IPs must be valid static external IPs that have been assigned to the NAT. +// These IPs should be used for updating/patching a NAT rule only. +// This field is used for public NAT. +func (o RouterNatRuleActionPtrOutput) SourceNatDrainIps() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RouterNatRuleAction) []string { + if v == nil { + return nil + } + return v.SourceNatDrainIps + }).(pulumi.StringArrayOutput) +} - ToSecurityPolicyRuleMatchExprOptionsOutput() SecurityPolicyRuleMatchExprOptionsOutput - ToSecurityPolicyRuleMatchExprOptionsOutputWithContext(context.Context) SecurityPolicyRuleMatchExprOptionsOutput +// A list of URLs of subnetworks representing source ranges to be drained. +// This is only supported on patch/update, and these subnetworks must have previously been used as active ranges in this NAT Rule. +// This field is used for private NAT. +func (o RouterNatRuleActionPtrOutput) SourceNatDrainRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RouterNatRuleAction) []string { + if v == nil { + return nil + } + return v.SourceNatDrainRanges + }).(pulumi.StringArrayOutput) } -type SecurityPolicyRuleMatchExprOptionsArgs struct { - // reCAPTCHA configuration options to be applied for the rule. If the rule does not evaluate reCAPTCHA tokens, this field has no effect. - // Structure is documented below. - RecaptchaOptions SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsInput `pulumi:"recaptchaOptions"` +type RouterNatSubnetwork struct { + // Self-link of subnetwork to NAT + Name string `pulumi:"name"` + // List of the secondary ranges of the subnetwork that are allowed + // to use NAT. This can be populated only if + // `LIST_OF_SECONDARY_IP_RANGES` is one of the values in + // sourceIpRangesToNat + SecondaryIpRangeNames []string `pulumi:"secondaryIpRangeNames"` + // List of options for which source IPs in the subnetwork + // should have NAT enabled. Supported values include: + // `ALL_IP_RANGES`, `LIST_OF_SECONDARY_IP_RANGES`, + // `PRIMARY_IP_RANGE`. + SourceIpRangesToNats []string `pulumi:"sourceIpRangesToNats"` } -func (SecurityPolicyRuleMatchExprOptionsArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleMatchExprOptions)(nil)).Elem() +// RouterNatSubnetworkInput is an input type that accepts RouterNatSubnetworkArgs and RouterNatSubnetworkOutput values. +// You can construct a concrete instance of `RouterNatSubnetworkInput` via: +// +// RouterNatSubnetworkArgs{...} +type RouterNatSubnetworkInput interface { + pulumi.Input + + ToRouterNatSubnetworkOutput() RouterNatSubnetworkOutput + ToRouterNatSubnetworkOutputWithContext(context.Context) RouterNatSubnetworkOutput } -func (i SecurityPolicyRuleMatchExprOptionsArgs) ToSecurityPolicyRuleMatchExprOptionsOutput() SecurityPolicyRuleMatchExprOptionsOutput { - return i.ToSecurityPolicyRuleMatchExprOptionsOutputWithContext(context.Background()) +type RouterNatSubnetworkArgs struct { + // Self-link of subnetwork to NAT + Name pulumi.StringInput `pulumi:"name"` + // List of the secondary ranges of the subnetwork that are allowed + // to use NAT. This can be populated only if + // `LIST_OF_SECONDARY_IP_RANGES` is one of the values in + // sourceIpRangesToNat + SecondaryIpRangeNames pulumi.StringArrayInput `pulumi:"secondaryIpRangeNames"` + // List of options for which source IPs in the subnetwork + // should have NAT enabled. Supported values include: + // `ALL_IP_RANGES`, `LIST_OF_SECONDARY_IP_RANGES`, + // `PRIMARY_IP_RANGE`. + SourceIpRangesToNats pulumi.StringArrayInput `pulumi:"sourceIpRangesToNats"` } -func (i SecurityPolicyRuleMatchExprOptionsArgs) ToSecurityPolicyRuleMatchExprOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprOptionsOutput) +func (RouterNatSubnetworkArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouterNatSubnetwork)(nil)).Elem() } -func (i SecurityPolicyRuleMatchExprOptionsArgs) ToSecurityPolicyRuleMatchExprOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsPtrOutput { - return i.ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(context.Background()) +func (i RouterNatSubnetworkArgs) ToRouterNatSubnetworkOutput() RouterNatSubnetworkOutput { + return i.ToRouterNatSubnetworkOutputWithContext(context.Background()) } -func (i SecurityPolicyRuleMatchExprOptionsArgs) ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprOptionsOutput).ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(ctx) +func (i RouterNatSubnetworkArgs) ToRouterNatSubnetworkOutputWithContext(ctx context.Context) RouterNatSubnetworkOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterNatSubnetworkOutput) } -// SecurityPolicyRuleMatchExprOptionsPtrInput is an input type that accepts SecurityPolicyRuleMatchExprOptionsArgs, SecurityPolicyRuleMatchExprOptionsPtr and SecurityPolicyRuleMatchExprOptionsPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleMatchExprOptionsPtrInput` via: -// -// SecurityPolicyRuleMatchExprOptionsArgs{...} -// -// or: +// RouterNatSubnetworkArrayInput is an input type that accepts RouterNatSubnetworkArray and RouterNatSubnetworkArrayOutput values. +// You can construct a concrete instance of `RouterNatSubnetworkArrayInput` via: // -// nil -type SecurityPolicyRuleMatchExprOptionsPtrInput interface { +// RouterNatSubnetworkArray{ RouterNatSubnetworkArgs{...} } +type RouterNatSubnetworkArrayInput interface { pulumi.Input - ToSecurityPolicyRuleMatchExprOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsPtrOutput - ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(context.Context) SecurityPolicyRuleMatchExprOptionsPtrOutput + ToRouterNatSubnetworkArrayOutput() RouterNatSubnetworkArrayOutput + ToRouterNatSubnetworkArrayOutputWithContext(context.Context) RouterNatSubnetworkArrayOutput } -type securityPolicyRuleMatchExprOptionsPtrType SecurityPolicyRuleMatchExprOptionsArgs - -func SecurityPolicyRuleMatchExprOptionsPtr(v *SecurityPolicyRuleMatchExprOptionsArgs) SecurityPolicyRuleMatchExprOptionsPtrInput { - return (*securityPolicyRuleMatchExprOptionsPtrType)(v) -} +type RouterNatSubnetworkArray []RouterNatSubnetworkInput -func (*securityPolicyRuleMatchExprOptionsPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleMatchExprOptions)(nil)).Elem() +func (RouterNatSubnetworkArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterNatSubnetwork)(nil)).Elem() } -func (i *securityPolicyRuleMatchExprOptionsPtrType) ToSecurityPolicyRuleMatchExprOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsPtrOutput { - return i.ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(context.Background()) +func (i RouterNatSubnetworkArray) ToRouterNatSubnetworkArrayOutput() RouterNatSubnetworkArrayOutput { + return i.ToRouterNatSubnetworkArrayOutputWithContext(context.Background()) } -func (i *securityPolicyRuleMatchExprOptionsPtrType) ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprOptionsPtrOutput) +func (i RouterNatSubnetworkArray) ToRouterNatSubnetworkArrayOutputWithContext(ctx context.Context) RouterNatSubnetworkArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterNatSubnetworkArrayOutput) } -type SecurityPolicyRuleMatchExprOptionsOutput struct{ *pulumi.OutputState } +type RouterNatSubnetworkOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleMatchExprOptionsOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleMatchExprOptions)(nil)).Elem() +func (RouterNatSubnetworkOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouterNatSubnetwork)(nil)).Elem() } -func (o SecurityPolicyRuleMatchExprOptionsOutput) ToSecurityPolicyRuleMatchExprOptionsOutput() SecurityPolicyRuleMatchExprOptionsOutput { +func (o RouterNatSubnetworkOutput) ToRouterNatSubnetworkOutput() RouterNatSubnetworkOutput { return o } -func (o SecurityPolicyRuleMatchExprOptionsOutput) ToSecurityPolicyRuleMatchExprOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsOutput { +func (o RouterNatSubnetworkOutput) ToRouterNatSubnetworkOutputWithContext(ctx context.Context) RouterNatSubnetworkOutput { return o } -func (o SecurityPolicyRuleMatchExprOptionsOutput) ToSecurityPolicyRuleMatchExprOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsPtrOutput { - return o.ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(context.Background()) +// Self-link of subnetwork to NAT +func (o RouterNatSubnetworkOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v RouterNatSubnetwork) string { return v.Name }).(pulumi.StringOutput) } -func (o SecurityPolicyRuleMatchExprOptionsOutput) ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleMatchExprOptions) *SecurityPolicyRuleMatchExprOptions { - return &v - }).(SecurityPolicyRuleMatchExprOptionsPtrOutput) +// List of the secondary ranges of the subnetwork that are allowed +// to use NAT. This can be populated only if +// `LIST_OF_SECONDARY_IP_RANGES` is one of the values in +// sourceIpRangesToNat +func (o RouterNatSubnetworkOutput) SecondaryIpRangeNames() pulumi.StringArrayOutput { + return o.ApplyT(func(v RouterNatSubnetwork) []string { return v.SecondaryIpRangeNames }).(pulumi.StringArrayOutput) } -// reCAPTCHA configuration options to be applied for the rule. If the rule does not evaluate reCAPTCHA tokens, this field has no effect. -// Structure is documented below. -func (o SecurityPolicyRuleMatchExprOptionsOutput) RecaptchaOptions() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput { - return o.ApplyT(func(v SecurityPolicyRuleMatchExprOptions) SecurityPolicyRuleMatchExprOptionsRecaptchaOptions { - return v.RecaptchaOptions - }).(SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) +// List of options for which source IPs in the subnetwork +// should have NAT enabled. Supported values include: +// `ALL_IP_RANGES`, `LIST_OF_SECONDARY_IP_RANGES`, +// `PRIMARY_IP_RANGE`. +func (o RouterNatSubnetworkOutput) SourceIpRangesToNats() pulumi.StringArrayOutput { + return o.ApplyT(func(v RouterNatSubnetwork) []string { return v.SourceIpRangesToNats }).(pulumi.StringArrayOutput) } -type SecurityPolicyRuleMatchExprOptionsPtrOutput struct{ *pulumi.OutputState } +type RouterNatSubnetworkArrayOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleMatchExprOptionsPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleMatchExprOptions)(nil)).Elem() +func (RouterNatSubnetworkArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterNatSubnetwork)(nil)).Elem() } -func (o SecurityPolicyRuleMatchExprOptionsPtrOutput) ToSecurityPolicyRuleMatchExprOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsPtrOutput { +func (o RouterNatSubnetworkArrayOutput) ToRouterNatSubnetworkArrayOutput() RouterNatSubnetworkArrayOutput { return o } -func (o SecurityPolicyRuleMatchExprOptionsPtrOutput) ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsPtrOutput { +func (o RouterNatSubnetworkArrayOutput) ToRouterNatSubnetworkArrayOutputWithContext(ctx context.Context) RouterNatSubnetworkArrayOutput { return o } -func (o SecurityPolicyRuleMatchExprOptionsPtrOutput) Elem() SecurityPolicyRuleMatchExprOptionsOutput { - return o.ApplyT(func(v *SecurityPolicyRuleMatchExprOptions) SecurityPolicyRuleMatchExprOptions { - if v != nil { - return *v - } - var ret SecurityPolicyRuleMatchExprOptions - return ret - }).(SecurityPolicyRuleMatchExprOptionsOutput) -} - -// reCAPTCHA configuration options to be applied for the rule. If the rule does not evaluate reCAPTCHA tokens, this field has no effect. -// Structure is documented below. -func (o SecurityPolicyRuleMatchExprOptionsPtrOutput) RecaptchaOptions() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleMatchExprOptions) *SecurityPolicyRuleMatchExprOptionsRecaptchaOptions { - if v == nil { - return nil - } - return &v.RecaptchaOptions - }).(SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) +func (o RouterNatSubnetworkArrayOutput) Index(i pulumi.IntInput) RouterNatSubnetworkOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterNatSubnetwork { + return vs[0].([]RouterNatSubnetwork)[vs[1].(int)] + }).(RouterNatSubnetworkOutput) } -type SecurityPolicyRuleMatchExprOptionsRecaptchaOptions struct { - // A list of site keys to be used during the validation of reCAPTCHA action-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created. - ActionTokenSiteKeys []string `pulumi:"actionTokenSiteKeys"` - // A list of site keys to be used during the validation of reCAPTCHA session-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created. - SessionTokenSiteKeys []string `pulumi:"sessionTokenSiteKeys"` +type RouterPeerAdvertisedIpRange struct { + // User-specified description for the IP range. + Description *string `pulumi:"description"` + // The IP range to advertise. The value must be a + // CIDR-formatted string. + Range string `pulumi:"range"` } -// SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsInput is an input type that accepts SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs and SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsInput` via: +// RouterPeerAdvertisedIpRangeInput is an input type that accepts RouterPeerAdvertisedIpRangeArgs and RouterPeerAdvertisedIpRangeOutput values. +// You can construct a concrete instance of `RouterPeerAdvertisedIpRangeInput` via: // -// SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs{...} -type SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsInput interface { +// RouterPeerAdvertisedIpRangeArgs{...} +type RouterPeerAdvertisedIpRangeInput interface { pulumi.Input - ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput - ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutputWithContext(context.Context) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput -} - -type SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs struct { - // A list of site keys to be used during the validation of reCAPTCHA action-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created. - ActionTokenSiteKeys pulumi.StringArrayInput `pulumi:"actionTokenSiteKeys"` - // A list of site keys to be used during the validation of reCAPTCHA session-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created. - SessionTokenSiteKeys pulumi.StringArrayInput `pulumi:"sessionTokenSiteKeys"` -} - -func (SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleMatchExprOptionsRecaptchaOptions)(nil)).Elem() + ToRouterPeerAdvertisedIpRangeOutput() RouterPeerAdvertisedIpRangeOutput + ToRouterPeerAdvertisedIpRangeOutputWithContext(context.Context) RouterPeerAdvertisedIpRangeOutput } -func (i SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput { - return i.ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutputWithContext(context.Background()) +type RouterPeerAdvertisedIpRangeArgs struct { + // User-specified description for the IP range. + Description pulumi.StringPtrInput `pulumi:"description"` + // The IP range to advertise. The value must be a + // CIDR-formatted string. + Range pulumi.StringInput `pulumi:"range"` } -func (i SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) +func (RouterPeerAdvertisedIpRangeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouterPeerAdvertisedIpRange)(nil)).Elem() } -func (i SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { - return i.ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(context.Background()) +func (i RouterPeerAdvertisedIpRangeArgs) ToRouterPeerAdvertisedIpRangeOutput() RouterPeerAdvertisedIpRangeOutput { + return i.ToRouterPeerAdvertisedIpRangeOutputWithContext(context.Background()) } -func (i SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput).ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(ctx) +func (i RouterPeerAdvertisedIpRangeArgs) ToRouterPeerAdvertisedIpRangeOutputWithContext(ctx context.Context) RouterPeerAdvertisedIpRangeOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterPeerAdvertisedIpRangeOutput) } -// SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrInput is an input type that accepts SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs, SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtr and SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrInput` via: -// -// SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs{...} -// -// or: +// RouterPeerAdvertisedIpRangeArrayInput is an input type that accepts RouterPeerAdvertisedIpRangeArray and RouterPeerAdvertisedIpRangeArrayOutput values. +// You can construct a concrete instance of `RouterPeerAdvertisedIpRangeArrayInput` via: // -// nil -type SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrInput interface { +// RouterPeerAdvertisedIpRangeArray{ RouterPeerAdvertisedIpRangeArgs{...} } +type RouterPeerAdvertisedIpRangeArrayInput interface { pulumi.Input - ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput - ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(context.Context) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput + ToRouterPeerAdvertisedIpRangeArrayOutput() RouterPeerAdvertisedIpRangeArrayOutput + ToRouterPeerAdvertisedIpRangeArrayOutputWithContext(context.Context) RouterPeerAdvertisedIpRangeArrayOutput } -type securityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrType SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs - -func SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtr(v *SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrInput { - return (*securityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrType)(v) -} +type RouterPeerAdvertisedIpRangeArray []RouterPeerAdvertisedIpRangeInput -func (*securityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleMatchExprOptionsRecaptchaOptions)(nil)).Elem() +func (RouterPeerAdvertisedIpRangeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterPeerAdvertisedIpRange)(nil)).Elem() } -func (i *securityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrType) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { - return i.ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(context.Background()) +func (i RouterPeerAdvertisedIpRangeArray) ToRouterPeerAdvertisedIpRangeArrayOutput() RouterPeerAdvertisedIpRangeArrayOutput { + return i.ToRouterPeerAdvertisedIpRangeArrayOutputWithContext(context.Background()) } -func (i *securityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrType) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) +func (i RouterPeerAdvertisedIpRangeArray) ToRouterPeerAdvertisedIpRangeArrayOutputWithContext(ctx context.Context) RouterPeerAdvertisedIpRangeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterPeerAdvertisedIpRangeArrayOutput) } -type SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput struct{ *pulumi.OutputState } +type RouterPeerAdvertisedIpRangeOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleMatchExprOptionsRecaptchaOptions)(nil)).Elem() +func (RouterPeerAdvertisedIpRangeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouterPeerAdvertisedIpRange)(nil)).Elem() } -func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput { +func (o RouterPeerAdvertisedIpRangeOutput) ToRouterPeerAdvertisedIpRangeOutput() RouterPeerAdvertisedIpRangeOutput { return o } -func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput { +func (o RouterPeerAdvertisedIpRangeOutput) ToRouterPeerAdvertisedIpRangeOutputWithContext(ctx context.Context) RouterPeerAdvertisedIpRangeOutput { return o } -func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { - return o.ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(context.Background()) -} - -func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleMatchExprOptionsRecaptchaOptions) *SecurityPolicyRuleMatchExprOptionsRecaptchaOptions { - return &v - }).(SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) -} - -// A list of site keys to be used during the validation of reCAPTCHA action-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created. -func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) ActionTokenSiteKeys() pulumi.StringArrayOutput { - return o.ApplyT(func(v SecurityPolicyRuleMatchExprOptionsRecaptchaOptions) []string { return v.ActionTokenSiteKeys }).(pulumi.StringArrayOutput) +// User-specified description for the IP range. +func (o RouterPeerAdvertisedIpRangeOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouterPeerAdvertisedIpRange) *string { return v.Description }).(pulumi.StringPtrOutput) } -// A list of site keys to be used during the validation of reCAPTCHA session-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created. -func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) SessionTokenSiteKeys() pulumi.StringArrayOutput { - return o.ApplyT(func(v SecurityPolicyRuleMatchExprOptionsRecaptchaOptions) []string { return v.SessionTokenSiteKeys }).(pulumi.StringArrayOutput) +// The IP range to advertise. The value must be a +// CIDR-formatted string. +func (o RouterPeerAdvertisedIpRangeOutput) Range() pulumi.StringOutput { + return o.ApplyT(func(v RouterPeerAdvertisedIpRange) string { return v.Range }).(pulumi.StringOutput) } -type SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput struct{ *pulumi.OutputState } +type RouterPeerAdvertisedIpRangeArrayOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleMatchExprOptionsRecaptchaOptions)(nil)).Elem() +func (RouterPeerAdvertisedIpRangeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterPeerAdvertisedIpRange)(nil)).Elem() } -func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { +func (o RouterPeerAdvertisedIpRangeArrayOutput) ToRouterPeerAdvertisedIpRangeArrayOutput() RouterPeerAdvertisedIpRangeArrayOutput { return o } -func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { +func (o RouterPeerAdvertisedIpRangeArrayOutput) ToRouterPeerAdvertisedIpRangeArrayOutputWithContext(ctx context.Context) RouterPeerAdvertisedIpRangeArrayOutput { return o } -func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) Elem() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput { - return o.ApplyT(func(v *SecurityPolicyRuleMatchExprOptionsRecaptchaOptions) SecurityPolicyRuleMatchExprOptionsRecaptchaOptions { - if v != nil { - return *v - } - var ret SecurityPolicyRuleMatchExprOptionsRecaptchaOptions - return ret - }).(SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) -} - -// A list of site keys to be used during the validation of reCAPTCHA action-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created. -func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) ActionTokenSiteKeys() pulumi.StringArrayOutput { - return o.ApplyT(func(v *SecurityPolicyRuleMatchExprOptionsRecaptchaOptions) []string { - if v == nil { - return nil - } - return v.ActionTokenSiteKeys - }).(pulumi.StringArrayOutput) -} - -// A list of site keys to be used during the validation of reCAPTCHA session-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created. -func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) SessionTokenSiteKeys() pulumi.StringArrayOutput { - return o.ApplyT(func(v *SecurityPolicyRuleMatchExprOptionsRecaptchaOptions) []string { - if v == nil { - return nil - } - return v.SessionTokenSiteKeys - }).(pulumi.StringArrayOutput) +func (o RouterPeerAdvertisedIpRangeArrayOutput) Index(i pulumi.IntInput) RouterPeerAdvertisedIpRangeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterPeerAdvertisedIpRange { + return vs[0].([]RouterPeerAdvertisedIpRange)[vs[1].(int)] + }).(RouterPeerAdvertisedIpRangeOutput) } -type SecurityPolicyRulePreconfiguredWafConfig struct { - // An exclusion to apply during preconfigured WAF evaluation. - // Structure is documented below. - Exclusions []SecurityPolicyRulePreconfiguredWafConfigExclusion `pulumi:"exclusions"` +type RouterPeerBfd struct { + // The minimum interval, in milliseconds, between BFD control packets + // received from the peer router. The actual value is negotiated + // between the two routers and is equal to the greater of this value + // and the transmit interval of the other router. If set, this value + // must be between 1000 and 30000. + MinReceiveInterval *int `pulumi:"minReceiveInterval"` + // The minimum interval, in milliseconds, between BFD control packets + // transmitted to the peer router. The actual value is negotiated + // between the two routers and is equal to the greater of this value + // and the corresponding receive interval of the other router. If set, + // this value must be between 1000 and 30000. + MinTransmitInterval *int `pulumi:"minTransmitInterval"` + // The number of consecutive BFD packets that must be missed before + // BFD declares that a peer is unavailable. If set, the value must + // be a value between 5 and 16. + // + // The `md5AuthenticationKey` block supports: + Multiplier *int `pulumi:"multiplier"` + // The BFD session initialization mode for this BGP peer. + // If set to `ACTIVE`, the Cloud Router will initiate the BFD session + // for this BGP peer. If set to `PASSIVE`, the Cloud Router will wait + // for the peer router to initiate the BFD session for this BGP peer. + // If set to `DISABLED`, BFD is disabled for this BGP peer. + // Possible values are: `ACTIVE`, `DISABLED`, `PASSIVE`. + SessionInitializationMode string `pulumi:"sessionInitializationMode"` } -// SecurityPolicyRulePreconfiguredWafConfigInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigArgs and SecurityPolicyRulePreconfiguredWafConfigOutput values. -// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigInput` via: +// RouterPeerBfdInput is an input type that accepts RouterPeerBfdArgs and RouterPeerBfdOutput values. +// You can construct a concrete instance of `RouterPeerBfdInput` via: // -// SecurityPolicyRulePreconfiguredWafConfigArgs{...} -type SecurityPolicyRulePreconfiguredWafConfigInput interface { +// RouterPeerBfdArgs{...} +type RouterPeerBfdInput interface { pulumi.Input - ToSecurityPolicyRulePreconfiguredWafConfigOutput() SecurityPolicyRulePreconfiguredWafConfigOutput - ToSecurityPolicyRulePreconfiguredWafConfigOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigOutput + ToRouterPeerBfdOutput() RouterPeerBfdOutput + ToRouterPeerBfdOutputWithContext(context.Context) RouterPeerBfdOutput } -type SecurityPolicyRulePreconfiguredWafConfigArgs struct { - // An exclusion to apply during preconfigured WAF evaluation. - // Structure is documented below. - Exclusions SecurityPolicyRulePreconfiguredWafConfigExclusionArrayInput `pulumi:"exclusions"` +type RouterPeerBfdArgs struct { + // The minimum interval, in milliseconds, between BFD control packets + // received from the peer router. The actual value is negotiated + // between the two routers and is equal to the greater of this value + // and the transmit interval of the other router. If set, this value + // must be between 1000 and 30000. + MinReceiveInterval pulumi.IntPtrInput `pulumi:"minReceiveInterval"` + // The minimum interval, in milliseconds, between BFD control packets + // transmitted to the peer router. The actual value is negotiated + // between the two routers and is equal to the greater of this value + // and the corresponding receive interval of the other router. If set, + // this value must be between 1000 and 30000. + MinTransmitInterval pulumi.IntPtrInput `pulumi:"minTransmitInterval"` + // The number of consecutive BFD packets that must be missed before + // BFD declares that a peer is unavailable. If set, the value must + // be a value between 5 and 16. + // + // The `md5AuthenticationKey` block supports: + Multiplier pulumi.IntPtrInput `pulumi:"multiplier"` + // The BFD session initialization mode for this BGP peer. + // If set to `ACTIVE`, the Cloud Router will initiate the BFD session + // for this BGP peer. If set to `PASSIVE`, the Cloud Router will wait + // for the peer router to initiate the BFD session for this BGP peer. + // If set to `DISABLED`, BFD is disabled for this BGP peer. + // Possible values are: `ACTIVE`, `DISABLED`, `PASSIVE`. + SessionInitializationMode pulumi.StringInput `pulumi:"sessionInitializationMode"` } -func (SecurityPolicyRulePreconfiguredWafConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfig)(nil)).Elem() +func (RouterPeerBfdArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouterPeerBfd)(nil)).Elem() } -func (i SecurityPolicyRulePreconfiguredWafConfigArgs) ToSecurityPolicyRulePreconfiguredWafConfigOutput() SecurityPolicyRulePreconfiguredWafConfigOutput { - return i.ToSecurityPolicyRulePreconfiguredWafConfigOutputWithContext(context.Background()) +func (i RouterPeerBfdArgs) ToRouterPeerBfdOutput() RouterPeerBfdOutput { + return i.ToRouterPeerBfdOutputWithContext(context.Background()) } -func (i SecurityPolicyRulePreconfiguredWafConfigArgs) ToSecurityPolicyRulePreconfiguredWafConfigOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigOutput) +func (i RouterPeerBfdArgs) ToRouterPeerBfdOutputWithContext(ctx context.Context) RouterPeerBfdOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterPeerBfdOutput) } -func (i SecurityPolicyRulePreconfiguredWafConfigArgs) ToSecurityPolicyRulePreconfiguredWafConfigPtrOutput() SecurityPolicyRulePreconfiguredWafConfigPtrOutput { - return i.ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(context.Background()) +func (i RouterPeerBfdArgs) ToRouterPeerBfdPtrOutput() RouterPeerBfdPtrOutput { + return i.ToRouterPeerBfdPtrOutputWithContext(context.Background()) } -func (i SecurityPolicyRulePreconfiguredWafConfigArgs) ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigOutput).ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(ctx) +func (i RouterPeerBfdArgs) ToRouterPeerBfdPtrOutputWithContext(ctx context.Context) RouterPeerBfdPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterPeerBfdOutput).ToRouterPeerBfdPtrOutputWithContext(ctx) } -// SecurityPolicyRulePreconfiguredWafConfigPtrInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigArgs, SecurityPolicyRulePreconfiguredWafConfigPtr and SecurityPolicyRulePreconfiguredWafConfigPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigPtrInput` via: +// RouterPeerBfdPtrInput is an input type that accepts RouterPeerBfdArgs, RouterPeerBfdPtr and RouterPeerBfdPtrOutput values. +// You can construct a concrete instance of `RouterPeerBfdPtrInput` via: // -// SecurityPolicyRulePreconfiguredWafConfigArgs{...} +// RouterPeerBfdArgs{...} // // or: // // nil -type SecurityPolicyRulePreconfiguredWafConfigPtrInput interface { +type RouterPeerBfdPtrInput interface { pulumi.Input - ToSecurityPolicyRulePreconfiguredWafConfigPtrOutput() SecurityPolicyRulePreconfiguredWafConfigPtrOutput - ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigPtrOutput + ToRouterPeerBfdPtrOutput() RouterPeerBfdPtrOutput + ToRouterPeerBfdPtrOutputWithContext(context.Context) RouterPeerBfdPtrOutput } -type securityPolicyRulePreconfiguredWafConfigPtrType SecurityPolicyRulePreconfiguredWafConfigArgs +type routerPeerBfdPtrType RouterPeerBfdArgs -func SecurityPolicyRulePreconfiguredWafConfigPtr(v *SecurityPolicyRulePreconfiguredWafConfigArgs) SecurityPolicyRulePreconfiguredWafConfigPtrInput { - return (*securityPolicyRulePreconfiguredWafConfigPtrType)(v) +func RouterPeerBfdPtr(v *RouterPeerBfdArgs) RouterPeerBfdPtrInput { + return (*routerPeerBfdPtrType)(v) } -func (*securityPolicyRulePreconfiguredWafConfigPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRulePreconfiguredWafConfig)(nil)).Elem() +func (*routerPeerBfdPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouterPeerBfd)(nil)).Elem() } -func (i *securityPolicyRulePreconfiguredWafConfigPtrType) ToSecurityPolicyRulePreconfiguredWafConfigPtrOutput() SecurityPolicyRulePreconfiguredWafConfigPtrOutput { - return i.ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(context.Background()) +func (i *routerPeerBfdPtrType) ToRouterPeerBfdPtrOutput() RouterPeerBfdPtrOutput { + return i.ToRouterPeerBfdPtrOutputWithContext(context.Background()) } -func (i *securityPolicyRulePreconfiguredWafConfigPtrType) ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigPtrOutput) +func (i *routerPeerBfdPtrType) ToRouterPeerBfdPtrOutputWithContext(ctx context.Context) RouterPeerBfdPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterPeerBfdPtrOutput) } -type SecurityPolicyRulePreconfiguredWafConfigOutput struct{ *pulumi.OutputState } +type RouterPeerBfdOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRulePreconfiguredWafConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfig)(nil)).Elem() +func (RouterPeerBfdOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouterPeerBfd)(nil)).Elem() } -func (o SecurityPolicyRulePreconfiguredWafConfigOutput) ToSecurityPolicyRulePreconfiguredWafConfigOutput() SecurityPolicyRulePreconfiguredWafConfigOutput { +func (o RouterPeerBfdOutput) ToRouterPeerBfdOutput() RouterPeerBfdOutput { return o } -func (o SecurityPolicyRulePreconfiguredWafConfigOutput) ToSecurityPolicyRulePreconfiguredWafConfigOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigOutput { +func (o RouterPeerBfdOutput) ToRouterPeerBfdOutputWithContext(ctx context.Context) RouterPeerBfdOutput { return o } -func (o SecurityPolicyRulePreconfiguredWafConfigOutput) ToSecurityPolicyRulePreconfiguredWafConfigPtrOutput() SecurityPolicyRulePreconfiguredWafConfigPtrOutput { - return o.ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(context.Background()) +func (o RouterPeerBfdOutput) ToRouterPeerBfdPtrOutput() RouterPeerBfdPtrOutput { + return o.ToRouterPeerBfdPtrOutputWithContext(context.Background()) } -func (o SecurityPolicyRulePreconfiguredWafConfigOutput) ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRulePreconfiguredWafConfig) *SecurityPolicyRulePreconfiguredWafConfig { +func (o RouterPeerBfdOutput) ToRouterPeerBfdPtrOutputWithContext(ctx context.Context) RouterPeerBfdPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RouterPeerBfd) *RouterPeerBfd { return &v - }).(SecurityPolicyRulePreconfiguredWafConfigPtrOutput) + }).(RouterPeerBfdPtrOutput) } -// An exclusion to apply during preconfigured WAF evaluation. -// Structure is documented below. -func (o SecurityPolicyRulePreconfiguredWafConfigOutput) Exclusions() SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { - return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfig) []SecurityPolicyRulePreconfiguredWafConfigExclusion { - return v.Exclusions - }).(SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) +// The minimum interval, in milliseconds, between BFD control packets +// received from the peer router. The actual value is negotiated +// between the two routers and is equal to the greater of this value +// and the transmit interval of the other router. If set, this value +// must be between 1000 and 30000. +func (o RouterPeerBfdOutput) MinReceiveInterval() pulumi.IntPtrOutput { + return o.ApplyT(func(v RouterPeerBfd) *int { return v.MinReceiveInterval }).(pulumi.IntPtrOutput) +} + +// The minimum interval, in milliseconds, between BFD control packets +// transmitted to the peer router. The actual value is negotiated +// between the two routers and is equal to the greater of this value +// and the corresponding receive interval of the other router. If set, +// this value must be between 1000 and 30000. +func (o RouterPeerBfdOutput) MinTransmitInterval() pulumi.IntPtrOutput { + return o.ApplyT(func(v RouterPeerBfd) *int { return v.MinTransmitInterval }).(pulumi.IntPtrOutput) +} + +// The number of consecutive BFD packets that must be missed before +// BFD declares that a peer is unavailable. If set, the value must +// be a value between 5 and 16. +// +// The `md5AuthenticationKey` block supports: +func (o RouterPeerBfdOutput) Multiplier() pulumi.IntPtrOutput { + return o.ApplyT(func(v RouterPeerBfd) *int { return v.Multiplier }).(pulumi.IntPtrOutput) +} + +// The BFD session initialization mode for this BGP peer. +// If set to `ACTIVE`, the Cloud Router will initiate the BFD session +// for this BGP peer. If set to `PASSIVE`, the Cloud Router will wait +// for the peer router to initiate the BFD session for this BGP peer. +// If set to `DISABLED`, BFD is disabled for this BGP peer. +// Possible values are: `ACTIVE`, `DISABLED`, `PASSIVE`. +func (o RouterPeerBfdOutput) SessionInitializationMode() pulumi.StringOutput { + return o.ApplyT(func(v RouterPeerBfd) string { return v.SessionInitializationMode }).(pulumi.StringOutput) } -type SecurityPolicyRulePreconfiguredWafConfigPtrOutput struct{ *pulumi.OutputState } +type RouterPeerBfdPtrOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRulePreconfiguredWafConfigPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRulePreconfiguredWafConfig)(nil)).Elem() +func (RouterPeerBfdPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouterPeerBfd)(nil)).Elem() } -func (o SecurityPolicyRulePreconfiguredWafConfigPtrOutput) ToSecurityPolicyRulePreconfiguredWafConfigPtrOutput() SecurityPolicyRulePreconfiguredWafConfigPtrOutput { +func (o RouterPeerBfdPtrOutput) ToRouterPeerBfdPtrOutput() RouterPeerBfdPtrOutput { return o } -func (o SecurityPolicyRulePreconfiguredWafConfigPtrOutput) ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigPtrOutput { +func (o RouterPeerBfdPtrOutput) ToRouterPeerBfdPtrOutputWithContext(ctx context.Context) RouterPeerBfdPtrOutput { return o } -func (o SecurityPolicyRulePreconfiguredWafConfigPtrOutput) Elem() SecurityPolicyRulePreconfiguredWafConfigOutput { - return o.ApplyT(func(v *SecurityPolicyRulePreconfiguredWafConfig) SecurityPolicyRulePreconfiguredWafConfig { +func (o RouterPeerBfdPtrOutput) Elem() RouterPeerBfdOutput { + return o.ApplyT(func(v *RouterPeerBfd) RouterPeerBfd { if v != nil { return *v } - var ret SecurityPolicyRulePreconfiguredWafConfig + var ret RouterPeerBfd return ret - }).(SecurityPolicyRulePreconfiguredWafConfigOutput) + }).(RouterPeerBfdOutput) } -// An exclusion to apply during preconfigured WAF evaluation. -// Structure is documented below. -func (o SecurityPolicyRulePreconfiguredWafConfigPtrOutput) Exclusions() SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { - return o.ApplyT(func(v *SecurityPolicyRulePreconfiguredWafConfig) []SecurityPolicyRulePreconfiguredWafConfigExclusion { +// The minimum interval, in milliseconds, between BFD control packets +// received from the peer router. The actual value is negotiated +// between the two routers and is equal to the greater of this value +// and the transmit interval of the other router. If set, this value +// must be between 1000 and 30000. +func (o RouterPeerBfdPtrOutput) MinReceiveInterval() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RouterPeerBfd) *int { if v == nil { return nil } - return v.Exclusions - }).(SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) -} - -type SecurityPolicyRulePreconfiguredWafConfigExclusion struct { - // Request cookie whose value will be excluded from inspection during preconfigured WAF evaluation. - // Structure is documented below. - RequestCookies []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky `pulumi:"requestCookies"` - // Request header whose value will be excluded from inspection during preconfigured WAF evaluation. - // Structure is documented below. - RequestHeaders []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader `pulumi:"requestHeaders"` - // Request query parameter whose value will be excluded from inspection during preconfigured WAF evaluation. - // Note that the parameter can be in the query string or in the POST body. - // Structure is documented below. - RequestQueryParams []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam `pulumi:"requestQueryParams"` - // Request URI from the request line to be excluded from inspection during preconfigured WAF evaluation. - // When specifying this field, the query or fragment part should be excluded. - // Structure is documented below. - RequestUris []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri `pulumi:"requestUris"` - // A list of target rule IDs under the WAF rule set to apply the preconfigured WAF exclusion. - // If omitted, it refers to all the rule IDs under the WAF rule set. - TargetRuleIds []string `pulumi:"targetRuleIds"` - // Target WAF rule set to apply the preconfigured WAF exclusion. - TargetRuleSet string `pulumi:"targetRuleSet"` -} - -// SecurityPolicyRulePreconfiguredWafConfigExclusionInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionArgs and SecurityPolicyRulePreconfiguredWafConfigExclusionOutput values. -// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionInput` via: -// -// SecurityPolicyRulePreconfiguredWafConfigExclusionArgs{...} -type SecurityPolicyRulePreconfiguredWafConfigExclusionInput interface { - pulumi.Input - - ToSecurityPolicyRulePreconfiguredWafConfigExclusionOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionOutput - ToSecurityPolicyRulePreconfiguredWafConfigExclusionOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionOutput + return v.MinReceiveInterval + }).(pulumi.IntPtrOutput) } -type SecurityPolicyRulePreconfiguredWafConfigExclusionArgs struct { - // Request cookie whose value will be excluded from inspection during preconfigured WAF evaluation. - // Structure is documented below. - RequestCookies SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayInput `pulumi:"requestCookies"` - // Request header whose value will be excluded from inspection during preconfigured WAF evaluation. - // Structure is documented below. - RequestHeaders SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayInput `pulumi:"requestHeaders"` - // Request query parameter whose value will be excluded from inspection during preconfigured WAF evaluation. - // Note that the parameter can be in the query string or in the POST body. - // Structure is documented below. - RequestQueryParams SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayInput `pulumi:"requestQueryParams"` - // Request URI from the request line to be excluded from inspection during preconfigured WAF evaluation. - // When specifying this field, the query or fragment part should be excluded. - // Structure is documented below. - RequestUris SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayInput `pulumi:"requestUris"` - // A list of target rule IDs under the WAF rule set to apply the preconfigured WAF exclusion. - // If omitted, it refers to all the rule IDs under the WAF rule set. - TargetRuleIds pulumi.StringArrayInput `pulumi:"targetRuleIds"` - // Target WAF rule set to apply the preconfigured WAF exclusion. - TargetRuleSet pulumi.StringInput `pulumi:"targetRuleSet"` +// The minimum interval, in milliseconds, between BFD control packets +// transmitted to the peer router. The actual value is negotiated +// between the two routers and is equal to the greater of this value +// and the corresponding receive interval of the other router. If set, +// this value must be between 1000 and 30000. +func (o RouterPeerBfdPtrOutput) MinTransmitInterval() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RouterPeerBfd) *int { + if v == nil { + return nil + } + return v.MinTransmitInterval + }).(pulumi.IntPtrOutput) } -func (SecurityPolicyRulePreconfiguredWafConfigExclusionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusion)(nil)).Elem() +// The number of consecutive BFD packets that must be missed before +// BFD declares that a peer is unavailable. If set, the value must +// be a value between 5 and 16. +// +// The `md5AuthenticationKey` block supports: +func (o RouterPeerBfdPtrOutput) Multiplier() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RouterPeerBfd) *int { + if v == nil { + return nil + } + return v.Multiplier + }).(pulumi.IntPtrOutput) } -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionOutput { - return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionOutputWithContext(context.Background()) +// The BFD session initialization mode for this BGP peer. +// If set to `ACTIVE`, the Cloud Router will initiate the BFD session +// for this BGP peer. If set to `PASSIVE`, the Cloud Router will wait +// for the peer router to initiate the BFD session for this BGP peer. +// If set to `DISABLED`, BFD is disabled for this BGP peer. +// Possible values are: `ACTIVE`, `DISABLED`, `PASSIVE`. +func (o RouterPeerBfdPtrOutput) SessionInitializationMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouterPeerBfd) *string { + if v == nil { + return nil + } + return &v.SessionInitializationMode + }).(pulumi.StringPtrOutput) } -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) +type RouterPeerCustomLearnedIpRange struct { + // The IP range to learn. The value must be a + // CIDR-formatted string. + Range string `pulumi:"range"` } -// SecurityPolicyRulePreconfiguredWafConfigExclusionArrayInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionArray and SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput values. -// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionArrayInput` via: +// RouterPeerCustomLearnedIpRangeInput is an input type that accepts RouterPeerCustomLearnedIpRangeArgs and RouterPeerCustomLearnedIpRangeOutput values. +// You can construct a concrete instance of `RouterPeerCustomLearnedIpRangeInput` via: // -// SecurityPolicyRulePreconfiguredWafConfigExclusionArray{ SecurityPolicyRulePreconfiguredWafConfigExclusionArgs{...} } -type SecurityPolicyRulePreconfiguredWafConfigExclusionArrayInput interface { +// RouterPeerCustomLearnedIpRangeArgs{...} +type RouterPeerCustomLearnedIpRangeInput interface { pulumi.Input - ToSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput - ToSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput + ToRouterPeerCustomLearnedIpRangeOutput() RouterPeerCustomLearnedIpRangeOutput + ToRouterPeerCustomLearnedIpRangeOutputWithContext(context.Context) RouterPeerCustomLearnedIpRangeOutput } -type SecurityPolicyRulePreconfiguredWafConfigExclusionArray []SecurityPolicyRulePreconfiguredWafConfigExclusionInput +type RouterPeerCustomLearnedIpRangeArgs struct { + // The IP range to learn. The value must be a + // CIDR-formatted string. + Range pulumi.StringInput `pulumi:"range"` +} -func (SecurityPolicyRulePreconfiguredWafConfigExclusionArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusion)(nil)).Elem() +func (RouterPeerCustomLearnedIpRangeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouterPeerCustomLearnedIpRange)(nil)).Elem() } -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { - return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutputWithContext(context.Background()) +func (i RouterPeerCustomLearnedIpRangeArgs) ToRouterPeerCustomLearnedIpRangeOutput() RouterPeerCustomLearnedIpRangeOutput { + return i.ToRouterPeerCustomLearnedIpRangeOutputWithContext(context.Background()) } -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) +func (i RouterPeerCustomLearnedIpRangeArgs) ToRouterPeerCustomLearnedIpRangeOutputWithContext(ctx context.Context) RouterPeerCustomLearnedIpRangeOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterPeerCustomLearnedIpRangeOutput) } -type SecurityPolicyRulePreconfiguredWafConfigExclusionOutput struct{ *pulumi.OutputState } +// RouterPeerCustomLearnedIpRangeArrayInput is an input type that accepts RouterPeerCustomLearnedIpRangeArray and RouterPeerCustomLearnedIpRangeArrayOutput values. +// You can construct a concrete instance of `RouterPeerCustomLearnedIpRangeArrayInput` via: +// +// RouterPeerCustomLearnedIpRangeArray{ RouterPeerCustomLearnedIpRangeArgs{...} } +type RouterPeerCustomLearnedIpRangeArrayInput interface { + pulumi.Input -func (SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusion)(nil)).Elem() + ToRouterPeerCustomLearnedIpRangeArrayOutput() RouterPeerCustomLearnedIpRangeArrayOutput + ToRouterPeerCustomLearnedIpRangeArrayOutputWithContext(context.Context) RouterPeerCustomLearnedIpRangeArrayOutput } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionOutput { - return o -} +type RouterPeerCustomLearnedIpRangeArray []RouterPeerCustomLearnedIpRangeInput -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionOutput { - return o +func (RouterPeerCustomLearnedIpRangeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterPeerCustomLearnedIpRange)(nil)).Elem() } -// Request cookie whose value will be excluded from inspection during preconfigured WAF evaluation. -// Structure is documented below. -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) RequestCookies() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput { - return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusion) []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky { - return v.RequestCookies - }).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) +func (i RouterPeerCustomLearnedIpRangeArray) ToRouterPeerCustomLearnedIpRangeArrayOutput() RouterPeerCustomLearnedIpRangeArrayOutput { + return i.ToRouterPeerCustomLearnedIpRangeArrayOutputWithContext(context.Background()) } -// Request header whose value will be excluded from inspection during preconfigured WAF evaluation. -// Structure is documented below. -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) RequestHeaders() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput { - return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusion) []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader { - return v.RequestHeaders - }).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) +func (i RouterPeerCustomLearnedIpRangeArray) ToRouterPeerCustomLearnedIpRangeArrayOutputWithContext(ctx context.Context) RouterPeerCustomLearnedIpRangeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterPeerCustomLearnedIpRangeArrayOutput) } -// Request query parameter whose value will be excluded from inspection during preconfigured WAF evaluation. -// Note that the parameter can be in the query string or in the POST body. -// Structure is documented below. -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) RequestQueryParams() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput { - return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusion) []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam { - return v.RequestQueryParams - }).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) +type RouterPeerCustomLearnedIpRangeOutput struct{ *pulumi.OutputState } + +func (RouterPeerCustomLearnedIpRangeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouterPeerCustomLearnedIpRange)(nil)).Elem() } -// Request URI from the request line to be excluded from inspection during preconfigured WAF evaluation. -// When specifying this field, the query or fragment part should be excluded. -// Structure is documented below. -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) RequestUris() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput { - return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusion) []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri { - return v.RequestUris - }).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) +func (o RouterPeerCustomLearnedIpRangeOutput) ToRouterPeerCustomLearnedIpRangeOutput() RouterPeerCustomLearnedIpRangeOutput { + return o } -// A list of target rule IDs under the WAF rule set to apply the preconfigured WAF exclusion. -// If omitted, it refers to all the rule IDs under the WAF rule set. -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) TargetRuleIds() pulumi.StringArrayOutput { - return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusion) []string { return v.TargetRuleIds }).(pulumi.StringArrayOutput) +func (o RouterPeerCustomLearnedIpRangeOutput) ToRouterPeerCustomLearnedIpRangeOutputWithContext(ctx context.Context) RouterPeerCustomLearnedIpRangeOutput { + return o } -// Target WAF rule set to apply the preconfigured WAF exclusion. -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) TargetRuleSet() pulumi.StringOutput { - return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusion) string { return v.TargetRuleSet }).(pulumi.StringOutput) +// The IP range to learn. The value must be a +// CIDR-formatted string. +func (o RouterPeerCustomLearnedIpRangeOutput) Range() pulumi.StringOutput { + return o.ApplyT(func(v RouterPeerCustomLearnedIpRange) string { return v.Range }).(pulumi.StringOutput) } -type SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput struct{ *pulumi.OutputState } +type RouterPeerCustomLearnedIpRangeArrayOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusion)(nil)).Elem() +func (RouterPeerCustomLearnedIpRangeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterPeerCustomLearnedIpRange)(nil)).Elem() } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { +func (o RouterPeerCustomLearnedIpRangeArrayOutput) ToRouterPeerCustomLearnedIpRangeArrayOutput() RouterPeerCustomLearnedIpRangeArrayOutput { return o } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { +func (o RouterPeerCustomLearnedIpRangeArrayOutput) ToRouterPeerCustomLearnedIpRangeArrayOutputWithContext(ctx context.Context) RouterPeerCustomLearnedIpRangeArrayOutput { return o } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRulePreconfiguredWafConfigExclusionOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRulePreconfiguredWafConfigExclusion { - return vs[0].([]SecurityPolicyRulePreconfiguredWafConfigExclusion)[vs[1].(int)] - }).(SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) +func (o RouterPeerCustomLearnedIpRangeArrayOutput) Index(i pulumi.IntInput) RouterPeerCustomLearnedIpRangeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterPeerCustomLearnedIpRange { + return vs[0].([]RouterPeerCustomLearnedIpRange)[vs[1].(int)] + }).(RouterPeerCustomLearnedIpRangeOutput) } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky struct { - // You can specify an exact match or a partial match by using a field operator and a field value. - // Available options: - // EQUALS: The operator matches if the field value equals the specified value. - // STARTS_WITH: The operator matches if the field value starts with the specified value. - // ENDS_WITH: The operator matches if the field value ends with the specified value. - // CONTAINS: The operator matches if the field value contains the specified value. - // EQUALS_ANY: The operator matches if the field value is any value. - Operator string `pulumi:"operator"` - // A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. - // The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. - Value *string `pulumi:"value"` +type RouterPeerMd5AuthenticationKey struct { + // Value of the key. + Key string `pulumi:"key"` + // Name of this BGP peer. The name must be 1-63 characters long, + // and comply with RFC1035. Specifically, the name must be 1-63 characters + // long and match the regular expression `a-z?` which + // means the first character must be a lowercase letter, and all + // following characters must be a dash, lowercase letter, or digit, + // except the last character, which cannot be a dash. + Name string `pulumi:"name"` } -// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs and SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput values. -// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyInput` via: +// RouterPeerMd5AuthenticationKeyInput is an input type that accepts RouterPeerMd5AuthenticationKeyArgs and RouterPeerMd5AuthenticationKeyOutput values. +// You can construct a concrete instance of `RouterPeerMd5AuthenticationKeyInput` via: // -// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs{...} -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyInput interface { +// RouterPeerMd5AuthenticationKeyArgs{...} +type RouterPeerMd5AuthenticationKeyInput interface { pulumi.Input - ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput - ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput + ToRouterPeerMd5AuthenticationKeyOutput() RouterPeerMd5AuthenticationKeyOutput + ToRouterPeerMd5AuthenticationKeyOutputWithContext(context.Context) RouterPeerMd5AuthenticationKeyOutput } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs struct { - // You can specify an exact match or a partial match by using a field operator and a field value. - // Available options: - // EQUALS: The operator matches if the field value equals the specified value. - // STARTS_WITH: The operator matches if the field value starts with the specified value. - // ENDS_WITH: The operator matches if the field value ends with the specified value. - // CONTAINS: The operator matches if the field value contains the specified value. - // EQUALS_ANY: The operator matches if the field value is any value. - Operator pulumi.StringInput `pulumi:"operator"` - // A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. - // The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. - Value pulumi.StringPtrInput `pulumi:"value"` +type RouterPeerMd5AuthenticationKeyArgs struct { + // Value of the key. + Key pulumi.StringInput `pulumi:"key"` + // Name of this BGP peer. The name must be 1-63 characters long, + // and comply with RFC1035. Specifically, the name must be 1-63 characters + // long and match the regular expression `a-z?` which + // means the first character must be a lowercase letter, and all + // following characters must be a dash, lowercase letter, or digit, + // except the last character, which cannot be a dash. + Name pulumi.StringInput `pulumi:"name"` +} + +func (RouterPeerMd5AuthenticationKeyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouterPeerMd5AuthenticationKey)(nil)).Elem() } -func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky)(nil)).Elem() +func (i RouterPeerMd5AuthenticationKeyArgs) ToRouterPeerMd5AuthenticationKeyOutput() RouterPeerMd5AuthenticationKeyOutput { + return i.ToRouterPeerMd5AuthenticationKeyOutputWithContext(context.Background()) +} + +func (i RouterPeerMd5AuthenticationKeyArgs) ToRouterPeerMd5AuthenticationKeyOutputWithContext(ctx context.Context) RouterPeerMd5AuthenticationKeyOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterPeerMd5AuthenticationKeyOutput) } -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput { - return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutputWithContext(context.Background()) +func (i RouterPeerMd5AuthenticationKeyArgs) ToRouterPeerMd5AuthenticationKeyPtrOutput() RouterPeerMd5AuthenticationKeyPtrOutput { + return i.ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(context.Background()) } -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) +func (i RouterPeerMd5AuthenticationKeyArgs) ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(ctx context.Context) RouterPeerMd5AuthenticationKeyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterPeerMd5AuthenticationKeyOutput).ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(ctx) } -// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray and SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput values. -// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayInput` via: +// RouterPeerMd5AuthenticationKeyPtrInput is an input type that accepts RouterPeerMd5AuthenticationKeyArgs, RouterPeerMd5AuthenticationKeyPtr and RouterPeerMd5AuthenticationKeyPtrOutput values. +// You can construct a concrete instance of `RouterPeerMd5AuthenticationKeyPtrInput` via: +// +// RouterPeerMd5AuthenticationKeyArgs{...} +// +// or: // -// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray{ SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs{...} } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayInput interface { +// nil +type RouterPeerMd5AuthenticationKeyPtrInput interface { pulumi.Input - ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput - ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput + ToRouterPeerMd5AuthenticationKeyPtrOutput() RouterPeerMd5AuthenticationKeyPtrOutput + ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(context.Context) RouterPeerMd5AuthenticationKeyPtrOutput } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyInput +type routerPeerMd5AuthenticationKeyPtrType RouterPeerMd5AuthenticationKeyArgs + +func RouterPeerMd5AuthenticationKeyPtr(v *RouterPeerMd5AuthenticationKeyArgs) RouterPeerMd5AuthenticationKeyPtrInput { + return (*routerPeerMd5AuthenticationKeyPtrType)(v) +} -func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky)(nil)).Elem() +func (*routerPeerMd5AuthenticationKeyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouterPeerMd5AuthenticationKey)(nil)).Elem() } -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput { - return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutputWithContext(context.Background()) +func (i *routerPeerMd5AuthenticationKeyPtrType) ToRouterPeerMd5AuthenticationKeyPtrOutput() RouterPeerMd5AuthenticationKeyPtrOutput { + return i.ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(context.Background()) } -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) +func (i *routerPeerMd5AuthenticationKeyPtrType) ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(ctx context.Context) RouterPeerMd5AuthenticationKeyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterPeerMd5AuthenticationKeyPtrOutput) } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput struct{ *pulumi.OutputState } +type RouterPeerMd5AuthenticationKeyOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky)(nil)).Elem() +func (RouterPeerMd5AuthenticationKeyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouterPeerMd5AuthenticationKey)(nil)).Elem() } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput { +func (o RouterPeerMd5AuthenticationKeyOutput) ToRouterPeerMd5AuthenticationKeyOutput() RouterPeerMd5AuthenticationKeyOutput { return o } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput { +func (o RouterPeerMd5AuthenticationKeyOutput) ToRouterPeerMd5AuthenticationKeyOutputWithContext(ctx context.Context) RouterPeerMd5AuthenticationKeyOutput { return o } -// You can specify an exact match or a partial match by using a field operator and a field value. -// Available options: -// EQUALS: The operator matches if the field value equals the specified value. -// STARTS_WITH: The operator matches if the field value starts with the specified value. -// ENDS_WITH: The operator matches if the field value ends with the specified value. -// CONTAINS: The operator matches if the field value contains the specified value. -// EQUALS_ANY: The operator matches if the field value is any value. -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) Operator() pulumi.StringOutput { - return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky) string { return v.Operator }).(pulumi.StringOutput) +func (o RouterPeerMd5AuthenticationKeyOutput) ToRouterPeerMd5AuthenticationKeyPtrOutput() RouterPeerMd5AuthenticationKeyPtrOutput { + return o.ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(context.Background()) } -// A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. -// The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) Value() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky) *string { return v.Value }).(pulumi.StringPtrOutput) +func (o RouterPeerMd5AuthenticationKeyOutput) ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(ctx context.Context) RouterPeerMd5AuthenticationKeyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RouterPeerMd5AuthenticationKey) *RouterPeerMd5AuthenticationKey { + return &v + }).(RouterPeerMd5AuthenticationKeyPtrOutput) +} + +// Value of the key. +func (o RouterPeerMd5AuthenticationKeyOutput) Key() pulumi.StringOutput { + return o.ApplyT(func(v RouterPeerMd5AuthenticationKey) string { return v.Key }).(pulumi.StringOutput) } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput struct{ *pulumi.OutputState } +// Name of this BGP peer. The name must be 1-63 characters long, +// and comply with RFC1035. Specifically, the name must be 1-63 characters +// long and match the regular expression `a-z?` which +// means the first character must be a lowercase letter, and all +// following characters must be a dash, lowercase letter, or digit, +// except the last character, which cannot be a dash. +func (o RouterPeerMd5AuthenticationKeyOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v RouterPeerMd5AuthenticationKey) string { return v.Name }).(pulumi.StringOutput) +} + +type RouterPeerMd5AuthenticationKeyPtrOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky)(nil)).Elem() +func (RouterPeerMd5AuthenticationKeyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouterPeerMd5AuthenticationKey)(nil)).Elem() } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput { +func (o RouterPeerMd5AuthenticationKeyPtrOutput) ToRouterPeerMd5AuthenticationKeyPtrOutput() RouterPeerMd5AuthenticationKeyPtrOutput { return o } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput { +func (o RouterPeerMd5AuthenticationKeyPtrOutput) ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(ctx context.Context) RouterPeerMd5AuthenticationKeyPtrOutput { return o } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky { - return vs[0].([]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky)[vs[1].(int)] - }).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) +func (o RouterPeerMd5AuthenticationKeyPtrOutput) Elem() RouterPeerMd5AuthenticationKeyOutput { + return o.ApplyT(func(v *RouterPeerMd5AuthenticationKey) RouterPeerMd5AuthenticationKey { + if v != nil { + return *v + } + var ret RouterPeerMd5AuthenticationKey + return ret + }).(RouterPeerMd5AuthenticationKeyOutput) +} + +// Value of the key. +func (o RouterPeerMd5AuthenticationKeyPtrOutput) Key() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouterPeerMd5AuthenticationKey) *string { + if v == nil { + return nil + } + return &v.Key + }).(pulumi.StringPtrOutput) } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader struct { - // You can specify an exact match or a partial match by using a field operator and a field value. - // Available options: - // EQUALS: The operator matches if the field value equals the specified value. - // STARTS_WITH: The operator matches if the field value starts with the specified value. - // ENDS_WITH: The operator matches if the field value ends with the specified value. - // CONTAINS: The operator matches if the field value contains the specified value. - // EQUALS_ANY: The operator matches if the field value is any value. - Operator string `pulumi:"operator"` - // A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. - // The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. - Value *string `pulumi:"value"` +// Name of this BGP peer. The name must be 1-63 characters long, +// and comply with RFC1035. Specifically, the name must be 1-63 characters +// long and match the regular expression `a-z?` which +// means the first character must be a lowercase letter, and all +// following characters must be a dash, lowercase letter, or digit, +// except the last character, which cannot be a dash. +func (o RouterPeerMd5AuthenticationKeyPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouterPeerMd5AuthenticationKey) *string { + if v == nil { + return nil + } + return &v.Name + }).(pulumi.StringPtrOutput) +} + +type RouterRoutePolicyTerm struct { + // 'CEL expressions to evaluate to modify a route when this term matches.'\ + // Structure is documented below. + Actions []RouterRoutePolicyTermAction `pulumi:"actions"` + // CEL expression evaluated against a route to determine if this term applies (see Policy Language). When not set, the term applies to all routes. + // Structure is documented below. + Match *RouterRoutePolicyTermMatch `pulumi:"match"` + // The evaluation priority for this term, which must be between 0 (inclusive) and 231 (exclusive), and unique within the list. + Priority int `pulumi:"priority"` } -// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs and SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput values. -// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderInput` via: +// RouterRoutePolicyTermInput is an input type that accepts RouterRoutePolicyTermArgs and RouterRoutePolicyTermOutput values. +// You can construct a concrete instance of `RouterRoutePolicyTermInput` via: // -// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs{...} -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderInput interface { +// RouterRoutePolicyTermArgs{...} +type RouterRoutePolicyTermInput interface { pulumi.Input - ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput - ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput + ToRouterRoutePolicyTermOutput() RouterRoutePolicyTermOutput + ToRouterRoutePolicyTermOutputWithContext(context.Context) RouterRoutePolicyTermOutput } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs struct { - // You can specify an exact match or a partial match by using a field operator and a field value. - // Available options: - // EQUALS: The operator matches if the field value equals the specified value. - // STARTS_WITH: The operator matches if the field value starts with the specified value. - // ENDS_WITH: The operator matches if the field value ends with the specified value. - // CONTAINS: The operator matches if the field value contains the specified value. - // EQUALS_ANY: The operator matches if the field value is any value. - Operator pulumi.StringInput `pulumi:"operator"` - // A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. - // The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. - Value pulumi.StringPtrInput `pulumi:"value"` +type RouterRoutePolicyTermArgs struct { + // 'CEL expressions to evaluate to modify a route when this term matches.'\ + // Structure is documented below. + Actions RouterRoutePolicyTermActionArrayInput `pulumi:"actions"` + // CEL expression evaluated against a route to determine if this term applies (see Policy Language). When not set, the term applies to all routes. + // Structure is documented below. + Match RouterRoutePolicyTermMatchPtrInput `pulumi:"match"` + // The evaluation priority for this term, which must be between 0 (inclusive) and 231 (exclusive), and unique within the list. + Priority pulumi.IntInput `pulumi:"priority"` } -func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader)(nil)).Elem() +func (RouterRoutePolicyTermArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouterRoutePolicyTerm)(nil)).Elem() } -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput { - return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutputWithContext(context.Background()) +func (i RouterRoutePolicyTermArgs) ToRouterRoutePolicyTermOutput() RouterRoutePolicyTermOutput { + return i.ToRouterRoutePolicyTermOutputWithContext(context.Background()) } -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) +func (i RouterRoutePolicyTermArgs) ToRouterRoutePolicyTermOutputWithContext(ctx context.Context) RouterRoutePolicyTermOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterRoutePolicyTermOutput) } -// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray and SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput values. -// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayInput` via: +// RouterRoutePolicyTermArrayInput is an input type that accepts RouterRoutePolicyTermArray and RouterRoutePolicyTermArrayOutput values. +// You can construct a concrete instance of `RouterRoutePolicyTermArrayInput` via: // -// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray{ SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs{...} } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayInput interface { +// RouterRoutePolicyTermArray{ RouterRoutePolicyTermArgs{...} } +type RouterRoutePolicyTermArrayInput interface { pulumi.Input - ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput - ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput + ToRouterRoutePolicyTermArrayOutput() RouterRoutePolicyTermArrayOutput + ToRouterRoutePolicyTermArrayOutputWithContext(context.Context) RouterRoutePolicyTermArrayOutput } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderInput +type RouterRoutePolicyTermArray []RouterRoutePolicyTermInput -func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader)(nil)).Elem() +func (RouterRoutePolicyTermArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterRoutePolicyTerm)(nil)).Elem() } -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput { - return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutputWithContext(context.Background()) +func (i RouterRoutePolicyTermArray) ToRouterRoutePolicyTermArrayOutput() RouterRoutePolicyTermArrayOutput { + return i.ToRouterRoutePolicyTermArrayOutputWithContext(context.Background()) } -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) +func (i RouterRoutePolicyTermArray) ToRouterRoutePolicyTermArrayOutputWithContext(ctx context.Context) RouterRoutePolicyTermArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterRoutePolicyTermArrayOutput) } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput struct{ *pulumi.OutputState } +type RouterRoutePolicyTermOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader)(nil)).Elem() +func (RouterRoutePolicyTermOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouterRoutePolicyTerm)(nil)).Elem() } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput { +func (o RouterRoutePolicyTermOutput) ToRouterRoutePolicyTermOutput() RouterRoutePolicyTermOutput { return o } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput { +func (o RouterRoutePolicyTermOutput) ToRouterRoutePolicyTermOutputWithContext(ctx context.Context) RouterRoutePolicyTermOutput { return o } -// You can specify an exact match or a partial match by using a field operator and a field value. -// Available options: -// EQUALS: The operator matches if the field value equals the specified value. -// STARTS_WITH: The operator matches if the field value starts with the specified value. -// ENDS_WITH: The operator matches if the field value ends with the specified value. -// CONTAINS: The operator matches if the field value contains the specified value. -// EQUALS_ANY: The operator matches if the field value is any value. -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) Operator() pulumi.StringOutput { - return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader) string { return v.Operator }).(pulumi.StringOutput) +// 'CEL expressions to evaluate to modify a route when this term matches.'\ +// Structure is documented below. +func (o RouterRoutePolicyTermOutput) Actions() RouterRoutePolicyTermActionArrayOutput { + return o.ApplyT(func(v RouterRoutePolicyTerm) []RouterRoutePolicyTermAction { return v.Actions }).(RouterRoutePolicyTermActionArrayOutput) } -// A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. -// The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) Value() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader) *string { return v.Value }).(pulumi.StringPtrOutput) +// CEL expression evaluated against a route to determine if this term applies (see Policy Language). When not set, the term applies to all routes. +// Structure is documented below. +func (o RouterRoutePolicyTermOutput) Match() RouterRoutePolicyTermMatchPtrOutput { + return o.ApplyT(func(v RouterRoutePolicyTerm) *RouterRoutePolicyTermMatch { return v.Match }).(RouterRoutePolicyTermMatchPtrOutput) +} + +// The evaluation priority for this term, which must be between 0 (inclusive) and 231 (exclusive), and unique within the list. +func (o RouterRoutePolicyTermOutput) Priority() pulumi.IntOutput { + return o.ApplyT(func(v RouterRoutePolicyTerm) int { return v.Priority }).(pulumi.IntOutput) } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput struct{ *pulumi.OutputState } +type RouterRoutePolicyTermArrayOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader)(nil)).Elem() +func (RouterRoutePolicyTermArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterRoutePolicyTerm)(nil)).Elem() } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput { +func (o RouterRoutePolicyTermArrayOutput) ToRouterRoutePolicyTermArrayOutput() RouterRoutePolicyTermArrayOutput { return o } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput { +func (o RouterRoutePolicyTermArrayOutput) ToRouterRoutePolicyTermArrayOutputWithContext(ctx context.Context) RouterRoutePolicyTermArrayOutput { return o } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader { - return vs[0].([]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader)[vs[1].(int)] - }).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) +func (o RouterRoutePolicyTermArrayOutput) Index(i pulumi.IntInput) RouterRoutePolicyTermOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterRoutePolicyTerm { + return vs[0].([]RouterRoutePolicyTerm)[vs[1].(int)] + }).(RouterRoutePolicyTermOutput) } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam struct { - // You can specify an exact match or a partial match by using a field operator and a field value. - // Available options: - // EQUALS: The operator matches if the field value equals the specified value. - // STARTS_WITH: The operator matches if the field value starts with the specified value. - // ENDS_WITH: The operator matches if the field value ends with the specified value. - // CONTAINS: The operator matches if the field value contains the specified value. - // EQUALS_ANY: The operator matches if the field value is any value. - Operator string `pulumi:"operator"` - // A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. - // The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. - Value *string `pulumi:"value"` +type RouterRoutePolicyTermAction struct { + // Description of the expression + Description *string `pulumi:"description"` + // Textual representation of an expression in Common Expression + // Language syntax. + Expression string `pulumi:"expression"` + // String indicating the location of the expression for error + // reporting, e.g. a file name and a position in the file + // + // *** + Location *string `pulumi:"location"` + // Title for the expression, i.e. a short string describing its + // purpose. + Title *string `pulumi:"title"` } -// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs and SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput values. -// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamInput` via: +// RouterRoutePolicyTermActionInput is an input type that accepts RouterRoutePolicyTermActionArgs and RouterRoutePolicyTermActionOutput values. +// You can construct a concrete instance of `RouterRoutePolicyTermActionInput` via: // -// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs{...} -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamInput interface { +// RouterRoutePolicyTermActionArgs{...} +type RouterRoutePolicyTermActionInput interface { pulumi.Input - ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput - ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput + ToRouterRoutePolicyTermActionOutput() RouterRoutePolicyTermActionOutput + ToRouterRoutePolicyTermActionOutputWithContext(context.Context) RouterRoutePolicyTermActionOutput } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs struct { - // You can specify an exact match or a partial match by using a field operator and a field value. - // Available options: - // EQUALS: The operator matches if the field value equals the specified value. - // STARTS_WITH: The operator matches if the field value starts with the specified value. - // ENDS_WITH: The operator matches if the field value ends with the specified value. - // CONTAINS: The operator matches if the field value contains the specified value. - // EQUALS_ANY: The operator matches if the field value is any value. - Operator pulumi.StringInput `pulumi:"operator"` - // A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. - // The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. - Value pulumi.StringPtrInput `pulumi:"value"` +type RouterRoutePolicyTermActionArgs struct { + // Description of the expression + Description pulumi.StringPtrInput `pulumi:"description"` + // Textual representation of an expression in Common Expression + // Language syntax. + Expression pulumi.StringInput `pulumi:"expression"` + // String indicating the location of the expression for error + // reporting, e.g. a file name and a position in the file + // + // *** + Location pulumi.StringPtrInput `pulumi:"location"` + // Title for the expression, i.e. a short string describing its + // purpose. + Title pulumi.StringPtrInput `pulumi:"title"` } -func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam)(nil)).Elem() +func (RouterRoutePolicyTermActionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouterRoutePolicyTermAction)(nil)).Elem() } -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput { - return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutputWithContext(context.Background()) +func (i RouterRoutePolicyTermActionArgs) ToRouterRoutePolicyTermActionOutput() RouterRoutePolicyTermActionOutput { + return i.ToRouterRoutePolicyTermActionOutputWithContext(context.Background()) } -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) +func (i RouterRoutePolicyTermActionArgs) ToRouterRoutePolicyTermActionOutputWithContext(ctx context.Context) RouterRoutePolicyTermActionOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterRoutePolicyTermActionOutput) } -// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray and SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput values. -// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayInput` via: +// RouterRoutePolicyTermActionArrayInput is an input type that accepts RouterRoutePolicyTermActionArray and RouterRoutePolicyTermActionArrayOutput values. +// You can construct a concrete instance of `RouterRoutePolicyTermActionArrayInput` via: // -// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray{ SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs{...} } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayInput interface { +// RouterRoutePolicyTermActionArray{ RouterRoutePolicyTermActionArgs{...} } +type RouterRoutePolicyTermActionArrayInput interface { pulumi.Input - ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput - ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput + ToRouterRoutePolicyTermActionArrayOutput() RouterRoutePolicyTermActionArrayOutput + ToRouterRoutePolicyTermActionArrayOutputWithContext(context.Context) RouterRoutePolicyTermActionArrayOutput } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamInput +type RouterRoutePolicyTermActionArray []RouterRoutePolicyTermActionInput -func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam)(nil)).Elem() +func (RouterRoutePolicyTermActionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterRoutePolicyTermAction)(nil)).Elem() } -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput { - return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutputWithContext(context.Background()) +func (i RouterRoutePolicyTermActionArray) ToRouterRoutePolicyTermActionArrayOutput() RouterRoutePolicyTermActionArrayOutput { + return i.ToRouterRoutePolicyTermActionArrayOutputWithContext(context.Background()) } -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) +func (i RouterRoutePolicyTermActionArray) ToRouterRoutePolicyTermActionArrayOutputWithContext(ctx context.Context) RouterRoutePolicyTermActionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterRoutePolicyTermActionArrayOutput) } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput struct{ *pulumi.OutputState } +type RouterRoutePolicyTermActionOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam)(nil)).Elem() +func (RouterRoutePolicyTermActionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouterRoutePolicyTermAction)(nil)).Elem() } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput { +func (o RouterRoutePolicyTermActionOutput) ToRouterRoutePolicyTermActionOutput() RouterRoutePolicyTermActionOutput { return o } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput { +func (o RouterRoutePolicyTermActionOutput) ToRouterRoutePolicyTermActionOutputWithContext(ctx context.Context) RouterRoutePolicyTermActionOutput { return o } -// You can specify an exact match or a partial match by using a field operator and a field value. -// Available options: -// EQUALS: The operator matches if the field value equals the specified value. -// STARTS_WITH: The operator matches if the field value starts with the specified value. -// ENDS_WITH: The operator matches if the field value ends with the specified value. -// CONTAINS: The operator matches if the field value contains the specified value. -// EQUALS_ANY: The operator matches if the field value is any value. -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) Operator() pulumi.StringOutput { - return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam) string { return v.Operator }).(pulumi.StringOutput) +// Description of the expression +func (o RouterRoutePolicyTermActionOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouterRoutePolicyTermAction) *string { return v.Description }).(pulumi.StringPtrOutput) } -// A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. -// The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) Value() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam) *string { return v.Value }).(pulumi.StringPtrOutput) +// Textual representation of an expression in Common Expression +// Language syntax. +func (o RouterRoutePolicyTermActionOutput) Expression() pulumi.StringOutput { + return o.ApplyT(func(v RouterRoutePolicyTermAction) string { return v.Expression }).(pulumi.StringOutput) } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput struct{ *pulumi.OutputState } - -func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam)(nil)).Elem() +// String indicating the location of the expression for error +// reporting, e.g. a file name and a position in the file +// +// *** +func (o RouterRoutePolicyTermActionOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouterRoutePolicyTermAction) *string { return v.Location }).(pulumi.StringPtrOutput) } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput { - return o +// Title for the expression, i.e. a short string describing its +// purpose. +func (o RouterRoutePolicyTermActionOutput) Title() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouterRoutePolicyTermAction) *string { return v.Title }).(pulumi.StringPtrOutput) } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput { - return o -} +type RouterRoutePolicyTermActionArrayOutput struct{ *pulumi.OutputState } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam { - return vs[0].([]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam)[vs[1].(int)] - }).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) +func (RouterRoutePolicyTermActionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterRoutePolicyTermAction)(nil)).Elem() } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri struct { - // You can specify an exact match or a partial match by using a field operator and a field value. - // Available options: - // EQUALS: The operator matches if the field value equals the specified value. - // STARTS_WITH: The operator matches if the field value starts with the specified value. - // ENDS_WITH: The operator matches if the field value ends with the specified value. - // CONTAINS: The operator matches if the field value contains the specified value. - // EQUALS_ANY: The operator matches if the field value is any value. - Operator string `pulumi:"operator"` - // A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. - // The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. - Value *string `pulumi:"value"` +func (o RouterRoutePolicyTermActionArrayOutput) ToRouterRoutePolicyTermActionArrayOutput() RouterRoutePolicyTermActionArrayOutput { + return o } -// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs and SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput values. -// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriInput` via: -// -// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs{...} -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriInput interface { - pulumi.Input +func (o RouterRoutePolicyTermActionArrayOutput) ToRouterRoutePolicyTermActionArrayOutputWithContext(ctx context.Context) RouterRoutePolicyTermActionArrayOutput { + return o +} - ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput - ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput +func (o RouterRoutePolicyTermActionArrayOutput) Index(i pulumi.IntInput) RouterRoutePolicyTermActionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterRoutePolicyTermAction { + return vs[0].([]RouterRoutePolicyTermAction)[vs[1].(int)] + }).(RouterRoutePolicyTermActionOutput) } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs struct { - // You can specify an exact match or a partial match by using a field operator and a field value. - // Available options: - // EQUALS: The operator matches if the field value equals the specified value. - // STARTS_WITH: The operator matches if the field value starts with the specified value. - // ENDS_WITH: The operator matches if the field value ends with the specified value. - // CONTAINS: The operator matches if the field value contains the specified value. - // EQUALS_ANY: The operator matches if the field value is any value. - Operator pulumi.StringInput `pulumi:"operator"` - // A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. - // The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. - Value pulumi.StringPtrInput `pulumi:"value"` +type RouterRoutePolicyTermMatch struct { + // Description of the expression + Description *string `pulumi:"description"` + // Textual representation of an expression in Common Expression Language syntax. + Expression string `pulumi:"expression"` + // String indicating the location of the expression for error reporting, e.g. a file name and a position in the file + Location *string `pulumi:"location"` + // Title for the expression, i.e. a short string describing its purpose. + Title *string `pulumi:"title"` } -func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri)(nil)).Elem() -} +// RouterRoutePolicyTermMatchInput is an input type that accepts RouterRoutePolicyTermMatchArgs and RouterRoutePolicyTermMatchOutput values. +// You can construct a concrete instance of `RouterRoutePolicyTermMatchInput` via: +// +// RouterRoutePolicyTermMatchArgs{...} +type RouterRoutePolicyTermMatchInput interface { + pulumi.Input -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput { - return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutputWithContext(context.Background()) + ToRouterRoutePolicyTermMatchOutput() RouterRoutePolicyTermMatchOutput + ToRouterRoutePolicyTermMatchOutputWithContext(context.Context) RouterRoutePolicyTermMatchOutput } -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) +type RouterRoutePolicyTermMatchArgs struct { + // Description of the expression + Description pulumi.StringPtrInput `pulumi:"description"` + // Textual representation of an expression in Common Expression Language syntax. + Expression pulumi.StringInput `pulumi:"expression"` + // String indicating the location of the expression for error reporting, e.g. a file name and a position in the file + Location pulumi.StringPtrInput `pulumi:"location"` + // Title for the expression, i.e. a short string describing its purpose. + Title pulumi.StringPtrInput `pulumi:"title"` } -// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray and SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput values. -// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayInput` via: -// -// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray{ SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs{...} } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayInput interface { - pulumi.Input - - ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput - ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput +func (RouterRoutePolicyTermMatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouterRoutePolicyTermMatch)(nil)).Elem() } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriInput +func (i RouterRoutePolicyTermMatchArgs) ToRouterRoutePolicyTermMatchOutput() RouterRoutePolicyTermMatchOutput { + return i.ToRouterRoutePolicyTermMatchOutputWithContext(context.Background()) +} -func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri)(nil)).Elem() +func (i RouterRoutePolicyTermMatchArgs) ToRouterRoutePolicyTermMatchOutputWithContext(ctx context.Context) RouterRoutePolicyTermMatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterRoutePolicyTermMatchOutput) } -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput { - return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutputWithContext(context.Background()) +func (i RouterRoutePolicyTermMatchArgs) ToRouterRoutePolicyTermMatchPtrOutput() RouterRoutePolicyTermMatchPtrOutput { + return i.ToRouterRoutePolicyTermMatchPtrOutputWithContext(context.Background()) } -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) +func (i RouterRoutePolicyTermMatchArgs) ToRouterRoutePolicyTermMatchPtrOutputWithContext(ctx context.Context) RouterRoutePolicyTermMatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterRoutePolicyTermMatchOutput).ToRouterRoutePolicyTermMatchPtrOutputWithContext(ctx) } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput struct{ *pulumi.OutputState } +// RouterRoutePolicyTermMatchPtrInput is an input type that accepts RouterRoutePolicyTermMatchArgs, RouterRoutePolicyTermMatchPtr and RouterRoutePolicyTermMatchPtrOutput values. +// You can construct a concrete instance of `RouterRoutePolicyTermMatchPtrInput` via: +// +// RouterRoutePolicyTermMatchArgs{...} +// +// or: +// +// nil +type RouterRoutePolicyTermMatchPtrInput interface { + pulumi.Input -func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri)(nil)).Elem() + ToRouterRoutePolicyTermMatchPtrOutput() RouterRoutePolicyTermMatchPtrOutput + ToRouterRoutePolicyTermMatchPtrOutputWithContext(context.Context) RouterRoutePolicyTermMatchPtrOutput } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput { - return o +type routerRoutePolicyTermMatchPtrType RouterRoutePolicyTermMatchArgs + +func RouterRoutePolicyTermMatchPtr(v *RouterRoutePolicyTermMatchArgs) RouterRoutePolicyTermMatchPtrInput { + return (*routerRoutePolicyTermMatchPtrType)(v) } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput { - return o +func (*routerRoutePolicyTermMatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouterRoutePolicyTermMatch)(nil)).Elem() } -// You can specify an exact match or a partial match by using a field operator and a field value. -// Available options: -// EQUALS: The operator matches if the field value equals the specified value. -// STARTS_WITH: The operator matches if the field value starts with the specified value. -// ENDS_WITH: The operator matches if the field value ends with the specified value. -// CONTAINS: The operator matches if the field value contains the specified value. -// EQUALS_ANY: The operator matches if the field value is any value. -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) Operator() pulumi.StringOutput { - return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri) string { return v.Operator }).(pulumi.StringOutput) +func (i *routerRoutePolicyTermMatchPtrType) ToRouterRoutePolicyTermMatchPtrOutput() RouterRoutePolicyTermMatchPtrOutput { + return i.ToRouterRoutePolicyTermMatchPtrOutputWithContext(context.Background()) } -// A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. -// The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) Value() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri) *string { return v.Value }).(pulumi.StringPtrOutput) +func (i *routerRoutePolicyTermMatchPtrType) ToRouterRoutePolicyTermMatchPtrOutputWithContext(ctx context.Context) RouterRoutePolicyTermMatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterRoutePolicyTermMatchPtrOutput) } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput struct{ *pulumi.OutputState } +type RouterRoutePolicyTermMatchOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri)(nil)).Elem() +func (RouterRoutePolicyTermMatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouterRoutePolicyTermMatch)(nil)).Elem() } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput { +func (o RouterRoutePolicyTermMatchOutput) ToRouterRoutePolicyTermMatchOutput() RouterRoutePolicyTermMatchOutput { return o } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput { +func (o RouterRoutePolicyTermMatchOutput) ToRouterRoutePolicyTermMatchOutputWithContext(ctx context.Context) RouterRoutePolicyTermMatchOutput { return o } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri { - return vs[0].([]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri)[vs[1].(int)] - }).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) +func (o RouterRoutePolicyTermMatchOutput) ToRouterRoutePolicyTermMatchPtrOutput() RouterRoutePolicyTermMatchPtrOutput { + return o.ToRouterRoutePolicyTermMatchPtrOutputWithContext(context.Background()) } -type SecurityPolicyRuleRateLimitOptions struct { - // Can only be specified if the action for the rule is "rateBasedBan". - // If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold. - BanDurationSec *int `pulumi:"banDurationSec"` - // Can only be specified if the action for the rule is "rateBasedBan". - // If specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'. - // Structure is documented below. - BanThreshold *SecurityPolicyRuleRateLimitOptionsBanThreshold `pulumi:"banThreshold"` - // Action to take for requests that are under the configured rate limit threshold. - // Valid option is "allow" only. - ConformAction *string `pulumi:"conformAction"` - // Determines the key to enforce the rateLimitThreshold on. Possible values are: - // * ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKey" is not configured. - // * IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - // * HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - // * XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. - // * HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. - // * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. - // * SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. - // * REGION_CODE: The country/region from which the request originates. - // * TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. - // * USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP. - // Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. - EnforceOnKey *string `pulumi:"enforceOnKey"` - // If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced. - // You can specify up to 3 enforceOnKeyConfigs. - // If enforceOnKeyConfigs is specified, enforceOnKey must not be specified. - // Structure is documented below. - EnforceOnKeyConfigs []SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig `pulumi:"enforceOnKeyConfigs"` - // Rate limit key name applicable only for the following key types: - // HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. - // HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. - EnforceOnKeyName *string `pulumi:"enforceOnKeyName"` - // Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint. - // Valid options are deny(STATUS), where valid values for STATUS are 403, 404, 429, and 502. - ExceedAction *string `pulumi:"exceedAction"` - // Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect. This field is only supported in Global Security Policies of type CLOUD_ARMOR. - // Structure is documented below. - ExceedRedirectOptions *SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions `pulumi:"exceedRedirectOptions"` - // Threshold at which to begin ratelimiting. - // Structure is documented below. - RateLimitThreshold *SecurityPolicyRuleRateLimitOptionsRateLimitThreshold `pulumi:"rateLimitThreshold"` +func (o RouterRoutePolicyTermMatchOutput) ToRouterRoutePolicyTermMatchPtrOutputWithContext(ctx context.Context) RouterRoutePolicyTermMatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RouterRoutePolicyTermMatch) *RouterRoutePolicyTermMatch { + return &v + }).(RouterRoutePolicyTermMatchPtrOutput) } -// SecurityPolicyRuleRateLimitOptionsInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsArgs and SecurityPolicyRuleRateLimitOptionsOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsInput` via: -// -// SecurityPolicyRuleRateLimitOptionsArgs{...} -type SecurityPolicyRuleRateLimitOptionsInput interface { - pulumi.Input - - ToSecurityPolicyRuleRateLimitOptionsOutput() SecurityPolicyRuleRateLimitOptionsOutput - ToSecurityPolicyRuleRateLimitOptionsOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsOutput +// Description of the expression +func (o RouterRoutePolicyTermMatchOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouterRoutePolicyTermMatch) *string { return v.Description }).(pulumi.StringPtrOutput) } -type SecurityPolicyRuleRateLimitOptionsArgs struct { - // Can only be specified if the action for the rule is "rateBasedBan". - // If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold. - BanDurationSec pulumi.IntPtrInput `pulumi:"banDurationSec"` - // Can only be specified if the action for the rule is "rateBasedBan". - // If specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'. - // Structure is documented below. - BanThreshold SecurityPolicyRuleRateLimitOptionsBanThresholdPtrInput `pulumi:"banThreshold"` - // Action to take for requests that are under the configured rate limit threshold. - // Valid option is "allow" only. - ConformAction pulumi.StringPtrInput `pulumi:"conformAction"` - // Determines the key to enforce the rateLimitThreshold on. Possible values are: - // * ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKey" is not configured. - // * IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - // * HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - // * XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. - // * HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. - // * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. - // * SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. - // * REGION_CODE: The country/region from which the request originates. - // * TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. - // * USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP. - // Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. - EnforceOnKey pulumi.StringPtrInput `pulumi:"enforceOnKey"` - // If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced. - // You can specify up to 3 enforceOnKeyConfigs. - // If enforceOnKeyConfigs is specified, enforceOnKey must not be specified. - // Structure is documented below. - EnforceOnKeyConfigs SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayInput `pulumi:"enforceOnKeyConfigs"` - // Rate limit key name applicable only for the following key types: - // HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. - // HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. - EnforceOnKeyName pulumi.StringPtrInput `pulumi:"enforceOnKeyName"` - // Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint. - // Valid options are deny(STATUS), where valid values for STATUS are 403, 404, 429, and 502. - ExceedAction pulumi.StringPtrInput `pulumi:"exceedAction"` - // Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect. This field is only supported in Global Security Policies of type CLOUD_ARMOR. - // Structure is documented below. - ExceedRedirectOptions SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrInput `pulumi:"exceedRedirectOptions"` - // Threshold at which to begin ratelimiting. - // Structure is documented below. - RateLimitThreshold SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrInput `pulumi:"rateLimitThreshold"` +// Textual representation of an expression in Common Expression Language syntax. +func (o RouterRoutePolicyTermMatchOutput) Expression() pulumi.StringOutput { + return o.ApplyT(func(v RouterRoutePolicyTermMatch) string { return v.Expression }).(pulumi.StringOutput) } -func (SecurityPolicyRuleRateLimitOptionsArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptions)(nil)).Elem() +// String indicating the location of the expression for error reporting, e.g. a file name and a position in the file +func (o RouterRoutePolicyTermMatchOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouterRoutePolicyTermMatch) *string { return v.Location }).(pulumi.StringPtrOutput) } -func (i SecurityPolicyRuleRateLimitOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsOutput() SecurityPolicyRuleRateLimitOptionsOutput { - return i.ToSecurityPolicyRuleRateLimitOptionsOutputWithContext(context.Background()) +// Title for the expression, i.e. a short string describing its purpose. +func (o RouterRoutePolicyTermMatchOutput) Title() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouterRoutePolicyTermMatch) *string { return v.Title }).(pulumi.StringPtrOutput) } -func (i SecurityPolicyRuleRateLimitOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsOutput) -} +type RouterRoutePolicyTermMatchPtrOutput struct{ *pulumi.OutputState } -func (i SecurityPolicyRuleRateLimitOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsPtrOutput { - return i.ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(context.Background()) +func (RouterRoutePolicyTermMatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouterRoutePolicyTermMatch)(nil)).Elem() } -func (i SecurityPolicyRuleRateLimitOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsOutput).ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx) +func (o RouterRoutePolicyTermMatchPtrOutput) ToRouterRoutePolicyTermMatchPtrOutput() RouterRoutePolicyTermMatchPtrOutput { + return o } -// SecurityPolicyRuleRateLimitOptionsPtrInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsArgs, SecurityPolicyRuleRateLimitOptionsPtr and SecurityPolicyRuleRateLimitOptionsPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsPtrInput` via: -// -// SecurityPolicyRuleRateLimitOptionsArgs{...} -// -// or: -// -// nil -type SecurityPolicyRuleRateLimitOptionsPtrInput interface { - pulumi.Input +func (o RouterRoutePolicyTermMatchPtrOutput) ToRouterRoutePolicyTermMatchPtrOutputWithContext(ctx context.Context) RouterRoutePolicyTermMatchPtrOutput { + return o +} - ToSecurityPolicyRuleRateLimitOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsPtrOutput - ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsPtrOutput +func (o RouterRoutePolicyTermMatchPtrOutput) Elem() RouterRoutePolicyTermMatchOutput { + return o.ApplyT(func(v *RouterRoutePolicyTermMatch) RouterRoutePolicyTermMatch { + if v != nil { + return *v + } + var ret RouterRoutePolicyTermMatch + return ret + }).(RouterRoutePolicyTermMatchOutput) } -type securityPolicyRuleRateLimitOptionsPtrType SecurityPolicyRuleRateLimitOptionsArgs +// Description of the expression +func (o RouterRoutePolicyTermMatchPtrOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouterRoutePolicyTermMatch) *string { + if v == nil { + return nil + } + return v.Description + }).(pulumi.StringPtrOutput) +} -func SecurityPolicyRuleRateLimitOptionsPtr(v *SecurityPolicyRuleRateLimitOptionsArgs) SecurityPolicyRuleRateLimitOptionsPtrInput { - return (*securityPolicyRuleRateLimitOptionsPtrType)(v) +// Textual representation of an expression in Common Expression Language syntax. +func (o RouterRoutePolicyTermMatchPtrOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouterRoutePolicyTermMatch) *string { + if v == nil { + return nil + } + return &v.Expression + }).(pulumi.StringPtrOutput) } -func (*securityPolicyRuleRateLimitOptionsPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptions)(nil)).Elem() +// String indicating the location of the expression for error reporting, e.g. a file name and a position in the file +func (o RouterRoutePolicyTermMatchPtrOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouterRoutePolicyTermMatch) *string { + if v == nil { + return nil + } + return v.Location + }).(pulumi.StringPtrOutput) } -func (i *securityPolicyRuleRateLimitOptionsPtrType) ToSecurityPolicyRuleRateLimitOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsPtrOutput { - return i.ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(context.Background()) +// Title for the expression, i.e. a short string describing its purpose. +func (o RouterRoutePolicyTermMatchPtrOutput) Title() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouterRoutePolicyTermMatch) *string { + if v == nil { + return nil + } + return v.Title + }).(pulumi.StringPtrOutput) } -func (i *securityPolicyRuleRateLimitOptionsPtrType) ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsPtrOutput) +type RouterStatusBestRoute struct { + // An optional description of this resource. Provide this property + // when you create the resource. + Description string `pulumi:"description"` + // The destination range of outgoing packets that this route applies to. + // Only IPv4 is supported. + DestRange string `pulumi:"destRange"` + // The name of the router. + Name string `pulumi:"name"` + // The network name or resource link to the parent + // network of this subnetwork. + Network string `pulumi:"network"` + // URL to a gateway that should handle matching packets. + // Currently, you can only specify the internet gateway, using a full or + // partial valid URL: + // * 'https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway' + // * 'projects/project/global/gateways/default-internet-gateway' + // * 'global/gateways/default-internet-gateway' + // * The string 'default-internet-gateway'. + NextHopGateway string `pulumi:"nextHopGateway"` + // The IP address or URL to a forwarding rule of type + // loadBalancingScheme=INTERNAL that should handle matching + // packets. + // + // With the GA provider you can only specify the forwarding + // rule as a partial or full URL. For example, the following + // are all valid values: + // * 10.128.0.56 + // * https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule + // * regions/region/forwardingRules/forwardingRule + // + // When the beta provider, you can also specify the IP address + // of a forwarding rule from the same VPC or any peered VPC. + // + // Note that this can only be used when the destinationRange is + // a public (non-RFC 1918) IP CIDR range. + NextHopIlb string `pulumi:"nextHopIlb"` + // URL to an instance that should handle matching packets. + // You can specify this as a full or partial URL. For example: + // * 'https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance' + // * 'projects/project/zones/zone/instances/instance' + // * 'zones/zone/instances/instance' + // * Just the instance name, with the zone in 'next_hop_instance_zone'. + NextHopInstance string `pulumi:"nextHopInstance"` + // The zone of the instance specified in next_hop_instance. Omit if nextHopInstance is specified as a URL. + NextHopInstanceZone string `pulumi:"nextHopInstanceZone"` + // Internal fixed region-to-region cost that Google Cloud calculates based on factors such as network performance, distance, and available bandwidth between regions. + NextHopInterRegionCost string `pulumi:"nextHopInterRegionCost"` + // Network IP address of an instance that should handle matching packets. + NextHopIp string `pulumi:"nextHopIp"` + // Multi-Exit Discriminator, a BGP route metric that indicates the desirability of a particular route in a network. + NextHopMed string `pulumi:"nextHopMed"` + // URL to a Network that should handle matching packets. + NextHopNetwork string `pulumi:"nextHopNetwork"` + // Indicates the origin of the route. Can be IGP (Interior Gateway Protocol), EGP (Exterior Gateway Protocol), or INCOMPLETE. + NextHopOrigin string `pulumi:"nextHopOrigin"` + // URL to a VpnTunnel that should handle matching packets. + NextHopVpnTunnel string `pulumi:"nextHopVpnTunnel"` + // The priority of this route. Priority is used to break ties in cases + // where there is more than one matching route of equal prefix length. + // + // In the case of two routes with equal prefix length, the one with the + // lowest-numbered priority value wins. + // + // Default value is 1000. Valid range is 0 through 65535. + Priority int `pulumi:"priority"` + // The ID of the project in which the resource + // belongs. If it is not provided, the provider project is used. + Project string `pulumi:"project"` + SelfLink string `pulumi:"selfLink"` + // A list of instance tags to which this route applies. + Tags []string `pulumi:"tags"` } -type SecurityPolicyRuleRateLimitOptionsOutput struct{ *pulumi.OutputState } +// RouterStatusBestRouteInput is an input type that accepts RouterStatusBestRouteArgs and RouterStatusBestRouteOutput values. +// You can construct a concrete instance of `RouterStatusBestRouteInput` via: +// +// RouterStatusBestRouteArgs{...} +type RouterStatusBestRouteInput interface { + pulumi.Input -func (SecurityPolicyRuleRateLimitOptionsOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptions)(nil)).Elem() + ToRouterStatusBestRouteOutput() RouterStatusBestRouteOutput + ToRouterStatusBestRouteOutputWithContext(context.Context) RouterStatusBestRouteOutput } -func (o SecurityPolicyRuleRateLimitOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsOutput() SecurityPolicyRuleRateLimitOptionsOutput { - return o +type RouterStatusBestRouteArgs struct { + // An optional description of this resource. Provide this property + // when you create the resource. + Description pulumi.StringInput `pulumi:"description"` + // The destination range of outgoing packets that this route applies to. + // Only IPv4 is supported. + DestRange pulumi.StringInput `pulumi:"destRange"` + // The name of the router. + Name pulumi.StringInput `pulumi:"name"` + // The network name or resource link to the parent + // network of this subnetwork. + Network pulumi.StringInput `pulumi:"network"` + // URL to a gateway that should handle matching packets. + // Currently, you can only specify the internet gateway, using a full or + // partial valid URL: + // * 'https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway' + // * 'projects/project/global/gateways/default-internet-gateway' + // * 'global/gateways/default-internet-gateway' + // * The string 'default-internet-gateway'. + NextHopGateway pulumi.StringInput `pulumi:"nextHopGateway"` + // The IP address or URL to a forwarding rule of type + // loadBalancingScheme=INTERNAL that should handle matching + // packets. + // + // With the GA provider you can only specify the forwarding + // rule as a partial or full URL. For example, the following + // are all valid values: + // * 10.128.0.56 + // * https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule + // * regions/region/forwardingRules/forwardingRule + // + // When the beta provider, you can also specify the IP address + // of a forwarding rule from the same VPC or any peered VPC. + // + // Note that this can only be used when the destinationRange is + // a public (non-RFC 1918) IP CIDR range. + NextHopIlb pulumi.StringInput `pulumi:"nextHopIlb"` + // URL to an instance that should handle matching packets. + // You can specify this as a full or partial URL. For example: + // * 'https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance' + // * 'projects/project/zones/zone/instances/instance' + // * 'zones/zone/instances/instance' + // * Just the instance name, with the zone in 'next_hop_instance_zone'. + NextHopInstance pulumi.StringInput `pulumi:"nextHopInstance"` + // The zone of the instance specified in next_hop_instance. Omit if nextHopInstance is specified as a URL. + NextHopInstanceZone pulumi.StringInput `pulumi:"nextHopInstanceZone"` + // Internal fixed region-to-region cost that Google Cloud calculates based on factors such as network performance, distance, and available bandwidth between regions. + NextHopInterRegionCost pulumi.StringInput `pulumi:"nextHopInterRegionCost"` + // Network IP address of an instance that should handle matching packets. + NextHopIp pulumi.StringInput `pulumi:"nextHopIp"` + // Multi-Exit Discriminator, a BGP route metric that indicates the desirability of a particular route in a network. + NextHopMed pulumi.StringInput `pulumi:"nextHopMed"` + // URL to a Network that should handle matching packets. + NextHopNetwork pulumi.StringInput `pulumi:"nextHopNetwork"` + // Indicates the origin of the route. Can be IGP (Interior Gateway Protocol), EGP (Exterior Gateway Protocol), or INCOMPLETE. + NextHopOrigin pulumi.StringInput `pulumi:"nextHopOrigin"` + // URL to a VpnTunnel that should handle matching packets. + NextHopVpnTunnel pulumi.StringInput `pulumi:"nextHopVpnTunnel"` + // The priority of this route. Priority is used to break ties in cases + // where there is more than one matching route of equal prefix length. + // + // In the case of two routes with equal prefix length, the one with the + // lowest-numbered priority value wins. + // + // Default value is 1000. Valid range is 0 through 65535. + Priority pulumi.IntInput `pulumi:"priority"` + // The ID of the project in which the resource + // belongs. If it is not provided, the provider project is used. + Project pulumi.StringInput `pulumi:"project"` + SelfLink pulumi.StringInput `pulumi:"selfLink"` + // A list of instance tags to which this route applies. + Tags pulumi.StringArrayInput `pulumi:"tags"` } -func (o SecurityPolicyRuleRateLimitOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsOutput { - return o +func (RouterStatusBestRouteArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouterStatusBestRoute)(nil)).Elem() } -func (o SecurityPolicyRuleRateLimitOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsPtrOutput { - return o.ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(context.Background()) +func (i RouterStatusBestRouteArgs) ToRouterStatusBestRouteOutput() RouterStatusBestRouteOutput { + return i.ToRouterStatusBestRouteOutputWithContext(context.Background()) } -func (o SecurityPolicyRuleRateLimitOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptions { - return &v - }).(SecurityPolicyRuleRateLimitOptionsPtrOutput) +func (i RouterStatusBestRouteArgs) ToRouterStatusBestRouteOutputWithContext(ctx context.Context) RouterStatusBestRouteOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterStatusBestRouteOutput) } -// Can only be specified if the action for the rule is "rateBasedBan". -// If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold. -func (o SecurityPolicyRuleRateLimitOptionsOutput) BanDurationSec() pulumi.IntPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *int { return v.BanDurationSec }).(pulumi.IntPtrOutput) -} +// RouterStatusBestRouteArrayInput is an input type that accepts RouterStatusBestRouteArray and RouterStatusBestRouteArrayOutput values. +// You can construct a concrete instance of `RouterStatusBestRouteArrayInput` via: +// +// RouterStatusBestRouteArray{ RouterStatusBestRouteArgs{...} } +type RouterStatusBestRouteArrayInput interface { + pulumi.Input -// Can only be specified if the action for the rule is "rateBasedBan". -// If specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'. -// Structure is documented below. -func (o SecurityPolicyRuleRateLimitOptionsOutput) BanThreshold() SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptionsBanThreshold { - return v.BanThreshold - }).(SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) + ToRouterStatusBestRouteArrayOutput() RouterStatusBestRouteArrayOutput + ToRouterStatusBestRouteArrayOutputWithContext(context.Context) RouterStatusBestRouteArrayOutput } -// Action to take for requests that are under the configured rate limit threshold. -// Valid option is "allow" only. -func (o SecurityPolicyRuleRateLimitOptionsOutput) ConformAction() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *string { return v.ConformAction }).(pulumi.StringPtrOutput) -} +type RouterStatusBestRouteArray []RouterStatusBestRouteInput -// Determines the key to enforce the rateLimitThreshold on. Possible values are: -// - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKey" is not configured. -// - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. -// - HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. -// - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. -// - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. -// - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. -// - SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. -// - REGION_CODE: The country/region from which the request originates. -// - TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. -// - USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP. -// Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. -func (o SecurityPolicyRuleRateLimitOptionsOutput) EnforceOnKey() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *string { return v.EnforceOnKey }).(pulumi.StringPtrOutput) +func (RouterStatusBestRouteArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterStatusBestRoute)(nil)).Elem() } -// If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced. -// You can specify up to 3 enforceOnKeyConfigs. -// If enforceOnKeyConfigs is specified, enforceOnKey must not be specified. -// Structure is documented below. -func (o SecurityPolicyRuleRateLimitOptionsOutput) EnforceOnKeyConfigs() SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { - return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) []SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig { - return v.EnforceOnKeyConfigs - }).(SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) +func (i RouterStatusBestRouteArray) ToRouterStatusBestRouteArrayOutput() RouterStatusBestRouteArrayOutput { + return i.ToRouterStatusBestRouteArrayOutputWithContext(context.Background()) } -// Rate limit key name applicable only for the following key types: -// HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. -// HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. -func (o SecurityPolicyRuleRateLimitOptionsOutput) EnforceOnKeyName() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *string { return v.EnforceOnKeyName }).(pulumi.StringPtrOutput) +func (i RouterStatusBestRouteArray) ToRouterStatusBestRouteArrayOutputWithContext(ctx context.Context) RouterStatusBestRouteArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterStatusBestRouteArrayOutput) } -// Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint. -// Valid options are deny(STATUS), where valid values for STATUS are 403, 404, 429, and 502. -func (o SecurityPolicyRuleRateLimitOptionsOutput) ExceedAction() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *string { return v.ExceedAction }).(pulumi.StringPtrOutput) -} +type RouterStatusBestRouteOutput struct{ *pulumi.OutputState } -// Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect. This field is only supported in Global Security Policies of type CLOUD_ARMOR. -// Structure is documented below. -func (o SecurityPolicyRuleRateLimitOptionsOutput) ExceedRedirectOptions() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions { - return v.ExceedRedirectOptions - }).(SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) +func (RouterStatusBestRouteOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouterStatusBestRoute)(nil)).Elem() } -// Threshold at which to begin ratelimiting. -// Structure is documented below. -func (o SecurityPolicyRuleRateLimitOptionsOutput) RateLimitThreshold() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptionsRateLimitThreshold { - return v.RateLimitThreshold - }).(SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) +func (o RouterStatusBestRouteOutput) ToRouterStatusBestRouteOutput() RouterStatusBestRouteOutput { + return o } -type SecurityPolicyRuleRateLimitOptionsPtrOutput struct{ *pulumi.OutputState } +func (o RouterStatusBestRouteOutput) ToRouterStatusBestRouteOutputWithContext(ctx context.Context) RouterStatusBestRouteOutput { + return o +} -func (SecurityPolicyRuleRateLimitOptionsPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptions)(nil)).Elem() +// An optional description of this resource. Provide this property +// when you create the resource. +func (o RouterStatusBestRouteOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoute) string { return v.Description }).(pulumi.StringOutput) } -func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) ToSecurityPolicyRuleRateLimitOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsPtrOutput { - return o +// The destination range of outgoing packets that this route applies to. +// Only IPv4 is supported. +func (o RouterStatusBestRouteOutput) DestRange() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoute) string { return v.DestRange }).(pulumi.StringOutput) } -func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsPtrOutput { - return o +// The name of the router. +func (o RouterStatusBestRouteOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoute) string { return v.Name }).(pulumi.StringOutput) } -func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) Elem() SecurityPolicyRuleRateLimitOptionsOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) SecurityPolicyRuleRateLimitOptions { - if v != nil { - return *v - } - var ret SecurityPolicyRuleRateLimitOptions - return ret - }).(SecurityPolicyRuleRateLimitOptionsOutput) +// The network name or resource link to the parent +// network of this subnetwork. +func (o RouterStatusBestRouteOutput) Network() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoute) string { return v.Network }).(pulumi.StringOutput) } -// Can only be specified if the action for the rule is "rateBasedBan". -// If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold. -func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) BanDurationSec() pulumi.IntPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *int { - if v == nil { - return nil - } - return v.BanDurationSec - }).(pulumi.IntPtrOutput) +// URL to a gateway that should handle matching packets. +// Currently, you can only specify the internet gateway, using a full or +// partial valid URL: +// * 'https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway' +// * 'projects/project/global/gateways/default-internet-gateway' +// * 'global/gateways/default-internet-gateway' +// * The string 'default-internet-gateway'. +func (o RouterStatusBestRouteOutput) NextHopGateway() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoute) string { return v.NextHopGateway }).(pulumi.StringOutput) } -// Can only be specified if the action for the rule is "rateBasedBan". -// If specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'. -// Structure is documented below. -func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) BanThreshold() SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptionsBanThreshold { - if v == nil { - return nil - } - return v.BanThreshold - }).(SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) +// The IP address or URL to a forwarding rule of type +// loadBalancingScheme=INTERNAL that should handle matching +// packets. +// +// With the GA provider you can only specify the forwarding +// rule as a partial or full URL. For example, the following +// are all valid values: +// * 10.128.0.56 +// * https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule +// * regions/region/forwardingRules/forwardingRule +// +// When the beta provider, you can also specify the IP address +// of a forwarding rule from the same VPC or any peered VPC. +// +// Note that this can only be used when the destinationRange is +// a public (non-RFC 1918) IP CIDR range. +func (o RouterStatusBestRouteOutput) NextHopIlb() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoute) string { return v.NextHopIlb }).(pulumi.StringOutput) } -// Action to take for requests that are under the configured rate limit threshold. -// Valid option is "allow" only. -func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) ConformAction() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *string { - if v == nil { - return nil - } - return v.ConformAction - }).(pulumi.StringPtrOutput) +// URL to an instance that should handle matching packets. +// You can specify this as a full or partial URL. For example: +// * 'https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance' +// * 'projects/project/zones/zone/instances/instance' +// * 'zones/zone/instances/instance' +// * Just the instance name, with the zone in 'next_hop_instance_zone'. +func (o RouterStatusBestRouteOutput) NextHopInstance() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoute) string { return v.NextHopInstance }).(pulumi.StringOutput) } -// Determines the key to enforce the rateLimitThreshold on. Possible values are: -// - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKey" is not configured. -// - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. -// - HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. -// - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. -// - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. -// - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. -// - SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. -// - REGION_CODE: The country/region from which the request originates. -// - TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. -// - USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP. -// Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. -func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) EnforceOnKey() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *string { - if v == nil { - return nil - } - return v.EnforceOnKey - }).(pulumi.StringPtrOutput) +// The zone of the instance specified in next_hop_instance. Omit if nextHopInstance is specified as a URL. +func (o RouterStatusBestRouteOutput) NextHopInstanceZone() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoute) string { return v.NextHopInstanceZone }).(pulumi.StringOutput) } -// If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced. -// You can specify up to 3 enforceOnKeyConfigs. -// If enforceOnKeyConfigs is specified, enforceOnKey must not be specified. -// Structure is documented below. -func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) EnforceOnKeyConfigs() SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) []SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig { - if v == nil { - return nil - } - return v.EnforceOnKeyConfigs - }).(SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) +// Internal fixed region-to-region cost that Google Cloud calculates based on factors such as network performance, distance, and available bandwidth between regions. +func (o RouterStatusBestRouteOutput) NextHopInterRegionCost() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoute) string { return v.NextHopInterRegionCost }).(pulumi.StringOutput) } -// Rate limit key name applicable only for the following key types: -// HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. -// HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. -func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) EnforceOnKeyName() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *string { - if v == nil { - return nil - } - return v.EnforceOnKeyName - }).(pulumi.StringPtrOutput) +// Network IP address of an instance that should handle matching packets. +func (o RouterStatusBestRouteOutput) NextHopIp() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoute) string { return v.NextHopIp }).(pulumi.StringOutput) } -// Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint. -// Valid options are deny(STATUS), where valid values for STATUS are 403, 404, 429, and 502. -func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) ExceedAction() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *string { - if v == nil { - return nil - } - return v.ExceedAction - }).(pulumi.StringPtrOutput) +// Multi-Exit Discriminator, a BGP route metric that indicates the desirability of a particular route in a network. +func (o RouterStatusBestRouteOutput) NextHopMed() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoute) string { return v.NextHopMed }).(pulumi.StringOutput) } -// Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect. This field is only supported in Global Security Policies of type CLOUD_ARMOR. -// Structure is documented below. -func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) ExceedRedirectOptions() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions { - if v == nil { - return nil - } - return v.ExceedRedirectOptions - }).(SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) +// URL to a Network that should handle matching packets. +func (o RouterStatusBestRouteOutput) NextHopNetwork() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoute) string { return v.NextHopNetwork }).(pulumi.StringOutput) } -// Threshold at which to begin ratelimiting. -// Structure is documented below. -func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) RateLimitThreshold() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptionsRateLimitThreshold { - if v == nil { - return nil - } - return v.RateLimitThreshold - }).(SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) +// Indicates the origin of the route. Can be IGP (Interior Gateway Protocol), EGP (Exterior Gateway Protocol), or INCOMPLETE. +func (o RouterStatusBestRouteOutput) NextHopOrigin() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoute) string { return v.NextHopOrigin }).(pulumi.StringOutput) } -type SecurityPolicyRuleRateLimitOptionsBanThreshold struct { - // Number of HTTP(S) requests for calculating the threshold. - Count *int `pulumi:"count"` - // Interval over which the threshold is computed. - IntervalSec *int `pulumi:"intervalSec"` +// URL to a VpnTunnel that should handle matching packets. +func (o RouterStatusBestRouteOutput) NextHopVpnTunnel() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoute) string { return v.NextHopVpnTunnel }).(pulumi.StringOutput) } -// SecurityPolicyRuleRateLimitOptionsBanThresholdInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsBanThresholdArgs and SecurityPolicyRuleRateLimitOptionsBanThresholdOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsBanThresholdInput` via: +// The priority of this route. Priority is used to break ties in cases +// where there is more than one matching route of equal prefix length. // -// SecurityPolicyRuleRateLimitOptionsBanThresholdArgs{...} -type SecurityPolicyRuleRateLimitOptionsBanThresholdInput interface { - pulumi.Input - - ToSecurityPolicyRuleRateLimitOptionsBanThresholdOutput() SecurityPolicyRuleRateLimitOptionsBanThresholdOutput - ToSecurityPolicyRuleRateLimitOptionsBanThresholdOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsBanThresholdOutput +// In the case of two routes with equal prefix length, the one with the +// lowest-numbered priority value wins. +// +// Default value is 1000. Valid range is 0 through 65535. +func (o RouterStatusBestRouteOutput) Priority() pulumi.IntOutput { + return o.ApplyT(func(v RouterStatusBestRoute) int { return v.Priority }).(pulumi.IntOutput) } -type SecurityPolicyRuleRateLimitOptionsBanThresholdArgs struct { - // Number of HTTP(S) requests for calculating the threshold. - Count pulumi.IntPtrInput `pulumi:"count"` - // Interval over which the threshold is computed. - IntervalSec pulumi.IntPtrInput `pulumi:"intervalSec"` +// The ID of the project in which the resource +// belongs. If it is not provided, the provider project is used. +func (o RouterStatusBestRouteOutput) Project() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoute) string { return v.Project }).(pulumi.StringOutput) } -func (SecurityPolicyRuleRateLimitOptionsBanThresholdArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsBanThreshold)(nil)).Elem() +func (o RouterStatusBestRouteOutput) SelfLink() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoute) string { return v.SelfLink }).(pulumi.StringOutput) } -func (i SecurityPolicyRuleRateLimitOptionsBanThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsBanThresholdOutput() SecurityPolicyRuleRateLimitOptionsBanThresholdOutput { - return i.ToSecurityPolicyRuleRateLimitOptionsBanThresholdOutputWithContext(context.Background()) +// A list of instance tags to which this route applies. +func (o RouterStatusBestRouteOutput) Tags() pulumi.StringArrayOutput { + return o.ApplyT(func(v RouterStatusBestRoute) []string { return v.Tags }).(pulumi.StringArrayOutput) } -func (i SecurityPolicyRuleRateLimitOptionsBanThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsBanThresholdOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsBanThresholdOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) +type RouterStatusBestRouteArrayOutput struct{ *pulumi.OutputState } + +func (RouterStatusBestRouteArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterStatusBestRoute)(nil)).Elem() } -func (i SecurityPolicyRuleRateLimitOptionsBanThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { - return i.ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(context.Background()) +func (o RouterStatusBestRouteArrayOutput) ToRouterStatusBestRouteArrayOutput() RouterStatusBestRouteArrayOutput { + return o } -func (i SecurityPolicyRuleRateLimitOptionsBanThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsBanThresholdOutput).ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(ctx) +func (o RouterStatusBestRouteArrayOutput) ToRouterStatusBestRouteArrayOutputWithContext(ctx context.Context) RouterStatusBestRouteArrayOutput { + return o } -// SecurityPolicyRuleRateLimitOptionsBanThresholdPtrInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsBanThresholdArgs, SecurityPolicyRuleRateLimitOptionsBanThresholdPtr and SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsBanThresholdPtrInput` via: -// -// SecurityPolicyRuleRateLimitOptionsBanThresholdArgs{...} -// -// or: -// -// nil -type SecurityPolicyRuleRateLimitOptionsBanThresholdPtrInput interface { - pulumi.Input +func (o RouterStatusBestRouteArrayOutput) Index(i pulumi.IntInput) RouterStatusBestRouteOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterStatusBestRoute { + return vs[0].([]RouterStatusBestRoute)[vs[1].(int)] + }).(RouterStatusBestRouteOutput) +} - ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput - ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput +type RouterStatusBestRoutesForRouter struct { + // An optional description of this resource. Provide this property + // when you create the resource. + Description string `pulumi:"description"` + // The destination range of outgoing packets that this route applies to. + // Only IPv4 is supported. + DestRange string `pulumi:"destRange"` + // The name of the router. + Name string `pulumi:"name"` + // The network name or resource link to the parent + // network of this subnetwork. + Network string `pulumi:"network"` + // URL to a gateway that should handle matching packets. + // Currently, you can only specify the internet gateway, using a full or + // partial valid URL: + // * 'https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway' + // * 'projects/project/global/gateways/default-internet-gateway' + // * 'global/gateways/default-internet-gateway' + // * The string 'default-internet-gateway'. + NextHopGateway string `pulumi:"nextHopGateway"` + // The IP address or URL to a forwarding rule of type + // loadBalancingScheme=INTERNAL that should handle matching + // packets. + // + // With the GA provider you can only specify the forwarding + // rule as a partial or full URL. For example, the following + // are all valid values: + // * 10.128.0.56 + // * https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule + // * regions/region/forwardingRules/forwardingRule + // + // When the beta provider, you can also specify the IP address + // of a forwarding rule from the same VPC or any peered VPC. + // + // Note that this can only be used when the destinationRange is + // a public (non-RFC 1918) IP CIDR range. + NextHopIlb string `pulumi:"nextHopIlb"` + // URL to an instance that should handle matching packets. + // You can specify this as a full or partial URL. For example: + // * 'https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance' + // * 'projects/project/zones/zone/instances/instance' + // * 'zones/zone/instances/instance' + // * Just the instance name, with the zone in 'next_hop_instance_zone'. + NextHopInstance string `pulumi:"nextHopInstance"` + // The zone of the instance specified in next_hop_instance. Omit if nextHopInstance is specified as a URL. + NextHopInstanceZone string `pulumi:"nextHopInstanceZone"` + // Internal fixed region-to-region cost that Google Cloud calculates based on factors such as network performance, distance, and available bandwidth between regions. + NextHopInterRegionCost string `pulumi:"nextHopInterRegionCost"` + // Network IP address of an instance that should handle matching packets. + NextHopIp string `pulumi:"nextHopIp"` + // Multi-Exit Discriminator, a BGP route metric that indicates the desirability of a particular route in a network. + NextHopMed string `pulumi:"nextHopMed"` + // URL to a Network that should handle matching packets. + NextHopNetwork string `pulumi:"nextHopNetwork"` + // Indicates the origin of the route. Can be IGP (Interior Gateway Protocol), EGP (Exterior Gateway Protocol), or INCOMPLETE. + NextHopOrigin string `pulumi:"nextHopOrigin"` + // URL to a VpnTunnel that should handle matching packets. + NextHopVpnTunnel string `pulumi:"nextHopVpnTunnel"` + // The priority of this route. Priority is used to break ties in cases + // where there is more than one matching route of equal prefix length. + // + // In the case of two routes with equal prefix length, the one with the + // lowest-numbered priority value wins. + // + // Default value is 1000. Valid range is 0 through 65535. + Priority int `pulumi:"priority"` + // The ID of the project in which the resource + // belongs. If it is not provided, the provider project is used. + Project string `pulumi:"project"` + SelfLink string `pulumi:"selfLink"` + // A list of instance tags to which this route applies. + Tags []string `pulumi:"tags"` } -type securityPolicyRuleRateLimitOptionsBanThresholdPtrType SecurityPolicyRuleRateLimitOptionsBanThresholdArgs +// RouterStatusBestRoutesForRouterInput is an input type that accepts RouterStatusBestRoutesForRouterArgs and RouterStatusBestRoutesForRouterOutput values. +// You can construct a concrete instance of `RouterStatusBestRoutesForRouterInput` via: +// +// RouterStatusBestRoutesForRouterArgs{...} +type RouterStatusBestRoutesForRouterInput interface { + pulumi.Input -func SecurityPolicyRuleRateLimitOptionsBanThresholdPtr(v *SecurityPolicyRuleRateLimitOptionsBanThresholdArgs) SecurityPolicyRuleRateLimitOptionsBanThresholdPtrInput { - return (*securityPolicyRuleRateLimitOptionsBanThresholdPtrType)(v) + ToRouterStatusBestRoutesForRouterOutput() RouterStatusBestRoutesForRouterOutput + ToRouterStatusBestRoutesForRouterOutputWithContext(context.Context) RouterStatusBestRoutesForRouterOutput } -func (*securityPolicyRuleRateLimitOptionsBanThresholdPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptionsBanThreshold)(nil)).Elem() +type RouterStatusBestRoutesForRouterArgs struct { + // An optional description of this resource. Provide this property + // when you create the resource. + Description pulumi.StringInput `pulumi:"description"` + // The destination range of outgoing packets that this route applies to. + // Only IPv4 is supported. + DestRange pulumi.StringInput `pulumi:"destRange"` + // The name of the router. + Name pulumi.StringInput `pulumi:"name"` + // The network name or resource link to the parent + // network of this subnetwork. + Network pulumi.StringInput `pulumi:"network"` + // URL to a gateway that should handle matching packets. + // Currently, you can only specify the internet gateway, using a full or + // partial valid URL: + // * 'https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway' + // * 'projects/project/global/gateways/default-internet-gateway' + // * 'global/gateways/default-internet-gateway' + // * The string 'default-internet-gateway'. + NextHopGateway pulumi.StringInput `pulumi:"nextHopGateway"` + // The IP address or URL to a forwarding rule of type + // loadBalancingScheme=INTERNAL that should handle matching + // packets. + // + // With the GA provider you can only specify the forwarding + // rule as a partial or full URL. For example, the following + // are all valid values: + // * 10.128.0.56 + // * https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule + // * regions/region/forwardingRules/forwardingRule + // + // When the beta provider, you can also specify the IP address + // of a forwarding rule from the same VPC or any peered VPC. + // + // Note that this can only be used when the destinationRange is + // a public (non-RFC 1918) IP CIDR range. + NextHopIlb pulumi.StringInput `pulumi:"nextHopIlb"` + // URL to an instance that should handle matching packets. + // You can specify this as a full or partial URL. For example: + // * 'https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance' + // * 'projects/project/zones/zone/instances/instance' + // * 'zones/zone/instances/instance' + // * Just the instance name, with the zone in 'next_hop_instance_zone'. + NextHopInstance pulumi.StringInput `pulumi:"nextHopInstance"` + // The zone of the instance specified in next_hop_instance. Omit if nextHopInstance is specified as a URL. + NextHopInstanceZone pulumi.StringInput `pulumi:"nextHopInstanceZone"` + // Internal fixed region-to-region cost that Google Cloud calculates based on factors such as network performance, distance, and available bandwidth between regions. + NextHopInterRegionCost pulumi.StringInput `pulumi:"nextHopInterRegionCost"` + // Network IP address of an instance that should handle matching packets. + NextHopIp pulumi.StringInput `pulumi:"nextHopIp"` + // Multi-Exit Discriminator, a BGP route metric that indicates the desirability of a particular route in a network. + NextHopMed pulumi.StringInput `pulumi:"nextHopMed"` + // URL to a Network that should handle matching packets. + NextHopNetwork pulumi.StringInput `pulumi:"nextHopNetwork"` + // Indicates the origin of the route. Can be IGP (Interior Gateway Protocol), EGP (Exterior Gateway Protocol), or INCOMPLETE. + NextHopOrigin pulumi.StringInput `pulumi:"nextHopOrigin"` + // URL to a VpnTunnel that should handle matching packets. + NextHopVpnTunnel pulumi.StringInput `pulumi:"nextHopVpnTunnel"` + // The priority of this route. Priority is used to break ties in cases + // where there is more than one matching route of equal prefix length. + // + // In the case of two routes with equal prefix length, the one with the + // lowest-numbered priority value wins. + // + // Default value is 1000. Valid range is 0 through 65535. + Priority pulumi.IntInput `pulumi:"priority"` + // The ID of the project in which the resource + // belongs. If it is not provided, the provider project is used. + Project pulumi.StringInput `pulumi:"project"` + SelfLink pulumi.StringInput `pulumi:"selfLink"` + // A list of instance tags to which this route applies. + Tags pulumi.StringArrayInput `pulumi:"tags"` } -func (i *securityPolicyRuleRateLimitOptionsBanThresholdPtrType) ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { - return i.ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(context.Background()) +func (RouterStatusBestRoutesForRouterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouterStatusBestRoutesForRouter)(nil)).Elem() } -func (i *securityPolicyRuleRateLimitOptionsBanThresholdPtrType) ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) +func (i RouterStatusBestRoutesForRouterArgs) ToRouterStatusBestRoutesForRouterOutput() RouterStatusBestRoutesForRouterOutput { + return i.ToRouterStatusBestRoutesForRouterOutputWithContext(context.Background()) } -type SecurityPolicyRuleRateLimitOptionsBanThresholdOutput struct{ *pulumi.OutputState } - -func (SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsBanThreshold)(nil)).Elem() +func (i RouterStatusBestRoutesForRouterArgs) ToRouterStatusBestRoutesForRouterOutputWithContext(ctx context.Context) RouterStatusBestRoutesForRouterOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterStatusBestRoutesForRouterOutput) } -func (o SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsBanThresholdOutput() SecurityPolicyRuleRateLimitOptionsBanThresholdOutput { - return o -} +// RouterStatusBestRoutesForRouterArrayInput is an input type that accepts RouterStatusBestRoutesForRouterArray and RouterStatusBestRoutesForRouterArrayOutput values. +// You can construct a concrete instance of `RouterStatusBestRoutesForRouterArrayInput` via: +// +// RouterStatusBestRoutesForRouterArray{ RouterStatusBestRoutesForRouterArgs{...} } +type RouterStatusBestRoutesForRouterArrayInput interface { + pulumi.Input -func (o SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsBanThresholdOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsBanThresholdOutput { - return o + ToRouterStatusBestRoutesForRouterArrayOutput() RouterStatusBestRoutesForRouterArrayOutput + ToRouterStatusBestRoutesForRouterArrayOutputWithContext(context.Context) RouterStatusBestRoutesForRouterArrayOutput } -func (o SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { - return o.ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(context.Background()) -} +type RouterStatusBestRoutesForRouterArray []RouterStatusBestRoutesForRouterInput -func (o SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleRateLimitOptionsBanThreshold) *SecurityPolicyRuleRateLimitOptionsBanThreshold { - return &v - }).(SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) +func (RouterStatusBestRoutesForRouterArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterStatusBestRoutesForRouter)(nil)).Elem() } -// Number of HTTP(S) requests for calculating the threshold. -func (o SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) Count() pulumi.IntPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsBanThreshold) *int { return v.Count }).(pulumi.IntPtrOutput) +func (i RouterStatusBestRoutesForRouterArray) ToRouterStatusBestRoutesForRouterArrayOutput() RouterStatusBestRoutesForRouterArrayOutput { + return i.ToRouterStatusBestRoutesForRouterArrayOutputWithContext(context.Background()) } -// Interval over which the threshold is computed. -func (o SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) IntervalSec() pulumi.IntPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsBanThreshold) *int { return v.IntervalSec }).(pulumi.IntPtrOutput) +func (i RouterStatusBestRoutesForRouterArray) ToRouterStatusBestRoutesForRouterArrayOutputWithContext(ctx context.Context) RouterStatusBestRoutesForRouterArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterStatusBestRoutesForRouterArrayOutput) } -type SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput struct{ *pulumi.OutputState } +type RouterStatusBestRoutesForRouterOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptionsBanThreshold)(nil)).Elem() +func (RouterStatusBestRoutesForRouterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouterStatusBestRoutesForRouter)(nil)).Elem() } -func (o SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { +func (o RouterStatusBestRoutesForRouterOutput) ToRouterStatusBestRoutesForRouterOutput() RouterStatusBestRoutesForRouterOutput { return o } -func (o SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { +func (o RouterStatusBestRoutesForRouterOutput) ToRouterStatusBestRoutesForRouterOutputWithContext(ctx context.Context) RouterStatusBestRoutesForRouterOutput { return o } -func (o SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) Elem() SecurityPolicyRuleRateLimitOptionsBanThresholdOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsBanThreshold) SecurityPolicyRuleRateLimitOptionsBanThreshold { - if v != nil { - return *v - } - var ret SecurityPolicyRuleRateLimitOptionsBanThreshold - return ret - }).(SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) +// An optional description of this resource. Provide this property +// when you create the resource. +func (o RouterStatusBestRoutesForRouterOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.Description }).(pulumi.StringOutput) } -// Number of HTTP(S) requests for calculating the threshold. -func (o SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) Count() pulumi.IntPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsBanThreshold) *int { - if v == nil { - return nil - } - return v.Count - }).(pulumi.IntPtrOutput) +// The destination range of outgoing packets that this route applies to. +// Only IPv4 is supported. +func (o RouterStatusBestRoutesForRouterOutput) DestRange() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.DestRange }).(pulumi.StringOutput) } -// Interval over which the threshold is computed. -func (o SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) IntervalSec() pulumi.IntPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsBanThreshold) *int { - if v == nil { - return nil - } - return v.IntervalSec - }).(pulumi.IntPtrOutput) +// The name of the router. +func (o RouterStatusBestRoutesForRouterOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.Name }).(pulumi.StringOutput) } -type SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig struct { - // Rate limit key name applicable only for the following key types: - // HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. - // HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. - EnforceOnKeyName *string `pulumi:"enforceOnKeyName"` - // Determines the key to enforce the rateLimitThreshold on. Possible values are: - // * ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKeyConfigs" is not configured. - // * IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - // * HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - // * XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. - // * HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. - // * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. - // * SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. - // * REGION_CODE: The country/region from which the request originates. - // * TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. - // * USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP. - // Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. - EnforceOnKeyType *string `pulumi:"enforceOnKeyType"` +// The network name or resource link to the parent +// network of this subnetwork. +func (o RouterStatusBestRoutesForRouterOutput) Network() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.Network }).(pulumi.StringOutput) } -// SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs and SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigInput` via: -// -// SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs{...} -type SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigInput interface { - pulumi.Input - - ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput() SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput - ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput +// URL to a gateway that should handle matching packets. +// Currently, you can only specify the internet gateway, using a full or +// partial valid URL: +// * 'https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway' +// * 'projects/project/global/gateways/default-internet-gateway' +// * 'global/gateways/default-internet-gateway' +// * The string 'default-internet-gateway'. +func (o RouterStatusBestRoutesForRouterOutput) NextHopGateway() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.NextHopGateway }).(pulumi.StringOutput) } -type SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs struct { - // Rate limit key name applicable only for the following key types: - // HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. - // HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. - EnforceOnKeyName pulumi.StringPtrInput `pulumi:"enforceOnKeyName"` - // Determines the key to enforce the rateLimitThreshold on. Possible values are: - // * ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKeyConfigs" is not configured. - // * IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - // * HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - // * XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. - // * HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. - // * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. - // * SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. - // * REGION_CODE: The country/region from which the request originates. - // * TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. - // * USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP. - // Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. - EnforceOnKeyType pulumi.StringPtrInput `pulumi:"enforceOnKeyType"` +// The IP address or URL to a forwarding rule of type +// loadBalancingScheme=INTERNAL that should handle matching +// packets. +// +// With the GA provider you can only specify the forwarding +// rule as a partial or full URL. For example, the following +// are all valid values: +// * 10.128.0.56 +// * https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule +// * regions/region/forwardingRules/forwardingRule +// +// When the beta provider, you can also specify the IP address +// of a forwarding rule from the same VPC or any peered VPC. +// +// Note that this can only be used when the destinationRange is +// a public (non-RFC 1918) IP CIDR range. +func (o RouterStatusBestRoutesForRouterOutput) NextHopIlb() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.NextHopIlb }).(pulumi.StringOutput) } -func (SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig)(nil)).Elem() +// URL to an instance that should handle matching packets. +// You can specify this as a full or partial URL. For example: +// * 'https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance' +// * 'projects/project/zones/zone/instances/instance' +// * 'zones/zone/instances/instance' +// * Just the instance name, with the zone in 'next_hop_instance_zone'. +func (o RouterStatusBestRoutesForRouterOutput) NextHopInstance() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.NextHopInstance }).(pulumi.StringOutput) } -func (i SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs) ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput() SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput { - return i.ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutputWithContext(context.Background()) +// The zone of the instance specified in next_hop_instance. Omit if nextHopInstance is specified as a URL. +func (o RouterStatusBestRoutesForRouterOutput) NextHopInstanceZone() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.NextHopInstanceZone }).(pulumi.StringOutput) } -func (i SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs) ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) +// Internal fixed region-to-region cost that Google Cloud calculates based on factors such as network performance, distance, and available bandwidth between regions. +func (o RouterStatusBestRoutesForRouterOutput) NextHopInterRegionCost() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.NextHopInterRegionCost }).(pulumi.StringOutput) } -// SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray and SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayInput` via: -// -// SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray{ SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs{...} } -type SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayInput interface { - pulumi.Input - - ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput() SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput - ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput +// Network IP address of an instance that should handle matching packets. +func (o RouterStatusBestRoutesForRouterOutput) NextHopIp() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.NextHopIp }).(pulumi.StringOutput) } -type SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray []SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigInput - -func (SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig)(nil)).Elem() +// Multi-Exit Discriminator, a BGP route metric that indicates the desirability of a particular route in a network. +func (o RouterStatusBestRoutesForRouterOutput) NextHopMed() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.NextHopMed }).(pulumi.StringOutput) } -func (i SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray) ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput() SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { - return i.ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutputWithContext(context.Background()) +// URL to a Network that should handle matching packets. +func (o RouterStatusBestRoutesForRouterOutput) NextHopNetwork() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.NextHopNetwork }).(pulumi.StringOutput) } -func (i SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray) ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) +// Indicates the origin of the route. Can be IGP (Interior Gateway Protocol), EGP (Exterior Gateway Protocol), or INCOMPLETE. +func (o RouterStatusBestRoutesForRouterOutput) NextHopOrigin() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.NextHopOrigin }).(pulumi.StringOutput) } -type SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput struct{ *pulumi.OutputState } - -func (SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig)(nil)).Elem() +// URL to a VpnTunnel that should handle matching packets. +func (o RouterStatusBestRoutesForRouterOutput) NextHopVpnTunnel() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.NextHopVpnTunnel }).(pulumi.StringOutput) } -func (o SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput() SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput { - return o +// The priority of this route. Priority is used to break ties in cases +// where there is more than one matching route of equal prefix length. +// +// In the case of two routes with equal prefix length, the one with the +// lowest-numbered priority value wins. +// +// Default value is 1000. Valid range is 0 through 65535. +func (o RouterStatusBestRoutesForRouterOutput) Priority() pulumi.IntOutput { + return o.ApplyT(func(v RouterStatusBestRoutesForRouter) int { return v.Priority }).(pulumi.IntOutput) } -func (o SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput { - return o +// The ID of the project in which the resource +// belongs. If it is not provided, the provider project is used. +func (o RouterStatusBestRoutesForRouterOutput) Project() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.Project }).(pulumi.StringOutput) } -// Rate limit key name applicable only for the following key types: -// HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. -// HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. -func (o SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) EnforceOnKeyName() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig) *string { return v.EnforceOnKeyName }).(pulumi.StringPtrOutput) +func (o RouterStatusBestRoutesForRouterOutput) SelfLink() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.SelfLink }).(pulumi.StringOutput) } -// Determines the key to enforce the rateLimitThreshold on. Possible values are: -// - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKeyConfigs" is not configured. -// - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. -// - HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. -// - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. -// - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. -// - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. -// - SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. -// - REGION_CODE: The country/region from which the request originates. -// - TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. -// - USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP. -// Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. -func (o SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) EnforceOnKeyType() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig) *string { return v.EnforceOnKeyType }).(pulumi.StringPtrOutput) +// A list of instance tags to which this route applies. +func (o RouterStatusBestRoutesForRouterOutput) Tags() pulumi.StringArrayOutput { + return o.ApplyT(func(v RouterStatusBestRoutesForRouter) []string { return v.Tags }).(pulumi.StringArrayOutput) } -type SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput struct{ *pulumi.OutputState } +type RouterStatusBestRoutesForRouterArrayOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig)(nil)).Elem() +func (RouterStatusBestRoutesForRouterArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterStatusBestRoutesForRouter)(nil)).Elem() } -func (o SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput() SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { +func (o RouterStatusBestRoutesForRouterArrayOutput) ToRouterStatusBestRoutesForRouterArrayOutput() RouterStatusBestRoutesForRouterArrayOutput { return o } -func (o SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { +func (o RouterStatusBestRoutesForRouterArrayOutput) ToRouterStatusBestRoutesForRouterArrayOutputWithContext(ctx context.Context) RouterStatusBestRoutesForRouterArrayOutput { return o } -func (o SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig { - return vs[0].([]SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig)[vs[1].(int)] - }).(SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) +func (o RouterStatusBestRoutesForRouterArrayOutput) Index(i pulumi.IntInput) RouterStatusBestRoutesForRouterOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterStatusBestRoutesForRouter { + return vs[0].([]RouterStatusBestRoutesForRouter)[vs[1].(int)] + }).(RouterStatusBestRoutesForRouterOutput) } -type SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions struct { - // Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. - Target *string `pulumi:"target"` - // Type of the redirect action. - Type *string `pulumi:"type"` +type SecurityPolicyAdaptiveProtectionConfig struct { + // Configuration for [Automatically deploy Adaptive Protection suggested rules](https://cloud.google.com/armor/docs/adaptive-protection-auto-deploy?hl=en). Structure is documented below. + // + // The `layer7DdosDefenseConfig` block supports: + AutoDeployConfig *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig `pulumi:"autoDeployConfig"` + // Configuration for [Google Cloud Armor Adaptive Protection Layer 7 DDoS Defense](https://cloud.google.com/armor/docs/adaptive-protection-overview?hl=en). Structure is documented below. + Layer7DdosDefenseConfig *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig `pulumi:"layer7DdosDefenseConfig"` } -// SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs and SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsInput` via: +// SecurityPolicyAdaptiveProtectionConfigInput is an input type that accepts SecurityPolicyAdaptiveProtectionConfigArgs and SecurityPolicyAdaptiveProtectionConfigOutput values. +// You can construct a concrete instance of `SecurityPolicyAdaptiveProtectionConfigInput` via: // -// SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs{...} -type SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsInput interface { +// SecurityPolicyAdaptiveProtectionConfigArgs{...} +type SecurityPolicyAdaptiveProtectionConfigInput interface { pulumi.Input - ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput - ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput + ToSecurityPolicyAdaptiveProtectionConfigOutput() SecurityPolicyAdaptiveProtectionConfigOutput + ToSecurityPolicyAdaptiveProtectionConfigOutputWithContext(context.Context) SecurityPolicyAdaptiveProtectionConfigOutput } -type SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs struct { - // Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. - Target pulumi.StringPtrInput `pulumi:"target"` - // Type of the redirect action. - Type pulumi.StringPtrInput `pulumi:"type"` +type SecurityPolicyAdaptiveProtectionConfigArgs struct { + // Configuration for [Automatically deploy Adaptive Protection suggested rules](https://cloud.google.com/armor/docs/adaptive-protection-auto-deploy?hl=en). Structure is documented below. + // + // The `layer7DdosDefenseConfig` block supports: + AutoDeployConfig SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrInput `pulumi:"autoDeployConfig"` + // Configuration for [Google Cloud Armor Adaptive Protection Layer 7 DDoS Defense](https://cloud.google.com/armor/docs/adaptive-protection-overview?hl=en). Structure is documented below. + Layer7DdosDefenseConfig SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrInput `pulumi:"layer7DdosDefenseConfig"` } -func (SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions)(nil)).Elem() +func (SecurityPolicyAdaptiveProtectionConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyAdaptiveProtectionConfig)(nil)).Elem() } -func (i SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput { - return i.ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutputWithContext(context.Background()) +func (i SecurityPolicyAdaptiveProtectionConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigOutput() SecurityPolicyAdaptiveProtectionConfigOutput { + return i.ToSecurityPolicyAdaptiveProtectionConfigOutputWithContext(context.Background()) } -func (i SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) +func (i SecurityPolicyAdaptiveProtectionConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigOutput) } -func (i SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { - return i.ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(context.Background()) +func (i SecurityPolicyAdaptiveProtectionConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigPtrOutput { + return i.ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(context.Background()) } -func (i SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput).ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(ctx) +func (i SecurityPolicyAdaptiveProtectionConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigOutput).ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(ctx) } -// SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs, SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtr and SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrInput` via: +// SecurityPolicyAdaptiveProtectionConfigPtrInput is an input type that accepts SecurityPolicyAdaptiveProtectionConfigArgs, SecurityPolicyAdaptiveProtectionConfigPtr and SecurityPolicyAdaptiveProtectionConfigPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyAdaptiveProtectionConfigPtrInput` via: // -// SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs{...} +// SecurityPolicyAdaptiveProtectionConfigArgs{...} // // or: // // nil -type SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrInput interface { +type SecurityPolicyAdaptiveProtectionConfigPtrInput interface { pulumi.Input - ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput - ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput + ToSecurityPolicyAdaptiveProtectionConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigPtrOutput + ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(context.Context) SecurityPolicyAdaptiveProtectionConfigPtrOutput } -type securityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrType SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs +type securityPolicyAdaptiveProtectionConfigPtrType SecurityPolicyAdaptiveProtectionConfigArgs -func SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtr(v *SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrInput { - return (*securityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrType)(v) +func SecurityPolicyAdaptiveProtectionConfigPtr(v *SecurityPolicyAdaptiveProtectionConfigArgs) SecurityPolicyAdaptiveProtectionConfigPtrInput { + return (*securityPolicyAdaptiveProtectionConfigPtrType)(v) } -func (*securityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions)(nil)).Elem() +func (*securityPolicyAdaptiveProtectionConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyAdaptiveProtectionConfig)(nil)).Elem() } -func (i *securityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrType) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { - return i.ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(context.Background()) +func (i *securityPolicyAdaptiveProtectionConfigPtrType) ToSecurityPolicyAdaptiveProtectionConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigPtrOutput { + return i.ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(context.Background()) } -func (i *securityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrType) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) +func (i *securityPolicyAdaptiveProtectionConfigPtrType) ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigPtrOutput) } -type SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput struct{ *pulumi.OutputState } +type SecurityPolicyAdaptiveProtectionConfigOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions)(nil)).Elem() +func (SecurityPolicyAdaptiveProtectionConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyAdaptiveProtectionConfig)(nil)).Elem() } -func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput { +func (o SecurityPolicyAdaptiveProtectionConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigOutput() SecurityPolicyAdaptiveProtectionConfigOutput { return o } -func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput { +func (o SecurityPolicyAdaptiveProtectionConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigOutput { return o } -func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { - return o.ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(context.Background()) +func (o SecurityPolicyAdaptiveProtectionConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigPtrOutput { + return o.ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(context.Background()) } -func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions) *SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions { +func (o SecurityPolicyAdaptiveProtectionConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyAdaptiveProtectionConfig) *SecurityPolicyAdaptiveProtectionConfig { return &v - }).(SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) + }).(SecurityPolicyAdaptiveProtectionConfigPtrOutput) } -// Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. -func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) Target() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions) *string { return v.Target }).(pulumi.StringPtrOutput) +// Configuration for [Automatically deploy Adaptive Protection suggested rules](https://cloud.google.com/armor/docs/adaptive-protection-auto-deploy?hl=en). Structure is documented below. +// +// The `layer7DdosDefenseConfig` block supports: +func (o SecurityPolicyAdaptiveProtectionConfigOutput) AutoDeployConfig() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { + return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfig) *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig { + return v.AutoDeployConfig + }).(SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) } -// Type of the redirect action. -func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions) *string { return v.Type }).(pulumi.StringPtrOutput) +// Configuration for [Google Cloud Armor Adaptive Protection Layer 7 DDoS Defense](https://cloud.google.com/armor/docs/adaptive-protection-overview?hl=en). Structure is documented below. +func (o SecurityPolicyAdaptiveProtectionConfigOutput) Layer7DdosDefenseConfig() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { + return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfig) *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig { + return v.Layer7DdosDefenseConfig + }).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) } -type SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput struct{ *pulumi.OutputState } +type SecurityPolicyAdaptiveProtectionConfigPtrOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions)(nil)).Elem() +func (SecurityPolicyAdaptiveProtectionConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyAdaptiveProtectionConfig)(nil)).Elem() } -func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { +func (o SecurityPolicyAdaptiveProtectionConfigPtrOutput) ToSecurityPolicyAdaptiveProtectionConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigPtrOutput { return o } -func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { +func (o SecurityPolicyAdaptiveProtectionConfigPtrOutput) ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigPtrOutput { return o } -func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) Elem() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions { +func (o SecurityPolicyAdaptiveProtectionConfigPtrOutput) Elem() SecurityPolicyAdaptiveProtectionConfigOutput { + return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfig) SecurityPolicyAdaptiveProtectionConfig { if v != nil { return *v } - var ret SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions + var ret SecurityPolicyAdaptiveProtectionConfig return ret - }).(SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) + }).(SecurityPolicyAdaptiveProtectionConfigOutput) } -// Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. -func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) Target() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions) *string { +// Configuration for [Automatically deploy Adaptive Protection suggested rules](https://cloud.google.com/armor/docs/adaptive-protection-auto-deploy?hl=en). Structure is documented below. +// +// The `layer7DdosDefenseConfig` block supports: +func (o SecurityPolicyAdaptiveProtectionConfigPtrOutput) AutoDeployConfig() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { + return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfig) *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig { if v == nil { return nil } - return v.Target - }).(pulumi.StringPtrOutput) + return v.AutoDeployConfig + }).(SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) } -// Type of the redirect action. -func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions) *string { +// Configuration for [Google Cloud Armor Adaptive Protection Layer 7 DDoS Defense](https://cloud.google.com/armor/docs/adaptive-protection-overview?hl=en). Structure is documented below. +func (o SecurityPolicyAdaptiveProtectionConfigPtrOutput) Layer7DdosDefenseConfig() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { + return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfig) *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig { if v == nil { return nil } - return v.Type - }).(pulumi.StringPtrOutput) + return v.Layer7DdosDefenseConfig + }).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) } -type SecurityPolicyRuleRateLimitOptionsRateLimitThreshold struct { - // Number of HTTP(S) requests for calculating the threshold. - Count *int `pulumi:"count"` - // Interval over which the threshold is computed. - IntervalSec *int `pulumi:"intervalSec"` +type SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig struct { + // Rules are only automatically deployed for alerts on potential attacks with confidence scores greater than this threshold. + ConfidenceThreshold *float64 `pulumi:"confidenceThreshold"` + // Google Cloud Armor stops applying the action in the automatically deployed rule to an identified attacker after this duration. The rule continues to operate against new requests. + ExpirationSec *int `pulumi:"expirationSec"` + // Rules are only automatically deployed when the estimated impact to baseline traffic from the suggested mitigation is below this threshold. + ImpactedBaselineThreshold *float64 `pulumi:"impactedBaselineThreshold"` + // Identifies new attackers only when the load to the backend service that is under attack exceeds this threshold. + LoadThreshold *float64 `pulumi:"loadThreshold"` } -// SecurityPolicyRuleRateLimitOptionsRateLimitThresholdInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs and SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsRateLimitThresholdInput` via: +// SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigInput is an input type that accepts SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs and SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput values. +// You can construct a concrete instance of `SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigInput` via: // -// SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs{...} -type SecurityPolicyRuleRateLimitOptionsRateLimitThresholdInput interface { +// SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs{...} +type SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigInput interface { pulumi.Input - ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput - ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput + ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput + ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutputWithContext(context.Context) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput } -type SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs struct { - // Number of HTTP(S) requests for calculating the threshold. - Count pulumi.IntPtrInput `pulumi:"count"` - // Interval over which the threshold is computed. - IntervalSec pulumi.IntPtrInput `pulumi:"intervalSec"` +type SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs struct { + // Rules are only automatically deployed for alerts on potential attacks with confidence scores greater than this threshold. + ConfidenceThreshold pulumi.Float64PtrInput `pulumi:"confidenceThreshold"` + // Google Cloud Armor stops applying the action in the automatically deployed rule to an identified attacker after this duration. The rule continues to operate against new requests. + ExpirationSec pulumi.IntPtrInput `pulumi:"expirationSec"` + // Rules are only automatically deployed when the estimated impact to baseline traffic from the suggested mitigation is below this threshold. + ImpactedBaselineThreshold pulumi.Float64PtrInput `pulumi:"impactedBaselineThreshold"` + // Identifies new attackers only when the load to the backend service that is under attack exceeds this threshold. + LoadThreshold pulumi.Float64PtrInput `pulumi:"loadThreshold"` } -func (SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsRateLimitThreshold)(nil)).Elem() +func (SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig)(nil)).Elem() } -func (i SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput { - return i.ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutputWithContext(context.Background()) +func (i SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput { + return i.ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutputWithContext(context.Background()) } -func (i SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) +func (i SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) } -func (i SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { - return i.ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(context.Background()) +func (i SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { + return i.ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(context.Background()) } -func (i SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput).ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(ctx) +func (i SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput).ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(ctx) } -// SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs, SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtr and SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrInput` via: +// SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrInput is an input type that accepts SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs, SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtr and SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrInput` via: // -// SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs{...} +// SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs{...} // // or: // // nil -type SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrInput interface { +type SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrInput interface { pulumi.Input - ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput - ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput + ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput + ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(context.Context) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput } -type securityPolicyRuleRateLimitOptionsRateLimitThresholdPtrType SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs +type securityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrType SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs -func SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtr(v *SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrInput { - return (*securityPolicyRuleRateLimitOptionsRateLimitThresholdPtrType)(v) +func SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtr(v *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrInput { + return (*securityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrType)(v) } -func (*securityPolicyRuleRateLimitOptionsRateLimitThresholdPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptionsRateLimitThreshold)(nil)).Elem() +func (*securityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig)(nil)).Elem() } -func (i *securityPolicyRuleRateLimitOptionsRateLimitThresholdPtrType) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { - return i.ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(context.Background()) +func (i *securityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrType) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { + return i.ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(context.Background()) } -func (i *securityPolicyRuleRateLimitOptionsRateLimitThresholdPtrType) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) +func (i *securityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrType) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) } -type SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput struct{ *pulumi.OutputState } +type SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsRateLimitThreshold)(nil)).Elem() +func (SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig)(nil)).Elem() } -func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput { +func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput { return o } -func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput { +func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput { return o } -func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { - return o.ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(context.Background()) +func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { + return o.ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(context.Background()) } -func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleRateLimitOptionsRateLimitThreshold) *SecurityPolicyRuleRateLimitOptionsRateLimitThreshold { +func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig { return &v - }).(SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) + }).(SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) } -// Number of HTTP(S) requests for calculating the threshold. -func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) Count() pulumi.IntPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsRateLimitThreshold) *int { return v.Count }).(pulumi.IntPtrOutput) +// Rules are only automatically deployed for alerts on potential attacks with confidence scores greater than this threshold. +func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) ConfidenceThreshold() pulumi.Float64PtrOutput { + return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *float64 { return v.ConfidenceThreshold }).(pulumi.Float64PtrOutput) } -// Interval over which the threshold is computed. -func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) IntervalSec() pulumi.IntPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsRateLimitThreshold) *int { return v.IntervalSec }).(pulumi.IntPtrOutput) +// Google Cloud Armor stops applying the action in the automatically deployed rule to an identified attacker after this duration. The rule continues to operate against new requests. +func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) ExpirationSec() pulumi.IntPtrOutput { + return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *int { return v.ExpirationSec }).(pulumi.IntPtrOutput) +} + +// Rules are only automatically deployed when the estimated impact to baseline traffic from the suggested mitigation is below this threshold. +func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) ImpactedBaselineThreshold() pulumi.Float64PtrOutput { + return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *float64 { + return v.ImpactedBaselineThreshold + }).(pulumi.Float64PtrOutput) +} + +// Identifies new attackers only when the load to the backend service that is under attack exceeds this threshold. +func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) LoadThreshold() pulumi.Float64PtrOutput { + return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *float64 { return v.LoadThreshold }).(pulumi.Float64PtrOutput) } -type SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput struct{ *pulumi.OutputState } +type SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptionsRateLimitThreshold)(nil)).Elem() +func (SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig)(nil)).Elem() } -func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { +func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { return o } -func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { +func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { return o } -func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) Elem() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsRateLimitThreshold) SecurityPolicyRuleRateLimitOptionsRateLimitThreshold { +func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) Elem() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput { + return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig { if v != nil { return *v } - var ret SecurityPolicyRuleRateLimitOptionsRateLimitThreshold + var ret SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig return ret - }).(SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) + }).(SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) } -// Number of HTTP(S) requests for calculating the threshold. -func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) Count() pulumi.IntPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsRateLimitThreshold) *int { +// Rules are only automatically deployed for alerts on potential attacks with confidence scores greater than this threshold. +func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) ConfidenceThreshold() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *float64 { if v == nil { return nil } - return v.Count - }).(pulumi.IntPtrOutput) + return v.ConfidenceThreshold + }).(pulumi.Float64PtrOutput) } -// Interval over which the threshold is computed. -func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) IntervalSec() pulumi.IntPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsRateLimitThreshold) *int { +// Google Cloud Armor stops applying the action in the automatically deployed rule to an identified attacker after this duration. The rule continues to operate against new requests. +func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) ExpirationSec() pulumi.IntPtrOutput { + return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *int { if v == nil { return nil } - return v.IntervalSec + return v.ExpirationSec }).(pulumi.IntPtrOutput) } -type SecurityPolicyRuleRedirectOptions struct { - // Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. - Target *string `pulumi:"target"` - // Type of the redirect action. - Type *string `pulumi:"type"` +// Rules are only automatically deployed when the estimated impact to baseline traffic from the suggested mitigation is below this threshold. +func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) ImpactedBaselineThreshold() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *float64 { + if v == nil { + return nil + } + return v.ImpactedBaselineThreshold + }).(pulumi.Float64PtrOutput) +} + +// Identifies new attackers only when the load to the backend service that is under attack exceeds this threshold. +func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) LoadThreshold() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *float64 { + if v == nil { + return nil + } + return v.LoadThreshold + }).(pulumi.Float64PtrOutput) +} + +type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig struct { + // If set to true, enables CAAP for L7 DDoS detection. + Enable *bool `pulumi:"enable"` + // Rule visibility. Supported values include: "STANDARD", "PREMIUM". + RuleVisibility *string `pulumi:"ruleVisibility"` } -// SecurityPolicyRuleRedirectOptionsInput is an input type that accepts SecurityPolicyRuleRedirectOptionsArgs and SecurityPolicyRuleRedirectOptionsOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleRedirectOptionsInput` via: +// SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigInput is an input type that accepts SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs and SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput values. +// You can construct a concrete instance of `SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigInput` via: // -// SecurityPolicyRuleRedirectOptionsArgs{...} -type SecurityPolicyRuleRedirectOptionsInput interface { +// SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs{...} +type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigInput interface { pulumi.Input - ToSecurityPolicyRuleRedirectOptionsOutput() SecurityPolicyRuleRedirectOptionsOutput - ToSecurityPolicyRuleRedirectOptionsOutputWithContext(context.Context) SecurityPolicyRuleRedirectOptionsOutput + ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput + ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutputWithContext(context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput } -type SecurityPolicyRuleRedirectOptionsArgs struct { - // Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. - Target pulumi.StringPtrInput `pulumi:"target"` - // Type of the redirect action. - Type pulumi.StringPtrInput `pulumi:"type"` +type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs struct { + // If set to true, enables CAAP for L7 DDoS detection. + Enable pulumi.BoolPtrInput `pulumi:"enable"` + // Rule visibility. Supported values include: "STANDARD", "PREMIUM". + RuleVisibility pulumi.StringPtrInput `pulumi:"ruleVisibility"` } -func (SecurityPolicyRuleRedirectOptionsArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleRedirectOptions)(nil)).Elem() +func (SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig)(nil)).Elem() } -func (i SecurityPolicyRuleRedirectOptionsArgs) ToSecurityPolicyRuleRedirectOptionsOutput() SecurityPolicyRuleRedirectOptionsOutput { - return i.ToSecurityPolicyRuleRedirectOptionsOutputWithContext(context.Background()) +func (i SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput { + return i.ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutputWithContext(context.Background()) } -func (i SecurityPolicyRuleRedirectOptionsArgs) ToSecurityPolicyRuleRedirectOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleRedirectOptionsOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRedirectOptionsOutput) +func (i SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) } -func (i SecurityPolicyRuleRedirectOptionsArgs) ToSecurityPolicyRuleRedirectOptionsPtrOutput() SecurityPolicyRuleRedirectOptionsPtrOutput { - return i.ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(context.Background()) +func (i SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { + return i.ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(context.Background()) } -func (i SecurityPolicyRuleRedirectOptionsArgs) ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRedirectOptionsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRedirectOptionsOutput).ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(ctx) +func (i SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput).ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(ctx) } -// SecurityPolicyRuleRedirectOptionsPtrInput is an input type that accepts SecurityPolicyRuleRedirectOptionsArgs, SecurityPolicyRuleRedirectOptionsPtr and SecurityPolicyRuleRedirectOptionsPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleRedirectOptionsPtrInput` via: +// SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrInput is an input type that accepts SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs, SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtr and SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrInput` via: // -// SecurityPolicyRuleRedirectOptionsArgs{...} +// SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs{...} // // or: // // nil -type SecurityPolicyRuleRedirectOptionsPtrInput interface { +type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrInput interface { pulumi.Input - ToSecurityPolicyRuleRedirectOptionsPtrOutput() SecurityPolicyRuleRedirectOptionsPtrOutput - ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(context.Context) SecurityPolicyRuleRedirectOptionsPtrOutput + ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput + ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput } -type securityPolicyRuleRedirectOptionsPtrType SecurityPolicyRuleRedirectOptionsArgs +type securityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrType SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs -func SecurityPolicyRuleRedirectOptionsPtr(v *SecurityPolicyRuleRedirectOptionsArgs) SecurityPolicyRuleRedirectOptionsPtrInput { - return (*securityPolicyRuleRedirectOptionsPtrType)(v) +func SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtr(v *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrInput { + return (*securityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrType)(v) } -func (*securityPolicyRuleRedirectOptionsPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleRedirectOptions)(nil)).Elem() +func (*securityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig)(nil)).Elem() } -func (i *securityPolicyRuleRedirectOptionsPtrType) ToSecurityPolicyRuleRedirectOptionsPtrOutput() SecurityPolicyRuleRedirectOptionsPtrOutput { - return i.ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(context.Background()) +func (i *securityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrType) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { + return i.ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(context.Background()) } -func (i *securityPolicyRuleRedirectOptionsPtrType) ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRedirectOptionsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRedirectOptionsPtrOutput) +func (i *securityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrType) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) } -type SecurityPolicyRuleRedirectOptionsOutput struct{ *pulumi.OutputState } +type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleRedirectOptionsOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleRedirectOptions)(nil)).Elem() +func (SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig)(nil)).Elem() } -func (o SecurityPolicyRuleRedirectOptionsOutput) ToSecurityPolicyRuleRedirectOptionsOutput() SecurityPolicyRuleRedirectOptionsOutput { +func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput { return o } -func (o SecurityPolicyRuleRedirectOptionsOutput) ToSecurityPolicyRuleRedirectOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleRedirectOptionsOutput { +func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput { return o } -func (o SecurityPolicyRuleRedirectOptionsOutput) ToSecurityPolicyRuleRedirectOptionsPtrOutput() SecurityPolicyRuleRedirectOptionsPtrOutput { - return o.ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(context.Background()) +func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { + return o.ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(context.Background()) } -func (o SecurityPolicyRuleRedirectOptionsOutput) ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRedirectOptionsPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleRedirectOptions) *SecurityPolicyRuleRedirectOptions { +func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig { return &v - }).(SecurityPolicyRuleRedirectOptionsPtrOutput) + }).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) } -// Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. -func (o SecurityPolicyRuleRedirectOptionsOutput) Target() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRedirectOptions) *string { return v.Target }).(pulumi.StringPtrOutput) +// If set to true, enables CAAP for L7 DDoS detection. +func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) Enable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) *bool { return v.Enable }).(pulumi.BoolPtrOutput) } -// Type of the redirect action. -func (o SecurityPolicyRuleRedirectOptionsOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRedirectOptions) *string { return v.Type }).(pulumi.StringPtrOutput) +// Rule visibility. Supported values include: "STANDARD", "PREMIUM". +func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) RuleVisibility() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) *string { return v.RuleVisibility }).(pulumi.StringPtrOutput) } -type SecurityPolicyRuleRedirectOptionsPtrOutput struct{ *pulumi.OutputState } +type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleRedirectOptionsPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleRedirectOptions)(nil)).Elem() +func (SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig)(nil)).Elem() } -func (o SecurityPolicyRuleRedirectOptionsPtrOutput) ToSecurityPolicyRuleRedirectOptionsPtrOutput() SecurityPolicyRuleRedirectOptionsPtrOutput { +func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { return o } -func (o SecurityPolicyRuleRedirectOptionsPtrOutput) ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRedirectOptionsPtrOutput { +func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { return o } -func (o SecurityPolicyRuleRedirectOptionsPtrOutput) Elem() SecurityPolicyRuleRedirectOptionsOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRedirectOptions) SecurityPolicyRuleRedirectOptions { +func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) Elem() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput { + return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig { if v != nil { return *v } - var ret SecurityPolicyRuleRedirectOptions + var ret SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig return ret - }).(SecurityPolicyRuleRedirectOptionsOutput) + }).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) } -// Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. -func (o SecurityPolicyRuleRedirectOptionsPtrOutput) Target() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRedirectOptions) *string { +// If set to true, enables CAAP for L7 DDoS detection. +func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) Enable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) *bool { if v == nil { return nil } - return v.Target - }).(pulumi.StringPtrOutput) + return v.Enable + }).(pulumi.BoolPtrOutput) } -// Type of the redirect action. -func (o SecurityPolicyRuleRedirectOptionsPtrOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRedirectOptions) *string { +// Rule visibility. Supported values include: "STANDARD", "PREMIUM". +func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) RuleVisibility() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) *string { if v == nil { return nil } - return v.Type + return v.RuleVisibility }).(pulumi.StringPtrOutput) } -type SecurityScanConfigAuthentication struct { - // Describes authentication configuration that uses a custom account. - // Structure is documented below. - CustomAccount *SecurityScanConfigAuthenticationCustomAccount `pulumi:"customAccount"` - // Describes authentication configuration that uses a Google account. - // Structure is documented below. - GoogleAccount *SecurityScanConfigAuthenticationGoogleAccount `pulumi:"googleAccount"` +type SecurityPolicyAdvancedOptionsConfig struct { + // Custom configuration to apply the JSON parsing. Only applicable when + // `jsonParsing` is set to `STANDARD`. Structure is documented below. + JsonCustomConfig *SecurityPolicyAdvancedOptionsConfigJsonCustomConfig `pulumi:"jsonCustomConfig"` + // Whether or not to JSON parse the payload body. Defaults to `DISABLED`. + // * `DISABLED` - Don't parse JSON payloads in POST bodies. + // * `STANDARD` - Parse JSON payloads in POST bodies. + // * `STANDARD_WITH_GRAPHQL` - Parse JSON and GraphQL payloads in POST bodies. + JsonParsing *string `pulumi:"jsonParsing"` + // Log level to use. Defaults to `NORMAL`. + // * `NORMAL` - Normal log level. + // * `VERBOSE` - Verbose log level. + LogLevel *string `pulumi:"logLevel"` + // An optional list of case-insensitive request header names to use for resolving the callers client IP address. + UserIpRequestHeaders []string `pulumi:"userIpRequestHeaders"` } -// SecurityScanConfigAuthenticationInput is an input type that accepts SecurityScanConfigAuthenticationArgs and SecurityScanConfigAuthenticationOutput values. -// You can construct a concrete instance of `SecurityScanConfigAuthenticationInput` via: +// SecurityPolicyAdvancedOptionsConfigInput is an input type that accepts SecurityPolicyAdvancedOptionsConfigArgs and SecurityPolicyAdvancedOptionsConfigOutput values. +// You can construct a concrete instance of `SecurityPolicyAdvancedOptionsConfigInput` via: // -// SecurityScanConfigAuthenticationArgs{...} -type SecurityScanConfigAuthenticationInput interface { +// SecurityPolicyAdvancedOptionsConfigArgs{...} +type SecurityPolicyAdvancedOptionsConfigInput interface { pulumi.Input - ToSecurityScanConfigAuthenticationOutput() SecurityScanConfigAuthenticationOutput - ToSecurityScanConfigAuthenticationOutputWithContext(context.Context) SecurityScanConfigAuthenticationOutput + ToSecurityPolicyAdvancedOptionsConfigOutput() SecurityPolicyAdvancedOptionsConfigOutput + ToSecurityPolicyAdvancedOptionsConfigOutputWithContext(context.Context) SecurityPolicyAdvancedOptionsConfigOutput } -type SecurityScanConfigAuthenticationArgs struct { - // Describes authentication configuration that uses a custom account. - // Structure is documented below. - CustomAccount SecurityScanConfigAuthenticationCustomAccountPtrInput `pulumi:"customAccount"` - // Describes authentication configuration that uses a Google account. - // Structure is documented below. - GoogleAccount SecurityScanConfigAuthenticationGoogleAccountPtrInput `pulumi:"googleAccount"` +type SecurityPolicyAdvancedOptionsConfigArgs struct { + // Custom configuration to apply the JSON parsing. Only applicable when + // `jsonParsing` is set to `STANDARD`. Structure is documented below. + JsonCustomConfig SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrInput `pulumi:"jsonCustomConfig"` + // Whether or not to JSON parse the payload body. Defaults to `DISABLED`. + // * `DISABLED` - Don't parse JSON payloads in POST bodies. + // * `STANDARD` - Parse JSON payloads in POST bodies. + // * `STANDARD_WITH_GRAPHQL` - Parse JSON and GraphQL payloads in POST bodies. + JsonParsing pulumi.StringPtrInput `pulumi:"jsonParsing"` + // Log level to use. Defaults to `NORMAL`. + // * `NORMAL` - Normal log level. + // * `VERBOSE` - Verbose log level. + LogLevel pulumi.StringPtrInput `pulumi:"logLevel"` + // An optional list of case-insensitive request header names to use for resolving the callers client IP address. + UserIpRequestHeaders pulumi.StringArrayInput `pulumi:"userIpRequestHeaders"` } -func (SecurityScanConfigAuthenticationArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityScanConfigAuthentication)(nil)).Elem() +func (SecurityPolicyAdvancedOptionsConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyAdvancedOptionsConfig)(nil)).Elem() } -func (i SecurityScanConfigAuthenticationArgs) ToSecurityScanConfigAuthenticationOutput() SecurityScanConfigAuthenticationOutput { - return i.ToSecurityScanConfigAuthenticationOutputWithContext(context.Background()) +func (i SecurityPolicyAdvancedOptionsConfigArgs) ToSecurityPolicyAdvancedOptionsConfigOutput() SecurityPolicyAdvancedOptionsConfigOutput { + return i.ToSecurityPolicyAdvancedOptionsConfigOutputWithContext(context.Background()) } -func (i SecurityScanConfigAuthenticationArgs) ToSecurityScanConfigAuthenticationOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigAuthenticationOutput) +func (i SecurityPolicyAdvancedOptionsConfigArgs) ToSecurityPolicyAdvancedOptionsConfigOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdvancedOptionsConfigOutput) } -func (i SecurityScanConfigAuthenticationArgs) ToSecurityScanConfigAuthenticationPtrOutput() SecurityScanConfigAuthenticationPtrOutput { - return i.ToSecurityScanConfigAuthenticationPtrOutputWithContext(context.Background()) +func (i SecurityPolicyAdvancedOptionsConfigArgs) ToSecurityPolicyAdvancedOptionsConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigPtrOutput { + return i.ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(context.Background()) } -func (i SecurityScanConfigAuthenticationArgs) ToSecurityScanConfigAuthenticationPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigAuthenticationOutput).ToSecurityScanConfigAuthenticationPtrOutputWithContext(ctx) +func (i SecurityPolicyAdvancedOptionsConfigArgs) ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdvancedOptionsConfigOutput).ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(ctx) } -// SecurityScanConfigAuthenticationPtrInput is an input type that accepts SecurityScanConfigAuthenticationArgs, SecurityScanConfigAuthenticationPtr and SecurityScanConfigAuthenticationPtrOutput values. -// You can construct a concrete instance of `SecurityScanConfigAuthenticationPtrInput` via: +// SecurityPolicyAdvancedOptionsConfigPtrInput is an input type that accepts SecurityPolicyAdvancedOptionsConfigArgs, SecurityPolicyAdvancedOptionsConfigPtr and SecurityPolicyAdvancedOptionsConfigPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyAdvancedOptionsConfigPtrInput` via: // -// SecurityScanConfigAuthenticationArgs{...} +// SecurityPolicyAdvancedOptionsConfigArgs{...} // // or: // // nil -type SecurityScanConfigAuthenticationPtrInput interface { +type SecurityPolicyAdvancedOptionsConfigPtrInput interface { pulumi.Input - ToSecurityScanConfigAuthenticationPtrOutput() SecurityScanConfigAuthenticationPtrOutput - ToSecurityScanConfigAuthenticationPtrOutputWithContext(context.Context) SecurityScanConfigAuthenticationPtrOutput + ToSecurityPolicyAdvancedOptionsConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigPtrOutput + ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(context.Context) SecurityPolicyAdvancedOptionsConfigPtrOutput } -type securityScanConfigAuthenticationPtrType SecurityScanConfigAuthenticationArgs +type securityPolicyAdvancedOptionsConfigPtrType SecurityPolicyAdvancedOptionsConfigArgs -func SecurityScanConfigAuthenticationPtr(v *SecurityScanConfigAuthenticationArgs) SecurityScanConfigAuthenticationPtrInput { - return (*securityScanConfigAuthenticationPtrType)(v) +func SecurityPolicyAdvancedOptionsConfigPtr(v *SecurityPolicyAdvancedOptionsConfigArgs) SecurityPolicyAdvancedOptionsConfigPtrInput { + return (*securityPolicyAdvancedOptionsConfigPtrType)(v) } -func (*securityScanConfigAuthenticationPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityScanConfigAuthentication)(nil)).Elem() +func (*securityPolicyAdvancedOptionsConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyAdvancedOptionsConfig)(nil)).Elem() } -func (i *securityScanConfigAuthenticationPtrType) ToSecurityScanConfigAuthenticationPtrOutput() SecurityScanConfigAuthenticationPtrOutput { - return i.ToSecurityScanConfigAuthenticationPtrOutputWithContext(context.Background()) +func (i *securityPolicyAdvancedOptionsConfigPtrType) ToSecurityPolicyAdvancedOptionsConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigPtrOutput { + return i.ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(context.Background()) } -func (i *securityScanConfigAuthenticationPtrType) ToSecurityScanConfigAuthenticationPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigAuthenticationPtrOutput) +func (i *securityPolicyAdvancedOptionsConfigPtrType) ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdvancedOptionsConfigPtrOutput) } -type SecurityScanConfigAuthenticationOutput struct{ *pulumi.OutputState } +type SecurityPolicyAdvancedOptionsConfigOutput struct{ *pulumi.OutputState } -func (SecurityScanConfigAuthenticationOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityScanConfigAuthentication)(nil)).Elem() +func (SecurityPolicyAdvancedOptionsConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyAdvancedOptionsConfig)(nil)).Elem() } -func (o SecurityScanConfigAuthenticationOutput) ToSecurityScanConfigAuthenticationOutput() SecurityScanConfigAuthenticationOutput { +func (o SecurityPolicyAdvancedOptionsConfigOutput) ToSecurityPolicyAdvancedOptionsConfigOutput() SecurityPolicyAdvancedOptionsConfigOutput { return o } -func (o SecurityScanConfigAuthenticationOutput) ToSecurityScanConfigAuthenticationOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationOutput { +func (o SecurityPolicyAdvancedOptionsConfigOutput) ToSecurityPolicyAdvancedOptionsConfigOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigOutput { return o } -func (o SecurityScanConfigAuthenticationOutput) ToSecurityScanConfigAuthenticationPtrOutput() SecurityScanConfigAuthenticationPtrOutput { - return o.ToSecurityScanConfigAuthenticationPtrOutputWithContext(context.Background()) +func (o SecurityPolicyAdvancedOptionsConfigOutput) ToSecurityPolicyAdvancedOptionsConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigPtrOutput { + return o.ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(context.Background()) } -func (o SecurityScanConfigAuthenticationOutput) ToSecurityScanConfigAuthenticationPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityScanConfigAuthentication) *SecurityScanConfigAuthentication { +func (o SecurityPolicyAdvancedOptionsConfigOutput) ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyAdvancedOptionsConfig) *SecurityPolicyAdvancedOptionsConfig { return &v - }).(SecurityScanConfigAuthenticationPtrOutput) + }).(SecurityPolicyAdvancedOptionsConfigPtrOutput) } -// Describes authentication configuration that uses a custom account. -// Structure is documented below. -func (o SecurityScanConfigAuthenticationOutput) CustomAccount() SecurityScanConfigAuthenticationCustomAccountPtrOutput { - return o.ApplyT(func(v SecurityScanConfigAuthentication) *SecurityScanConfigAuthenticationCustomAccount { - return v.CustomAccount - }).(SecurityScanConfigAuthenticationCustomAccountPtrOutput) +// Custom configuration to apply the JSON parsing. Only applicable when +// `jsonParsing` is set to `STANDARD`. Structure is documented below. +func (o SecurityPolicyAdvancedOptionsConfigOutput) JsonCustomConfig() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { + return o.ApplyT(func(v SecurityPolicyAdvancedOptionsConfig) *SecurityPolicyAdvancedOptionsConfigJsonCustomConfig { + return v.JsonCustomConfig + }).(SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) } -// Describes authentication configuration that uses a Google account. -// Structure is documented below. -func (o SecurityScanConfigAuthenticationOutput) GoogleAccount() SecurityScanConfigAuthenticationGoogleAccountPtrOutput { - return o.ApplyT(func(v SecurityScanConfigAuthentication) *SecurityScanConfigAuthenticationGoogleAccount { - return v.GoogleAccount - }).(SecurityScanConfigAuthenticationGoogleAccountPtrOutput) +// Whether or not to JSON parse the payload body. Defaults to `DISABLED`. +// * `DISABLED` - Don't parse JSON payloads in POST bodies. +// * `STANDARD` - Parse JSON payloads in POST bodies. +// * `STANDARD_WITH_GRAPHQL` - Parse JSON and GraphQL payloads in POST bodies. +func (o SecurityPolicyAdvancedOptionsConfigOutput) JsonParsing() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyAdvancedOptionsConfig) *string { return v.JsonParsing }).(pulumi.StringPtrOutput) +} + +// Log level to use. Defaults to `NORMAL`. +// * `NORMAL` - Normal log level. +// * `VERBOSE` - Verbose log level. +func (o SecurityPolicyAdvancedOptionsConfigOutput) LogLevel() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyAdvancedOptionsConfig) *string { return v.LogLevel }).(pulumi.StringPtrOutput) +} + +// An optional list of case-insensitive request header names to use for resolving the callers client IP address. +func (o SecurityPolicyAdvancedOptionsConfigOutput) UserIpRequestHeaders() pulumi.StringArrayOutput { + return o.ApplyT(func(v SecurityPolicyAdvancedOptionsConfig) []string { return v.UserIpRequestHeaders }).(pulumi.StringArrayOutput) } -type SecurityScanConfigAuthenticationPtrOutput struct{ *pulumi.OutputState } +type SecurityPolicyAdvancedOptionsConfigPtrOutput struct{ *pulumi.OutputState } -func (SecurityScanConfigAuthenticationPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityScanConfigAuthentication)(nil)).Elem() +func (SecurityPolicyAdvancedOptionsConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyAdvancedOptionsConfig)(nil)).Elem() } -func (o SecurityScanConfigAuthenticationPtrOutput) ToSecurityScanConfigAuthenticationPtrOutput() SecurityScanConfigAuthenticationPtrOutput { +func (o SecurityPolicyAdvancedOptionsConfigPtrOutput) ToSecurityPolicyAdvancedOptionsConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigPtrOutput { return o } -func (o SecurityScanConfigAuthenticationPtrOutput) ToSecurityScanConfigAuthenticationPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationPtrOutput { +func (o SecurityPolicyAdvancedOptionsConfigPtrOutput) ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigPtrOutput { return o } -func (o SecurityScanConfigAuthenticationPtrOutput) Elem() SecurityScanConfigAuthenticationOutput { - return o.ApplyT(func(v *SecurityScanConfigAuthentication) SecurityScanConfigAuthentication { +func (o SecurityPolicyAdvancedOptionsConfigPtrOutput) Elem() SecurityPolicyAdvancedOptionsConfigOutput { + return o.ApplyT(func(v *SecurityPolicyAdvancedOptionsConfig) SecurityPolicyAdvancedOptionsConfig { if v != nil { return *v } - var ret SecurityScanConfigAuthentication + var ret SecurityPolicyAdvancedOptionsConfig return ret - }).(SecurityScanConfigAuthenticationOutput) + }).(SecurityPolicyAdvancedOptionsConfigOutput) } -// Describes authentication configuration that uses a custom account. -// Structure is documented below. -func (o SecurityScanConfigAuthenticationPtrOutput) CustomAccount() SecurityScanConfigAuthenticationCustomAccountPtrOutput { - return o.ApplyT(func(v *SecurityScanConfigAuthentication) *SecurityScanConfigAuthenticationCustomAccount { +// Custom configuration to apply the JSON parsing. Only applicable when +// `jsonParsing` is set to `STANDARD`. Structure is documented below. +func (o SecurityPolicyAdvancedOptionsConfigPtrOutput) JsonCustomConfig() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { + return o.ApplyT(func(v *SecurityPolicyAdvancedOptionsConfig) *SecurityPolicyAdvancedOptionsConfigJsonCustomConfig { + if v == nil { + return nil + } + return v.JsonCustomConfig + }).(SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) +} + +// Whether or not to JSON parse the payload body. Defaults to `DISABLED`. +// * `DISABLED` - Don't parse JSON payloads in POST bodies. +// * `STANDARD` - Parse JSON payloads in POST bodies. +// * `STANDARD_WITH_GRAPHQL` - Parse JSON and GraphQL payloads in POST bodies. +func (o SecurityPolicyAdvancedOptionsConfigPtrOutput) JsonParsing() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityPolicyAdvancedOptionsConfig) *string { if v == nil { return nil } - return v.CustomAccount - }).(SecurityScanConfigAuthenticationCustomAccountPtrOutput) + return v.JsonParsing + }).(pulumi.StringPtrOutput) } -// Describes authentication configuration that uses a Google account. -// Structure is documented below. -func (o SecurityScanConfigAuthenticationPtrOutput) GoogleAccount() SecurityScanConfigAuthenticationGoogleAccountPtrOutput { - return o.ApplyT(func(v *SecurityScanConfigAuthentication) *SecurityScanConfigAuthenticationGoogleAccount { +// Log level to use. Defaults to `NORMAL`. +// * `NORMAL` - Normal log level. +// * `VERBOSE` - Verbose log level. +func (o SecurityPolicyAdvancedOptionsConfigPtrOutput) LogLevel() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityPolicyAdvancedOptionsConfig) *string { if v == nil { return nil } - return v.GoogleAccount - }).(SecurityScanConfigAuthenticationGoogleAccountPtrOutput) + return v.LogLevel + }).(pulumi.StringPtrOutput) } -type SecurityScanConfigAuthenticationCustomAccount struct { - // The login form URL of the website. - LoginUrl string `pulumi:"loginUrl"` - // The password of the custom account. The credential is stored encrypted - // in GCP. - // **Note**: This property is sensitive and will not be displayed in the plan. - Password string `pulumi:"password"` - // The user name of the custom account. - Username string `pulumi:"username"` +// An optional list of case-insensitive request header names to use for resolving the callers client IP address. +func (o SecurityPolicyAdvancedOptionsConfigPtrOutput) UserIpRequestHeaders() pulumi.StringArrayOutput { + return o.ApplyT(func(v *SecurityPolicyAdvancedOptionsConfig) []string { + if v == nil { + return nil + } + return v.UserIpRequestHeaders + }).(pulumi.StringArrayOutput) +} + +type SecurityPolicyAdvancedOptionsConfigJsonCustomConfig struct { + // A list of custom Content-Type header values to apply the JSON parsing. The + // format of the Content-Type header values is defined in + // [RFC 1341](https://www.ietf.org/rfc/rfc1341.txt). When configuring a custom Content-Type header + // value, only the type/subtype needs to be specified, and the parameters should be excluded. + ContentTypes []string `pulumi:"contentTypes"` } -// SecurityScanConfigAuthenticationCustomAccountInput is an input type that accepts SecurityScanConfigAuthenticationCustomAccountArgs and SecurityScanConfigAuthenticationCustomAccountOutput values. -// You can construct a concrete instance of `SecurityScanConfigAuthenticationCustomAccountInput` via: +// SecurityPolicyAdvancedOptionsConfigJsonCustomConfigInput is an input type that accepts SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs and SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput values. +// You can construct a concrete instance of `SecurityPolicyAdvancedOptionsConfigJsonCustomConfigInput` via: // -// SecurityScanConfigAuthenticationCustomAccountArgs{...} -type SecurityScanConfigAuthenticationCustomAccountInput interface { +// SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs{...} +type SecurityPolicyAdvancedOptionsConfigJsonCustomConfigInput interface { pulumi.Input - ToSecurityScanConfigAuthenticationCustomAccountOutput() SecurityScanConfigAuthenticationCustomAccountOutput - ToSecurityScanConfigAuthenticationCustomAccountOutputWithContext(context.Context) SecurityScanConfigAuthenticationCustomAccountOutput + ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput + ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutputWithContext(context.Context) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput } -type SecurityScanConfigAuthenticationCustomAccountArgs struct { - // The login form URL of the website. - LoginUrl pulumi.StringInput `pulumi:"loginUrl"` - // The password of the custom account. The credential is stored encrypted - // in GCP. - // **Note**: This property is sensitive and will not be displayed in the plan. - Password pulumi.StringInput `pulumi:"password"` - // The user name of the custom account. - Username pulumi.StringInput `pulumi:"username"` +type SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs struct { + // A list of custom Content-Type header values to apply the JSON parsing. The + // format of the Content-Type header values is defined in + // [RFC 1341](https://www.ietf.org/rfc/rfc1341.txt). When configuring a custom Content-Type header + // value, only the type/subtype needs to be specified, and the parameters should be excluded. + ContentTypes pulumi.StringArrayInput `pulumi:"contentTypes"` } -func (SecurityScanConfigAuthenticationCustomAccountArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityScanConfigAuthenticationCustomAccount)(nil)).Elem() +func (SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyAdvancedOptionsConfigJsonCustomConfig)(nil)).Elem() } -func (i SecurityScanConfigAuthenticationCustomAccountArgs) ToSecurityScanConfigAuthenticationCustomAccountOutput() SecurityScanConfigAuthenticationCustomAccountOutput { - return i.ToSecurityScanConfigAuthenticationCustomAccountOutputWithContext(context.Background()) +func (i SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput { + return i.ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutputWithContext(context.Background()) } -func (i SecurityScanConfigAuthenticationCustomAccountArgs) ToSecurityScanConfigAuthenticationCustomAccountOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationCustomAccountOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigAuthenticationCustomAccountOutput) +func (i SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput) } -func (i SecurityScanConfigAuthenticationCustomAccountArgs) ToSecurityScanConfigAuthenticationCustomAccountPtrOutput() SecurityScanConfigAuthenticationCustomAccountPtrOutput { - return i.ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(context.Background()) +func (i SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { + return i.ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(context.Background()) } -func (i SecurityScanConfigAuthenticationCustomAccountArgs) ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationCustomAccountPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigAuthenticationCustomAccountOutput).ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(ctx) +func (i SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput).ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(ctx) } -// SecurityScanConfigAuthenticationCustomAccountPtrInput is an input type that accepts SecurityScanConfigAuthenticationCustomAccountArgs, SecurityScanConfigAuthenticationCustomAccountPtr and SecurityScanConfigAuthenticationCustomAccountPtrOutput values. -// You can construct a concrete instance of `SecurityScanConfigAuthenticationCustomAccountPtrInput` via: +// SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrInput is an input type that accepts SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs, SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtr and SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrInput` via: // -// SecurityScanConfigAuthenticationCustomAccountArgs{...} +// SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs{...} // // or: // // nil -type SecurityScanConfigAuthenticationCustomAccountPtrInput interface { +type SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrInput interface { pulumi.Input - ToSecurityScanConfigAuthenticationCustomAccountPtrOutput() SecurityScanConfigAuthenticationCustomAccountPtrOutput - ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(context.Context) SecurityScanConfigAuthenticationCustomAccountPtrOutput + ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput + ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(context.Context) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput } -type securityScanConfigAuthenticationCustomAccountPtrType SecurityScanConfigAuthenticationCustomAccountArgs +type securityPolicyAdvancedOptionsConfigJsonCustomConfigPtrType SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs -func SecurityScanConfigAuthenticationCustomAccountPtr(v *SecurityScanConfigAuthenticationCustomAccountArgs) SecurityScanConfigAuthenticationCustomAccountPtrInput { - return (*securityScanConfigAuthenticationCustomAccountPtrType)(v) +func SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtr(v *SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrInput { + return (*securityPolicyAdvancedOptionsConfigJsonCustomConfigPtrType)(v) } -func (*securityScanConfigAuthenticationCustomAccountPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityScanConfigAuthenticationCustomAccount)(nil)).Elem() +func (*securityPolicyAdvancedOptionsConfigJsonCustomConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyAdvancedOptionsConfigJsonCustomConfig)(nil)).Elem() } -func (i *securityScanConfigAuthenticationCustomAccountPtrType) ToSecurityScanConfigAuthenticationCustomAccountPtrOutput() SecurityScanConfigAuthenticationCustomAccountPtrOutput { - return i.ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(context.Background()) +func (i *securityPolicyAdvancedOptionsConfigJsonCustomConfigPtrType) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { + return i.ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(context.Background()) } -func (i *securityScanConfigAuthenticationCustomAccountPtrType) ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationCustomAccountPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigAuthenticationCustomAccountPtrOutput) +func (i *securityPolicyAdvancedOptionsConfigJsonCustomConfigPtrType) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) } -type SecurityScanConfigAuthenticationCustomAccountOutput struct{ *pulumi.OutputState } +type SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput struct{ *pulumi.OutputState } -func (SecurityScanConfigAuthenticationCustomAccountOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityScanConfigAuthenticationCustomAccount)(nil)).Elem() +func (SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyAdvancedOptionsConfigJsonCustomConfig)(nil)).Elem() } -func (o SecurityScanConfigAuthenticationCustomAccountOutput) ToSecurityScanConfigAuthenticationCustomAccountOutput() SecurityScanConfigAuthenticationCustomAccountOutput { +func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput { return o } -func (o SecurityScanConfigAuthenticationCustomAccountOutput) ToSecurityScanConfigAuthenticationCustomAccountOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationCustomAccountOutput { +func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput { return o } -func (o SecurityScanConfigAuthenticationCustomAccountOutput) ToSecurityScanConfigAuthenticationCustomAccountPtrOutput() SecurityScanConfigAuthenticationCustomAccountPtrOutput { - return o.ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(context.Background()) +func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { + return o.ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(context.Background()) } -func (o SecurityScanConfigAuthenticationCustomAccountOutput) ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationCustomAccountPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityScanConfigAuthenticationCustomAccount) *SecurityScanConfigAuthenticationCustomAccount { +func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyAdvancedOptionsConfigJsonCustomConfig) *SecurityPolicyAdvancedOptionsConfigJsonCustomConfig { return &v - }).(SecurityScanConfigAuthenticationCustomAccountPtrOutput) -} - -// The login form URL of the website. -func (o SecurityScanConfigAuthenticationCustomAccountOutput) LoginUrl() pulumi.StringOutput { - return o.ApplyT(func(v SecurityScanConfigAuthenticationCustomAccount) string { return v.LoginUrl }).(pulumi.StringOutput) -} - -// The password of the custom account. The credential is stored encrypted -// in GCP. -// **Note**: This property is sensitive and will not be displayed in the plan. -func (o SecurityScanConfigAuthenticationCustomAccountOutput) Password() pulumi.StringOutput { - return o.ApplyT(func(v SecurityScanConfigAuthenticationCustomAccount) string { return v.Password }).(pulumi.StringOutput) + }).(SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) } -// The user name of the custom account. -func (o SecurityScanConfigAuthenticationCustomAccountOutput) Username() pulumi.StringOutput { - return o.ApplyT(func(v SecurityScanConfigAuthenticationCustomAccount) string { return v.Username }).(pulumi.StringOutput) +// A list of custom Content-Type header values to apply the JSON parsing. The +// format of the Content-Type header values is defined in +// [RFC 1341](https://www.ietf.org/rfc/rfc1341.txt). When configuring a custom Content-Type header +// value, only the type/subtype needs to be specified, and the parameters should be excluded. +func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput) ContentTypes() pulumi.StringArrayOutput { + return o.ApplyT(func(v SecurityPolicyAdvancedOptionsConfigJsonCustomConfig) []string { return v.ContentTypes }).(pulumi.StringArrayOutput) } -type SecurityScanConfigAuthenticationCustomAccountPtrOutput struct{ *pulumi.OutputState } +type SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput struct{ *pulumi.OutputState } -func (SecurityScanConfigAuthenticationCustomAccountPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityScanConfigAuthenticationCustomAccount)(nil)).Elem() +func (SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyAdvancedOptionsConfigJsonCustomConfig)(nil)).Elem() } -func (o SecurityScanConfigAuthenticationCustomAccountPtrOutput) ToSecurityScanConfigAuthenticationCustomAccountPtrOutput() SecurityScanConfigAuthenticationCustomAccountPtrOutput { +func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { return o } -func (o SecurityScanConfigAuthenticationCustomAccountPtrOutput) ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationCustomAccountPtrOutput { +func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { return o } -func (o SecurityScanConfigAuthenticationCustomAccountPtrOutput) Elem() SecurityScanConfigAuthenticationCustomAccountOutput { - return o.ApplyT(func(v *SecurityScanConfigAuthenticationCustomAccount) SecurityScanConfigAuthenticationCustomAccount { +func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) Elem() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput { + return o.ApplyT(func(v *SecurityPolicyAdvancedOptionsConfigJsonCustomConfig) SecurityPolicyAdvancedOptionsConfigJsonCustomConfig { if v != nil { return *v } - var ret SecurityScanConfigAuthenticationCustomAccount + var ret SecurityPolicyAdvancedOptionsConfigJsonCustomConfig return ret - }).(SecurityScanConfigAuthenticationCustomAccountOutput) -} - -// The login form URL of the website. -func (o SecurityScanConfigAuthenticationCustomAccountPtrOutput) LoginUrl() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityScanConfigAuthenticationCustomAccount) *string { - if v == nil { - return nil - } - return &v.LoginUrl - }).(pulumi.StringPtrOutput) -} - -// The password of the custom account. The credential is stored encrypted -// in GCP. -// **Note**: This property is sensitive and will not be displayed in the plan. -func (o SecurityScanConfigAuthenticationCustomAccountPtrOutput) Password() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityScanConfigAuthenticationCustomAccount) *string { - if v == nil { - return nil - } - return &v.Password - }).(pulumi.StringPtrOutput) + }).(SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput) } -// The user name of the custom account. -func (o SecurityScanConfigAuthenticationCustomAccountPtrOutput) Username() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityScanConfigAuthenticationCustomAccount) *string { +// A list of custom Content-Type header values to apply the JSON parsing. The +// format of the Content-Type header values is defined in +// [RFC 1341](https://www.ietf.org/rfc/rfc1341.txt). When configuring a custom Content-Type header +// value, only the type/subtype needs to be specified, and the parameters should be excluded. +func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) ContentTypes() pulumi.StringArrayOutput { + return o.ApplyT(func(v *SecurityPolicyAdvancedOptionsConfigJsonCustomConfig) []string { if v == nil { return nil } - return &v.Username - }).(pulumi.StringPtrOutput) + return v.ContentTypes + }).(pulumi.StringArrayOutput) } func init() { @@ -90020,6 +89357,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*NodeGroupShareSettingsProjectMapArrayInput)(nil)).Elem(), NodeGroupShareSettingsProjectMapArray{}) pulumi.RegisterInputType(reflect.TypeOf((*NodeTemplateAcceleratorInput)(nil)).Elem(), NodeTemplateAcceleratorArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*NodeTemplateAcceleratorArrayInput)(nil)).Elem(), NodeTemplateAcceleratorArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*NodeTemplateDiskInput)(nil)).Elem(), NodeTemplateDiskArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*NodeTemplateDiskArrayInput)(nil)).Elem(), NodeTemplateDiskArray{}) pulumi.RegisterInputType(reflect.TypeOf((*NodeTemplateNodeTypeFlexibilityInput)(nil)).Elem(), NodeTemplateNodeTypeFlexibilityArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*NodeTemplateNodeTypeFlexibilityPtrInput)(nil)).Elem(), NodeTemplateNodeTypeFlexibilityArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*NodeTemplateServerBindingInput)(nil)).Elem(), NodeTemplateServerBindingArgs{}) @@ -90148,6 +89487,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*RegionInstanceGroupManagerAllInstancesConfigPtrInput)(nil)).Elem(), RegionInstanceGroupManagerAllInstancesConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RegionInstanceGroupManagerAutoHealingPoliciesInput)(nil)).Elem(), RegionInstanceGroupManagerAutoHealingPoliciesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RegionInstanceGroupManagerAutoHealingPoliciesPtrInput)(nil)).Elem(), RegionInstanceGroupManagerAutoHealingPoliciesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionInstanceGroupManagerInstanceFlexibilityPolicyInput)(nil)).Elem(), RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionInstanceGroupManagerInstanceFlexibilityPolicyPtrInput)(nil)).Elem(), RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionInput)(nil)).Elem(), RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayInput)(nil)).Elem(), RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArray{}) pulumi.RegisterInputType(reflect.TypeOf((*RegionInstanceGroupManagerInstanceLifecyclePolicyInput)(nil)).Elem(), RegionInstanceGroupManagerInstanceLifecyclePolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RegionInstanceGroupManagerInstanceLifecyclePolicyPtrInput)(nil)).Elem(), RegionInstanceGroupManagerInstanceLifecyclePolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RegionInstanceGroupManagerNamedPortInput)(nil)).Elem(), RegionInstanceGroupManagerNamedPortArgs{}) @@ -90267,8 +89610,48 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*RegionPerInstanceConfigPreservedStateInternalIpArrayInput)(nil)).Elem(), RegionPerInstanceConfigPreservedStateInternalIpArray{}) pulumi.RegisterInputType(reflect.TypeOf((*RegionPerInstanceConfigPreservedStateInternalIpIpAddressInput)(nil)).Elem(), RegionPerInstanceConfigPreservedStateInternalIpIpAddressArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RegionPerInstanceConfigPreservedStateInternalIpIpAddressPtrInput)(nil)).Elem(), RegionPerInstanceConfigPreservedStateInternalIpIpAddressArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestRequestedRunDurationInput)(nil)).Elem(), RegionResizeRequestRequestedRunDurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestRequestedRunDurationPtrInput)(nil)).Elem(), RegionResizeRequestRequestedRunDurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusInput)(nil)).Elem(), RegionResizeRequestStatusArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusArrayInput)(nil)).Elem(), RegionResizeRequestStatusArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusErrorInput)(nil)).Elem(), RegionResizeRequestStatusErrorArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusErrorArrayInput)(nil)).Elem(), RegionResizeRequestStatusErrorArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusErrorErrorInput)(nil)).Elem(), RegionResizeRequestStatusErrorErrorArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusErrorErrorArrayInput)(nil)).Elem(), RegionResizeRequestStatusErrorErrorArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusErrorErrorErrorDetailInput)(nil)).Elem(), RegionResizeRequestStatusErrorErrorErrorDetailArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusErrorErrorErrorDetailArrayInput)(nil)).Elem(), RegionResizeRequestStatusErrorErrorErrorDetailArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoInput)(nil)).Elem(), RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayInput)(nil)).Elem(), RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusErrorErrorErrorDetailHelpInput)(nil)).Elem(), RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusErrorErrorErrorDetailHelpArrayInput)(nil)).Elem(), RegionResizeRequestStatusErrorErrorErrorDetailHelpArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkInput)(nil)).Elem(), RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayInput)(nil)).Elem(), RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageInput)(nil)).Elem(), RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayInput)(nil)).Elem(), RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoInput)(nil)).Elem(), RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayInput)(nil)).Elem(), RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusLastAttemptInput)(nil)).Elem(), RegionResizeRequestStatusLastAttemptArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusLastAttemptArrayInput)(nil)).Elem(), RegionResizeRequestStatusLastAttemptArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusLastAttemptErrorInput)(nil)).Elem(), RegionResizeRequestStatusLastAttemptErrorArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusLastAttemptErrorArrayInput)(nil)).Elem(), RegionResizeRequestStatusLastAttemptErrorArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusLastAttemptErrorErrorInput)(nil)).Elem(), RegionResizeRequestStatusLastAttemptErrorErrorArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusLastAttemptErrorErrorArrayInput)(nil)).Elem(), RegionResizeRequestStatusLastAttemptErrorErrorArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailInput)(nil)).Elem(), RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayInput)(nil)).Elem(), RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoInput)(nil)).Elem(), RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayInput)(nil)).Elem(), RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpInput)(nil)).Elem(), RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayInput)(nil)).Elem(), RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkInput)(nil)).Elem(), RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayInput)(nil)).Elem(), RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageInput)(nil)).Elem(), RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayInput)(nil)).Elem(), RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoInput)(nil)).Elem(), RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayInput)(nil)).Elem(), RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArray{}) pulumi.RegisterInputType(reflect.TypeOf((*RegionSecurityPolicyDdosProtectionConfigInput)(nil)).Elem(), RegionSecurityPolicyDdosProtectionConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RegionSecurityPolicyDdosProtectionConfigPtrInput)(nil)).Elem(), RegionSecurityPolicyDdosProtectionConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionSecurityPolicyRuleTypeInput)(nil)).Elem(), RegionSecurityPolicyRuleTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionSecurityPolicyRuleTypeArrayInput)(nil)).Elem(), RegionSecurityPolicyRuleTypeArray{}) pulumi.RegisterInputType(reflect.TypeOf((*RegionSecurityPolicyRuleMatchInput)(nil)).Elem(), RegionSecurityPolicyRuleMatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RegionSecurityPolicyRuleMatchPtrInput)(nil)).Elem(), RegionSecurityPolicyRuleMatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RegionSecurityPolicyRuleMatchConfigInput)(nil)).Elem(), RegionSecurityPolicyRuleMatchConfigArgs{}) @@ -90543,52 +89926,6 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyAdvancedOptionsConfigPtrInput)(nil)).Elem(), SecurityPolicyAdvancedOptionsConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyAdvancedOptionsConfigJsonCustomConfigInput)(nil)).Elem(), SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrInput)(nil)).Elem(), SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRecaptchaOptionsConfigInput)(nil)).Elem(), SecurityPolicyRecaptchaOptionsConfigArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRecaptchaOptionsConfigPtrInput)(nil)).Elem(), SecurityPolicyRecaptchaOptionsConfigArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleTypeInput)(nil)).Elem(), SecurityPolicyRuleTypeArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleTypeArrayInput)(nil)).Elem(), SecurityPolicyRuleTypeArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleHeaderActionInput)(nil)).Elem(), SecurityPolicyRuleHeaderActionArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleHeaderActionPtrInput)(nil)).Elem(), SecurityPolicyRuleHeaderActionArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleHeaderActionRequestHeadersToAddInput)(nil)).Elem(), SecurityPolicyRuleHeaderActionRequestHeadersToAddArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayInput)(nil)).Elem(), SecurityPolicyRuleHeaderActionRequestHeadersToAddArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleMatchInput)(nil)).Elem(), SecurityPolicyRuleMatchArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleMatchPtrInput)(nil)).Elem(), SecurityPolicyRuleMatchArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleMatchConfigInput)(nil)).Elem(), SecurityPolicyRuleMatchConfigArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleMatchConfigPtrInput)(nil)).Elem(), SecurityPolicyRuleMatchConfigArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleMatchExprInput)(nil)).Elem(), SecurityPolicyRuleMatchExprArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleMatchExprPtrInput)(nil)).Elem(), SecurityPolicyRuleMatchExprArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleMatchExprOptionsInput)(nil)).Elem(), SecurityPolicyRuleMatchExprOptionsArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleMatchExprOptionsPtrInput)(nil)).Elem(), SecurityPolicyRuleMatchExprOptionsArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsInput)(nil)).Elem(), SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrInput)(nil)).Elem(), SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigInput)(nil)).Elem(), SecurityPolicyRulePreconfiguredWafConfigArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigPtrInput)(nil)).Elem(), SecurityPolicyRulePreconfiguredWafConfigArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionInput)(nil)).Elem(), SecurityPolicyRulePreconfiguredWafConfigExclusionArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionArrayInput)(nil)).Elem(), SecurityPolicyRulePreconfiguredWafConfigExclusionArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyInput)(nil)).Elem(), SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayInput)(nil)).Elem(), SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderInput)(nil)).Elem(), SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayInput)(nil)).Elem(), SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamInput)(nil)).Elem(), SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayInput)(nil)).Elem(), SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriInput)(nil)).Elem(), SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayInput)(nil)).Elem(), SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsInput)(nil)).Elem(), SecurityPolicyRuleRateLimitOptionsArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsPtrInput)(nil)).Elem(), SecurityPolicyRuleRateLimitOptionsArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsBanThresholdInput)(nil)).Elem(), SecurityPolicyRuleRateLimitOptionsBanThresholdArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsBanThresholdPtrInput)(nil)).Elem(), SecurityPolicyRuleRateLimitOptionsBanThresholdArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigInput)(nil)).Elem(), SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayInput)(nil)).Elem(), SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsInput)(nil)).Elem(), SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrInput)(nil)).Elem(), SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsRateLimitThresholdInput)(nil)).Elem(), SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrInput)(nil)).Elem(), SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleRedirectOptionsInput)(nil)).Elem(), SecurityPolicyRuleRedirectOptionsArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleRedirectOptionsPtrInput)(nil)).Elem(), SecurityPolicyRuleRedirectOptionsArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityScanConfigAuthenticationInput)(nil)).Elem(), SecurityScanConfigAuthenticationArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityScanConfigAuthenticationPtrInput)(nil)).Elem(), SecurityScanConfigAuthenticationArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityScanConfigAuthenticationCustomAccountInput)(nil)).Elem(), SecurityScanConfigAuthenticationCustomAccountArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SecurityScanConfigAuthenticationCustomAccountPtrInput)(nil)).Elem(), SecurityScanConfigAuthenticationCustomAccountArgs{}) pulumi.RegisterOutputType(AutoscalerAutoscalingPolicyOutput{}) pulumi.RegisterOutputType(AutoscalerAutoscalingPolicyPtrOutput{}) pulumi.RegisterOutputType(AutoscalerAutoscalingPolicyCpuUtilizationOutput{}) @@ -91017,6 +90354,8 @@ func init() { pulumi.RegisterOutputType(NodeGroupShareSettingsProjectMapArrayOutput{}) pulumi.RegisterOutputType(NodeTemplateAcceleratorOutput{}) pulumi.RegisterOutputType(NodeTemplateAcceleratorArrayOutput{}) + pulumi.RegisterOutputType(NodeTemplateDiskOutput{}) + pulumi.RegisterOutputType(NodeTemplateDiskArrayOutput{}) pulumi.RegisterOutputType(NodeTemplateNodeTypeFlexibilityOutput{}) pulumi.RegisterOutputType(NodeTemplateNodeTypeFlexibilityPtrOutput{}) pulumi.RegisterOutputType(NodeTemplateServerBindingOutput{}) @@ -91145,6 +90484,10 @@ func init() { pulumi.RegisterOutputType(RegionInstanceGroupManagerAllInstancesConfigPtrOutput{}) pulumi.RegisterOutputType(RegionInstanceGroupManagerAutoHealingPoliciesOutput{}) pulumi.RegisterOutputType(RegionInstanceGroupManagerAutoHealingPoliciesPtrOutput{}) + pulumi.RegisterOutputType(RegionInstanceGroupManagerInstanceFlexibilityPolicyOutput{}) + pulumi.RegisterOutputType(RegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutput{}) + pulumi.RegisterOutputType(RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput{}) + pulumi.RegisterOutputType(RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput{}) pulumi.RegisterOutputType(RegionInstanceGroupManagerInstanceLifecyclePolicyOutput{}) pulumi.RegisterOutputType(RegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutput{}) pulumi.RegisterOutputType(RegionInstanceGroupManagerNamedPortOutput{}) @@ -91264,8 +90607,48 @@ func init() { pulumi.RegisterOutputType(RegionPerInstanceConfigPreservedStateInternalIpArrayOutput{}) pulumi.RegisterOutputType(RegionPerInstanceConfigPreservedStateInternalIpIpAddressOutput{}) pulumi.RegisterOutputType(RegionPerInstanceConfigPreservedStateInternalIpIpAddressPtrOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestRequestedRunDurationOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestRequestedRunDurationPtrOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusArrayOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusErrorOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusErrorArrayOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusErrorErrorOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusErrorErrorArrayOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusErrorErrorErrorDetailOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusErrorErrorErrorDetailArrayOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusErrorErrorErrorDetailHelpOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusLastAttemptOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusLastAttemptArrayOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusLastAttemptErrorOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusLastAttemptErrorArrayOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusLastAttemptErrorErrorOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusLastAttemptErrorErrorArrayOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput{}) pulumi.RegisterOutputType(RegionSecurityPolicyDdosProtectionConfigOutput{}) pulumi.RegisterOutputType(RegionSecurityPolicyDdosProtectionConfigPtrOutput{}) + pulumi.RegisterOutputType(RegionSecurityPolicyRuleTypeOutput{}) + pulumi.RegisterOutputType(RegionSecurityPolicyRuleTypeArrayOutput{}) pulumi.RegisterOutputType(RegionSecurityPolicyRuleMatchOutput{}) pulumi.RegisterOutputType(RegionSecurityPolicyRuleMatchPtrOutput{}) pulumi.RegisterOutputType(RegionSecurityPolicyRuleMatchConfigOutput{}) @@ -91540,50 +90923,4 @@ func init() { pulumi.RegisterOutputType(SecurityPolicyAdvancedOptionsConfigPtrOutput{}) pulumi.RegisterOutputType(SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput{}) pulumi.RegisterOutputType(SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRecaptchaOptionsConfigOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRecaptchaOptionsConfigPtrOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRuleTypeOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRuleTypeArrayOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRuleHeaderActionOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRuleHeaderActionPtrOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRuleMatchOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRuleMatchPtrOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRuleMatchConfigOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRuleMatchConfigPtrOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRuleMatchExprOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRuleMatchExprPtrOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRuleMatchExprOptionsOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRuleMatchExprOptionsPtrOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRulePreconfiguredWafConfigOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRulePreconfiguredWafConfigPtrOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRulePreconfiguredWafConfigExclusionOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRuleRateLimitOptionsOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRuleRateLimitOptionsPtrOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRuleRateLimitOptionsBanThresholdOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRuleRedirectOptionsOutput{}) - pulumi.RegisterOutputType(SecurityPolicyRuleRedirectOptionsPtrOutput{}) - pulumi.RegisterOutputType(SecurityScanConfigAuthenticationOutput{}) - pulumi.RegisterOutputType(SecurityScanConfigAuthenticationPtrOutput{}) - pulumi.RegisterOutputType(SecurityScanConfigAuthenticationCustomAccountOutput{}) - pulumi.RegisterOutputType(SecurityScanConfigAuthenticationCustomAccountPtrOutput{}) } diff --git a/sdk/go/gcp/compute/pulumiTypes1.go b/sdk/go/gcp/compute/pulumiTypes1.go index 9961c8342f..6ab8a82b61 100644 --- a/sdk/go/gcp/compute/pulumiTypes1.go +++ b/sdk/go/gcp/compute/pulumiTypes1.go @@ -13,6 +13,3694 @@ import ( var _ = internal.GetEnvOrDefault +type SecurityPolicyRecaptchaOptionsConfig struct { + // A field to supply a reCAPTCHA site key to be used for all the rules using the redirect action with the type of `GOOGLE_RECAPTCHA` under the security policy. The specified site key needs to be created from the reCAPTCHA API. The user is responsible for the validity of the specified site key. If not specified, a Google-managed site key is used. + RedirectSiteKey string `pulumi:"redirectSiteKey"` +} + +// SecurityPolicyRecaptchaOptionsConfigInput is an input type that accepts SecurityPolicyRecaptchaOptionsConfigArgs and SecurityPolicyRecaptchaOptionsConfigOutput values. +// You can construct a concrete instance of `SecurityPolicyRecaptchaOptionsConfigInput` via: +// +// SecurityPolicyRecaptchaOptionsConfigArgs{...} +type SecurityPolicyRecaptchaOptionsConfigInput interface { + pulumi.Input + + ToSecurityPolicyRecaptchaOptionsConfigOutput() SecurityPolicyRecaptchaOptionsConfigOutput + ToSecurityPolicyRecaptchaOptionsConfigOutputWithContext(context.Context) SecurityPolicyRecaptchaOptionsConfigOutput +} + +type SecurityPolicyRecaptchaOptionsConfigArgs struct { + // A field to supply a reCAPTCHA site key to be used for all the rules using the redirect action with the type of `GOOGLE_RECAPTCHA` under the security policy. The specified site key needs to be created from the reCAPTCHA API. The user is responsible for the validity of the specified site key. If not specified, a Google-managed site key is used. + RedirectSiteKey pulumi.StringInput `pulumi:"redirectSiteKey"` +} + +func (SecurityPolicyRecaptchaOptionsConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRecaptchaOptionsConfig)(nil)).Elem() +} + +func (i SecurityPolicyRecaptchaOptionsConfigArgs) ToSecurityPolicyRecaptchaOptionsConfigOutput() SecurityPolicyRecaptchaOptionsConfigOutput { + return i.ToSecurityPolicyRecaptchaOptionsConfigOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRecaptchaOptionsConfigArgs) ToSecurityPolicyRecaptchaOptionsConfigOutputWithContext(ctx context.Context) SecurityPolicyRecaptchaOptionsConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRecaptchaOptionsConfigOutput) +} + +func (i SecurityPolicyRecaptchaOptionsConfigArgs) ToSecurityPolicyRecaptchaOptionsConfigPtrOutput() SecurityPolicyRecaptchaOptionsConfigPtrOutput { + return i.ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRecaptchaOptionsConfigArgs) ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRecaptchaOptionsConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRecaptchaOptionsConfigOutput).ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(ctx) +} + +// SecurityPolicyRecaptchaOptionsConfigPtrInput is an input type that accepts SecurityPolicyRecaptchaOptionsConfigArgs, SecurityPolicyRecaptchaOptionsConfigPtr and SecurityPolicyRecaptchaOptionsConfigPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyRecaptchaOptionsConfigPtrInput` via: +// +// SecurityPolicyRecaptchaOptionsConfigArgs{...} +// +// or: +// +// nil +type SecurityPolicyRecaptchaOptionsConfigPtrInput interface { + pulumi.Input + + ToSecurityPolicyRecaptchaOptionsConfigPtrOutput() SecurityPolicyRecaptchaOptionsConfigPtrOutput + ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(context.Context) SecurityPolicyRecaptchaOptionsConfigPtrOutput +} + +type securityPolicyRecaptchaOptionsConfigPtrType SecurityPolicyRecaptchaOptionsConfigArgs + +func SecurityPolicyRecaptchaOptionsConfigPtr(v *SecurityPolicyRecaptchaOptionsConfigArgs) SecurityPolicyRecaptchaOptionsConfigPtrInput { + return (*securityPolicyRecaptchaOptionsConfigPtrType)(v) +} + +func (*securityPolicyRecaptchaOptionsConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRecaptchaOptionsConfig)(nil)).Elem() +} + +func (i *securityPolicyRecaptchaOptionsConfigPtrType) ToSecurityPolicyRecaptchaOptionsConfigPtrOutput() SecurityPolicyRecaptchaOptionsConfigPtrOutput { + return i.ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(context.Background()) +} + +func (i *securityPolicyRecaptchaOptionsConfigPtrType) ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRecaptchaOptionsConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRecaptchaOptionsConfigPtrOutput) +} + +type SecurityPolicyRecaptchaOptionsConfigOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRecaptchaOptionsConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRecaptchaOptionsConfig)(nil)).Elem() +} + +func (o SecurityPolicyRecaptchaOptionsConfigOutput) ToSecurityPolicyRecaptchaOptionsConfigOutput() SecurityPolicyRecaptchaOptionsConfigOutput { + return o +} + +func (o SecurityPolicyRecaptchaOptionsConfigOutput) ToSecurityPolicyRecaptchaOptionsConfigOutputWithContext(ctx context.Context) SecurityPolicyRecaptchaOptionsConfigOutput { + return o +} + +func (o SecurityPolicyRecaptchaOptionsConfigOutput) ToSecurityPolicyRecaptchaOptionsConfigPtrOutput() SecurityPolicyRecaptchaOptionsConfigPtrOutput { + return o.ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(context.Background()) +} + +func (o SecurityPolicyRecaptchaOptionsConfigOutput) ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRecaptchaOptionsConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRecaptchaOptionsConfig) *SecurityPolicyRecaptchaOptionsConfig { + return &v + }).(SecurityPolicyRecaptchaOptionsConfigPtrOutput) +} + +// A field to supply a reCAPTCHA site key to be used for all the rules using the redirect action with the type of `GOOGLE_RECAPTCHA` under the security policy. The specified site key needs to be created from the reCAPTCHA API. The user is responsible for the validity of the specified site key. If not specified, a Google-managed site key is used. +func (o SecurityPolicyRecaptchaOptionsConfigOutput) RedirectSiteKey() pulumi.StringOutput { + return o.ApplyT(func(v SecurityPolicyRecaptchaOptionsConfig) string { return v.RedirectSiteKey }).(pulumi.StringOutput) +} + +type SecurityPolicyRecaptchaOptionsConfigPtrOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRecaptchaOptionsConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRecaptchaOptionsConfig)(nil)).Elem() +} + +func (o SecurityPolicyRecaptchaOptionsConfigPtrOutput) ToSecurityPolicyRecaptchaOptionsConfigPtrOutput() SecurityPolicyRecaptchaOptionsConfigPtrOutput { + return o +} + +func (o SecurityPolicyRecaptchaOptionsConfigPtrOutput) ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRecaptchaOptionsConfigPtrOutput { + return o +} + +func (o SecurityPolicyRecaptchaOptionsConfigPtrOutput) Elem() SecurityPolicyRecaptchaOptionsConfigOutput { + return o.ApplyT(func(v *SecurityPolicyRecaptchaOptionsConfig) SecurityPolicyRecaptchaOptionsConfig { + if v != nil { + return *v + } + var ret SecurityPolicyRecaptchaOptionsConfig + return ret + }).(SecurityPolicyRecaptchaOptionsConfigOutput) +} + +// A field to supply a reCAPTCHA site key to be used for all the rules using the redirect action with the type of `GOOGLE_RECAPTCHA` under the security policy. The specified site key needs to be created from the reCAPTCHA API. The user is responsible for the validity of the specified site key. If not specified, a Google-managed site key is used. +func (o SecurityPolicyRecaptchaOptionsConfigPtrOutput) RedirectSiteKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRecaptchaOptionsConfig) *string { + if v == nil { + return nil + } + return &v.RedirectSiteKey + }).(pulumi.StringPtrOutput) +} + +type SecurityPolicyRuleType struct { + // Action to take when `match` matches the request. Valid values: + Action string `pulumi:"action"` + // An optional description of this rule. Max size is 64. + Description *string `pulumi:"description"` + // Additional actions that are performed on headers. Structure is documented below. + HeaderAction *SecurityPolicyRuleHeaderAction `pulumi:"headerAction"` + // A match condition that incoming traffic is evaluated against. + // If it evaluates to true, the corresponding `action` is enforced. Structure is documented below. + Match SecurityPolicyRuleMatch `pulumi:"match"` + // Preconfigured WAF configuration to be applied for the rule. If the rule does not evaluate preconfigured WAF rules, i.e., if `evaluatePreconfiguredWaf()` is not used, this field will have no effect. Structure is documented below. + PreconfiguredWafConfig *SecurityPolicyRulePreconfiguredWafConfig `pulumi:"preconfiguredWafConfig"` + // When set to true, the `action` specified above is not enforced. + // Stackdriver logs for requests that trigger a preview action are annotated as such. + Preview *bool `pulumi:"preview"` + // An unique positive integer indicating the priority of evaluation for a rule. + // Rules are evaluated from highest priority (lowest numerically) to lowest priority (highest numerically) in order. + Priority int `pulumi:"priority"` + // Must be specified if the `action` is `rateBasedBan` or `throttle`. Cannot be specified for other actions. Structure is documented below. + RateLimitOptions *SecurityPolicyRuleRateLimitOptions `pulumi:"rateLimitOptions"` + // Can be specified if the `action` is `redirect`. Cannot be specified for other actions. Structure is documented below. + RedirectOptions *SecurityPolicyRuleRedirectOptions `pulumi:"redirectOptions"` +} + +// SecurityPolicyRuleTypeInput is an input type that accepts SecurityPolicyRuleTypeArgs and SecurityPolicyRuleTypeOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleTypeInput` via: +// +// SecurityPolicyRuleTypeArgs{...} +type SecurityPolicyRuleTypeInput interface { + pulumi.Input + + ToSecurityPolicyRuleTypeOutput() SecurityPolicyRuleTypeOutput + ToSecurityPolicyRuleTypeOutputWithContext(context.Context) SecurityPolicyRuleTypeOutput +} + +type SecurityPolicyRuleTypeArgs struct { + // Action to take when `match` matches the request. Valid values: + Action pulumi.StringInput `pulumi:"action"` + // An optional description of this rule. Max size is 64. + Description pulumi.StringPtrInput `pulumi:"description"` + // Additional actions that are performed on headers. Structure is documented below. + HeaderAction SecurityPolicyRuleHeaderActionPtrInput `pulumi:"headerAction"` + // A match condition that incoming traffic is evaluated against. + // If it evaluates to true, the corresponding `action` is enforced. Structure is documented below. + Match SecurityPolicyRuleMatchInput `pulumi:"match"` + // Preconfigured WAF configuration to be applied for the rule. If the rule does not evaluate preconfigured WAF rules, i.e., if `evaluatePreconfiguredWaf()` is not used, this field will have no effect. Structure is documented below. + PreconfiguredWafConfig SecurityPolicyRulePreconfiguredWafConfigPtrInput `pulumi:"preconfiguredWafConfig"` + // When set to true, the `action` specified above is not enforced. + // Stackdriver logs for requests that trigger a preview action are annotated as such. + Preview pulumi.BoolPtrInput `pulumi:"preview"` + // An unique positive integer indicating the priority of evaluation for a rule. + // Rules are evaluated from highest priority (lowest numerically) to lowest priority (highest numerically) in order. + Priority pulumi.IntInput `pulumi:"priority"` + // Must be specified if the `action` is `rateBasedBan` or `throttle`. Cannot be specified for other actions. Structure is documented below. + RateLimitOptions SecurityPolicyRuleRateLimitOptionsPtrInput `pulumi:"rateLimitOptions"` + // Can be specified if the `action` is `redirect`. Cannot be specified for other actions. Structure is documented below. + RedirectOptions SecurityPolicyRuleRedirectOptionsPtrInput `pulumi:"redirectOptions"` +} + +func (SecurityPolicyRuleTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleType)(nil)).Elem() +} + +func (i SecurityPolicyRuleTypeArgs) ToSecurityPolicyRuleTypeOutput() SecurityPolicyRuleTypeOutput { + return i.ToSecurityPolicyRuleTypeOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRuleTypeArgs) ToSecurityPolicyRuleTypeOutputWithContext(ctx context.Context) SecurityPolicyRuleTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleTypeOutput) +} + +// SecurityPolicyRuleTypeArrayInput is an input type that accepts SecurityPolicyRuleTypeArray and SecurityPolicyRuleTypeArrayOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleTypeArrayInput` via: +// +// SecurityPolicyRuleTypeArray{ SecurityPolicyRuleTypeArgs{...} } +type SecurityPolicyRuleTypeArrayInput interface { + pulumi.Input + + ToSecurityPolicyRuleTypeArrayOutput() SecurityPolicyRuleTypeArrayOutput + ToSecurityPolicyRuleTypeArrayOutputWithContext(context.Context) SecurityPolicyRuleTypeArrayOutput +} + +type SecurityPolicyRuleTypeArray []SecurityPolicyRuleTypeInput + +func (SecurityPolicyRuleTypeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityPolicyRuleType)(nil)).Elem() +} + +func (i SecurityPolicyRuleTypeArray) ToSecurityPolicyRuleTypeArrayOutput() SecurityPolicyRuleTypeArrayOutput { + return i.ToSecurityPolicyRuleTypeArrayOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRuleTypeArray) ToSecurityPolicyRuleTypeArrayOutputWithContext(ctx context.Context) SecurityPolicyRuleTypeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleTypeArrayOutput) +} + +type SecurityPolicyRuleTypeOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRuleTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleType)(nil)).Elem() +} + +func (o SecurityPolicyRuleTypeOutput) ToSecurityPolicyRuleTypeOutput() SecurityPolicyRuleTypeOutput { + return o +} + +func (o SecurityPolicyRuleTypeOutput) ToSecurityPolicyRuleTypeOutputWithContext(ctx context.Context) SecurityPolicyRuleTypeOutput { + return o +} + +// Action to take when `match` matches the request. Valid values: +func (o SecurityPolicyRuleTypeOutput) Action() pulumi.StringOutput { + return o.ApplyT(func(v SecurityPolicyRuleType) string { return v.Action }).(pulumi.StringOutput) +} + +// An optional description of this rule. Max size is 64. +func (o SecurityPolicyRuleTypeOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleType) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// Additional actions that are performed on headers. Structure is documented below. +func (o SecurityPolicyRuleTypeOutput) HeaderAction() SecurityPolicyRuleHeaderActionPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleType) *SecurityPolicyRuleHeaderAction { return v.HeaderAction }).(SecurityPolicyRuleHeaderActionPtrOutput) +} + +// A match condition that incoming traffic is evaluated against. +// If it evaluates to true, the corresponding `action` is enforced. Structure is documented below. +func (o SecurityPolicyRuleTypeOutput) Match() SecurityPolicyRuleMatchOutput { + return o.ApplyT(func(v SecurityPolicyRuleType) SecurityPolicyRuleMatch { return v.Match }).(SecurityPolicyRuleMatchOutput) +} + +// Preconfigured WAF configuration to be applied for the rule. If the rule does not evaluate preconfigured WAF rules, i.e., if `evaluatePreconfiguredWaf()` is not used, this field will have no effect. Structure is documented below. +func (o SecurityPolicyRuleTypeOutput) PreconfiguredWafConfig() SecurityPolicyRulePreconfiguredWafConfigPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleType) *SecurityPolicyRulePreconfiguredWafConfig { + return v.PreconfiguredWafConfig + }).(SecurityPolicyRulePreconfiguredWafConfigPtrOutput) +} + +// When set to true, the `action` specified above is not enforced. +// Stackdriver logs for requests that trigger a preview action are annotated as such. +func (o SecurityPolicyRuleTypeOutput) Preview() pulumi.BoolPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleType) *bool { return v.Preview }).(pulumi.BoolPtrOutput) +} + +// An unique positive integer indicating the priority of evaluation for a rule. +// Rules are evaluated from highest priority (lowest numerically) to lowest priority (highest numerically) in order. +func (o SecurityPolicyRuleTypeOutput) Priority() pulumi.IntOutput { + return o.ApplyT(func(v SecurityPolicyRuleType) int { return v.Priority }).(pulumi.IntOutput) +} + +// Must be specified if the `action` is `rateBasedBan` or `throttle`. Cannot be specified for other actions. Structure is documented below. +func (o SecurityPolicyRuleTypeOutput) RateLimitOptions() SecurityPolicyRuleRateLimitOptionsPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleType) *SecurityPolicyRuleRateLimitOptions { return v.RateLimitOptions }).(SecurityPolicyRuleRateLimitOptionsPtrOutput) +} + +// Can be specified if the `action` is `redirect`. Cannot be specified for other actions. Structure is documented below. +func (o SecurityPolicyRuleTypeOutput) RedirectOptions() SecurityPolicyRuleRedirectOptionsPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleType) *SecurityPolicyRuleRedirectOptions { return v.RedirectOptions }).(SecurityPolicyRuleRedirectOptionsPtrOutput) +} + +type SecurityPolicyRuleTypeArrayOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRuleTypeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityPolicyRuleType)(nil)).Elem() +} + +func (o SecurityPolicyRuleTypeArrayOutput) ToSecurityPolicyRuleTypeArrayOutput() SecurityPolicyRuleTypeArrayOutput { + return o +} + +func (o SecurityPolicyRuleTypeArrayOutput) ToSecurityPolicyRuleTypeArrayOutputWithContext(ctx context.Context) SecurityPolicyRuleTypeArrayOutput { + return o +} + +func (o SecurityPolicyRuleTypeArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRuleTypeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRuleType { + return vs[0].([]SecurityPolicyRuleType)[vs[1].(int)] + }).(SecurityPolicyRuleTypeOutput) +} + +type SecurityPolicyRuleHeaderAction struct { + // The list of request headers to add or overwrite if they're already present. + // Structure is documented below. + RequestHeadersToAdds []SecurityPolicyRuleHeaderActionRequestHeadersToAdd `pulumi:"requestHeadersToAdds"` +} + +// SecurityPolicyRuleHeaderActionInput is an input type that accepts SecurityPolicyRuleHeaderActionArgs and SecurityPolicyRuleHeaderActionOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleHeaderActionInput` via: +// +// SecurityPolicyRuleHeaderActionArgs{...} +type SecurityPolicyRuleHeaderActionInput interface { + pulumi.Input + + ToSecurityPolicyRuleHeaderActionOutput() SecurityPolicyRuleHeaderActionOutput + ToSecurityPolicyRuleHeaderActionOutputWithContext(context.Context) SecurityPolicyRuleHeaderActionOutput +} + +type SecurityPolicyRuleHeaderActionArgs struct { + // The list of request headers to add or overwrite if they're already present. + // Structure is documented below. + RequestHeadersToAdds SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayInput `pulumi:"requestHeadersToAdds"` +} + +func (SecurityPolicyRuleHeaderActionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleHeaderAction)(nil)).Elem() +} + +func (i SecurityPolicyRuleHeaderActionArgs) ToSecurityPolicyRuleHeaderActionOutput() SecurityPolicyRuleHeaderActionOutput { + return i.ToSecurityPolicyRuleHeaderActionOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRuleHeaderActionArgs) ToSecurityPolicyRuleHeaderActionOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleHeaderActionOutput) +} + +func (i SecurityPolicyRuleHeaderActionArgs) ToSecurityPolicyRuleHeaderActionPtrOutput() SecurityPolicyRuleHeaderActionPtrOutput { + return i.ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRuleHeaderActionArgs) ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleHeaderActionOutput).ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(ctx) +} + +// SecurityPolicyRuleHeaderActionPtrInput is an input type that accepts SecurityPolicyRuleHeaderActionArgs, SecurityPolicyRuleHeaderActionPtr and SecurityPolicyRuleHeaderActionPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleHeaderActionPtrInput` via: +// +// SecurityPolicyRuleHeaderActionArgs{...} +// +// or: +// +// nil +type SecurityPolicyRuleHeaderActionPtrInput interface { + pulumi.Input + + ToSecurityPolicyRuleHeaderActionPtrOutput() SecurityPolicyRuleHeaderActionPtrOutput + ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(context.Context) SecurityPolicyRuleHeaderActionPtrOutput +} + +type securityPolicyRuleHeaderActionPtrType SecurityPolicyRuleHeaderActionArgs + +func SecurityPolicyRuleHeaderActionPtr(v *SecurityPolicyRuleHeaderActionArgs) SecurityPolicyRuleHeaderActionPtrInput { + return (*securityPolicyRuleHeaderActionPtrType)(v) +} + +func (*securityPolicyRuleHeaderActionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleHeaderAction)(nil)).Elem() +} + +func (i *securityPolicyRuleHeaderActionPtrType) ToSecurityPolicyRuleHeaderActionPtrOutput() SecurityPolicyRuleHeaderActionPtrOutput { + return i.ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(context.Background()) +} + +func (i *securityPolicyRuleHeaderActionPtrType) ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleHeaderActionPtrOutput) +} + +type SecurityPolicyRuleHeaderActionOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRuleHeaderActionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleHeaderAction)(nil)).Elem() +} + +func (o SecurityPolicyRuleHeaderActionOutput) ToSecurityPolicyRuleHeaderActionOutput() SecurityPolicyRuleHeaderActionOutput { + return o +} + +func (o SecurityPolicyRuleHeaderActionOutput) ToSecurityPolicyRuleHeaderActionOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionOutput { + return o +} + +func (o SecurityPolicyRuleHeaderActionOutput) ToSecurityPolicyRuleHeaderActionPtrOutput() SecurityPolicyRuleHeaderActionPtrOutput { + return o.ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(context.Background()) +} + +func (o SecurityPolicyRuleHeaderActionOutput) ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleHeaderAction) *SecurityPolicyRuleHeaderAction { + return &v + }).(SecurityPolicyRuleHeaderActionPtrOutput) +} + +// The list of request headers to add or overwrite if they're already present. +// Structure is documented below. +func (o SecurityPolicyRuleHeaderActionOutput) RequestHeadersToAdds() SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput { + return o.ApplyT(func(v SecurityPolicyRuleHeaderAction) []SecurityPolicyRuleHeaderActionRequestHeadersToAdd { + return v.RequestHeadersToAdds + }).(SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput) +} + +type SecurityPolicyRuleHeaderActionPtrOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRuleHeaderActionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleHeaderAction)(nil)).Elem() +} + +func (o SecurityPolicyRuleHeaderActionPtrOutput) ToSecurityPolicyRuleHeaderActionPtrOutput() SecurityPolicyRuleHeaderActionPtrOutput { + return o +} + +func (o SecurityPolicyRuleHeaderActionPtrOutput) ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionPtrOutput { + return o +} + +func (o SecurityPolicyRuleHeaderActionPtrOutput) Elem() SecurityPolicyRuleHeaderActionOutput { + return o.ApplyT(func(v *SecurityPolicyRuleHeaderAction) SecurityPolicyRuleHeaderAction { + if v != nil { + return *v + } + var ret SecurityPolicyRuleHeaderAction + return ret + }).(SecurityPolicyRuleHeaderActionOutput) +} + +// The list of request headers to add or overwrite if they're already present. +// Structure is documented below. +func (o SecurityPolicyRuleHeaderActionPtrOutput) RequestHeadersToAdds() SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput { + return o.ApplyT(func(v *SecurityPolicyRuleHeaderAction) []SecurityPolicyRuleHeaderActionRequestHeadersToAdd { + if v == nil { + return nil + } + return v.RequestHeadersToAdds + }).(SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput) +} + +type SecurityPolicyRuleHeaderActionRequestHeadersToAdd struct { + // The name of the header to set. + HeaderName *string `pulumi:"headerName"` + // The value to set the named header to. + HeaderValue *string `pulumi:"headerValue"` +} + +// SecurityPolicyRuleHeaderActionRequestHeadersToAddInput is an input type that accepts SecurityPolicyRuleHeaderActionRequestHeadersToAddArgs and SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleHeaderActionRequestHeadersToAddInput` via: +// +// SecurityPolicyRuleHeaderActionRequestHeadersToAddArgs{...} +type SecurityPolicyRuleHeaderActionRequestHeadersToAddInput interface { + pulumi.Input + + ToSecurityPolicyRuleHeaderActionRequestHeadersToAddOutput() SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput + ToSecurityPolicyRuleHeaderActionRequestHeadersToAddOutputWithContext(context.Context) SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput +} + +type SecurityPolicyRuleHeaderActionRequestHeadersToAddArgs struct { + // The name of the header to set. + HeaderName pulumi.StringPtrInput `pulumi:"headerName"` + // The value to set the named header to. + HeaderValue pulumi.StringPtrInput `pulumi:"headerValue"` +} + +func (SecurityPolicyRuleHeaderActionRequestHeadersToAddArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleHeaderActionRequestHeadersToAdd)(nil)).Elem() +} + +func (i SecurityPolicyRuleHeaderActionRequestHeadersToAddArgs) ToSecurityPolicyRuleHeaderActionRequestHeadersToAddOutput() SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput { + return i.ToSecurityPolicyRuleHeaderActionRequestHeadersToAddOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRuleHeaderActionRequestHeadersToAddArgs) ToSecurityPolicyRuleHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput) +} + +// SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayInput is an input type that accepts SecurityPolicyRuleHeaderActionRequestHeadersToAddArray and SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayInput` via: +// +// SecurityPolicyRuleHeaderActionRequestHeadersToAddArray{ SecurityPolicyRuleHeaderActionRequestHeadersToAddArgs{...} } +type SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayInput interface { + pulumi.Input + + ToSecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput() SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput + ToSecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Context) SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput +} + +type SecurityPolicyRuleHeaderActionRequestHeadersToAddArray []SecurityPolicyRuleHeaderActionRequestHeadersToAddInput + +func (SecurityPolicyRuleHeaderActionRequestHeadersToAddArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityPolicyRuleHeaderActionRequestHeadersToAdd)(nil)).Elem() +} + +func (i SecurityPolicyRuleHeaderActionRequestHeadersToAddArray) ToSecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput() SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput { + return i.ToSecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRuleHeaderActionRequestHeadersToAddArray) ToSecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput) +} + +type SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleHeaderActionRequestHeadersToAdd)(nil)).Elem() +} + +func (o SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput) ToSecurityPolicyRuleHeaderActionRequestHeadersToAddOutput() SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput { + return o +} + +func (o SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput) ToSecurityPolicyRuleHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput { + return o +} + +// The name of the header to set. +func (o SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput) HeaderName() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleHeaderActionRequestHeadersToAdd) *string { return v.HeaderName }).(pulumi.StringPtrOutput) +} + +// The value to set the named header to. +func (o SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput) HeaderValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleHeaderActionRequestHeadersToAdd) *string { return v.HeaderValue }).(pulumi.StringPtrOutput) +} + +type SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityPolicyRuleHeaderActionRequestHeadersToAdd)(nil)).Elem() +} + +func (o SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput) ToSecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput() SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput { + return o +} + +func (o SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput) ToSecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput { + return o +} + +func (o SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRuleHeaderActionRequestHeadersToAdd { + return vs[0].([]SecurityPolicyRuleHeaderActionRequestHeadersToAdd)[vs[1].(int)] + }).(SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput) +} + +type SecurityPolicyRuleMatch struct { + // The configuration options available when specifying versionedExpr. + // This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified. + // Structure is documented below. + Config *SecurityPolicyRuleMatchConfig `pulumi:"config"` + // User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. + // Structure is documented below. + Expr *SecurityPolicyRuleMatchExpr `pulumi:"expr"` + // The configuration options available when specifying a user defined CEVAL expression (i.e., 'expr'). + // Structure is documented below. + ExprOptions *SecurityPolicyRuleMatchExprOptions `pulumi:"exprOptions"` + // Preconfigured versioned expression. If this field is specified, config must also be specified. + // Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config. + // Possible values are: `SRC_IPS_V1`. + VersionedExpr *string `pulumi:"versionedExpr"` +} + +// SecurityPolicyRuleMatchInput is an input type that accepts SecurityPolicyRuleMatchArgs and SecurityPolicyRuleMatchOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleMatchInput` via: +// +// SecurityPolicyRuleMatchArgs{...} +type SecurityPolicyRuleMatchInput interface { + pulumi.Input + + ToSecurityPolicyRuleMatchOutput() SecurityPolicyRuleMatchOutput + ToSecurityPolicyRuleMatchOutputWithContext(context.Context) SecurityPolicyRuleMatchOutput +} + +type SecurityPolicyRuleMatchArgs struct { + // The configuration options available when specifying versionedExpr. + // This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified. + // Structure is documented below. + Config SecurityPolicyRuleMatchConfigPtrInput `pulumi:"config"` + // User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. + // Structure is documented below. + Expr SecurityPolicyRuleMatchExprPtrInput `pulumi:"expr"` + // The configuration options available when specifying a user defined CEVAL expression (i.e., 'expr'). + // Structure is documented below. + ExprOptions SecurityPolicyRuleMatchExprOptionsPtrInput `pulumi:"exprOptions"` + // Preconfigured versioned expression. If this field is specified, config must also be specified. + // Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config. + // Possible values are: `SRC_IPS_V1`. + VersionedExpr pulumi.StringPtrInput `pulumi:"versionedExpr"` +} + +func (SecurityPolicyRuleMatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleMatch)(nil)).Elem() +} + +func (i SecurityPolicyRuleMatchArgs) ToSecurityPolicyRuleMatchOutput() SecurityPolicyRuleMatchOutput { + return i.ToSecurityPolicyRuleMatchOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRuleMatchArgs) ToSecurityPolicyRuleMatchOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchOutput) +} + +func (i SecurityPolicyRuleMatchArgs) ToSecurityPolicyRuleMatchPtrOutput() SecurityPolicyRuleMatchPtrOutput { + return i.ToSecurityPolicyRuleMatchPtrOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRuleMatchArgs) ToSecurityPolicyRuleMatchPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchOutput).ToSecurityPolicyRuleMatchPtrOutputWithContext(ctx) +} + +// SecurityPolicyRuleMatchPtrInput is an input type that accepts SecurityPolicyRuleMatchArgs, SecurityPolicyRuleMatchPtr and SecurityPolicyRuleMatchPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleMatchPtrInput` via: +// +// SecurityPolicyRuleMatchArgs{...} +// +// or: +// +// nil +type SecurityPolicyRuleMatchPtrInput interface { + pulumi.Input + + ToSecurityPolicyRuleMatchPtrOutput() SecurityPolicyRuleMatchPtrOutput + ToSecurityPolicyRuleMatchPtrOutputWithContext(context.Context) SecurityPolicyRuleMatchPtrOutput +} + +type securityPolicyRuleMatchPtrType SecurityPolicyRuleMatchArgs + +func SecurityPolicyRuleMatchPtr(v *SecurityPolicyRuleMatchArgs) SecurityPolicyRuleMatchPtrInput { + return (*securityPolicyRuleMatchPtrType)(v) +} + +func (*securityPolicyRuleMatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleMatch)(nil)).Elem() +} + +func (i *securityPolicyRuleMatchPtrType) ToSecurityPolicyRuleMatchPtrOutput() SecurityPolicyRuleMatchPtrOutput { + return i.ToSecurityPolicyRuleMatchPtrOutputWithContext(context.Background()) +} + +func (i *securityPolicyRuleMatchPtrType) ToSecurityPolicyRuleMatchPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchPtrOutput) +} + +type SecurityPolicyRuleMatchOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRuleMatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleMatch)(nil)).Elem() +} + +func (o SecurityPolicyRuleMatchOutput) ToSecurityPolicyRuleMatchOutput() SecurityPolicyRuleMatchOutput { + return o +} + +func (o SecurityPolicyRuleMatchOutput) ToSecurityPolicyRuleMatchOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchOutput { + return o +} + +func (o SecurityPolicyRuleMatchOutput) ToSecurityPolicyRuleMatchPtrOutput() SecurityPolicyRuleMatchPtrOutput { + return o.ToSecurityPolicyRuleMatchPtrOutputWithContext(context.Background()) +} + +func (o SecurityPolicyRuleMatchOutput) ToSecurityPolicyRuleMatchPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleMatch) *SecurityPolicyRuleMatch { + return &v + }).(SecurityPolicyRuleMatchPtrOutput) +} + +// The configuration options available when specifying versionedExpr. +// This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified. +// Structure is documented below. +func (o SecurityPolicyRuleMatchOutput) Config() SecurityPolicyRuleMatchConfigPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleMatch) *SecurityPolicyRuleMatchConfig { return v.Config }).(SecurityPolicyRuleMatchConfigPtrOutput) +} + +// User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. +// Structure is documented below. +func (o SecurityPolicyRuleMatchOutput) Expr() SecurityPolicyRuleMatchExprPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleMatch) *SecurityPolicyRuleMatchExpr { return v.Expr }).(SecurityPolicyRuleMatchExprPtrOutput) +} + +// The configuration options available when specifying a user defined CEVAL expression (i.e., 'expr'). +// Structure is documented below. +func (o SecurityPolicyRuleMatchOutput) ExprOptions() SecurityPolicyRuleMatchExprOptionsPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleMatch) *SecurityPolicyRuleMatchExprOptions { return v.ExprOptions }).(SecurityPolicyRuleMatchExprOptionsPtrOutput) +} + +// Preconfigured versioned expression. If this field is specified, config must also be specified. +// Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config. +// Possible values are: `SRC_IPS_V1`. +func (o SecurityPolicyRuleMatchOutput) VersionedExpr() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleMatch) *string { return v.VersionedExpr }).(pulumi.StringPtrOutput) +} + +type SecurityPolicyRuleMatchPtrOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRuleMatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleMatch)(nil)).Elem() +} + +func (o SecurityPolicyRuleMatchPtrOutput) ToSecurityPolicyRuleMatchPtrOutput() SecurityPolicyRuleMatchPtrOutput { + return o +} + +func (o SecurityPolicyRuleMatchPtrOutput) ToSecurityPolicyRuleMatchPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchPtrOutput { + return o +} + +func (o SecurityPolicyRuleMatchPtrOutput) Elem() SecurityPolicyRuleMatchOutput { + return o.ApplyT(func(v *SecurityPolicyRuleMatch) SecurityPolicyRuleMatch { + if v != nil { + return *v + } + var ret SecurityPolicyRuleMatch + return ret + }).(SecurityPolicyRuleMatchOutput) +} + +// The configuration options available when specifying versionedExpr. +// This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified. +// Structure is documented below. +func (o SecurityPolicyRuleMatchPtrOutput) Config() SecurityPolicyRuleMatchConfigPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleMatch) *SecurityPolicyRuleMatchConfig { + if v == nil { + return nil + } + return v.Config + }).(SecurityPolicyRuleMatchConfigPtrOutput) +} + +// User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. +// Structure is documented below. +func (o SecurityPolicyRuleMatchPtrOutput) Expr() SecurityPolicyRuleMatchExprPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleMatch) *SecurityPolicyRuleMatchExpr { + if v == nil { + return nil + } + return v.Expr + }).(SecurityPolicyRuleMatchExprPtrOutput) +} + +// The configuration options available when specifying a user defined CEVAL expression (i.e., 'expr'). +// Structure is documented below. +func (o SecurityPolicyRuleMatchPtrOutput) ExprOptions() SecurityPolicyRuleMatchExprOptionsPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleMatch) *SecurityPolicyRuleMatchExprOptions { + if v == nil { + return nil + } + return v.ExprOptions + }).(SecurityPolicyRuleMatchExprOptionsPtrOutput) +} + +// Preconfigured versioned expression. If this field is specified, config must also be specified. +// Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config. +// Possible values are: `SRC_IPS_V1`. +func (o SecurityPolicyRuleMatchPtrOutput) VersionedExpr() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleMatch) *string { + if v == nil { + return nil + } + return v.VersionedExpr + }).(pulumi.StringPtrOutput) +} + +type SecurityPolicyRuleMatchConfig struct { + // CIDR IP address range. Maximum number of srcIpRanges allowed is 10. + SrcIpRanges []string `pulumi:"srcIpRanges"` +} + +// SecurityPolicyRuleMatchConfigInput is an input type that accepts SecurityPolicyRuleMatchConfigArgs and SecurityPolicyRuleMatchConfigOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleMatchConfigInput` via: +// +// SecurityPolicyRuleMatchConfigArgs{...} +type SecurityPolicyRuleMatchConfigInput interface { + pulumi.Input + + ToSecurityPolicyRuleMatchConfigOutput() SecurityPolicyRuleMatchConfigOutput + ToSecurityPolicyRuleMatchConfigOutputWithContext(context.Context) SecurityPolicyRuleMatchConfigOutput +} + +type SecurityPolicyRuleMatchConfigArgs struct { + // CIDR IP address range. Maximum number of srcIpRanges allowed is 10. + SrcIpRanges pulumi.StringArrayInput `pulumi:"srcIpRanges"` +} + +func (SecurityPolicyRuleMatchConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleMatchConfig)(nil)).Elem() +} + +func (i SecurityPolicyRuleMatchConfigArgs) ToSecurityPolicyRuleMatchConfigOutput() SecurityPolicyRuleMatchConfigOutput { + return i.ToSecurityPolicyRuleMatchConfigOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRuleMatchConfigArgs) ToSecurityPolicyRuleMatchConfigOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchConfigOutput) +} + +func (i SecurityPolicyRuleMatchConfigArgs) ToSecurityPolicyRuleMatchConfigPtrOutput() SecurityPolicyRuleMatchConfigPtrOutput { + return i.ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRuleMatchConfigArgs) ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchConfigOutput).ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(ctx) +} + +// SecurityPolicyRuleMatchConfigPtrInput is an input type that accepts SecurityPolicyRuleMatchConfigArgs, SecurityPolicyRuleMatchConfigPtr and SecurityPolicyRuleMatchConfigPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleMatchConfigPtrInput` via: +// +// SecurityPolicyRuleMatchConfigArgs{...} +// +// or: +// +// nil +type SecurityPolicyRuleMatchConfigPtrInput interface { + pulumi.Input + + ToSecurityPolicyRuleMatchConfigPtrOutput() SecurityPolicyRuleMatchConfigPtrOutput + ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(context.Context) SecurityPolicyRuleMatchConfigPtrOutput +} + +type securityPolicyRuleMatchConfigPtrType SecurityPolicyRuleMatchConfigArgs + +func SecurityPolicyRuleMatchConfigPtr(v *SecurityPolicyRuleMatchConfigArgs) SecurityPolicyRuleMatchConfigPtrInput { + return (*securityPolicyRuleMatchConfigPtrType)(v) +} + +func (*securityPolicyRuleMatchConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleMatchConfig)(nil)).Elem() +} + +func (i *securityPolicyRuleMatchConfigPtrType) ToSecurityPolicyRuleMatchConfigPtrOutput() SecurityPolicyRuleMatchConfigPtrOutput { + return i.ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(context.Background()) +} + +func (i *securityPolicyRuleMatchConfigPtrType) ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchConfigPtrOutput) +} + +type SecurityPolicyRuleMatchConfigOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRuleMatchConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleMatchConfig)(nil)).Elem() +} + +func (o SecurityPolicyRuleMatchConfigOutput) ToSecurityPolicyRuleMatchConfigOutput() SecurityPolicyRuleMatchConfigOutput { + return o +} + +func (o SecurityPolicyRuleMatchConfigOutput) ToSecurityPolicyRuleMatchConfigOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchConfigOutput { + return o +} + +func (o SecurityPolicyRuleMatchConfigOutput) ToSecurityPolicyRuleMatchConfigPtrOutput() SecurityPolicyRuleMatchConfigPtrOutput { + return o.ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(context.Background()) +} + +func (o SecurityPolicyRuleMatchConfigOutput) ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleMatchConfig) *SecurityPolicyRuleMatchConfig { + return &v + }).(SecurityPolicyRuleMatchConfigPtrOutput) +} + +// CIDR IP address range. Maximum number of srcIpRanges allowed is 10. +func (o SecurityPolicyRuleMatchConfigOutput) SrcIpRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v SecurityPolicyRuleMatchConfig) []string { return v.SrcIpRanges }).(pulumi.StringArrayOutput) +} + +type SecurityPolicyRuleMatchConfigPtrOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRuleMatchConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleMatchConfig)(nil)).Elem() +} + +func (o SecurityPolicyRuleMatchConfigPtrOutput) ToSecurityPolicyRuleMatchConfigPtrOutput() SecurityPolicyRuleMatchConfigPtrOutput { + return o +} + +func (o SecurityPolicyRuleMatchConfigPtrOutput) ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchConfigPtrOutput { + return o +} + +func (o SecurityPolicyRuleMatchConfigPtrOutput) Elem() SecurityPolicyRuleMatchConfigOutput { + return o.ApplyT(func(v *SecurityPolicyRuleMatchConfig) SecurityPolicyRuleMatchConfig { + if v != nil { + return *v + } + var ret SecurityPolicyRuleMatchConfig + return ret + }).(SecurityPolicyRuleMatchConfigOutput) +} + +// CIDR IP address range. Maximum number of srcIpRanges allowed is 10. +func (o SecurityPolicyRuleMatchConfigPtrOutput) SrcIpRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v *SecurityPolicyRuleMatchConfig) []string { + if v == nil { + return nil + } + return v.SrcIpRanges + }).(pulumi.StringArrayOutput) +} + +type SecurityPolicyRuleMatchExpr struct { + // Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported. + Expression string `pulumi:"expression"` +} + +// SecurityPolicyRuleMatchExprInput is an input type that accepts SecurityPolicyRuleMatchExprArgs and SecurityPolicyRuleMatchExprOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleMatchExprInput` via: +// +// SecurityPolicyRuleMatchExprArgs{...} +type SecurityPolicyRuleMatchExprInput interface { + pulumi.Input + + ToSecurityPolicyRuleMatchExprOutput() SecurityPolicyRuleMatchExprOutput + ToSecurityPolicyRuleMatchExprOutputWithContext(context.Context) SecurityPolicyRuleMatchExprOutput +} + +type SecurityPolicyRuleMatchExprArgs struct { + // Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported. + Expression pulumi.StringInput `pulumi:"expression"` +} + +func (SecurityPolicyRuleMatchExprArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleMatchExpr)(nil)).Elem() +} + +func (i SecurityPolicyRuleMatchExprArgs) ToSecurityPolicyRuleMatchExprOutput() SecurityPolicyRuleMatchExprOutput { + return i.ToSecurityPolicyRuleMatchExprOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRuleMatchExprArgs) ToSecurityPolicyRuleMatchExprOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprOutput) +} + +func (i SecurityPolicyRuleMatchExprArgs) ToSecurityPolicyRuleMatchExprPtrOutput() SecurityPolicyRuleMatchExprPtrOutput { + return i.ToSecurityPolicyRuleMatchExprPtrOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRuleMatchExprArgs) ToSecurityPolicyRuleMatchExprPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprOutput).ToSecurityPolicyRuleMatchExprPtrOutputWithContext(ctx) +} + +// SecurityPolicyRuleMatchExprPtrInput is an input type that accepts SecurityPolicyRuleMatchExprArgs, SecurityPolicyRuleMatchExprPtr and SecurityPolicyRuleMatchExprPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleMatchExprPtrInput` via: +// +// SecurityPolicyRuleMatchExprArgs{...} +// +// or: +// +// nil +type SecurityPolicyRuleMatchExprPtrInput interface { + pulumi.Input + + ToSecurityPolicyRuleMatchExprPtrOutput() SecurityPolicyRuleMatchExprPtrOutput + ToSecurityPolicyRuleMatchExprPtrOutputWithContext(context.Context) SecurityPolicyRuleMatchExprPtrOutput +} + +type securityPolicyRuleMatchExprPtrType SecurityPolicyRuleMatchExprArgs + +func SecurityPolicyRuleMatchExprPtr(v *SecurityPolicyRuleMatchExprArgs) SecurityPolicyRuleMatchExprPtrInput { + return (*securityPolicyRuleMatchExprPtrType)(v) +} + +func (*securityPolicyRuleMatchExprPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleMatchExpr)(nil)).Elem() +} + +func (i *securityPolicyRuleMatchExprPtrType) ToSecurityPolicyRuleMatchExprPtrOutput() SecurityPolicyRuleMatchExprPtrOutput { + return i.ToSecurityPolicyRuleMatchExprPtrOutputWithContext(context.Background()) +} + +func (i *securityPolicyRuleMatchExprPtrType) ToSecurityPolicyRuleMatchExprPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprPtrOutput) +} + +type SecurityPolicyRuleMatchExprOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRuleMatchExprOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleMatchExpr)(nil)).Elem() +} + +func (o SecurityPolicyRuleMatchExprOutput) ToSecurityPolicyRuleMatchExprOutput() SecurityPolicyRuleMatchExprOutput { + return o +} + +func (o SecurityPolicyRuleMatchExprOutput) ToSecurityPolicyRuleMatchExprOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOutput { + return o +} + +func (o SecurityPolicyRuleMatchExprOutput) ToSecurityPolicyRuleMatchExprPtrOutput() SecurityPolicyRuleMatchExprPtrOutput { + return o.ToSecurityPolicyRuleMatchExprPtrOutputWithContext(context.Background()) +} + +func (o SecurityPolicyRuleMatchExprOutput) ToSecurityPolicyRuleMatchExprPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleMatchExpr) *SecurityPolicyRuleMatchExpr { + return &v + }).(SecurityPolicyRuleMatchExprPtrOutput) +} + +// Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported. +func (o SecurityPolicyRuleMatchExprOutput) Expression() pulumi.StringOutput { + return o.ApplyT(func(v SecurityPolicyRuleMatchExpr) string { return v.Expression }).(pulumi.StringOutput) +} + +type SecurityPolicyRuleMatchExprPtrOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRuleMatchExprPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleMatchExpr)(nil)).Elem() +} + +func (o SecurityPolicyRuleMatchExprPtrOutput) ToSecurityPolicyRuleMatchExprPtrOutput() SecurityPolicyRuleMatchExprPtrOutput { + return o +} + +func (o SecurityPolicyRuleMatchExprPtrOutput) ToSecurityPolicyRuleMatchExprPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprPtrOutput { + return o +} + +func (o SecurityPolicyRuleMatchExprPtrOutput) Elem() SecurityPolicyRuleMatchExprOutput { + return o.ApplyT(func(v *SecurityPolicyRuleMatchExpr) SecurityPolicyRuleMatchExpr { + if v != nil { + return *v + } + var ret SecurityPolicyRuleMatchExpr + return ret + }).(SecurityPolicyRuleMatchExprOutput) +} + +// Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported. +func (o SecurityPolicyRuleMatchExprPtrOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleMatchExpr) *string { + if v == nil { + return nil + } + return &v.Expression + }).(pulumi.StringPtrOutput) +} + +type SecurityPolicyRuleMatchExprOptions struct { + // reCAPTCHA configuration options to be applied for the rule. If the rule does not evaluate reCAPTCHA tokens, this field has no effect. + // Structure is documented below. + RecaptchaOptions SecurityPolicyRuleMatchExprOptionsRecaptchaOptions `pulumi:"recaptchaOptions"` +} + +// SecurityPolicyRuleMatchExprOptionsInput is an input type that accepts SecurityPolicyRuleMatchExprOptionsArgs and SecurityPolicyRuleMatchExprOptionsOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleMatchExprOptionsInput` via: +// +// SecurityPolicyRuleMatchExprOptionsArgs{...} +type SecurityPolicyRuleMatchExprOptionsInput interface { + pulumi.Input + + ToSecurityPolicyRuleMatchExprOptionsOutput() SecurityPolicyRuleMatchExprOptionsOutput + ToSecurityPolicyRuleMatchExprOptionsOutputWithContext(context.Context) SecurityPolicyRuleMatchExprOptionsOutput +} + +type SecurityPolicyRuleMatchExprOptionsArgs struct { + // reCAPTCHA configuration options to be applied for the rule. If the rule does not evaluate reCAPTCHA tokens, this field has no effect. + // Structure is documented below. + RecaptchaOptions SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsInput `pulumi:"recaptchaOptions"` +} + +func (SecurityPolicyRuleMatchExprOptionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleMatchExprOptions)(nil)).Elem() +} + +func (i SecurityPolicyRuleMatchExprOptionsArgs) ToSecurityPolicyRuleMatchExprOptionsOutput() SecurityPolicyRuleMatchExprOptionsOutput { + return i.ToSecurityPolicyRuleMatchExprOptionsOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRuleMatchExprOptionsArgs) ToSecurityPolicyRuleMatchExprOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprOptionsOutput) +} + +func (i SecurityPolicyRuleMatchExprOptionsArgs) ToSecurityPolicyRuleMatchExprOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsPtrOutput { + return i.ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRuleMatchExprOptionsArgs) ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprOptionsOutput).ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(ctx) +} + +// SecurityPolicyRuleMatchExprOptionsPtrInput is an input type that accepts SecurityPolicyRuleMatchExprOptionsArgs, SecurityPolicyRuleMatchExprOptionsPtr and SecurityPolicyRuleMatchExprOptionsPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleMatchExprOptionsPtrInput` via: +// +// SecurityPolicyRuleMatchExprOptionsArgs{...} +// +// or: +// +// nil +type SecurityPolicyRuleMatchExprOptionsPtrInput interface { + pulumi.Input + + ToSecurityPolicyRuleMatchExprOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsPtrOutput + ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(context.Context) SecurityPolicyRuleMatchExprOptionsPtrOutput +} + +type securityPolicyRuleMatchExprOptionsPtrType SecurityPolicyRuleMatchExprOptionsArgs + +func SecurityPolicyRuleMatchExprOptionsPtr(v *SecurityPolicyRuleMatchExprOptionsArgs) SecurityPolicyRuleMatchExprOptionsPtrInput { + return (*securityPolicyRuleMatchExprOptionsPtrType)(v) +} + +func (*securityPolicyRuleMatchExprOptionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleMatchExprOptions)(nil)).Elem() +} + +func (i *securityPolicyRuleMatchExprOptionsPtrType) ToSecurityPolicyRuleMatchExprOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsPtrOutput { + return i.ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(context.Background()) +} + +func (i *securityPolicyRuleMatchExprOptionsPtrType) ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprOptionsPtrOutput) +} + +type SecurityPolicyRuleMatchExprOptionsOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRuleMatchExprOptionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleMatchExprOptions)(nil)).Elem() +} + +func (o SecurityPolicyRuleMatchExprOptionsOutput) ToSecurityPolicyRuleMatchExprOptionsOutput() SecurityPolicyRuleMatchExprOptionsOutput { + return o +} + +func (o SecurityPolicyRuleMatchExprOptionsOutput) ToSecurityPolicyRuleMatchExprOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsOutput { + return o +} + +func (o SecurityPolicyRuleMatchExprOptionsOutput) ToSecurityPolicyRuleMatchExprOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsPtrOutput { + return o.ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(context.Background()) +} + +func (o SecurityPolicyRuleMatchExprOptionsOutput) ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleMatchExprOptions) *SecurityPolicyRuleMatchExprOptions { + return &v + }).(SecurityPolicyRuleMatchExprOptionsPtrOutput) +} + +// reCAPTCHA configuration options to be applied for the rule. If the rule does not evaluate reCAPTCHA tokens, this field has no effect. +// Structure is documented below. +func (o SecurityPolicyRuleMatchExprOptionsOutput) RecaptchaOptions() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput { + return o.ApplyT(func(v SecurityPolicyRuleMatchExprOptions) SecurityPolicyRuleMatchExprOptionsRecaptchaOptions { + return v.RecaptchaOptions + }).(SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) +} + +type SecurityPolicyRuleMatchExprOptionsPtrOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRuleMatchExprOptionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleMatchExprOptions)(nil)).Elem() +} + +func (o SecurityPolicyRuleMatchExprOptionsPtrOutput) ToSecurityPolicyRuleMatchExprOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsPtrOutput { + return o +} + +func (o SecurityPolicyRuleMatchExprOptionsPtrOutput) ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsPtrOutput { + return o +} + +func (o SecurityPolicyRuleMatchExprOptionsPtrOutput) Elem() SecurityPolicyRuleMatchExprOptionsOutput { + return o.ApplyT(func(v *SecurityPolicyRuleMatchExprOptions) SecurityPolicyRuleMatchExprOptions { + if v != nil { + return *v + } + var ret SecurityPolicyRuleMatchExprOptions + return ret + }).(SecurityPolicyRuleMatchExprOptionsOutput) +} + +// reCAPTCHA configuration options to be applied for the rule. If the rule does not evaluate reCAPTCHA tokens, this field has no effect. +// Structure is documented below. +func (o SecurityPolicyRuleMatchExprOptionsPtrOutput) RecaptchaOptions() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleMatchExprOptions) *SecurityPolicyRuleMatchExprOptionsRecaptchaOptions { + if v == nil { + return nil + } + return &v.RecaptchaOptions + }).(SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) +} + +type SecurityPolicyRuleMatchExprOptionsRecaptchaOptions struct { + // A list of site keys to be used during the validation of reCAPTCHA action-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created. + ActionTokenSiteKeys []string `pulumi:"actionTokenSiteKeys"` + // A list of site keys to be used during the validation of reCAPTCHA session-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created. + SessionTokenSiteKeys []string `pulumi:"sessionTokenSiteKeys"` +} + +// SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsInput is an input type that accepts SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs and SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsInput` via: +// +// SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs{...} +type SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsInput interface { + pulumi.Input + + ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput + ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutputWithContext(context.Context) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput +} + +type SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs struct { + // A list of site keys to be used during the validation of reCAPTCHA action-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created. + ActionTokenSiteKeys pulumi.StringArrayInput `pulumi:"actionTokenSiteKeys"` + // A list of site keys to be used during the validation of reCAPTCHA session-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created. + SessionTokenSiteKeys pulumi.StringArrayInput `pulumi:"sessionTokenSiteKeys"` +} + +func (SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleMatchExprOptionsRecaptchaOptions)(nil)).Elem() +} + +func (i SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput { + return i.ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) +} + +func (i SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { + return i.ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput).ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(ctx) +} + +// SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrInput is an input type that accepts SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs, SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtr and SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrInput` via: +// +// SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs{...} +// +// or: +// +// nil +type SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrInput interface { + pulumi.Input + + ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput + ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(context.Context) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput +} + +type securityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrType SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs + +func SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtr(v *SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrInput { + return (*securityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrType)(v) +} + +func (*securityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleMatchExprOptionsRecaptchaOptions)(nil)).Elem() +} + +func (i *securityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrType) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { + return i.ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(context.Background()) +} + +func (i *securityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrType) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) +} + +type SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleMatchExprOptionsRecaptchaOptions)(nil)).Elem() +} + +func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput { + return o +} + +func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput { + return o +} + +func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { + return o.ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(context.Background()) +} + +func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleMatchExprOptionsRecaptchaOptions) *SecurityPolicyRuleMatchExprOptionsRecaptchaOptions { + return &v + }).(SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) +} + +// A list of site keys to be used during the validation of reCAPTCHA action-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created. +func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) ActionTokenSiteKeys() pulumi.StringArrayOutput { + return o.ApplyT(func(v SecurityPolicyRuleMatchExprOptionsRecaptchaOptions) []string { return v.ActionTokenSiteKeys }).(pulumi.StringArrayOutput) +} + +// A list of site keys to be used during the validation of reCAPTCHA session-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created. +func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) SessionTokenSiteKeys() pulumi.StringArrayOutput { + return o.ApplyT(func(v SecurityPolicyRuleMatchExprOptionsRecaptchaOptions) []string { return v.SessionTokenSiteKeys }).(pulumi.StringArrayOutput) +} + +type SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleMatchExprOptionsRecaptchaOptions)(nil)).Elem() +} + +func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { + return o +} + +func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { + return o +} + +func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) Elem() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput { + return o.ApplyT(func(v *SecurityPolicyRuleMatchExprOptionsRecaptchaOptions) SecurityPolicyRuleMatchExprOptionsRecaptchaOptions { + if v != nil { + return *v + } + var ret SecurityPolicyRuleMatchExprOptionsRecaptchaOptions + return ret + }).(SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) +} + +// A list of site keys to be used during the validation of reCAPTCHA action-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created. +func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) ActionTokenSiteKeys() pulumi.StringArrayOutput { + return o.ApplyT(func(v *SecurityPolicyRuleMatchExprOptionsRecaptchaOptions) []string { + if v == nil { + return nil + } + return v.ActionTokenSiteKeys + }).(pulumi.StringArrayOutput) +} + +// A list of site keys to be used during the validation of reCAPTCHA session-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created. +func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) SessionTokenSiteKeys() pulumi.StringArrayOutput { + return o.ApplyT(func(v *SecurityPolicyRuleMatchExprOptionsRecaptchaOptions) []string { + if v == nil { + return nil + } + return v.SessionTokenSiteKeys + }).(pulumi.StringArrayOutput) +} + +type SecurityPolicyRulePreconfiguredWafConfig struct { + // An exclusion to apply during preconfigured WAF evaluation. + // Structure is documented below. + Exclusions []SecurityPolicyRulePreconfiguredWafConfigExclusion `pulumi:"exclusions"` +} + +// SecurityPolicyRulePreconfiguredWafConfigInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigArgs and SecurityPolicyRulePreconfiguredWafConfigOutput values. +// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigInput` via: +// +// SecurityPolicyRulePreconfiguredWafConfigArgs{...} +type SecurityPolicyRulePreconfiguredWafConfigInput interface { + pulumi.Input + + ToSecurityPolicyRulePreconfiguredWafConfigOutput() SecurityPolicyRulePreconfiguredWafConfigOutput + ToSecurityPolicyRulePreconfiguredWafConfigOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigOutput +} + +type SecurityPolicyRulePreconfiguredWafConfigArgs struct { + // An exclusion to apply during preconfigured WAF evaluation. + // Structure is documented below. + Exclusions SecurityPolicyRulePreconfiguredWafConfigExclusionArrayInput `pulumi:"exclusions"` +} + +func (SecurityPolicyRulePreconfiguredWafConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfig)(nil)).Elem() +} + +func (i SecurityPolicyRulePreconfiguredWafConfigArgs) ToSecurityPolicyRulePreconfiguredWafConfigOutput() SecurityPolicyRulePreconfiguredWafConfigOutput { + return i.ToSecurityPolicyRulePreconfiguredWafConfigOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRulePreconfiguredWafConfigArgs) ToSecurityPolicyRulePreconfiguredWafConfigOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigOutput) +} + +func (i SecurityPolicyRulePreconfiguredWafConfigArgs) ToSecurityPolicyRulePreconfiguredWafConfigPtrOutput() SecurityPolicyRulePreconfiguredWafConfigPtrOutput { + return i.ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRulePreconfiguredWafConfigArgs) ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigOutput).ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(ctx) +} + +// SecurityPolicyRulePreconfiguredWafConfigPtrInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigArgs, SecurityPolicyRulePreconfiguredWafConfigPtr and SecurityPolicyRulePreconfiguredWafConfigPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigPtrInput` via: +// +// SecurityPolicyRulePreconfiguredWafConfigArgs{...} +// +// or: +// +// nil +type SecurityPolicyRulePreconfiguredWafConfigPtrInput interface { + pulumi.Input + + ToSecurityPolicyRulePreconfiguredWafConfigPtrOutput() SecurityPolicyRulePreconfiguredWafConfigPtrOutput + ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigPtrOutput +} + +type securityPolicyRulePreconfiguredWafConfigPtrType SecurityPolicyRulePreconfiguredWafConfigArgs + +func SecurityPolicyRulePreconfiguredWafConfigPtr(v *SecurityPolicyRulePreconfiguredWafConfigArgs) SecurityPolicyRulePreconfiguredWafConfigPtrInput { + return (*securityPolicyRulePreconfiguredWafConfigPtrType)(v) +} + +func (*securityPolicyRulePreconfiguredWafConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRulePreconfiguredWafConfig)(nil)).Elem() +} + +func (i *securityPolicyRulePreconfiguredWafConfigPtrType) ToSecurityPolicyRulePreconfiguredWafConfigPtrOutput() SecurityPolicyRulePreconfiguredWafConfigPtrOutput { + return i.ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(context.Background()) +} + +func (i *securityPolicyRulePreconfiguredWafConfigPtrType) ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigPtrOutput) +} + +type SecurityPolicyRulePreconfiguredWafConfigOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRulePreconfiguredWafConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfig)(nil)).Elem() +} + +func (o SecurityPolicyRulePreconfiguredWafConfigOutput) ToSecurityPolicyRulePreconfiguredWafConfigOutput() SecurityPolicyRulePreconfiguredWafConfigOutput { + return o +} + +func (o SecurityPolicyRulePreconfiguredWafConfigOutput) ToSecurityPolicyRulePreconfiguredWafConfigOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigOutput { + return o +} + +func (o SecurityPolicyRulePreconfiguredWafConfigOutput) ToSecurityPolicyRulePreconfiguredWafConfigPtrOutput() SecurityPolicyRulePreconfiguredWafConfigPtrOutput { + return o.ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(context.Background()) +} + +func (o SecurityPolicyRulePreconfiguredWafConfigOutput) ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRulePreconfiguredWafConfig) *SecurityPolicyRulePreconfiguredWafConfig { + return &v + }).(SecurityPolicyRulePreconfiguredWafConfigPtrOutput) +} + +// An exclusion to apply during preconfigured WAF evaluation. +// Structure is documented below. +func (o SecurityPolicyRulePreconfiguredWafConfigOutput) Exclusions() SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { + return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfig) []SecurityPolicyRulePreconfiguredWafConfigExclusion { + return v.Exclusions + }).(SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) +} + +type SecurityPolicyRulePreconfiguredWafConfigPtrOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRulePreconfiguredWafConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRulePreconfiguredWafConfig)(nil)).Elem() +} + +func (o SecurityPolicyRulePreconfiguredWafConfigPtrOutput) ToSecurityPolicyRulePreconfiguredWafConfigPtrOutput() SecurityPolicyRulePreconfiguredWafConfigPtrOutput { + return o +} + +func (o SecurityPolicyRulePreconfiguredWafConfigPtrOutput) ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigPtrOutput { + return o +} + +func (o SecurityPolicyRulePreconfiguredWafConfigPtrOutput) Elem() SecurityPolicyRulePreconfiguredWafConfigOutput { + return o.ApplyT(func(v *SecurityPolicyRulePreconfiguredWafConfig) SecurityPolicyRulePreconfiguredWafConfig { + if v != nil { + return *v + } + var ret SecurityPolicyRulePreconfiguredWafConfig + return ret + }).(SecurityPolicyRulePreconfiguredWafConfigOutput) +} + +// An exclusion to apply during preconfigured WAF evaluation. +// Structure is documented below. +func (o SecurityPolicyRulePreconfiguredWafConfigPtrOutput) Exclusions() SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { + return o.ApplyT(func(v *SecurityPolicyRulePreconfiguredWafConfig) []SecurityPolicyRulePreconfiguredWafConfigExclusion { + if v == nil { + return nil + } + return v.Exclusions + }).(SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) +} + +type SecurityPolicyRulePreconfiguredWafConfigExclusion struct { + // Request cookie whose value will be excluded from inspection during preconfigured WAF evaluation. + // Structure is documented below. + RequestCookies []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky `pulumi:"requestCookies"` + // Request header whose value will be excluded from inspection during preconfigured WAF evaluation. + // Structure is documented below. + RequestHeaders []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader `pulumi:"requestHeaders"` + // Request query parameter whose value will be excluded from inspection during preconfigured WAF evaluation. + // Note that the parameter can be in the query string or in the POST body. + // Structure is documented below. + RequestQueryParams []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam `pulumi:"requestQueryParams"` + // Request URI from the request line to be excluded from inspection during preconfigured WAF evaluation. + // When specifying this field, the query or fragment part should be excluded. + // Structure is documented below. + RequestUris []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri `pulumi:"requestUris"` + // A list of target rule IDs under the WAF rule set to apply the preconfigured WAF exclusion. + // If omitted, it refers to all the rule IDs under the WAF rule set. + TargetRuleIds []string `pulumi:"targetRuleIds"` + // Target WAF rule set to apply the preconfigured WAF exclusion. + TargetRuleSet string `pulumi:"targetRuleSet"` +} + +// SecurityPolicyRulePreconfiguredWafConfigExclusionInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionArgs and SecurityPolicyRulePreconfiguredWafConfigExclusionOutput values. +// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionInput` via: +// +// SecurityPolicyRulePreconfiguredWafConfigExclusionArgs{...} +type SecurityPolicyRulePreconfiguredWafConfigExclusionInput interface { + pulumi.Input + + ToSecurityPolicyRulePreconfiguredWafConfigExclusionOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionOutput + ToSecurityPolicyRulePreconfiguredWafConfigExclusionOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionOutput +} + +type SecurityPolicyRulePreconfiguredWafConfigExclusionArgs struct { + // Request cookie whose value will be excluded from inspection during preconfigured WAF evaluation. + // Structure is documented below. + RequestCookies SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayInput `pulumi:"requestCookies"` + // Request header whose value will be excluded from inspection during preconfigured WAF evaluation. + // Structure is documented below. + RequestHeaders SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayInput `pulumi:"requestHeaders"` + // Request query parameter whose value will be excluded from inspection during preconfigured WAF evaluation. + // Note that the parameter can be in the query string or in the POST body. + // Structure is documented below. + RequestQueryParams SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayInput `pulumi:"requestQueryParams"` + // Request URI from the request line to be excluded from inspection during preconfigured WAF evaluation. + // When specifying this field, the query or fragment part should be excluded. + // Structure is documented below. + RequestUris SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayInput `pulumi:"requestUris"` + // A list of target rule IDs under the WAF rule set to apply the preconfigured WAF exclusion. + // If omitted, it refers to all the rule IDs under the WAF rule set. + TargetRuleIds pulumi.StringArrayInput `pulumi:"targetRuleIds"` + // Target WAF rule set to apply the preconfigured WAF exclusion. + TargetRuleSet pulumi.StringInput `pulumi:"targetRuleSet"` +} + +func (SecurityPolicyRulePreconfiguredWafConfigExclusionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusion)(nil)).Elem() +} + +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionOutput { + return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) +} + +// SecurityPolicyRulePreconfiguredWafConfigExclusionArrayInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionArray and SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput values. +// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionArrayInput` via: +// +// SecurityPolicyRulePreconfiguredWafConfigExclusionArray{ SecurityPolicyRulePreconfiguredWafConfigExclusionArgs{...} } +type SecurityPolicyRulePreconfiguredWafConfigExclusionArrayInput interface { + pulumi.Input + + ToSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput + ToSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput +} + +type SecurityPolicyRulePreconfiguredWafConfigExclusionArray []SecurityPolicyRulePreconfiguredWafConfigExclusionInput + +func (SecurityPolicyRulePreconfiguredWafConfigExclusionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusion)(nil)).Elem() +} + +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { + return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) +} + +type SecurityPolicyRulePreconfiguredWafConfigExclusionOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusion)(nil)).Elem() +} + +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionOutput { + return o +} + +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionOutput { + return o +} + +// Request cookie whose value will be excluded from inspection during preconfigured WAF evaluation. +// Structure is documented below. +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) RequestCookies() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput { + return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusion) []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky { + return v.RequestCookies + }).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) +} + +// Request header whose value will be excluded from inspection during preconfigured WAF evaluation. +// Structure is documented below. +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) RequestHeaders() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput { + return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusion) []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader { + return v.RequestHeaders + }).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) +} + +// Request query parameter whose value will be excluded from inspection during preconfigured WAF evaluation. +// Note that the parameter can be in the query string or in the POST body. +// Structure is documented below. +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) RequestQueryParams() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput { + return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusion) []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam { + return v.RequestQueryParams + }).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) +} + +// Request URI from the request line to be excluded from inspection during preconfigured WAF evaluation. +// When specifying this field, the query or fragment part should be excluded. +// Structure is documented below. +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) RequestUris() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput { + return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusion) []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri { + return v.RequestUris + }).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) +} + +// A list of target rule IDs under the WAF rule set to apply the preconfigured WAF exclusion. +// If omitted, it refers to all the rule IDs under the WAF rule set. +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) TargetRuleIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusion) []string { return v.TargetRuleIds }).(pulumi.StringArrayOutput) +} + +// Target WAF rule set to apply the preconfigured WAF exclusion. +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) TargetRuleSet() pulumi.StringOutput { + return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusion) string { return v.TargetRuleSet }).(pulumi.StringOutput) +} + +type SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusion)(nil)).Elem() +} + +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { + return o +} + +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { + return o +} + +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRulePreconfiguredWafConfigExclusionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRulePreconfiguredWafConfigExclusion { + return vs[0].([]SecurityPolicyRulePreconfiguredWafConfigExclusion)[vs[1].(int)] + }).(SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) +} + +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky struct { + // You can specify an exact match or a partial match by using a field operator and a field value. + // Available options: + // EQUALS: The operator matches if the field value equals the specified value. + // STARTS_WITH: The operator matches if the field value starts with the specified value. + // ENDS_WITH: The operator matches if the field value ends with the specified value. + // CONTAINS: The operator matches if the field value contains the specified value. + // EQUALS_ANY: The operator matches if the field value is any value. + Operator string `pulumi:"operator"` + // A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. + // The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. + Value *string `pulumi:"value"` +} + +// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs and SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput values. +// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyInput` via: +// +// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs{...} +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyInput interface { + pulumi.Input + + ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput + ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput +} + +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs struct { + // You can specify an exact match or a partial match by using a field operator and a field value. + // Available options: + // EQUALS: The operator matches if the field value equals the specified value. + // STARTS_WITH: The operator matches if the field value starts with the specified value. + // ENDS_WITH: The operator matches if the field value ends with the specified value. + // CONTAINS: The operator matches if the field value contains the specified value. + // EQUALS_ANY: The operator matches if the field value is any value. + Operator pulumi.StringInput `pulumi:"operator"` + // A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. + // The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. + Value pulumi.StringPtrInput `pulumi:"value"` +} + +func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky)(nil)).Elem() +} + +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput { + return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) +} + +// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray and SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput values. +// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayInput` via: +// +// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray{ SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs{...} } +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayInput interface { + pulumi.Input + + ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput + ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput +} + +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyInput + +func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky)(nil)).Elem() +} + +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput { + return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) +} + +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky)(nil)).Elem() +} + +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput { + return o +} + +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput { + return o +} + +// You can specify an exact match or a partial match by using a field operator and a field value. +// Available options: +// EQUALS: The operator matches if the field value equals the specified value. +// STARTS_WITH: The operator matches if the field value starts with the specified value. +// ENDS_WITH: The operator matches if the field value ends with the specified value. +// CONTAINS: The operator matches if the field value contains the specified value. +// EQUALS_ANY: The operator matches if the field value is any value. +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) Operator() pulumi.StringOutput { + return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky) string { return v.Operator }).(pulumi.StringOutput) +} + +// A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. +// The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky) *string { return v.Value }).(pulumi.StringPtrOutput) +} + +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky)(nil)).Elem() +} + +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput { + return o +} + +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput { + return o +} + +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky { + return vs[0].([]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky)[vs[1].(int)] + }).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) +} + +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader struct { + // You can specify an exact match or a partial match by using a field operator and a field value. + // Available options: + // EQUALS: The operator matches if the field value equals the specified value. + // STARTS_WITH: The operator matches if the field value starts with the specified value. + // ENDS_WITH: The operator matches if the field value ends with the specified value. + // CONTAINS: The operator matches if the field value contains the specified value. + // EQUALS_ANY: The operator matches if the field value is any value. + Operator string `pulumi:"operator"` + // A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. + // The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. + Value *string `pulumi:"value"` +} + +// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs and SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput values. +// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderInput` via: +// +// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs{...} +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderInput interface { + pulumi.Input + + ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput + ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput +} + +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs struct { + // You can specify an exact match or a partial match by using a field operator and a field value. + // Available options: + // EQUALS: The operator matches if the field value equals the specified value. + // STARTS_WITH: The operator matches if the field value starts with the specified value. + // ENDS_WITH: The operator matches if the field value ends with the specified value. + // CONTAINS: The operator matches if the field value contains the specified value. + // EQUALS_ANY: The operator matches if the field value is any value. + Operator pulumi.StringInput `pulumi:"operator"` + // A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. + // The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. + Value pulumi.StringPtrInput `pulumi:"value"` +} + +func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader)(nil)).Elem() +} + +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput { + return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) +} + +// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray and SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput values. +// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayInput` via: +// +// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray{ SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs{...} } +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayInput interface { + pulumi.Input + + ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput + ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput +} + +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderInput + +func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader)(nil)).Elem() +} + +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput { + return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) +} + +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader)(nil)).Elem() +} + +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput { + return o +} + +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput { + return o +} + +// You can specify an exact match or a partial match by using a field operator and a field value. +// Available options: +// EQUALS: The operator matches if the field value equals the specified value. +// STARTS_WITH: The operator matches if the field value starts with the specified value. +// ENDS_WITH: The operator matches if the field value ends with the specified value. +// CONTAINS: The operator matches if the field value contains the specified value. +// EQUALS_ANY: The operator matches if the field value is any value. +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) Operator() pulumi.StringOutput { + return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader) string { return v.Operator }).(pulumi.StringOutput) +} + +// A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. +// The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader) *string { return v.Value }).(pulumi.StringPtrOutput) +} + +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader)(nil)).Elem() +} + +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput { + return o +} + +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput { + return o +} + +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader { + return vs[0].([]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader)[vs[1].(int)] + }).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) +} + +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam struct { + // You can specify an exact match or a partial match by using a field operator and a field value. + // Available options: + // EQUALS: The operator matches if the field value equals the specified value. + // STARTS_WITH: The operator matches if the field value starts with the specified value. + // ENDS_WITH: The operator matches if the field value ends with the specified value. + // CONTAINS: The operator matches if the field value contains the specified value. + // EQUALS_ANY: The operator matches if the field value is any value. + Operator string `pulumi:"operator"` + // A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. + // The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. + Value *string `pulumi:"value"` +} + +// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs and SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput values. +// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamInput` via: +// +// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs{...} +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamInput interface { + pulumi.Input + + ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput + ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput +} + +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs struct { + // You can specify an exact match or a partial match by using a field operator and a field value. + // Available options: + // EQUALS: The operator matches if the field value equals the specified value. + // STARTS_WITH: The operator matches if the field value starts with the specified value. + // ENDS_WITH: The operator matches if the field value ends with the specified value. + // CONTAINS: The operator matches if the field value contains the specified value. + // EQUALS_ANY: The operator matches if the field value is any value. + Operator pulumi.StringInput `pulumi:"operator"` + // A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. + // The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. + Value pulumi.StringPtrInput `pulumi:"value"` +} + +func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam)(nil)).Elem() +} + +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput { + return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) +} + +// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray and SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput values. +// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayInput` via: +// +// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray{ SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs{...} } +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayInput interface { + pulumi.Input + + ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput + ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput +} + +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamInput + +func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam)(nil)).Elem() +} + +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput { + return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) +} + +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam)(nil)).Elem() +} + +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput { + return o +} + +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput { + return o +} + +// You can specify an exact match or a partial match by using a field operator and a field value. +// Available options: +// EQUALS: The operator matches if the field value equals the specified value. +// STARTS_WITH: The operator matches if the field value starts with the specified value. +// ENDS_WITH: The operator matches if the field value ends with the specified value. +// CONTAINS: The operator matches if the field value contains the specified value. +// EQUALS_ANY: The operator matches if the field value is any value. +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) Operator() pulumi.StringOutput { + return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam) string { return v.Operator }).(pulumi.StringOutput) +} + +// A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. +// The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam) *string { return v.Value }).(pulumi.StringPtrOutput) +} + +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam)(nil)).Elem() +} + +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput { + return o +} + +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput { + return o +} + +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam { + return vs[0].([]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam)[vs[1].(int)] + }).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) +} + +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri struct { + // You can specify an exact match or a partial match by using a field operator and a field value. + // Available options: + // EQUALS: The operator matches if the field value equals the specified value. + // STARTS_WITH: The operator matches if the field value starts with the specified value. + // ENDS_WITH: The operator matches if the field value ends with the specified value. + // CONTAINS: The operator matches if the field value contains the specified value. + // EQUALS_ANY: The operator matches if the field value is any value. + Operator string `pulumi:"operator"` + // A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. + // The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. + Value *string `pulumi:"value"` +} + +// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs and SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput values. +// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriInput` via: +// +// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs{...} +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriInput interface { + pulumi.Input + + ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput + ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput +} + +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs struct { + // You can specify an exact match or a partial match by using a field operator and a field value. + // Available options: + // EQUALS: The operator matches if the field value equals the specified value. + // STARTS_WITH: The operator matches if the field value starts with the specified value. + // ENDS_WITH: The operator matches if the field value ends with the specified value. + // CONTAINS: The operator matches if the field value contains the specified value. + // EQUALS_ANY: The operator matches if the field value is any value. + Operator pulumi.StringInput `pulumi:"operator"` + // A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. + // The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. + Value pulumi.StringPtrInput `pulumi:"value"` +} + +func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri)(nil)).Elem() +} + +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput { + return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) +} + +// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray and SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput values. +// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayInput` via: +// +// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray{ SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs{...} } +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayInput interface { + pulumi.Input + + ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput + ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput +} + +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriInput + +func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri)(nil)).Elem() +} + +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput { + return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) +} + +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri)(nil)).Elem() +} + +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput { + return o +} + +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput { + return o +} + +// You can specify an exact match or a partial match by using a field operator and a field value. +// Available options: +// EQUALS: The operator matches if the field value equals the specified value. +// STARTS_WITH: The operator matches if the field value starts with the specified value. +// ENDS_WITH: The operator matches if the field value ends with the specified value. +// CONTAINS: The operator matches if the field value contains the specified value. +// EQUALS_ANY: The operator matches if the field value is any value. +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) Operator() pulumi.StringOutput { + return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri) string { return v.Operator }).(pulumi.StringOutput) +} + +// A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. +// The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri) *string { return v.Value }).(pulumi.StringPtrOutput) +} + +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri)(nil)).Elem() +} + +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput { + return o +} + +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput { + return o +} + +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri { + return vs[0].([]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri)[vs[1].(int)] + }).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) +} + +type SecurityPolicyRuleRateLimitOptions struct { + // Can only be specified if the action for the rule is "rateBasedBan". + // If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold. + BanDurationSec *int `pulumi:"banDurationSec"` + // Can only be specified if the action for the rule is "rateBasedBan". + // If specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'. + // Structure is documented below. + BanThreshold *SecurityPolicyRuleRateLimitOptionsBanThreshold `pulumi:"banThreshold"` + // Action to take for requests that are under the configured rate limit threshold. + // Valid option is "allow" only. + ConformAction *string `pulumi:"conformAction"` + // Determines the key to enforce the rateLimitThreshold on. Possible values are: + // * ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKey" is not configured. + // * IP: The source IP address of the request is the key. Each IP has this limit enforced separately. + // * HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. + // * XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. + // * HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. + // * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. + // * SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. + // * REGION_CODE: The country/region from which the request originates. + // * TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. + // * USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP. + // Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. + EnforceOnKey *string `pulumi:"enforceOnKey"` + // If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced. + // You can specify up to 3 enforceOnKeyConfigs. + // If enforceOnKeyConfigs is specified, enforceOnKey must not be specified. + // Structure is documented below. + EnforceOnKeyConfigs []SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig `pulumi:"enforceOnKeyConfigs"` + // Rate limit key name applicable only for the following key types: + // HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. + // HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. + EnforceOnKeyName *string `pulumi:"enforceOnKeyName"` + // Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint. + // Valid options are deny(STATUS), where valid values for STATUS are 403, 404, 429, and 502. + ExceedAction *string `pulumi:"exceedAction"` + // Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect. This field is only supported in Global Security Policies of type CLOUD_ARMOR. + // Structure is documented below. + ExceedRedirectOptions *SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions `pulumi:"exceedRedirectOptions"` + // Threshold at which to begin ratelimiting. + // Structure is documented below. + RateLimitThreshold *SecurityPolicyRuleRateLimitOptionsRateLimitThreshold `pulumi:"rateLimitThreshold"` +} + +// SecurityPolicyRuleRateLimitOptionsInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsArgs and SecurityPolicyRuleRateLimitOptionsOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsInput` via: +// +// SecurityPolicyRuleRateLimitOptionsArgs{...} +type SecurityPolicyRuleRateLimitOptionsInput interface { + pulumi.Input + + ToSecurityPolicyRuleRateLimitOptionsOutput() SecurityPolicyRuleRateLimitOptionsOutput + ToSecurityPolicyRuleRateLimitOptionsOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsOutput +} + +type SecurityPolicyRuleRateLimitOptionsArgs struct { + // Can only be specified if the action for the rule is "rateBasedBan". + // If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold. + BanDurationSec pulumi.IntPtrInput `pulumi:"banDurationSec"` + // Can only be specified if the action for the rule is "rateBasedBan". + // If specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'. + // Structure is documented below. + BanThreshold SecurityPolicyRuleRateLimitOptionsBanThresholdPtrInput `pulumi:"banThreshold"` + // Action to take for requests that are under the configured rate limit threshold. + // Valid option is "allow" only. + ConformAction pulumi.StringPtrInput `pulumi:"conformAction"` + // Determines the key to enforce the rateLimitThreshold on. Possible values are: + // * ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKey" is not configured. + // * IP: The source IP address of the request is the key. Each IP has this limit enforced separately. + // * HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. + // * XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. + // * HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. + // * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. + // * SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. + // * REGION_CODE: The country/region from which the request originates. + // * TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. + // * USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP. + // Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. + EnforceOnKey pulumi.StringPtrInput `pulumi:"enforceOnKey"` + // If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced. + // You can specify up to 3 enforceOnKeyConfigs. + // If enforceOnKeyConfigs is specified, enforceOnKey must not be specified. + // Structure is documented below. + EnforceOnKeyConfigs SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayInput `pulumi:"enforceOnKeyConfigs"` + // Rate limit key name applicable only for the following key types: + // HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. + // HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. + EnforceOnKeyName pulumi.StringPtrInput `pulumi:"enforceOnKeyName"` + // Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint. + // Valid options are deny(STATUS), where valid values for STATUS are 403, 404, 429, and 502. + ExceedAction pulumi.StringPtrInput `pulumi:"exceedAction"` + // Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect. This field is only supported in Global Security Policies of type CLOUD_ARMOR. + // Structure is documented below. + ExceedRedirectOptions SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrInput `pulumi:"exceedRedirectOptions"` + // Threshold at which to begin ratelimiting. + // Structure is documented below. + RateLimitThreshold SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrInput `pulumi:"rateLimitThreshold"` +} + +func (SecurityPolicyRuleRateLimitOptionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptions)(nil)).Elem() +} + +func (i SecurityPolicyRuleRateLimitOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsOutput() SecurityPolicyRuleRateLimitOptionsOutput { + return i.ToSecurityPolicyRuleRateLimitOptionsOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRuleRateLimitOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsOutput) +} + +func (i SecurityPolicyRuleRateLimitOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsPtrOutput { + return i.ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRuleRateLimitOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsOutput).ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx) +} + +// SecurityPolicyRuleRateLimitOptionsPtrInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsArgs, SecurityPolicyRuleRateLimitOptionsPtr and SecurityPolicyRuleRateLimitOptionsPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsPtrInput` via: +// +// SecurityPolicyRuleRateLimitOptionsArgs{...} +// +// or: +// +// nil +type SecurityPolicyRuleRateLimitOptionsPtrInput interface { + pulumi.Input + + ToSecurityPolicyRuleRateLimitOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsPtrOutput + ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsPtrOutput +} + +type securityPolicyRuleRateLimitOptionsPtrType SecurityPolicyRuleRateLimitOptionsArgs + +func SecurityPolicyRuleRateLimitOptionsPtr(v *SecurityPolicyRuleRateLimitOptionsArgs) SecurityPolicyRuleRateLimitOptionsPtrInput { + return (*securityPolicyRuleRateLimitOptionsPtrType)(v) +} + +func (*securityPolicyRuleRateLimitOptionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptions)(nil)).Elem() +} + +func (i *securityPolicyRuleRateLimitOptionsPtrType) ToSecurityPolicyRuleRateLimitOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsPtrOutput { + return i.ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(context.Background()) +} + +func (i *securityPolicyRuleRateLimitOptionsPtrType) ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsPtrOutput) +} + +type SecurityPolicyRuleRateLimitOptionsOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRuleRateLimitOptionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptions)(nil)).Elem() +} + +func (o SecurityPolicyRuleRateLimitOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsOutput() SecurityPolicyRuleRateLimitOptionsOutput { + return o +} + +func (o SecurityPolicyRuleRateLimitOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsOutput { + return o +} + +func (o SecurityPolicyRuleRateLimitOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsPtrOutput { + return o.ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(context.Background()) +} + +func (o SecurityPolicyRuleRateLimitOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptions { + return &v + }).(SecurityPolicyRuleRateLimitOptionsPtrOutput) +} + +// Can only be specified if the action for the rule is "rateBasedBan". +// If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold. +func (o SecurityPolicyRuleRateLimitOptionsOutput) BanDurationSec() pulumi.IntPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *int { return v.BanDurationSec }).(pulumi.IntPtrOutput) +} + +// Can only be specified if the action for the rule is "rateBasedBan". +// If specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'. +// Structure is documented below. +func (o SecurityPolicyRuleRateLimitOptionsOutput) BanThreshold() SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptionsBanThreshold { + return v.BanThreshold + }).(SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) +} + +// Action to take for requests that are under the configured rate limit threshold. +// Valid option is "allow" only. +func (o SecurityPolicyRuleRateLimitOptionsOutput) ConformAction() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *string { return v.ConformAction }).(pulumi.StringPtrOutput) +} + +// Determines the key to enforce the rateLimitThreshold on. Possible values are: +// - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKey" is not configured. +// - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. +// - HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. +// - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. +// - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. +// - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. +// - SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. +// - REGION_CODE: The country/region from which the request originates. +// - TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. +// - USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP. +// Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. +func (o SecurityPolicyRuleRateLimitOptionsOutput) EnforceOnKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *string { return v.EnforceOnKey }).(pulumi.StringPtrOutput) +} + +// If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced. +// You can specify up to 3 enforceOnKeyConfigs. +// If enforceOnKeyConfigs is specified, enforceOnKey must not be specified. +// Structure is documented below. +func (o SecurityPolicyRuleRateLimitOptionsOutput) EnforceOnKeyConfigs() SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { + return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) []SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig { + return v.EnforceOnKeyConfigs + }).(SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) +} + +// Rate limit key name applicable only for the following key types: +// HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. +// HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. +func (o SecurityPolicyRuleRateLimitOptionsOutput) EnforceOnKeyName() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *string { return v.EnforceOnKeyName }).(pulumi.StringPtrOutput) +} + +// Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint. +// Valid options are deny(STATUS), where valid values for STATUS are 403, 404, 429, and 502. +func (o SecurityPolicyRuleRateLimitOptionsOutput) ExceedAction() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *string { return v.ExceedAction }).(pulumi.StringPtrOutput) +} + +// Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect. This field is only supported in Global Security Policies of type CLOUD_ARMOR. +// Structure is documented below. +func (o SecurityPolicyRuleRateLimitOptionsOutput) ExceedRedirectOptions() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions { + return v.ExceedRedirectOptions + }).(SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) +} + +// Threshold at which to begin ratelimiting. +// Structure is documented below. +func (o SecurityPolicyRuleRateLimitOptionsOutput) RateLimitThreshold() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptionsRateLimitThreshold { + return v.RateLimitThreshold + }).(SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) +} + +type SecurityPolicyRuleRateLimitOptionsPtrOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRuleRateLimitOptionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptions)(nil)).Elem() +} + +func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) ToSecurityPolicyRuleRateLimitOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsPtrOutput { + return o +} + +func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsPtrOutput { + return o +} + +func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) Elem() SecurityPolicyRuleRateLimitOptionsOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) SecurityPolicyRuleRateLimitOptions { + if v != nil { + return *v + } + var ret SecurityPolicyRuleRateLimitOptions + return ret + }).(SecurityPolicyRuleRateLimitOptionsOutput) +} + +// Can only be specified if the action for the rule is "rateBasedBan". +// If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold. +func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) BanDurationSec() pulumi.IntPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *int { + if v == nil { + return nil + } + return v.BanDurationSec + }).(pulumi.IntPtrOutput) +} + +// Can only be specified if the action for the rule is "rateBasedBan". +// If specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'. +// Structure is documented below. +func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) BanThreshold() SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptionsBanThreshold { + if v == nil { + return nil + } + return v.BanThreshold + }).(SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) +} + +// Action to take for requests that are under the configured rate limit threshold. +// Valid option is "allow" only. +func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) ConformAction() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *string { + if v == nil { + return nil + } + return v.ConformAction + }).(pulumi.StringPtrOutput) +} + +// Determines the key to enforce the rateLimitThreshold on. Possible values are: +// - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKey" is not configured. +// - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. +// - HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. +// - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. +// - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. +// - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. +// - SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. +// - REGION_CODE: The country/region from which the request originates. +// - TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. +// - USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP. +// Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. +func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) EnforceOnKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *string { + if v == nil { + return nil + } + return v.EnforceOnKey + }).(pulumi.StringPtrOutput) +} + +// If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced. +// You can specify up to 3 enforceOnKeyConfigs. +// If enforceOnKeyConfigs is specified, enforceOnKey must not be specified. +// Structure is documented below. +func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) EnforceOnKeyConfigs() SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) []SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig { + if v == nil { + return nil + } + return v.EnforceOnKeyConfigs + }).(SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) +} + +// Rate limit key name applicable only for the following key types: +// HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. +// HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. +func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) EnforceOnKeyName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *string { + if v == nil { + return nil + } + return v.EnforceOnKeyName + }).(pulumi.StringPtrOutput) +} + +// Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint. +// Valid options are deny(STATUS), where valid values for STATUS are 403, 404, 429, and 502. +func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) ExceedAction() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *string { + if v == nil { + return nil + } + return v.ExceedAction + }).(pulumi.StringPtrOutput) +} + +// Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect. This field is only supported in Global Security Policies of type CLOUD_ARMOR. +// Structure is documented below. +func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) ExceedRedirectOptions() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions { + if v == nil { + return nil + } + return v.ExceedRedirectOptions + }).(SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) +} + +// Threshold at which to begin ratelimiting. +// Structure is documented below. +func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) RateLimitThreshold() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptionsRateLimitThreshold { + if v == nil { + return nil + } + return v.RateLimitThreshold + }).(SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) +} + +type SecurityPolicyRuleRateLimitOptionsBanThreshold struct { + // Number of HTTP(S) requests for calculating the threshold. + Count *int `pulumi:"count"` + // Interval over which the threshold is computed. + IntervalSec *int `pulumi:"intervalSec"` +} + +// SecurityPolicyRuleRateLimitOptionsBanThresholdInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsBanThresholdArgs and SecurityPolicyRuleRateLimitOptionsBanThresholdOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsBanThresholdInput` via: +// +// SecurityPolicyRuleRateLimitOptionsBanThresholdArgs{...} +type SecurityPolicyRuleRateLimitOptionsBanThresholdInput interface { + pulumi.Input + + ToSecurityPolicyRuleRateLimitOptionsBanThresholdOutput() SecurityPolicyRuleRateLimitOptionsBanThresholdOutput + ToSecurityPolicyRuleRateLimitOptionsBanThresholdOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsBanThresholdOutput +} + +type SecurityPolicyRuleRateLimitOptionsBanThresholdArgs struct { + // Number of HTTP(S) requests for calculating the threshold. + Count pulumi.IntPtrInput `pulumi:"count"` + // Interval over which the threshold is computed. + IntervalSec pulumi.IntPtrInput `pulumi:"intervalSec"` +} + +func (SecurityPolicyRuleRateLimitOptionsBanThresholdArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsBanThreshold)(nil)).Elem() +} + +func (i SecurityPolicyRuleRateLimitOptionsBanThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsBanThresholdOutput() SecurityPolicyRuleRateLimitOptionsBanThresholdOutput { + return i.ToSecurityPolicyRuleRateLimitOptionsBanThresholdOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRuleRateLimitOptionsBanThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsBanThresholdOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsBanThresholdOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) +} + +func (i SecurityPolicyRuleRateLimitOptionsBanThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { + return i.ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRuleRateLimitOptionsBanThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsBanThresholdOutput).ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(ctx) +} + +// SecurityPolicyRuleRateLimitOptionsBanThresholdPtrInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsBanThresholdArgs, SecurityPolicyRuleRateLimitOptionsBanThresholdPtr and SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsBanThresholdPtrInput` via: +// +// SecurityPolicyRuleRateLimitOptionsBanThresholdArgs{...} +// +// or: +// +// nil +type SecurityPolicyRuleRateLimitOptionsBanThresholdPtrInput interface { + pulumi.Input + + ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput + ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput +} + +type securityPolicyRuleRateLimitOptionsBanThresholdPtrType SecurityPolicyRuleRateLimitOptionsBanThresholdArgs + +func SecurityPolicyRuleRateLimitOptionsBanThresholdPtr(v *SecurityPolicyRuleRateLimitOptionsBanThresholdArgs) SecurityPolicyRuleRateLimitOptionsBanThresholdPtrInput { + return (*securityPolicyRuleRateLimitOptionsBanThresholdPtrType)(v) +} + +func (*securityPolicyRuleRateLimitOptionsBanThresholdPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptionsBanThreshold)(nil)).Elem() +} + +func (i *securityPolicyRuleRateLimitOptionsBanThresholdPtrType) ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { + return i.ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(context.Background()) +} + +func (i *securityPolicyRuleRateLimitOptionsBanThresholdPtrType) ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) +} + +type SecurityPolicyRuleRateLimitOptionsBanThresholdOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsBanThreshold)(nil)).Elem() +} + +func (o SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsBanThresholdOutput() SecurityPolicyRuleRateLimitOptionsBanThresholdOutput { + return o +} + +func (o SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsBanThresholdOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsBanThresholdOutput { + return o +} + +func (o SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { + return o.ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(context.Background()) +} + +func (o SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleRateLimitOptionsBanThreshold) *SecurityPolicyRuleRateLimitOptionsBanThreshold { + return &v + }).(SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) +} + +// Number of HTTP(S) requests for calculating the threshold. +func (o SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) Count() pulumi.IntPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsBanThreshold) *int { return v.Count }).(pulumi.IntPtrOutput) +} + +// Interval over which the threshold is computed. +func (o SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) IntervalSec() pulumi.IntPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsBanThreshold) *int { return v.IntervalSec }).(pulumi.IntPtrOutput) +} + +type SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptionsBanThreshold)(nil)).Elem() +} + +func (o SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { + return o +} + +func (o SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { + return o +} + +func (o SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) Elem() SecurityPolicyRuleRateLimitOptionsBanThresholdOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsBanThreshold) SecurityPolicyRuleRateLimitOptionsBanThreshold { + if v != nil { + return *v + } + var ret SecurityPolicyRuleRateLimitOptionsBanThreshold + return ret + }).(SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) +} + +// Number of HTTP(S) requests for calculating the threshold. +func (o SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) Count() pulumi.IntPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsBanThreshold) *int { + if v == nil { + return nil + } + return v.Count + }).(pulumi.IntPtrOutput) +} + +// Interval over which the threshold is computed. +func (o SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) IntervalSec() pulumi.IntPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsBanThreshold) *int { + if v == nil { + return nil + } + return v.IntervalSec + }).(pulumi.IntPtrOutput) +} + +type SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig struct { + // Rate limit key name applicable only for the following key types: + // HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. + // HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. + EnforceOnKeyName *string `pulumi:"enforceOnKeyName"` + // Determines the key to enforce the rateLimitThreshold on. Possible values are: + // * ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKeyConfigs" is not configured. + // * IP: The source IP address of the request is the key. Each IP has this limit enforced separately. + // * HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. + // * XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. + // * HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. + // * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. + // * SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. + // * REGION_CODE: The country/region from which the request originates. + // * TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. + // * USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP. + // Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. + EnforceOnKeyType *string `pulumi:"enforceOnKeyType"` +} + +// SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs and SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigInput` via: +// +// SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs{...} +type SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigInput interface { + pulumi.Input + + ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput() SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput + ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput +} + +type SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs struct { + // Rate limit key name applicable only for the following key types: + // HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. + // HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. + EnforceOnKeyName pulumi.StringPtrInput `pulumi:"enforceOnKeyName"` + // Determines the key to enforce the rateLimitThreshold on. Possible values are: + // * ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKeyConfigs" is not configured. + // * IP: The source IP address of the request is the key. Each IP has this limit enforced separately. + // * HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. + // * XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. + // * HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. + // * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. + // * SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. + // * REGION_CODE: The country/region from which the request originates. + // * TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. + // * USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP. + // Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. + EnforceOnKeyType pulumi.StringPtrInput `pulumi:"enforceOnKeyType"` +} + +func (SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig)(nil)).Elem() +} + +func (i SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs) ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput() SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput { + return i.ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs) ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) +} + +// SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray and SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayInput` via: +// +// SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray{ SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs{...} } +type SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayInput interface { + pulumi.Input + + ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput() SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput + ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput +} + +type SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray []SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigInput + +func (SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig)(nil)).Elem() +} + +func (i SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray) ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput() SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { + return i.ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray) ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) +} + +type SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig)(nil)).Elem() +} + +func (o SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput() SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput { + return o +} + +func (o SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput { + return o +} + +// Rate limit key name applicable only for the following key types: +// HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. +// HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. +func (o SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) EnforceOnKeyName() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig) *string { return v.EnforceOnKeyName }).(pulumi.StringPtrOutput) +} + +// Determines the key to enforce the rateLimitThreshold on. Possible values are: +// - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKeyConfigs" is not configured. +// - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. +// - HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. +// - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. +// - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. +// - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. +// - SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. +// - REGION_CODE: The country/region from which the request originates. +// - TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. +// - USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP. +// Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. +func (o SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) EnforceOnKeyType() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig) *string { return v.EnforceOnKeyType }).(pulumi.StringPtrOutput) +} + +type SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig)(nil)).Elem() +} + +func (o SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput() SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { + return o +} + +func (o SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { + return o +} + +func (o SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig { + return vs[0].([]SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig)[vs[1].(int)] + }).(SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) +} + +type SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions struct { + // Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. + Target *string `pulumi:"target"` + // Type of the redirect action. + Type *string `pulumi:"type"` +} + +// SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs and SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsInput` via: +// +// SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs{...} +type SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsInput interface { + pulumi.Input + + ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput + ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput +} + +type SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs struct { + // Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. + Target pulumi.StringPtrInput `pulumi:"target"` + // Type of the redirect action. + Type pulumi.StringPtrInput `pulumi:"type"` +} + +func (SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions)(nil)).Elem() +} + +func (i SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput { + return i.ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) +} + +func (i SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { + return i.ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput).ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(ctx) +} + +// SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs, SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtr and SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrInput` via: +// +// SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs{...} +// +// or: +// +// nil +type SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrInput interface { + pulumi.Input + + ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput + ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput +} + +type securityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrType SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs + +func SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtr(v *SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrInput { + return (*securityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrType)(v) +} + +func (*securityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions)(nil)).Elem() +} + +func (i *securityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrType) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { + return i.ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(context.Background()) +} + +func (i *securityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrType) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) +} + +type SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions)(nil)).Elem() +} + +func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput { + return o +} + +func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput { + return o +} + +func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { + return o.ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(context.Background()) +} + +func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions) *SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions { + return &v + }).(SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) +} + +// Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. +func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) Target() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions) *string { return v.Target }).(pulumi.StringPtrOutput) +} + +// Type of the redirect action. +func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions) *string { return v.Type }).(pulumi.StringPtrOutput) +} + +type SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions)(nil)).Elem() +} + +func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { + return o +} + +func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { + return o +} + +func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) Elem() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions { + if v != nil { + return *v + } + var ret SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions + return ret + }).(SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) +} + +// Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. +func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) Target() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions) *string { + if v == nil { + return nil + } + return v.Target + }).(pulumi.StringPtrOutput) +} + +// Type of the redirect action. +func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions) *string { + if v == nil { + return nil + } + return v.Type + }).(pulumi.StringPtrOutput) +} + +type SecurityPolicyRuleRateLimitOptionsRateLimitThreshold struct { + // Number of HTTP(S) requests for calculating the threshold. + Count *int `pulumi:"count"` + // Interval over which the threshold is computed. + IntervalSec *int `pulumi:"intervalSec"` +} + +// SecurityPolicyRuleRateLimitOptionsRateLimitThresholdInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs and SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsRateLimitThresholdInput` via: +// +// SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs{...} +type SecurityPolicyRuleRateLimitOptionsRateLimitThresholdInput interface { + pulumi.Input + + ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput + ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput +} + +type SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs struct { + // Number of HTTP(S) requests for calculating the threshold. + Count pulumi.IntPtrInput `pulumi:"count"` + // Interval over which the threshold is computed. + IntervalSec pulumi.IntPtrInput `pulumi:"intervalSec"` +} + +func (SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsRateLimitThreshold)(nil)).Elem() +} + +func (i SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput { + return i.ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) +} + +func (i SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { + return i.ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput).ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(ctx) +} + +// SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs, SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtr and SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrInput` via: +// +// SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs{...} +// +// or: +// +// nil +type SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrInput interface { + pulumi.Input + + ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput + ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput +} + +type securityPolicyRuleRateLimitOptionsRateLimitThresholdPtrType SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs + +func SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtr(v *SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrInput { + return (*securityPolicyRuleRateLimitOptionsRateLimitThresholdPtrType)(v) +} + +func (*securityPolicyRuleRateLimitOptionsRateLimitThresholdPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptionsRateLimitThreshold)(nil)).Elem() +} + +func (i *securityPolicyRuleRateLimitOptionsRateLimitThresholdPtrType) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { + return i.ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(context.Background()) +} + +func (i *securityPolicyRuleRateLimitOptionsRateLimitThresholdPtrType) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) +} + +type SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsRateLimitThreshold)(nil)).Elem() +} + +func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput { + return o +} + +func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput { + return o +} + +func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { + return o.ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(context.Background()) +} + +func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleRateLimitOptionsRateLimitThreshold) *SecurityPolicyRuleRateLimitOptionsRateLimitThreshold { + return &v + }).(SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) +} + +// Number of HTTP(S) requests for calculating the threshold. +func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) Count() pulumi.IntPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsRateLimitThreshold) *int { return v.Count }).(pulumi.IntPtrOutput) +} + +// Interval over which the threshold is computed. +func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) IntervalSec() pulumi.IntPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsRateLimitThreshold) *int { return v.IntervalSec }).(pulumi.IntPtrOutput) +} + +type SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptionsRateLimitThreshold)(nil)).Elem() +} + +func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { + return o +} + +func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { + return o +} + +func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) Elem() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsRateLimitThreshold) SecurityPolicyRuleRateLimitOptionsRateLimitThreshold { + if v != nil { + return *v + } + var ret SecurityPolicyRuleRateLimitOptionsRateLimitThreshold + return ret + }).(SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) +} + +// Number of HTTP(S) requests for calculating the threshold. +func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) Count() pulumi.IntPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsRateLimitThreshold) *int { + if v == nil { + return nil + } + return v.Count + }).(pulumi.IntPtrOutput) +} + +// Interval over which the threshold is computed. +func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) IntervalSec() pulumi.IntPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsRateLimitThreshold) *int { + if v == nil { + return nil + } + return v.IntervalSec + }).(pulumi.IntPtrOutput) +} + +type SecurityPolicyRuleRedirectOptions struct { + // Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. + Target *string `pulumi:"target"` + // Type of the redirect action. + Type *string `pulumi:"type"` +} + +// SecurityPolicyRuleRedirectOptionsInput is an input type that accepts SecurityPolicyRuleRedirectOptionsArgs and SecurityPolicyRuleRedirectOptionsOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleRedirectOptionsInput` via: +// +// SecurityPolicyRuleRedirectOptionsArgs{...} +type SecurityPolicyRuleRedirectOptionsInput interface { + pulumi.Input + + ToSecurityPolicyRuleRedirectOptionsOutput() SecurityPolicyRuleRedirectOptionsOutput + ToSecurityPolicyRuleRedirectOptionsOutputWithContext(context.Context) SecurityPolicyRuleRedirectOptionsOutput +} + +type SecurityPolicyRuleRedirectOptionsArgs struct { + // Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. + Target pulumi.StringPtrInput `pulumi:"target"` + // Type of the redirect action. + Type pulumi.StringPtrInput `pulumi:"type"` +} + +func (SecurityPolicyRuleRedirectOptionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleRedirectOptions)(nil)).Elem() +} + +func (i SecurityPolicyRuleRedirectOptionsArgs) ToSecurityPolicyRuleRedirectOptionsOutput() SecurityPolicyRuleRedirectOptionsOutput { + return i.ToSecurityPolicyRuleRedirectOptionsOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRuleRedirectOptionsArgs) ToSecurityPolicyRuleRedirectOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleRedirectOptionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRedirectOptionsOutput) +} + +func (i SecurityPolicyRuleRedirectOptionsArgs) ToSecurityPolicyRuleRedirectOptionsPtrOutput() SecurityPolicyRuleRedirectOptionsPtrOutput { + return i.ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRuleRedirectOptionsArgs) ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRedirectOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRedirectOptionsOutput).ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(ctx) +} + +// SecurityPolicyRuleRedirectOptionsPtrInput is an input type that accepts SecurityPolicyRuleRedirectOptionsArgs, SecurityPolicyRuleRedirectOptionsPtr and SecurityPolicyRuleRedirectOptionsPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleRedirectOptionsPtrInput` via: +// +// SecurityPolicyRuleRedirectOptionsArgs{...} +// +// or: +// +// nil +type SecurityPolicyRuleRedirectOptionsPtrInput interface { + pulumi.Input + + ToSecurityPolicyRuleRedirectOptionsPtrOutput() SecurityPolicyRuleRedirectOptionsPtrOutput + ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(context.Context) SecurityPolicyRuleRedirectOptionsPtrOutput +} + +type securityPolicyRuleRedirectOptionsPtrType SecurityPolicyRuleRedirectOptionsArgs + +func SecurityPolicyRuleRedirectOptionsPtr(v *SecurityPolicyRuleRedirectOptionsArgs) SecurityPolicyRuleRedirectOptionsPtrInput { + return (*securityPolicyRuleRedirectOptionsPtrType)(v) +} + +func (*securityPolicyRuleRedirectOptionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleRedirectOptions)(nil)).Elem() +} + +func (i *securityPolicyRuleRedirectOptionsPtrType) ToSecurityPolicyRuleRedirectOptionsPtrOutput() SecurityPolicyRuleRedirectOptionsPtrOutput { + return i.ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(context.Background()) +} + +func (i *securityPolicyRuleRedirectOptionsPtrType) ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRedirectOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRedirectOptionsPtrOutput) +} + +type SecurityPolicyRuleRedirectOptionsOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRuleRedirectOptionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleRedirectOptions)(nil)).Elem() +} + +func (o SecurityPolicyRuleRedirectOptionsOutput) ToSecurityPolicyRuleRedirectOptionsOutput() SecurityPolicyRuleRedirectOptionsOutput { + return o +} + +func (o SecurityPolicyRuleRedirectOptionsOutput) ToSecurityPolicyRuleRedirectOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleRedirectOptionsOutput { + return o +} + +func (o SecurityPolicyRuleRedirectOptionsOutput) ToSecurityPolicyRuleRedirectOptionsPtrOutput() SecurityPolicyRuleRedirectOptionsPtrOutput { + return o.ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(context.Background()) +} + +func (o SecurityPolicyRuleRedirectOptionsOutput) ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRedirectOptionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleRedirectOptions) *SecurityPolicyRuleRedirectOptions { + return &v + }).(SecurityPolicyRuleRedirectOptionsPtrOutput) +} + +// Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. +func (o SecurityPolicyRuleRedirectOptionsOutput) Target() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRedirectOptions) *string { return v.Target }).(pulumi.StringPtrOutput) +} + +// Type of the redirect action. +func (o SecurityPolicyRuleRedirectOptionsOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRedirectOptions) *string { return v.Type }).(pulumi.StringPtrOutput) +} + +type SecurityPolicyRuleRedirectOptionsPtrOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRuleRedirectOptionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleRedirectOptions)(nil)).Elem() +} + +func (o SecurityPolicyRuleRedirectOptionsPtrOutput) ToSecurityPolicyRuleRedirectOptionsPtrOutput() SecurityPolicyRuleRedirectOptionsPtrOutput { + return o +} + +func (o SecurityPolicyRuleRedirectOptionsPtrOutput) ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRedirectOptionsPtrOutput { + return o +} + +func (o SecurityPolicyRuleRedirectOptionsPtrOutput) Elem() SecurityPolicyRuleRedirectOptionsOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRedirectOptions) SecurityPolicyRuleRedirectOptions { + if v != nil { + return *v + } + var ret SecurityPolicyRuleRedirectOptions + return ret + }).(SecurityPolicyRuleRedirectOptionsOutput) +} + +// Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. +func (o SecurityPolicyRuleRedirectOptionsPtrOutput) Target() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRedirectOptions) *string { + if v == nil { + return nil + } + return v.Target + }).(pulumi.StringPtrOutput) +} + +// Type of the redirect action. +func (o SecurityPolicyRuleRedirectOptionsPtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRedirectOptions) *string { + if v == nil { + return nil + } + return v.Type + }).(pulumi.StringPtrOutput) +} + +type SecurityScanConfigAuthentication struct { + // Describes authentication configuration that uses a custom account. + // Structure is documented below. + CustomAccount *SecurityScanConfigAuthenticationCustomAccount `pulumi:"customAccount"` + // Describes authentication configuration that uses a Google account. + // Structure is documented below. + GoogleAccount *SecurityScanConfigAuthenticationGoogleAccount `pulumi:"googleAccount"` +} + +// SecurityScanConfigAuthenticationInput is an input type that accepts SecurityScanConfigAuthenticationArgs and SecurityScanConfigAuthenticationOutput values. +// You can construct a concrete instance of `SecurityScanConfigAuthenticationInput` via: +// +// SecurityScanConfigAuthenticationArgs{...} +type SecurityScanConfigAuthenticationInput interface { + pulumi.Input + + ToSecurityScanConfigAuthenticationOutput() SecurityScanConfigAuthenticationOutput + ToSecurityScanConfigAuthenticationOutputWithContext(context.Context) SecurityScanConfigAuthenticationOutput +} + +type SecurityScanConfigAuthenticationArgs struct { + // Describes authentication configuration that uses a custom account. + // Structure is documented below. + CustomAccount SecurityScanConfigAuthenticationCustomAccountPtrInput `pulumi:"customAccount"` + // Describes authentication configuration that uses a Google account. + // Structure is documented below. + GoogleAccount SecurityScanConfigAuthenticationGoogleAccountPtrInput `pulumi:"googleAccount"` +} + +func (SecurityScanConfigAuthenticationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityScanConfigAuthentication)(nil)).Elem() +} + +func (i SecurityScanConfigAuthenticationArgs) ToSecurityScanConfigAuthenticationOutput() SecurityScanConfigAuthenticationOutput { + return i.ToSecurityScanConfigAuthenticationOutputWithContext(context.Background()) +} + +func (i SecurityScanConfigAuthenticationArgs) ToSecurityScanConfigAuthenticationOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigAuthenticationOutput) +} + +func (i SecurityScanConfigAuthenticationArgs) ToSecurityScanConfigAuthenticationPtrOutput() SecurityScanConfigAuthenticationPtrOutput { + return i.ToSecurityScanConfigAuthenticationPtrOutputWithContext(context.Background()) +} + +func (i SecurityScanConfigAuthenticationArgs) ToSecurityScanConfigAuthenticationPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigAuthenticationOutput).ToSecurityScanConfigAuthenticationPtrOutputWithContext(ctx) +} + +// SecurityScanConfigAuthenticationPtrInput is an input type that accepts SecurityScanConfigAuthenticationArgs, SecurityScanConfigAuthenticationPtr and SecurityScanConfigAuthenticationPtrOutput values. +// You can construct a concrete instance of `SecurityScanConfigAuthenticationPtrInput` via: +// +// SecurityScanConfigAuthenticationArgs{...} +// +// or: +// +// nil +type SecurityScanConfigAuthenticationPtrInput interface { + pulumi.Input + + ToSecurityScanConfigAuthenticationPtrOutput() SecurityScanConfigAuthenticationPtrOutput + ToSecurityScanConfigAuthenticationPtrOutputWithContext(context.Context) SecurityScanConfigAuthenticationPtrOutput +} + +type securityScanConfigAuthenticationPtrType SecurityScanConfigAuthenticationArgs + +func SecurityScanConfigAuthenticationPtr(v *SecurityScanConfigAuthenticationArgs) SecurityScanConfigAuthenticationPtrInput { + return (*securityScanConfigAuthenticationPtrType)(v) +} + +func (*securityScanConfigAuthenticationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityScanConfigAuthentication)(nil)).Elem() +} + +func (i *securityScanConfigAuthenticationPtrType) ToSecurityScanConfigAuthenticationPtrOutput() SecurityScanConfigAuthenticationPtrOutput { + return i.ToSecurityScanConfigAuthenticationPtrOutputWithContext(context.Background()) +} + +func (i *securityScanConfigAuthenticationPtrType) ToSecurityScanConfigAuthenticationPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigAuthenticationPtrOutput) +} + +type SecurityScanConfigAuthenticationOutput struct{ *pulumi.OutputState } + +func (SecurityScanConfigAuthenticationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityScanConfigAuthentication)(nil)).Elem() +} + +func (o SecurityScanConfigAuthenticationOutput) ToSecurityScanConfigAuthenticationOutput() SecurityScanConfigAuthenticationOutput { + return o +} + +func (o SecurityScanConfigAuthenticationOutput) ToSecurityScanConfigAuthenticationOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationOutput { + return o +} + +func (o SecurityScanConfigAuthenticationOutput) ToSecurityScanConfigAuthenticationPtrOutput() SecurityScanConfigAuthenticationPtrOutput { + return o.ToSecurityScanConfigAuthenticationPtrOutputWithContext(context.Background()) +} + +func (o SecurityScanConfigAuthenticationOutput) ToSecurityScanConfigAuthenticationPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityScanConfigAuthentication) *SecurityScanConfigAuthentication { + return &v + }).(SecurityScanConfigAuthenticationPtrOutput) +} + +// Describes authentication configuration that uses a custom account. +// Structure is documented below. +func (o SecurityScanConfigAuthenticationOutput) CustomAccount() SecurityScanConfigAuthenticationCustomAccountPtrOutput { + return o.ApplyT(func(v SecurityScanConfigAuthentication) *SecurityScanConfigAuthenticationCustomAccount { + return v.CustomAccount + }).(SecurityScanConfigAuthenticationCustomAccountPtrOutput) +} + +// Describes authentication configuration that uses a Google account. +// Structure is documented below. +func (o SecurityScanConfigAuthenticationOutput) GoogleAccount() SecurityScanConfigAuthenticationGoogleAccountPtrOutput { + return o.ApplyT(func(v SecurityScanConfigAuthentication) *SecurityScanConfigAuthenticationGoogleAccount { + return v.GoogleAccount + }).(SecurityScanConfigAuthenticationGoogleAccountPtrOutput) +} + +type SecurityScanConfigAuthenticationPtrOutput struct{ *pulumi.OutputState } + +func (SecurityScanConfigAuthenticationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityScanConfigAuthentication)(nil)).Elem() +} + +func (o SecurityScanConfigAuthenticationPtrOutput) ToSecurityScanConfigAuthenticationPtrOutput() SecurityScanConfigAuthenticationPtrOutput { + return o +} + +func (o SecurityScanConfigAuthenticationPtrOutput) ToSecurityScanConfigAuthenticationPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationPtrOutput { + return o +} + +func (o SecurityScanConfigAuthenticationPtrOutput) Elem() SecurityScanConfigAuthenticationOutput { + return o.ApplyT(func(v *SecurityScanConfigAuthentication) SecurityScanConfigAuthentication { + if v != nil { + return *v + } + var ret SecurityScanConfigAuthentication + return ret + }).(SecurityScanConfigAuthenticationOutput) +} + +// Describes authentication configuration that uses a custom account. +// Structure is documented below. +func (o SecurityScanConfigAuthenticationPtrOutput) CustomAccount() SecurityScanConfigAuthenticationCustomAccountPtrOutput { + return o.ApplyT(func(v *SecurityScanConfigAuthentication) *SecurityScanConfigAuthenticationCustomAccount { + if v == nil { + return nil + } + return v.CustomAccount + }).(SecurityScanConfigAuthenticationCustomAccountPtrOutput) +} + +// Describes authentication configuration that uses a Google account. +// Structure is documented below. +func (o SecurityScanConfigAuthenticationPtrOutput) GoogleAccount() SecurityScanConfigAuthenticationGoogleAccountPtrOutput { + return o.ApplyT(func(v *SecurityScanConfigAuthentication) *SecurityScanConfigAuthenticationGoogleAccount { + if v == nil { + return nil + } + return v.GoogleAccount + }).(SecurityScanConfigAuthenticationGoogleAccountPtrOutput) +} + +type SecurityScanConfigAuthenticationCustomAccount struct { + // The login form URL of the website. + LoginUrl string `pulumi:"loginUrl"` + // The password of the custom account. The credential is stored encrypted + // in GCP. + // **Note**: This property is sensitive and will not be displayed in the plan. + Password string `pulumi:"password"` + // The user name of the custom account. + Username string `pulumi:"username"` +} + +// SecurityScanConfigAuthenticationCustomAccountInput is an input type that accepts SecurityScanConfigAuthenticationCustomAccountArgs and SecurityScanConfigAuthenticationCustomAccountOutput values. +// You can construct a concrete instance of `SecurityScanConfigAuthenticationCustomAccountInput` via: +// +// SecurityScanConfigAuthenticationCustomAccountArgs{...} +type SecurityScanConfigAuthenticationCustomAccountInput interface { + pulumi.Input + + ToSecurityScanConfigAuthenticationCustomAccountOutput() SecurityScanConfigAuthenticationCustomAccountOutput + ToSecurityScanConfigAuthenticationCustomAccountOutputWithContext(context.Context) SecurityScanConfigAuthenticationCustomAccountOutput +} + +type SecurityScanConfigAuthenticationCustomAccountArgs struct { + // The login form URL of the website. + LoginUrl pulumi.StringInput `pulumi:"loginUrl"` + // The password of the custom account. The credential is stored encrypted + // in GCP. + // **Note**: This property is sensitive and will not be displayed in the plan. + Password pulumi.StringInput `pulumi:"password"` + // The user name of the custom account. + Username pulumi.StringInput `pulumi:"username"` +} + +func (SecurityScanConfigAuthenticationCustomAccountArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityScanConfigAuthenticationCustomAccount)(nil)).Elem() +} + +func (i SecurityScanConfigAuthenticationCustomAccountArgs) ToSecurityScanConfigAuthenticationCustomAccountOutput() SecurityScanConfigAuthenticationCustomAccountOutput { + return i.ToSecurityScanConfigAuthenticationCustomAccountOutputWithContext(context.Background()) +} + +func (i SecurityScanConfigAuthenticationCustomAccountArgs) ToSecurityScanConfigAuthenticationCustomAccountOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationCustomAccountOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigAuthenticationCustomAccountOutput) +} + +func (i SecurityScanConfigAuthenticationCustomAccountArgs) ToSecurityScanConfigAuthenticationCustomAccountPtrOutput() SecurityScanConfigAuthenticationCustomAccountPtrOutput { + return i.ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(context.Background()) +} + +func (i SecurityScanConfigAuthenticationCustomAccountArgs) ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationCustomAccountPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigAuthenticationCustomAccountOutput).ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(ctx) +} + +// SecurityScanConfigAuthenticationCustomAccountPtrInput is an input type that accepts SecurityScanConfigAuthenticationCustomAccountArgs, SecurityScanConfigAuthenticationCustomAccountPtr and SecurityScanConfigAuthenticationCustomAccountPtrOutput values. +// You can construct a concrete instance of `SecurityScanConfigAuthenticationCustomAccountPtrInput` via: +// +// SecurityScanConfigAuthenticationCustomAccountArgs{...} +// +// or: +// +// nil +type SecurityScanConfigAuthenticationCustomAccountPtrInput interface { + pulumi.Input + + ToSecurityScanConfigAuthenticationCustomAccountPtrOutput() SecurityScanConfigAuthenticationCustomAccountPtrOutput + ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(context.Context) SecurityScanConfigAuthenticationCustomAccountPtrOutput +} + +type securityScanConfigAuthenticationCustomAccountPtrType SecurityScanConfigAuthenticationCustomAccountArgs + +func SecurityScanConfigAuthenticationCustomAccountPtr(v *SecurityScanConfigAuthenticationCustomAccountArgs) SecurityScanConfigAuthenticationCustomAccountPtrInput { + return (*securityScanConfigAuthenticationCustomAccountPtrType)(v) +} + +func (*securityScanConfigAuthenticationCustomAccountPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityScanConfigAuthenticationCustomAccount)(nil)).Elem() +} + +func (i *securityScanConfigAuthenticationCustomAccountPtrType) ToSecurityScanConfigAuthenticationCustomAccountPtrOutput() SecurityScanConfigAuthenticationCustomAccountPtrOutput { + return i.ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(context.Background()) +} + +func (i *securityScanConfigAuthenticationCustomAccountPtrType) ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationCustomAccountPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigAuthenticationCustomAccountPtrOutput) +} + +type SecurityScanConfigAuthenticationCustomAccountOutput struct{ *pulumi.OutputState } + +func (SecurityScanConfigAuthenticationCustomAccountOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityScanConfigAuthenticationCustomAccount)(nil)).Elem() +} + +func (o SecurityScanConfigAuthenticationCustomAccountOutput) ToSecurityScanConfigAuthenticationCustomAccountOutput() SecurityScanConfigAuthenticationCustomAccountOutput { + return o +} + +func (o SecurityScanConfigAuthenticationCustomAccountOutput) ToSecurityScanConfigAuthenticationCustomAccountOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationCustomAccountOutput { + return o +} + +func (o SecurityScanConfigAuthenticationCustomAccountOutput) ToSecurityScanConfigAuthenticationCustomAccountPtrOutput() SecurityScanConfigAuthenticationCustomAccountPtrOutput { + return o.ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(context.Background()) +} + +func (o SecurityScanConfigAuthenticationCustomAccountOutput) ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationCustomAccountPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityScanConfigAuthenticationCustomAccount) *SecurityScanConfigAuthenticationCustomAccount { + return &v + }).(SecurityScanConfigAuthenticationCustomAccountPtrOutput) +} + +// The login form URL of the website. +func (o SecurityScanConfigAuthenticationCustomAccountOutput) LoginUrl() pulumi.StringOutput { + return o.ApplyT(func(v SecurityScanConfigAuthenticationCustomAccount) string { return v.LoginUrl }).(pulumi.StringOutput) +} + +// The password of the custom account. The credential is stored encrypted +// in GCP. +// **Note**: This property is sensitive and will not be displayed in the plan. +func (o SecurityScanConfigAuthenticationCustomAccountOutput) Password() pulumi.StringOutput { + return o.ApplyT(func(v SecurityScanConfigAuthenticationCustomAccount) string { return v.Password }).(pulumi.StringOutput) +} + +// The user name of the custom account. +func (o SecurityScanConfigAuthenticationCustomAccountOutput) Username() pulumi.StringOutput { + return o.ApplyT(func(v SecurityScanConfigAuthenticationCustomAccount) string { return v.Username }).(pulumi.StringOutput) +} + +type SecurityScanConfigAuthenticationCustomAccountPtrOutput struct{ *pulumi.OutputState } + +func (SecurityScanConfigAuthenticationCustomAccountPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityScanConfigAuthenticationCustomAccount)(nil)).Elem() +} + +func (o SecurityScanConfigAuthenticationCustomAccountPtrOutput) ToSecurityScanConfigAuthenticationCustomAccountPtrOutput() SecurityScanConfigAuthenticationCustomAccountPtrOutput { + return o +} + +func (o SecurityScanConfigAuthenticationCustomAccountPtrOutput) ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationCustomAccountPtrOutput { + return o +} + +func (o SecurityScanConfigAuthenticationCustomAccountPtrOutput) Elem() SecurityScanConfigAuthenticationCustomAccountOutput { + return o.ApplyT(func(v *SecurityScanConfigAuthenticationCustomAccount) SecurityScanConfigAuthenticationCustomAccount { + if v != nil { + return *v + } + var ret SecurityScanConfigAuthenticationCustomAccount + return ret + }).(SecurityScanConfigAuthenticationCustomAccountOutput) +} + +// The login form URL of the website. +func (o SecurityScanConfigAuthenticationCustomAccountPtrOutput) LoginUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityScanConfigAuthenticationCustomAccount) *string { + if v == nil { + return nil + } + return &v.LoginUrl + }).(pulumi.StringPtrOutput) +} + +// The password of the custom account. The credential is stored encrypted +// in GCP. +// **Note**: This property is sensitive and will not be displayed in the plan. +func (o SecurityScanConfigAuthenticationCustomAccountPtrOutput) Password() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityScanConfigAuthenticationCustomAccount) *string { + if v == nil { + return nil + } + return &v.Password + }).(pulumi.StringPtrOutput) +} + +// The user name of the custom account. +func (o SecurityScanConfigAuthenticationCustomAccountPtrOutput) Username() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityScanConfigAuthenticationCustomAccount) *string { + if v == nil { + return nil + } + return &v.Username + }).(pulumi.StringPtrOutput) +} + type SecurityScanConfigAuthenticationGoogleAccount struct { // The password of the Google account. The credential is stored encrypted // in GCP. @@ -35914,6 +39602,222 @@ func (o GetRegionInstanceGroupManagerAutoHealingPolicyArrayOutput) Index(i pulum }).(GetRegionInstanceGroupManagerAutoHealingPolicyOutput) } +type GetRegionInstanceGroupManagerInstanceFlexibilityPolicy struct { + // Named instance selections configuring properties that the group will use when creating new VMs. + InstanceSelections []GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection `pulumi:"instanceSelections"` +} + +// GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInput is an input type that accepts GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArgs and GetRegionInstanceGroupManagerInstanceFlexibilityPolicyOutput values. +// You can construct a concrete instance of `GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInput` via: +// +// GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArgs{...} +type GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInput interface { + pulumi.Input + + ToGetRegionInstanceGroupManagerInstanceFlexibilityPolicyOutput() GetRegionInstanceGroupManagerInstanceFlexibilityPolicyOutput + ToGetRegionInstanceGroupManagerInstanceFlexibilityPolicyOutputWithContext(context.Context) GetRegionInstanceGroupManagerInstanceFlexibilityPolicyOutput +} + +type GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArgs struct { + // Named instance selections configuring properties that the group will use when creating new VMs. + InstanceSelections GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayInput `pulumi:"instanceSelections"` +} + +func (GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetRegionInstanceGroupManagerInstanceFlexibilityPolicy)(nil)).Elem() +} + +func (i GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArgs) ToGetRegionInstanceGroupManagerInstanceFlexibilityPolicyOutput() GetRegionInstanceGroupManagerInstanceFlexibilityPolicyOutput { + return i.ToGetRegionInstanceGroupManagerInstanceFlexibilityPolicyOutputWithContext(context.Background()) +} + +func (i GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArgs) ToGetRegionInstanceGroupManagerInstanceFlexibilityPolicyOutputWithContext(ctx context.Context) GetRegionInstanceGroupManagerInstanceFlexibilityPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetRegionInstanceGroupManagerInstanceFlexibilityPolicyOutput) +} + +// GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArrayInput is an input type that accepts GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArray and GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArrayOutput values. +// You can construct a concrete instance of `GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArrayInput` via: +// +// GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArray{ GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArgs{...} } +type GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArrayInput interface { + pulumi.Input + + ToGetRegionInstanceGroupManagerInstanceFlexibilityPolicyArrayOutput() GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArrayOutput + ToGetRegionInstanceGroupManagerInstanceFlexibilityPolicyArrayOutputWithContext(context.Context) GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArrayOutput +} + +type GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArray []GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInput + +func (GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetRegionInstanceGroupManagerInstanceFlexibilityPolicy)(nil)).Elem() +} + +func (i GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArray) ToGetRegionInstanceGroupManagerInstanceFlexibilityPolicyArrayOutput() GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArrayOutput { + return i.ToGetRegionInstanceGroupManagerInstanceFlexibilityPolicyArrayOutputWithContext(context.Background()) +} + +func (i GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArray) ToGetRegionInstanceGroupManagerInstanceFlexibilityPolicyArrayOutputWithContext(ctx context.Context) GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArrayOutput) +} + +type GetRegionInstanceGroupManagerInstanceFlexibilityPolicyOutput struct{ *pulumi.OutputState } + +func (GetRegionInstanceGroupManagerInstanceFlexibilityPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetRegionInstanceGroupManagerInstanceFlexibilityPolicy)(nil)).Elem() +} + +func (o GetRegionInstanceGroupManagerInstanceFlexibilityPolicyOutput) ToGetRegionInstanceGroupManagerInstanceFlexibilityPolicyOutput() GetRegionInstanceGroupManagerInstanceFlexibilityPolicyOutput { + return o +} + +func (o GetRegionInstanceGroupManagerInstanceFlexibilityPolicyOutput) ToGetRegionInstanceGroupManagerInstanceFlexibilityPolicyOutputWithContext(ctx context.Context) GetRegionInstanceGroupManagerInstanceFlexibilityPolicyOutput { + return o +} + +// Named instance selections configuring properties that the group will use when creating new VMs. +func (o GetRegionInstanceGroupManagerInstanceFlexibilityPolicyOutput) InstanceSelections() GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput { + return o.ApplyT(func(v GetRegionInstanceGroupManagerInstanceFlexibilityPolicy) []GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection { + return v.InstanceSelections + }).(GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput) +} + +type GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArrayOutput struct{ *pulumi.OutputState } + +func (GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetRegionInstanceGroupManagerInstanceFlexibilityPolicy)(nil)).Elem() +} + +func (o GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArrayOutput) ToGetRegionInstanceGroupManagerInstanceFlexibilityPolicyArrayOutput() GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArrayOutput { + return o +} + +func (o GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArrayOutput) ToGetRegionInstanceGroupManagerInstanceFlexibilityPolicyArrayOutputWithContext(ctx context.Context) GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArrayOutput { + return o +} + +func (o GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArrayOutput) Index(i pulumi.IntInput) GetRegionInstanceGroupManagerInstanceFlexibilityPolicyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetRegionInstanceGroupManagerInstanceFlexibilityPolicy { + return vs[0].([]GetRegionInstanceGroupManagerInstanceFlexibilityPolicy)[vs[1].(int)] + }).(GetRegionInstanceGroupManagerInstanceFlexibilityPolicyOutput) +} + +type GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection struct { + // Full machine-type names, e.g. "n1-standard-16" + MachineTypes []string `pulumi:"machineTypes"` + // The name of the instance group. Either `name` or `selfLink` must be provided. + Name string `pulumi:"name"` + // Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference. + Rank int `pulumi:"rank"` +} + +// GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionInput is an input type that accepts GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs and GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput values. +// You can construct a concrete instance of `GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionInput` via: +// +// GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs{...} +type GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionInput interface { + pulumi.Input + + ToGetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput() GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput + ToGetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutputWithContext(context.Context) GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput +} + +type GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs struct { + // Full machine-type names, e.g. "n1-standard-16" + MachineTypes pulumi.StringArrayInput `pulumi:"machineTypes"` + // The name of the instance group. Either `name` or `selfLink` must be provided. + Name pulumi.StringInput `pulumi:"name"` + // Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference. + Rank pulumi.IntInput `pulumi:"rank"` +} + +func (GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection)(nil)).Elem() +} + +func (i GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs) ToGetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput() GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput { + return i.ToGetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutputWithContext(context.Background()) +} + +func (i GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs) ToGetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutputWithContext(ctx context.Context) GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput) +} + +// GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayInput is an input type that accepts GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArray and GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput values. +// You can construct a concrete instance of `GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayInput` via: +// +// GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArray{ GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs{...} } +type GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayInput interface { + pulumi.Input + + ToGetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput() GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput + ToGetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutputWithContext(context.Context) GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput +} + +type GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArray []GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionInput + +func (GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection)(nil)).Elem() +} + +func (i GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArray) ToGetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput() GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput { + return i.ToGetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutputWithContext(context.Background()) +} + +func (i GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArray) ToGetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutputWithContext(ctx context.Context) GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput) +} + +type GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput struct{ *pulumi.OutputState } + +func (GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection)(nil)).Elem() +} + +func (o GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput) ToGetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput() GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput { + return o +} + +func (o GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput) ToGetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutputWithContext(ctx context.Context) GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput { + return o +} + +// Full machine-type names, e.g. "n1-standard-16" +func (o GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput) MachineTypes() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection) []string { + return v.MachineTypes + }).(pulumi.StringArrayOutput) +} + +// The name of the instance group. Either `name` or `selfLink` must be provided. +func (o GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection) string { return v.Name }).(pulumi.StringOutput) +} + +// Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference. +func (o GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput) Rank() pulumi.IntOutput { + return o.ApplyT(func(v GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection) int { return v.Rank }).(pulumi.IntOutput) +} + +type GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput struct{ *pulumi.OutputState } + +func (GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection)(nil)).Elem() +} + +func (o GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput) ToGetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput() GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput { + return o +} + +func (o GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput) ToGetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutputWithContext(ctx context.Context) GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput { + return o +} + +func (o GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput) Index(i pulumi.IntInput) GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection { + return vs[0].([]GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection)[vs[1].(int)] + }).(GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput) +} + type GetRegionInstanceGroupManagerInstanceLifecyclePolicy struct { // Default behavior for all instance or health check failures. DefaultActionOnFailure string `pulumi:"defaultActionOnFailure"` @@ -48296,6 +52200,52 @@ func (o GetSubnetworksSubnetworkArrayOutput) Index(i pulumi.IntInput) GetSubnetw } func init() { + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRecaptchaOptionsConfigInput)(nil)).Elem(), SecurityPolicyRecaptchaOptionsConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRecaptchaOptionsConfigPtrInput)(nil)).Elem(), SecurityPolicyRecaptchaOptionsConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleTypeInput)(nil)).Elem(), SecurityPolicyRuleTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleTypeArrayInput)(nil)).Elem(), SecurityPolicyRuleTypeArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleHeaderActionInput)(nil)).Elem(), SecurityPolicyRuleHeaderActionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleHeaderActionPtrInput)(nil)).Elem(), SecurityPolicyRuleHeaderActionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleHeaderActionRequestHeadersToAddInput)(nil)).Elem(), SecurityPolicyRuleHeaderActionRequestHeadersToAddArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayInput)(nil)).Elem(), SecurityPolicyRuleHeaderActionRequestHeadersToAddArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleMatchInput)(nil)).Elem(), SecurityPolicyRuleMatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleMatchPtrInput)(nil)).Elem(), SecurityPolicyRuleMatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleMatchConfigInput)(nil)).Elem(), SecurityPolicyRuleMatchConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleMatchConfigPtrInput)(nil)).Elem(), SecurityPolicyRuleMatchConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleMatchExprInput)(nil)).Elem(), SecurityPolicyRuleMatchExprArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleMatchExprPtrInput)(nil)).Elem(), SecurityPolicyRuleMatchExprArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleMatchExprOptionsInput)(nil)).Elem(), SecurityPolicyRuleMatchExprOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleMatchExprOptionsPtrInput)(nil)).Elem(), SecurityPolicyRuleMatchExprOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsInput)(nil)).Elem(), SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrInput)(nil)).Elem(), SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigInput)(nil)).Elem(), SecurityPolicyRulePreconfiguredWafConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigPtrInput)(nil)).Elem(), SecurityPolicyRulePreconfiguredWafConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionInput)(nil)).Elem(), SecurityPolicyRulePreconfiguredWafConfigExclusionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionArrayInput)(nil)).Elem(), SecurityPolicyRulePreconfiguredWafConfigExclusionArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyInput)(nil)).Elem(), SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayInput)(nil)).Elem(), SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderInput)(nil)).Elem(), SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayInput)(nil)).Elem(), SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamInput)(nil)).Elem(), SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayInput)(nil)).Elem(), SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriInput)(nil)).Elem(), SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayInput)(nil)).Elem(), SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsInput)(nil)).Elem(), SecurityPolicyRuleRateLimitOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsPtrInput)(nil)).Elem(), SecurityPolicyRuleRateLimitOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsBanThresholdInput)(nil)).Elem(), SecurityPolicyRuleRateLimitOptionsBanThresholdArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsBanThresholdPtrInput)(nil)).Elem(), SecurityPolicyRuleRateLimitOptionsBanThresholdArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigInput)(nil)).Elem(), SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayInput)(nil)).Elem(), SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsInput)(nil)).Elem(), SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrInput)(nil)).Elem(), SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsRateLimitThresholdInput)(nil)).Elem(), SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrInput)(nil)).Elem(), SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleRedirectOptionsInput)(nil)).Elem(), SecurityPolicyRuleRedirectOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleRedirectOptionsPtrInput)(nil)).Elem(), SecurityPolicyRuleRedirectOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityScanConfigAuthenticationInput)(nil)).Elem(), SecurityScanConfigAuthenticationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityScanConfigAuthenticationPtrInput)(nil)).Elem(), SecurityScanConfigAuthenticationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityScanConfigAuthenticationCustomAccountInput)(nil)).Elem(), SecurityScanConfigAuthenticationCustomAccountArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityScanConfigAuthenticationCustomAccountPtrInput)(nil)).Elem(), SecurityScanConfigAuthenticationCustomAccountArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecurityScanConfigAuthenticationGoogleAccountInput)(nil)).Elem(), SecurityScanConfigAuthenticationGoogleAccountArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecurityScanConfigAuthenticationGoogleAccountPtrInput)(nil)).Elem(), SecurityScanConfigAuthenticationGoogleAccountArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecurityScanConfigScheduleInput)(nil)).Elem(), SecurityScanConfigScheduleArgs{}) @@ -48740,6 +52690,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetRegionInstanceGroupManagerAllInstancesConfigArrayInput)(nil)).Elem(), GetRegionInstanceGroupManagerAllInstancesConfigArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetRegionInstanceGroupManagerAutoHealingPolicyInput)(nil)).Elem(), GetRegionInstanceGroupManagerAutoHealingPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetRegionInstanceGroupManagerAutoHealingPolicyArrayInput)(nil)).Elem(), GetRegionInstanceGroupManagerAutoHealingPolicyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInput)(nil)).Elem(), GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArrayInput)(nil)).Elem(), GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionInput)(nil)).Elem(), GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayInput)(nil)).Elem(), GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetRegionInstanceGroupManagerInstanceLifecyclePolicyInput)(nil)).Elem(), GetRegionInstanceGroupManagerInstanceLifecyclePolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetRegionInstanceGroupManagerInstanceLifecyclePolicyArrayInput)(nil)).Elem(), GetRegionInstanceGroupManagerInstanceLifecyclePolicyArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetRegionInstanceGroupManagerNamedPortInput)(nil)).Elem(), GetRegionInstanceGroupManagerNamedPortArgs{}) @@ -48934,6 +52888,52 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetSubnetworkSecondaryIpRangeArrayInput)(nil)).Elem(), GetSubnetworkSecondaryIpRangeArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetSubnetworksSubnetworkInput)(nil)).Elem(), GetSubnetworksSubnetworkArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetSubnetworksSubnetworkArrayInput)(nil)).Elem(), GetSubnetworksSubnetworkArray{}) + pulumi.RegisterOutputType(SecurityPolicyRecaptchaOptionsConfigOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRecaptchaOptionsConfigPtrOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRuleTypeOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRuleTypeArrayOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRuleHeaderActionOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRuleHeaderActionPtrOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRuleMatchOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRuleMatchPtrOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRuleMatchConfigOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRuleMatchConfigPtrOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRuleMatchExprOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRuleMatchExprPtrOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRuleMatchExprOptionsOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRuleMatchExprOptionsPtrOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRulePreconfiguredWafConfigOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRulePreconfiguredWafConfigPtrOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRulePreconfiguredWafConfigExclusionOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRuleRateLimitOptionsOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRuleRateLimitOptionsPtrOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRuleRateLimitOptionsBanThresholdOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRuleRedirectOptionsOutput{}) + pulumi.RegisterOutputType(SecurityPolicyRuleRedirectOptionsPtrOutput{}) + pulumi.RegisterOutputType(SecurityScanConfigAuthenticationOutput{}) + pulumi.RegisterOutputType(SecurityScanConfigAuthenticationPtrOutput{}) + pulumi.RegisterOutputType(SecurityScanConfigAuthenticationCustomAccountOutput{}) + pulumi.RegisterOutputType(SecurityScanConfigAuthenticationCustomAccountPtrOutput{}) pulumi.RegisterOutputType(SecurityScanConfigAuthenticationGoogleAccountOutput{}) pulumi.RegisterOutputType(SecurityScanConfigAuthenticationGoogleAccountPtrOutput{}) pulumi.RegisterOutputType(SecurityScanConfigScheduleOutput{}) @@ -49378,6 +53378,10 @@ func init() { pulumi.RegisterOutputType(GetRegionInstanceGroupManagerAllInstancesConfigArrayOutput{}) pulumi.RegisterOutputType(GetRegionInstanceGroupManagerAutoHealingPolicyOutput{}) pulumi.RegisterOutputType(GetRegionInstanceGroupManagerAutoHealingPolicyArrayOutput{}) + pulumi.RegisterOutputType(GetRegionInstanceGroupManagerInstanceFlexibilityPolicyOutput{}) + pulumi.RegisterOutputType(GetRegionInstanceGroupManagerInstanceFlexibilityPolicyArrayOutput{}) + pulumi.RegisterOutputType(GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionOutput{}) + pulumi.RegisterOutputType(GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArrayOutput{}) pulumi.RegisterOutputType(GetRegionInstanceGroupManagerInstanceLifecyclePolicyOutput{}) pulumi.RegisterOutputType(GetRegionInstanceGroupManagerInstanceLifecyclePolicyArrayOutput{}) pulumi.RegisterOutputType(GetRegionInstanceGroupManagerNamedPortOutput{}) diff --git a/sdk/go/gcp/compute/regionDisk.go b/sdk/go/gcp/compute/regionDisk.go index 9f0ab3ef11..d7e49a2b2f 100644 --- a/sdk/go/gcp/compute/regionDisk.go +++ b/sdk/go/gcp/compute/regionDisk.go @@ -214,7 +214,7 @@ import ( type RegionDisk struct { pulumi.CustomResourceState - // A nested object resource + // A nested object resource. // Structure is documented below. AsyncPrimaryDisk RegionDiskAsyncPrimaryDiskPtrOutput `pulumi:"asyncPrimaryDisk"` // Creation timestamp in RFC3339 text format. @@ -373,7 +373,7 @@ func GetRegionDisk(ctx *pulumi.Context, // Input properties used for looking up and filtering RegionDisk resources. type regionDiskState struct { - // A nested object resource + // A nested object resource. // Structure is documented below. AsyncPrimaryDisk *RegionDiskAsyncPrimaryDisk `pulumi:"asyncPrimaryDisk"` // Creation timestamp in RFC3339 text format. @@ -495,7 +495,7 @@ type regionDiskState struct { } type RegionDiskState struct { - // A nested object resource + // A nested object resource. // Structure is documented below. AsyncPrimaryDisk RegionDiskAsyncPrimaryDiskPtrInput // Creation timestamp in RFC3339 text format. @@ -621,7 +621,7 @@ func (RegionDiskState) ElementType() reflect.Type { } type regionDiskArgs struct { - // A nested object resource + // A nested object resource. // Structure is documented below. AsyncPrimaryDisk *RegionDiskAsyncPrimaryDisk `pulumi:"asyncPrimaryDisk"` // An optional description of this resource. Provide this property when @@ -714,7 +714,7 @@ type regionDiskArgs struct { // The set of arguments for constructing a RegionDisk resource. type RegionDiskArgs struct { - // A nested object resource + // A nested object resource. // Structure is documented below. AsyncPrimaryDisk RegionDiskAsyncPrimaryDiskPtrInput // An optional description of this resource. Provide this property when @@ -892,7 +892,7 @@ func (o RegionDiskOutput) ToRegionDiskOutputWithContext(ctx context.Context) Reg return o } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o RegionDiskOutput) AsyncPrimaryDisk() RegionDiskAsyncPrimaryDiskPtrOutput { return o.ApplyT(func(v *RegionDisk) RegionDiskAsyncPrimaryDiskPtrOutput { return v.AsyncPrimaryDisk }).(RegionDiskAsyncPrimaryDiskPtrOutput) diff --git a/sdk/go/gcp/compute/regionHealthCheck.go b/sdk/go/gcp/compute/regionHealthCheck.go index 4b1b6eead3..6111313a97 100644 --- a/sdk/go/gcp/compute/regionHealthCheck.go +++ b/sdk/go/gcp/compute/regionHealthCheck.go @@ -505,19 +505,19 @@ type RegionHealthCheck struct { // An optional description of this resource. Provide this property when // you create the resource. Description pulumi.StringPtrOutput `pulumi:"description"` - // A nested object resource + // A nested object resource. // Structure is documented below. GrpcHealthCheck RegionHealthCheckGrpcHealthCheckPtrOutput `pulumi:"grpcHealthCheck"` // A so-far unhealthy instance will be marked healthy after this many // consecutive successes. The default value is 2. HealthyThreshold pulumi.IntPtrOutput `pulumi:"healthyThreshold"` - // A nested object resource + // A nested object resource. // Structure is documented below. Http2HealthCheck RegionHealthCheckHttp2HealthCheckPtrOutput `pulumi:"http2HealthCheck"` - // A nested object resource + // A nested object resource. // Structure is documented below. HttpHealthCheck RegionHealthCheckHttpHealthCheckPtrOutput `pulumi:"httpHealthCheck"` - // A nested object resource + // A nested object resource. // Structure is documented below. HttpsHealthCheck RegionHealthCheckHttpsHealthCheckPtrOutput `pulumi:"httpsHealthCheck"` // Configure logging on this health check. @@ -541,10 +541,10 @@ type RegionHealthCheck struct { Region pulumi.StringOutput `pulumi:"region"` // The URI of the created resource. SelfLink pulumi.StringOutput `pulumi:"selfLink"` - // A nested object resource + // A nested object resource. // Structure is documented below. SslHealthCheck RegionHealthCheckSslHealthCheckPtrOutput `pulumi:"sslHealthCheck"` - // A nested object resource + // A nested object resource. // Structure is documented below. TcpHealthCheck RegionHealthCheckTcpHealthCheckPtrOutput `pulumi:"tcpHealthCheck"` // How long (in seconds) to wait before claiming failure. @@ -596,19 +596,19 @@ type regionHealthCheckState struct { // An optional description of this resource. Provide this property when // you create the resource. Description *string `pulumi:"description"` - // A nested object resource + // A nested object resource. // Structure is documented below. GrpcHealthCheck *RegionHealthCheckGrpcHealthCheck `pulumi:"grpcHealthCheck"` // A so-far unhealthy instance will be marked healthy after this many // consecutive successes. The default value is 2. HealthyThreshold *int `pulumi:"healthyThreshold"` - // A nested object resource + // A nested object resource. // Structure is documented below. Http2HealthCheck *RegionHealthCheckHttp2HealthCheck `pulumi:"http2HealthCheck"` - // A nested object resource + // A nested object resource. // Structure is documented below. HttpHealthCheck *RegionHealthCheckHttpHealthCheck `pulumi:"httpHealthCheck"` - // A nested object resource + // A nested object resource. // Structure is documented below. HttpsHealthCheck *RegionHealthCheckHttpsHealthCheck `pulumi:"httpsHealthCheck"` // Configure logging on this health check. @@ -632,10 +632,10 @@ type regionHealthCheckState struct { Region *string `pulumi:"region"` // The URI of the created resource. SelfLink *string `pulumi:"selfLink"` - // A nested object resource + // A nested object resource. // Structure is documented below. SslHealthCheck *RegionHealthCheckSslHealthCheck `pulumi:"sslHealthCheck"` - // A nested object resource + // A nested object resource. // Structure is documented below. TcpHealthCheck *RegionHealthCheckTcpHealthCheck `pulumi:"tcpHealthCheck"` // How long (in seconds) to wait before claiming failure. @@ -658,19 +658,19 @@ type RegionHealthCheckState struct { // An optional description of this resource. Provide this property when // you create the resource. Description pulumi.StringPtrInput - // A nested object resource + // A nested object resource. // Structure is documented below. GrpcHealthCheck RegionHealthCheckGrpcHealthCheckPtrInput // A so-far unhealthy instance will be marked healthy after this many // consecutive successes. The default value is 2. HealthyThreshold pulumi.IntPtrInput - // A nested object resource + // A nested object resource. // Structure is documented below. Http2HealthCheck RegionHealthCheckHttp2HealthCheckPtrInput - // A nested object resource + // A nested object resource. // Structure is documented below. HttpHealthCheck RegionHealthCheckHttpHealthCheckPtrInput - // A nested object resource + // A nested object resource. // Structure is documented below. HttpsHealthCheck RegionHealthCheckHttpsHealthCheckPtrInput // Configure logging on this health check. @@ -694,10 +694,10 @@ type RegionHealthCheckState struct { Region pulumi.StringPtrInput // The URI of the created resource. SelfLink pulumi.StringPtrInput - // A nested object resource + // A nested object resource. // Structure is documented below. SslHealthCheck RegionHealthCheckSslHealthCheckPtrInput - // A nested object resource + // A nested object resource. // Structure is documented below. TcpHealthCheck RegionHealthCheckTcpHealthCheckPtrInput // How long (in seconds) to wait before claiming failure. @@ -722,19 +722,19 @@ type regionHealthCheckArgs struct { // An optional description of this resource. Provide this property when // you create the resource. Description *string `pulumi:"description"` - // A nested object resource + // A nested object resource. // Structure is documented below. GrpcHealthCheck *RegionHealthCheckGrpcHealthCheck `pulumi:"grpcHealthCheck"` // A so-far unhealthy instance will be marked healthy after this many // consecutive successes. The default value is 2. HealthyThreshold *int `pulumi:"healthyThreshold"` - // A nested object resource + // A nested object resource. // Structure is documented below. Http2HealthCheck *RegionHealthCheckHttp2HealthCheck `pulumi:"http2HealthCheck"` - // A nested object resource + // A nested object resource. // Structure is documented below. HttpHealthCheck *RegionHealthCheckHttpHealthCheck `pulumi:"httpHealthCheck"` - // A nested object resource + // A nested object resource. // Structure is documented below. HttpsHealthCheck *RegionHealthCheckHttpsHealthCheck `pulumi:"httpsHealthCheck"` // Configure logging on this health check. @@ -756,10 +756,10 @@ type regionHealthCheckArgs struct { // The Region in which the created health check should reside. // If it is not provided, the provider region is used. Region *string `pulumi:"region"` - // A nested object resource + // A nested object resource. // Structure is documented below. SslHealthCheck *RegionHealthCheckSslHealthCheck `pulumi:"sslHealthCheck"` - // A nested object resource + // A nested object resource. // Structure is documented below. TcpHealthCheck *RegionHealthCheckTcpHealthCheck `pulumi:"tcpHealthCheck"` // How long (in seconds) to wait before claiming failure. @@ -779,19 +779,19 @@ type RegionHealthCheckArgs struct { // An optional description of this resource. Provide this property when // you create the resource. Description pulumi.StringPtrInput - // A nested object resource + // A nested object resource. // Structure is documented below. GrpcHealthCheck RegionHealthCheckGrpcHealthCheckPtrInput // A so-far unhealthy instance will be marked healthy after this many // consecutive successes. The default value is 2. HealthyThreshold pulumi.IntPtrInput - // A nested object resource + // A nested object resource. // Structure is documented below. Http2HealthCheck RegionHealthCheckHttp2HealthCheckPtrInput - // A nested object resource + // A nested object resource. // Structure is documented below. HttpHealthCheck RegionHealthCheckHttpHealthCheckPtrInput - // A nested object resource + // A nested object resource. // Structure is documented below. HttpsHealthCheck RegionHealthCheckHttpsHealthCheckPtrInput // Configure logging on this health check. @@ -813,10 +813,10 @@ type RegionHealthCheckArgs struct { // The Region in which the created health check should reside. // If it is not provided, the provider region is used. Region pulumi.StringPtrInput - // A nested object resource + // A nested object resource. // Structure is documented below. SslHealthCheck RegionHealthCheckSslHealthCheckPtrInput - // A nested object resource + // A nested object resource. // Structure is documented below. TcpHealthCheck RegionHealthCheckTcpHealthCheckPtrInput // How long (in seconds) to wait before claiming failure. @@ -932,7 +932,7 @@ func (o RegionHealthCheckOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v *RegionHealthCheck) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o RegionHealthCheckOutput) GrpcHealthCheck() RegionHealthCheckGrpcHealthCheckPtrOutput { return o.ApplyT(func(v *RegionHealthCheck) RegionHealthCheckGrpcHealthCheckPtrOutput { return v.GrpcHealthCheck }).(RegionHealthCheckGrpcHealthCheckPtrOutput) @@ -944,19 +944,19 @@ func (o RegionHealthCheckOutput) HealthyThreshold() pulumi.IntPtrOutput { return o.ApplyT(func(v *RegionHealthCheck) pulumi.IntPtrOutput { return v.HealthyThreshold }).(pulumi.IntPtrOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o RegionHealthCheckOutput) Http2HealthCheck() RegionHealthCheckHttp2HealthCheckPtrOutput { return o.ApplyT(func(v *RegionHealthCheck) RegionHealthCheckHttp2HealthCheckPtrOutput { return v.Http2HealthCheck }).(RegionHealthCheckHttp2HealthCheckPtrOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o RegionHealthCheckOutput) HttpHealthCheck() RegionHealthCheckHttpHealthCheckPtrOutput { return o.ApplyT(func(v *RegionHealthCheck) RegionHealthCheckHttpHealthCheckPtrOutput { return v.HttpHealthCheck }).(RegionHealthCheckHttpHealthCheckPtrOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o RegionHealthCheckOutput) HttpsHealthCheck() RegionHealthCheckHttpsHealthCheckPtrOutput { return o.ApplyT(func(v *RegionHealthCheck) RegionHealthCheckHttpsHealthCheckPtrOutput { return v.HttpsHealthCheck }).(RegionHealthCheckHttpsHealthCheckPtrOutput) @@ -998,13 +998,13 @@ func (o RegionHealthCheckOutput) SelfLink() pulumi.StringOutput { return o.ApplyT(func(v *RegionHealthCheck) pulumi.StringOutput { return v.SelfLink }).(pulumi.StringOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o RegionHealthCheckOutput) SslHealthCheck() RegionHealthCheckSslHealthCheckPtrOutput { return o.ApplyT(func(v *RegionHealthCheck) RegionHealthCheckSslHealthCheckPtrOutput { return v.SslHealthCheck }).(RegionHealthCheckSslHealthCheckPtrOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o RegionHealthCheckOutput) TcpHealthCheck() RegionHealthCheckTcpHealthCheckPtrOutput { return o.ApplyT(func(v *RegionHealthCheck) RegionHealthCheckTcpHealthCheckPtrOutput { return v.TcpHealthCheck }).(RegionHealthCheckTcpHealthCheckPtrOutput) diff --git a/sdk/go/gcp/compute/regionInstanceGroupManager.go b/sdk/go/gcp/compute/regionInstanceGroupManager.go index d4eca1a899..4f948232e0 100644 --- a/sdk/go/gcp/compute/regionInstanceGroupManager.go +++ b/sdk/go/gcp/compute/regionInstanceGroupManager.go @@ -218,6 +218,9 @@ type RegionInstanceGroupManager struct { DistributionPolicyZones pulumi.StringArrayOutput `pulumi:"distributionPolicyZones"` // The fingerprint of the instance group manager. Fingerprint pulumi.StringOutput `pulumi:"fingerprint"` + // The flexibility policy for managed instance group. Instance flexibility allows managed instance group to create VMs from multiple types of machines. Instance flexibility configuration on managed instance group overrides instance template configuration. Structure is documented below. + // *** + InstanceFlexibilityPolicy RegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutput `pulumi:"instanceFlexibilityPolicy"` // The full URL of the instance group created by the manager. InstanceGroup pulumi.StringOutput `pulumi:"instanceGroup"` // The instance lifecycle policy for this managed instance group. @@ -238,8 +241,6 @@ type RegionInstanceGroupManager struct { // for details on configuration. NamedPorts RegionInstanceGroupManagerNamedPortArrayOutput `pulumi:"namedPorts"` // Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert). - // - // *** Params RegionInstanceGroupManagerParamsPtrOutput `pulumi:"params"` // The ID of the project in which the resource belongs. If it // is not provided, the provider project is used. @@ -350,6 +351,9 @@ type regionInstanceGroupManagerState struct { DistributionPolicyZones []string `pulumi:"distributionPolicyZones"` // The fingerprint of the instance group manager. Fingerprint *string `pulumi:"fingerprint"` + // The flexibility policy for managed instance group. Instance flexibility allows managed instance group to create VMs from multiple types of machines. Instance flexibility configuration on managed instance group overrides instance template configuration. Structure is documented below. + // *** + InstanceFlexibilityPolicy *RegionInstanceGroupManagerInstanceFlexibilityPolicy `pulumi:"instanceFlexibilityPolicy"` // The full URL of the instance group created by the manager. InstanceGroup *string `pulumi:"instanceGroup"` // The instance lifecycle policy for this managed instance group. @@ -370,8 +374,6 @@ type regionInstanceGroupManagerState struct { // for details on configuration. NamedPorts []RegionInstanceGroupManagerNamedPort `pulumi:"namedPorts"` // Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert). - // - // *** Params *RegionInstanceGroupManagerParams `pulumi:"params"` // The ID of the project in which the resource belongs. If it // is not provided, the provider project is used. @@ -447,6 +449,9 @@ type RegionInstanceGroupManagerState struct { DistributionPolicyZones pulumi.StringArrayInput // The fingerprint of the instance group manager. Fingerprint pulumi.StringPtrInput + // The flexibility policy for managed instance group. Instance flexibility allows managed instance group to create VMs from multiple types of machines. Instance flexibility configuration on managed instance group overrides instance template configuration. Structure is documented below. + // *** + InstanceFlexibilityPolicy RegionInstanceGroupManagerInstanceFlexibilityPolicyPtrInput // The full URL of the instance group created by the manager. InstanceGroup pulumi.StringPtrInput // The instance lifecycle policy for this managed instance group. @@ -467,8 +472,6 @@ type RegionInstanceGroupManagerState struct { // for details on configuration. NamedPorts RegionInstanceGroupManagerNamedPortArrayInput // Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert). - // - // *** Params RegionInstanceGroupManagerParamsPtrInput // The ID of the project in which the resource belongs. If it // is not provided, the provider project is used. @@ -544,6 +547,9 @@ type regionInstanceGroupManagerArgs struct { // The distribution policy for this managed instance // group. You can specify one or more values. For more information, see the [official documentation](https://cloud.google.com/compute/docs/instance-groups/distributing-instances-with-regional-instance-groups#selectingzones). DistributionPolicyZones []string `pulumi:"distributionPolicyZones"` + // The flexibility policy for managed instance group. Instance flexibility allows managed instance group to create VMs from multiple types of machines. Instance flexibility configuration on managed instance group overrides instance template configuration. Structure is documented below. + // *** + InstanceFlexibilityPolicy *RegionInstanceGroupManagerInstanceFlexibilityPolicy `pulumi:"instanceFlexibilityPolicy"` // The instance lifecycle policy for this managed instance group. InstanceLifecyclePolicy *RegionInstanceGroupManagerInstanceLifecyclePolicy `pulumi:"instanceLifecyclePolicy"` // Pagination behavior of the `listManagedInstances` API @@ -562,8 +568,6 @@ type regionInstanceGroupManagerArgs struct { // for details on configuration. NamedPorts []RegionInstanceGroupManagerNamedPort `pulumi:"namedPorts"` // Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert). - // - // *** Params *RegionInstanceGroupManagerParams `pulumi:"params"` // The ID of the project in which the resource belongs. If it // is not provided, the provider project is used. @@ -632,6 +636,9 @@ type RegionInstanceGroupManagerArgs struct { // The distribution policy for this managed instance // group. You can specify one or more values. For more information, see the [official documentation](https://cloud.google.com/compute/docs/instance-groups/distributing-instances-with-regional-instance-groups#selectingzones). DistributionPolicyZones pulumi.StringArrayInput + // The flexibility policy for managed instance group. Instance flexibility allows managed instance group to create VMs from multiple types of machines. Instance flexibility configuration on managed instance group overrides instance template configuration. Structure is documented below. + // *** + InstanceFlexibilityPolicy RegionInstanceGroupManagerInstanceFlexibilityPolicyPtrInput // The instance lifecycle policy for this managed instance group. InstanceLifecyclePolicy RegionInstanceGroupManagerInstanceLifecyclePolicyPtrInput // Pagination behavior of the `listManagedInstances` API @@ -650,8 +657,6 @@ type RegionInstanceGroupManagerArgs struct { // for details on configuration. NamedPorts RegionInstanceGroupManagerNamedPortArrayInput // Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert). - // - // *** Params RegionInstanceGroupManagerParamsPtrInput // The ID of the project in which the resource belongs. If it // is not provided, the provider project is used. @@ -837,6 +842,14 @@ func (o RegionInstanceGroupManagerOutput) Fingerprint() pulumi.StringOutput { return o.ApplyT(func(v *RegionInstanceGroupManager) pulumi.StringOutput { return v.Fingerprint }).(pulumi.StringOutput) } +// The flexibility policy for managed instance group. Instance flexibility allows managed instance group to create VMs from multiple types of machines. Instance flexibility configuration on managed instance group overrides instance template configuration. Structure is documented below. +// *** +func (o RegionInstanceGroupManagerOutput) InstanceFlexibilityPolicy() RegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutput { + return o.ApplyT(func(v *RegionInstanceGroupManager) RegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutput { + return v.InstanceFlexibilityPolicy + }).(RegionInstanceGroupManagerInstanceFlexibilityPolicyPtrOutput) +} + // The full URL of the instance group created by the manager. func (o RegionInstanceGroupManagerOutput) InstanceGroup() pulumi.StringOutput { return o.ApplyT(func(v *RegionInstanceGroupManager) pulumi.StringOutput { return v.InstanceGroup }).(pulumi.StringOutput) @@ -876,8 +889,6 @@ func (o RegionInstanceGroupManagerOutput) NamedPorts() RegionInstanceGroupManage } // Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert). -// -// *** func (o RegionInstanceGroupManagerOutput) Params() RegionInstanceGroupManagerParamsPtrOutput { return o.ApplyT(func(v *RegionInstanceGroupManager) RegionInstanceGroupManagerParamsPtrOutput { return v.Params }).(RegionInstanceGroupManagerParamsPtrOutput) } diff --git a/sdk/go/gcp/compute/regionNetworkFirewallPolicyRule.go b/sdk/go/gcp/compute/regionNetworkFirewallPolicyRule.go index 484f04cba4..d2a0f0695f 100644 --- a/sdk/go/gcp/compute/regionNetworkFirewallPolicyRule.go +++ b/sdk/go/gcp/compute/regionNetworkFirewallPolicyRule.go @@ -83,10 +83,8 @@ import ( // } // basicValue, err := tags.NewTagValue(ctx, "basic_value", &tags.TagValueArgs{ // Description: pulumi.String("For valuename resources."), -// Parent: basicKey.Name.ApplyT(func(name string) (string, error) { -// return fmt.Sprintf("tagKeys/%v", name), nil -// }).(pulumi.StringOutput), -// ShortName: pulumi.String("tagvalue"), +// Parent: basicKey.ID(), +// ShortName: pulumi.String("tagvalue"), // }) // if err != nil { // return err @@ -124,9 +122,7 @@ import ( // }, // SrcSecureTags: compute.RegionNetworkFirewallPolicyRuleMatchSrcSecureTagArray{ // &compute.RegionNetworkFirewallPolicyRuleMatchSrcSecureTagArgs{ -// Name: basicValue.Name.ApplyT(func(name string) (string, error) { -// return fmt.Sprintf("tagValues/%v", name), nil -// }).(pulumi.StringOutput), +// Name: basicValue.ID(), // }, // }, // SrcAddressGroups: pulumi.StringArray{ diff --git a/sdk/go/gcp/compute/regionNetworkFirewallPolicyWithRules.go b/sdk/go/gcp/compute/regionNetworkFirewallPolicyWithRules.go index 20874fc626..2bb5faee2f 100644 --- a/sdk/go/gcp/compute/regionNetworkFirewallPolicyWithRules.go +++ b/sdk/go/gcp/compute/regionNetworkFirewallPolicyWithRules.go @@ -39,7 +39,7 @@ import ( // } // addressGroup1, err := networksecurity.NewAddressGroup(ctx, "address_group_1", &networksecurity.AddressGroupArgs{ // Name: pulumi.String("tf-address-group"), -// Parent: pulumi.Sprintf("projects/%v", project.Name), +// Parent: pulumi.String(project.Id), // Description: pulumi.String("Regional address group"), // Location: pulumi.String("us-west2"), // Items: pulumi.StringArray{ @@ -53,7 +53,7 @@ import ( // } // secureTagKey1, err := tags.NewTagKey(ctx, "secure_tag_key_1", &tags.TagKeyArgs{ // Description: pulumi.String("Tag key"), -// Parent: pulumi.Sprintf("projects/%v", project.Name), +// Parent: pulumi.String(project.Id), // Purpose: pulumi.String("GCE_FIREWALL"), // ShortName: pulumi.String("tf-tag-key"), // PurposeData: pulumi.StringMap{ @@ -65,10 +65,8 @@ import ( // } // secureTagValue1, err := tags.NewTagValue(ctx, "secure_tag_value_1", &tags.TagValueArgs{ // Description: pulumi.String("Tag value"), -// Parent: secureTagKey1.Name.ApplyT(func(name string) (string, error) { -// return fmt.Sprintf("tagKeys/%v", name), nil -// }).(pulumi.StringOutput), -// ShortName: pulumi.String("tf-tag-value"), +// Parent: secureTagKey1.ID(), +// ShortName: pulumi.String("tf-tag-value"), // }) // if err != nil { // return err @@ -115,9 +113,7 @@ import ( // }, // TargetSecureTags: compute.RegionNetworkFirewallPolicyWithRulesRuleTargetSecureTagArray{ // &compute.RegionNetworkFirewallPolicyWithRulesRuleTargetSecureTagArgs{ -// Name: secureTagValue1.Name.ApplyT(func(name string) (string, error) { -// return fmt.Sprintf("tagValues/%v", name), nil -// }).(pulumi.StringOutput), +// Name: secureTagValue1.ID(), // }, // }, // }, @@ -154,9 +150,7 @@ import ( // }, // SrcSecureTags: compute.RegionNetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArray{ // &compute.RegionNetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgs{ -// Name: secureTagValue1.Name.ApplyT(func(name string) (string, error) { -// return fmt.Sprintf("tagValues/%v", name), nil -// }).(pulumi.StringOutput), +// Name: secureTagValue1.ID(), // }, // }, // }, diff --git a/sdk/go/gcp/compute/regionResizeRequest.go b/sdk/go/gcp/compute/regionResizeRequest.go new file mode 100644 index 0000000000..2a721cdeba --- /dev/null +++ b/sdk/go/gcp/compute/regionResizeRequest.go @@ -0,0 +1,516 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package compute + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// ## Example Usage +// +// ### Compute Rmig Resize Request +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// a3Dws, err := compute.NewRegionInstanceTemplate(ctx, "a3_dws", &compute.RegionInstanceTemplateArgs{ +// Name: pulumi.String("a3-dws"), +// Region: pulumi.String("us-central1"), +// Description: pulumi.String("This template is used to create a mig instance that is compatible with DWS resize requests."), +// InstanceDescription: pulumi.String("A3 GPU"), +// MachineType: pulumi.String("a3-highgpu-8g"), +// CanIpForward: pulumi.Bool(false), +// Scheduling: &compute.RegionInstanceTemplateSchedulingArgs{ +// AutomaticRestart: pulumi.Bool(false), +// OnHostMaintenance: pulumi.String("TERMINATE"), +// }, +// Disks: compute.RegionInstanceTemplateDiskArray{ +// &compute.RegionInstanceTemplateDiskArgs{ +// SourceImage: pulumi.String("cos-cloud/cos-105-lts"), +// AutoDelete: pulumi.Bool(true), +// Boot: pulumi.Bool(true), +// DiskType: pulumi.String("pd-ssd"), +// DiskSizeGb: pulumi.Int(960), +// Mode: pulumi.String("READ_WRITE"), +// }, +// }, +// GuestAccelerators: compute.RegionInstanceTemplateGuestAcceleratorArray{ +// &compute.RegionInstanceTemplateGuestAcceleratorArgs{ +// Type: pulumi.String("nvidia-h100-80gb"), +// Count: pulumi.Int(8), +// }, +// }, +// ReservationAffinity: &compute.RegionInstanceTemplateReservationAffinityArgs{ +// Type: pulumi.String("NO_RESERVATION"), +// }, +// ShieldedInstanceConfig: &compute.RegionInstanceTemplateShieldedInstanceConfigArgs{ +// EnableVtpm: pulumi.Bool(true), +// EnableIntegrityMonitoring: pulumi.Bool(true), +// }, +// NetworkInterfaces: compute.RegionInstanceTemplateNetworkInterfaceArray{ +// &compute.RegionInstanceTemplateNetworkInterfaceArgs{ +// Network: pulumi.String("default"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// a3DwsRegionInstanceGroupManager, err := compute.NewRegionInstanceGroupManager(ctx, "a3_dws", &compute.RegionInstanceGroupManagerArgs{ +// Name: pulumi.String("a3-dws"), +// BaseInstanceName: pulumi.String("a3-dws"), +// Region: pulumi.String("us-central1"), +// Versions: compute.RegionInstanceGroupManagerVersionArray{ +// &compute.RegionInstanceGroupManagerVersionArgs{ +// InstanceTemplate: a3Dws.SelfLink, +// }, +// }, +// InstanceLifecyclePolicy: &compute.RegionInstanceGroupManagerInstanceLifecyclePolicyArgs{ +// DefaultActionOnFailure: pulumi.String("DO_NOTHING"), +// }, +// DistributionPolicyTargetShape: pulumi.String("ANY_SINGLE_ZONE"), +// DistributionPolicyZones: pulumi.StringArray{ +// pulumi.String("us-central1-a"), +// pulumi.String("us-central1-b"), +// pulumi.String("us-central1-c"), +// pulumi.String("us-central1-f"), +// }, +// UpdatePolicy: &compute.RegionInstanceGroupManagerUpdatePolicyArgs{ +// InstanceRedistributionType: pulumi.String("NONE"), +// Type: pulumi.String("OPPORTUNISTIC"), +// MinimalAction: pulumi.String("REPLACE"), +// MaxSurgeFixed: pulumi.Int(0), +// MaxUnavailableFixed: pulumi.Int(6), +// }, +// WaitForInstances: pulumi.Bool(false), +// }) +// if err != nil { +// return err +// } +// _, err = compute.NewRegionResizeRequest(ctx, "a3_resize_request", &compute.RegionResizeRequestArgs{ +// Name: pulumi.String("a3-dws"), +// InstanceGroupManager: a3DwsRegionInstanceGroupManager.Name, +// Region: pulumi.String("us-central1"), +// Description: pulumi.String("Test resize request resource"), +// ResizeBy: pulumi.Int(2), +// RequestedRunDuration: &compute.RegionResizeRequestRequestedRunDurationArgs{ +// Seconds: pulumi.String("14400"), +// Nanos: pulumi.Int(0), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// RegionResizeRequest can be imported using any of these accepted formats: +// +// * `projects/{{project}}/regions/{{region}}/instanceGroupManagers/{{instance_group_manager}}/resizeRequests/{{name}}` +// +// * `{{project}}/{{region}}/{{instance_group_manager}}/{{name}}` +// +// * `{{region}}/{{instance_group_manager}}/{{name}}` +// +// * `{{instance_group_manager}}/{{name}}` +// +// When using the `pulumi import` command, RegionResizeRequest can be imported using one of the formats above. For example: +// +// ```sh +// $ pulumi import gcp:compute/regionResizeRequest:RegionResizeRequest default projects/{{project}}/regions/{{region}}/instanceGroupManagers/{{instance_group_manager}}/resizeRequests/{{name}} +// ``` +// +// ```sh +// $ pulumi import gcp:compute/regionResizeRequest:RegionResizeRequest default {{project}}/{{region}}/{{instance_group_manager}}/{{name}} +// ``` +// +// ```sh +// $ pulumi import gcp:compute/regionResizeRequest:RegionResizeRequest default {{region}}/{{instance_group_manager}}/{{name}} +// ``` +// +// ```sh +// $ pulumi import gcp:compute/regionResizeRequest:RegionResizeRequest default {{instance_group_manager}}/{{name}} +// ``` +type RegionResizeRequest struct { + pulumi.CustomResourceState + + // The creation timestamp for this resize request in RFC3339 text format. + CreationTimestamp pulumi.StringOutput `pulumi:"creationTimestamp"` + // An optional description of this resize-request. + Description pulumi.StringPtrOutput `pulumi:"description"` + // The reference of the regional instance group manager this ResizeRequest is a part of. + // + // *** + InstanceGroupManager pulumi.StringOutput `pulumi:"instanceGroupManager"` + // The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + Name pulumi.StringOutput `pulumi:"name"` + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project pulumi.StringOutput `pulumi:"project"` + // The reference of the compute region scoping this request. + Region pulumi.StringOutput `pulumi:"region"` + // Requested run duration for instances that will be created by this request. At the end of the run duration instances will be deleted. + // Structure is documented below. + RequestedRunDuration RegionResizeRequestRequestedRunDurationPtrOutput `pulumi:"requestedRunDuration"` + // The number of instances to be created by this resize request. The group's target size will be increased by this number. + ResizeBy pulumi.IntOutput `pulumi:"resizeBy"` + // Current state of the request. + State pulumi.StringOutput `pulumi:"state"` + // Status of the request. + // Structure is documented below. + Statuses RegionResizeRequestStatusArrayOutput `pulumi:"statuses"` +} + +// NewRegionResizeRequest registers a new resource with the given unique name, arguments, and options. +func NewRegionResizeRequest(ctx *pulumi.Context, + name string, args *RegionResizeRequestArgs, opts ...pulumi.ResourceOption) (*RegionResizeRequest, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.InstanceGroupManager == nil { + return nil, errors.New("invalid value for required argument 'InstanceGroupManager'") + } + if args.Region == nil { + return nil, errors.New("invalid value for required argument 'Region'") + } + if args.ResizeBy == nil { + return nil, errors.New("invalid value for required argument 'ResizeBy'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource RegionResizeRequest + err := ctx.RegisterResource("gcp:compute/regionResizeRequest:RegionResizeRequest", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetRegionResizeRequest gets an existing RegionResizeRequest resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetRegionResizeRequest(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *RegionResizeRequestState, opts ...pulumi.ResourceOption) (*RegionResizeRequest, error) { + var resource RegionResizeRequest + err := ctx.ReadResource("gcp:compute/regionResizeRequest:RegionResizeRequest", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering RegionResizeRequest resources. +type regionResizeRequestState struct { + // The creation timestamp for this resize request in RFC3339 text format. + CreationTimestamp *string `pulumi:"creationTimestamp"` + // An optional description of this resize-request. + Description *string `pulumi:"description"` + // The reference of the regional instance group manager this ResizeRequest is a part of. + // + // *** + InstanceGroupManager *string `pulumi:"instanceGroupManager"` + // The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + Name *string `pulumi:"name"` + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project *string `pulumi:"project"` + // The reference of the compute region scoping this request. + Region *string `pulumi:"region"` + // Requested run duration for instances that will be created by this request. At the end of the run duration instances will be deleted. + // Structure is documented below. + RequestedRunDuration *RegionResizeRequestRequestedRunDuration `pulumi:"requestedRunDuration"` + // The number of instances to be created by this resize request. The group's target size will be increased by this number. + ResizeBy *int `pulumi:"resizeBy"` + // Current state of the request. + State *string `pulumi:"state"` + // Status of the request. + // Structure is documented below. + Statuses []RegionResizeRequestStatus `pulumi:"statuses"` +} + +type RegionResizeRequestState struct { + // The creation timestamp for this resize request in RFC3339 text format. + CreationTimestamp pulumi.StringPtrInput + // An optional description of this resize-request. + Description pulumi.StringPtrInput + // The reference of the regional instance group manager this ResizeRequest is a part of. + // + // *** + InstanceGroupManager pulumi.StringPtrInput + // The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + Name pulumi.StringPtrInput + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project pulumi.StringPtrInput + // The reference of the compute region scoping this request. + Region pulumi.StringPtrInput + // Requested run duration for instances that will be created by this request. At the end of the run duration instances will be deleted. + // Structure is documented below. + RequestedRunDuration RegionResizeRequestRequestedRunDurationPtrInput + // The number of instances to be created by this resize request. The group's target size will be increased by this number. + ResizeBy pulumi.IntPtrInput + // Current state of the request. + State pulumi.StringPtrInput + // Status of the request. + // Structure is documented below. + Statuses RegionResizeRequestStatusArrayInput +} + +func (RegionResizeRequestState) ElementType() reflect.Type { + return reflect.TypeOf((*regionResizeRequestState)(nil)).Elem() +} + +type regionResizeRequestArgs struct { + // An optional description of this resize-request. + Description *string `pulumi:"description"` + // The reference of the regional instance group manager this ResizeRequest is a part of. + // + // *** + InstanceGroupManager string `pulumi:"instanceGroupManager"` + // The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + Name *string `pulumi:"name"` + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project *string `pulumi:"project"` + // The reference of the compute region scoping this request. + Region string `pulumi:"region"` + // Requested run duration for instances that will be created by this request. At the end of the run duration instances will be deleted. + // Structure is documented below. + RequestedRunDuration *RegionResizeRequestRequestedRunDuration `pulumi:"requestedRunDuration"` + // The number of instances to be created by this resize request. The group's target size will be increased by this number. + ResizeBy int `pulumi:"resizeBy"` +} + +// The set of arguments for constructing a RegionResizeRequest resource. +type RegionResizeRequestArgs struct { + // An optional description of this resize-request. + Description pulumi.StringPtrInput + // The reference of the regional instance group manager this ResizeRequest is a part of. + // + // *** + InstanceGroupManager pulumi.StringInput + // The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + Name pulumi.StringPtrInput + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project pulumi.StringPtrInput + // The reference of the compute region scoping this request. + Region pulumi.StringInput + // Requested run duration for instances that will be created by this request. At the end of the run duration instances will be deleted. + // Structure is documented below. + RequestedRunDuration RegionResizeRequestRequestedRunDurationPtrInput + // The number of instances to be created by this resize request. The group's target size will be increased by this number. + ResizeBy pulumi.IntInput +} + +func (RegionResizeRequestArgs) ElementType() reflect.Type { + return reflect.TypeOf((*regionResizeRequestArgs)(nil)).Elem() +} + +type RegionResizeRequestInput interface { + pulumi.Input + + ToRegionResizeRequestOutput() RegionResizeRequestOutput + ToRegionResizeRequestOutputWithContext(ctx context.Context) RegionResizeRequestOutput +} + +func (*RegionResizeRequest) ElementType() reflect.Type { + return reflect.TypeOf((**RegionResizeRequest)(nil)).Elem() +} + +func (i *RegionResizeRequest) ToRegionResizeRequestOutput() RegionResizeRequestOutput { + return i.ToRegionResizeRequestOutputWithContext(context.Background()) +} + +func (i *RegionResizeRequest) ToRegionResizeRequestOutputWithContext(ctx context.Context) RegionResizeRequestOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestOutput) +} + +// RegionResizeRequestArrayInput is an input type that accepts RegionResizeRequestArray and RegionResizeRequestArrayOutput values. +// You can construct a concrete instance of `RegionResizeRequestArrayInput` via: +// +// RegionResizeRequestArray{ RegionResizeRequestArgs{...} } +type RegionResizeRequestArrayInput interface { + pulumi.Input + + ToRegionResizeRequestArrayOutput() RegionResizeRequestArrayOutput + ToRegionResizeRequestArrayOutputWithContext(context.Context) RegionResizeRequestArrayOutput +} + +type RegionResizeRequestArray []RegionResizeRequestInput + +func (RegionResizeRequestArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*RegionResizeRequest)(nil)).Elem() +} + +func (i RegionResizeRequestArray) ToRegionResizeRequestArrayOutput() RegionResizeRequestArrayOutput { + return i.ToRegionResizeRequestArrayOutputWithContext(context.Background()) +} + +func (i RegionResizeRequestArray) ToRegionResizeRequestArrayOutputWithContext(ctx context.Context) RegionResizeRequestArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestArrayOutput) +} + +// RegionResizeRequestMapInput is an input type that accepts RegionResizeRequestMap and RegionResizeRequestMapOutput values. +// You can construct a concrete instance of `RegionResizeRequestMapInput` via: +// +// RegionResizeRequestMap{ "key": RegionResizeRequestArgs{...} } +type RegionResizeRequestMapInput interface { + pulumi.Input + + ToRegionResizeRequestMapOutput() RegionResizeRequestMapOutput + ToRegionResizeRequestMapOutputWithContext(context.Context) RegionResizeRequestMapOutput +} + +type RegionResizeRequestMap map[string]RegionResizeRequestInput + +func (RegionResizeRequestMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*RegionResizeRequest)(nil)).Elem() +} + +func (i RegionResizeRequestMap) ToRegionResizeRequestMapOutput() RegionResizeRequestMapOutput { + return i.ToRegionResizeRequestMapOutputWithContext(context.Background()) +} + +func (i RegionResizeRequestMap) ToRegionResizeRequestMapOutputWithContext(ctx context.Context) RegionResizeRequestMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionResizeRequestMapOutput) +} + +type RegionResizeRequestOutput struct{ *pulumi.OutputState } + +func (RegionResizeRequestOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionResizeRequest)(nil)).Elem() +} + +func (o RegionResizeRequestOutput) ToRegionResizeRequestOutput() RegionResizeRequestOutput { + return o +} + +func (o RegionResizeRequestOutput) ToRegionResizeRequestOutputWithContext(ctx context.Context) RegionResizeRequestOutput { + return o +} + +// The creation timestamp for this resize request in RFC3339 text format. +func (o RegionResizeRequestOutput) CreationTimestamp() pulumi.StringOutput { + return o.ApplyT(func(v *RegionResizeRequest) pulumi.StringOutput { return v.CreationTimestamp }).(pulumi.StringOutput) +} + +// An optional description of this resize-request. +func (o RegionResizeRequestOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionResizeRequest) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// The reference of the regional instance group manager this ResizeRequest is a part of. +// +// *** +func (o RegionResizeRequestOutput) InstanceGroupManager() pulumi.StringOutput { + return o.ApplyT(func(v *RegionResizeRequest) pulumi.StringOutput { return v.InstanceGroupManager }).(pulumi.StringOutput) +} + +// The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. +func (o RegionResizeRequestOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *RegionResizeRequest) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The ID of the project in which the resource belongs. +// If it is not provided, the provider project is used. +func (o RegionResizeRequestOutput) Project() pulumi.StringOutput { + return o.ApplyT(func(v *RegionResizeRequest) pulumi.StringOutput { return v.Project }).(pulumi.StringOutput) +} + +// The reference of the compute region scoping this request. +func (o RegionResizeRequestOutput) Region() pulumi.StringOutput { + return o.ApplyT(func(v *RegionResizeRequest) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput) +} + +// Requested run duration for instances that will be created by this request. At the end of the run duration instances will be deleted. +// Structure is documented below. +func (o RegionResizeRequestOutput) RequestedRunDuration() RegionResizeRequestRequestedRunDurationPtrOutput { + return o.ApplyT(func(v *RegionResizeRequest) RegionResizeRequestRequestedRunDurationPtrOutput { + return v.RequestedRunDuration + }).(RegionResizeRequestRequestedRunDurationPtrOutput) +} + +// The number of instances to be created by this resize request. The group's target size will be increased by this number. +func (o RegionResizeRequestOutput) ResizeBy() pulumi.IntOutput { + return o.ApplyT(func(v *RegionResizeRequest) pulumi.IntOutput { return v.ResizeBy }).(pulumi.IntOutput) +} + +// Current state of the request. +func (o RegionResizeRequestOutput) State() pulumi.StringOutput { + return o.ApplyT(func(v *RegionResizeRequest) pulumi.StringOutput { return v.State }).(pulumi.StringOutput) +} + +// Status of the request. +// Structure is documented below. +func (o RegionResizeRequestOutput) Statuses() RegionResizeRequestStatusArrayOutput { + return o.ApplyT(func(v *RegionResizeRequest) RegionResizeRequestStatusArrayOutput { return v.Statuses }).(RegionResizeRequestStatusArrayOutput) +} + +type RegionResizeRequestArrayOutput struct{ *pulumi.OutputState } + +func (RegionResizeRequestArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*RegionResizeRequest)(nil)).Elem() +} + +func (o RegionResizeRequestArrayOutput) ToRegionResizeRequestArrayOutput() RegionResizeRequestArrayOutput { + return o +} + +func (o RegionResizeRequestArrayOutput) ToRegionResizeRequestArrayOutputWithContext(ctx context.Context) RegionResizeRequestArrayOutput { + return o +} + +func (o RegionResizeRequestArrayOutput) Index(i pulumi.IntInput) RegionResizeRequestOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *RegionResizeRequest { + return vs[0].([]*RegionResizeRequest)[vs[1].(int)] + }).(RegionResizeRequestOutput) +} + +type RegionResizeRequestMapOutput struct{ *pulumi.OutputState } + +func (RegionResizeRequestMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*RegionResizeRequest)(nil)).Elem() +} + +func (o RegionResizeRequestMapOutput) ToRegionResizeRequestMapOutput() RegionResizeRequestMapOutput { + return o +} + +func (o RegionResizeRequestMapOutput) ToRegionResizeRequestMapOutputWithContext(ctx context.Context) RegionResizeRequestMapOutput { + return o +} + +func (o RegionResizeRequestMapOutput) MapIndex(k pulumi.StringInput) RegionResizeRequestOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *RegionResizeRequest { + return vs[0].(map[string]*RegionResizeRequest)[vs[1].(string)] + }).(RegionResizeRequestOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestInput)(nil)).Elem(), &RegionResizeRequest{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestArrayInput)(nil)).Elem(), RegionResizeRequestArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionResizeRequestMapInput)(nil)).Elem(), RegionResizeRequestMap{}) + pulumi.RegisterOutputType(RegionResizeRequestOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestArrayOutput{}) + pulumi.RegisterOutputType(RegionResizeRequestMapOutput{}) +} diff --git a/sdk/go/gcp/compute/regionSecurityPolicy.go b/sdk/go/gcp/compute/regionSecurityPolicy.go index 5ee5b358c4..58a2bfe470 100644 --- a/sdk/go/gcp/compute/regionSecurityPolicy.go +++ b/sdk/go/gcp/compute/regionSecurityPolicy.go @@ -113,6 +113,57 @@ import ( // } // // ``` +// ### Region Security Policy With Rules +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := compute.NewRegionSecurityPolicy(ctx, "region-sec-policy-with-rules", &compute.RegionSecurityPolicyArgs{ +// Name: pulumi.String("my-sec-policy-with-rules"), +// Description: pulumi.String("basic region security policy with multiple rules"), +// Type: pulumi.String("CLOUD_ARMOR"), +// Rules: compute.RegionSecurityPolicyRuleTypeArray{ +// &compute.RegionSecurityPolicyRuleTypeArgs{ +// Action: pulumi.String("deny"), +// Priority: pulumi.Int(1000), +// Match: &compute.RegionSecurityPolicyRuleMatchArgs{ +// Expr: &compute.RegionSecurityPolicyRuleMatchExprArgs{ +// Expression: pulumi.String("request.path.matches(\"/login.html\") && token.recaptcha_session.score < 0.2"), +// }, +// }, +// }, +// &compute.RegionSecurityPolicyRuleTypeArgs{ +// Action: pulumi.String("deny"), +// Priority: pulumi.Int(2147483647), +// Match: &compute.RegionSecurityPolicyRuleMatchArgs{ +// VersionedExpr: pulumi.String("SRC_IPS_V1"), +// Config: &compute.RegionSecurityPolicyRuleMatchConfigArgs{ +// SrcIpRanges: pulumi.StringArray{ +// pulumi.String("*"), +// }, +// }, +// }, +// Description: pulumi.String("default rule"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` // // ## Import // @@ -167,6 +218,9 @@ type RegionSecurityPolicy struct { // The Region in which the created Region Security Policy should reside. // If it is not provided, the provider region is used. Region pulumi.StringOutput `pulumi:"region"` + // The set of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added. + // Structure is documented below. + Rules RegionSecurityPolicyRuleTypeArrayOutput `pulumi:"rules"` // Server-defined URL for the resource. SelfLink pulumi.StringOutput `pulumi:"selfLink"` // Server-defined URL for this resource with the resource id. @@ -236,6 +290,9 @@ type regionSecurityPolicyState struct { // The Region in which the created Region Security Policy should reside. // If it is not provided, the provider region is used. Region *string `pulumi:"region"` + // The set of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added. + // Structure is documented below. + Rules []RegionSecurityPolicyRuleType `pulumi:"rules"` // Server-defined URL for the resource. SelfLink *string `pulumi:"selfLink"` // Server-defined URL for this resource with the resource id. @@ -276,6 +333,9 @@ type RegionSecurityPolicyState struct { // The Region in which the created Region Security Policy should reside. // If it is not provided, the provider region is used. Region pulumi.StringPtrInput + // The set of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added. + // Structure is documented below. + Rules RegionSecurityPolicyRuleTypeArrayInput // Server-defined URL for the resource. SelfLink pulumi.StringPtrInput // Server-defined URL for this resource with the resource id. @@ -315,6 +375,9 @@ type regionSecurityPolicyArgs struct { // The Region in which the created Region Security Policy should reside. // If it is not provided, the provider region is used. Region *string `pulumi:"region"` + // The set of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added. + // Structure is documented below. + Rules []RegionSecurityPolicyRuleType `pulumi:"rules"` // The type indicates the intended use of the security policy. // - CLOUD_ARMOR: Cloud Armor backend security policies can be configured to filter incoming HTTP requests targeting backend services. They filter requests before they hit the origin servers. // - CLOUD_ARMOR_EDGE: Cloud Armor edge security policies can be configured to filter incoming HTTP requests targeting backend services (including Cloud CDN-enabled) as well as backend buckets (Cloud Storage). They filter requests before the request is served from Google's cache. @@ -347,6 +410,9 @@ type RegionSecurityPolicyArgs struct { // The Region in which the created Region Security Policy should reside. // If it is not provided, the provider region is used. Region pulumi.StringPtrInput + // The set of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added. + // Structure is documented below. + Rules RegionSecurityPolicyRuleTypeArrayInput // The type indicates the intended use of the security policy. // - CLOUD_ARMOR: Cloud Armor backend security policies can be configured to filter incoming HTTP requests targeting backend services. They filter requests before they hit the origin servers. // - CLOUD_ARMOR_EDGE: Cloud Armor edge security policies can be configured to filter incoming HTTP requests targeting backend services (including Cloud CDN-enabled) as well as backend buckets (Cloud Storage). They filter requests before the request is served from Google's cache. @@ -492,6 +558,12 @@ func (o RegionSecurityPolicyOutput) Region() pulumi.StringOutput { return o.ApplyT(func(v *RegionSecurityPolicy) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput) } +// The set of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added. +// Structure is documented below. +func (o RegionSecurityPolicyOutput) Rules() RegionSecurityPolicyRuleTypeArrayOutput { + return o.ApplyT(func(v *RegionSecurityPolicy) RegionSecurityPolicyRuleTypeArrayOutput { return v.Rules }).(RegionSecurityPolicyRuleTypeArrayOutput) +} + // Server-defined URL for the resource. func (o RegionSecurityPolicyOutput) SelfLink() pulumi.StringOutput { return o.ApplyT(func(v *RegionSecurityPolicy) pulumi.StringOutput { return v.SelfLink }).(pulumi.StringOutput) diff --git a/sdk/go/gcp/compute/routerPeer.go b/sdk/go/gcp/compute/routerPeer.go index 3de2448594..a6ce22a656 100644 --- a/sdk/go/gcp/compute/routerPeer.go +++ b/sdk/go/gcp/compute/routerPeer.go @@ -547,12 +547,15 @@ type RouterPeer struct { // BFD configuration for the BGP peering. // Structure is documented below. Bfd RouterPeerBfdOutput `pulumi:"bfd"` - // The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a - // subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + // The custom learned route IP address range. Must be a valid CIDR-formatted prefix. + // If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, + // a /32 singular IP address range, and, for IPv6, /128. + // Structure is documented below. CustomLearnedIpRanges RouterPeerCustomLearnedIpRangeArrayOutput `pulumi:"customLearnedIpRanges"` - // The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route - // ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a - // priority of 100 to the ranges. + // The user-defined custom learned route priority for a BGP session. + // This value is applied to all custom learned route ranges for the session. + // You can choose a value from 0 to 65335. If you don't provide a value, + // Google Cloud assigns a priority of 100 to the ranges. CustomLearnedRoutePriority pulumi.IntPtrOutput `pulumi:"customLearnedRoutePriority"` // The status of the BGP peer connection. If set to false, any active session // with the peer is terminated and all associated routing information is removed. @@ -700,12 +703,15 @@ type routerPeerState struct { // BFD configuration for the BGP peering. // Structure is documented below. Bfd *RouterPeerBfd `pulumi:"bfd"` - // The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a - // subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + // The custom learned route IP address range. Must be a valid CIDR-formatted prefix. + // If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, + // a /32 singular IP address range, and, for IPv6, /128. + // Structure is documented below. CustomLearnedIpRanges []RouterPeerCustomLearnedIpRange `pulumi:"customLearnedIpRanges"` - // The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route - // ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a - // priority of 100 to the ranges. + // The user-defined custom learned route priority for a BGP session. + // This value is applied to all custom learned route ranges for the session. + // You can choose a value from 0 to 65335. If you don't provide a value, + // Google Cloud assigns a priority of 100 to the ranges. CustomLearnedRoutePriority *int `pulumi:"customLearnedRoutePriority"` // The status of the BGP peer connection. If set to false, any active session // with the peer is terminated and all associated routing information is removed. @@ -815,12 +821,15 @@ type RouterPeerState struct { // BFD configuration for the BGP peering. // Structure is documented below. Bfd RouterPeerBfdPtrInput - // The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a - // subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + // The custom learned route IP address range. Must be a valid CIDR-formatted prefix. + // If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, + // a /32 singular IP address range, and, for IPv6, /128. + // Structure is documented below. CustomLearnedIpRanges RouterPeerCustomLearnedIpRangeArrayInput - // The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route - // ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a - // priority of 100 to the ranges. + // The user-defined custom learned route priority for a BGP session. + // This value is applied to all custom learned route ranges for the session. + // You can choose a value from 0 to 65335. If you don't provide a value, + // Google Cloud assigns a priority of 100 to the ranges. CustomLearnedRoutePriority pulumi.IntPtrInput // The status of the BGP peer connection. If set to false, any active session // with the peer is terminated and all associated routing information is removed. @@ -934,12 +943,15 @@ type routerPeerArgs struct { // BFD configuration for the BGP peering. // Structure is documented below. Bfd *RouterPeerBfd `pulumi:"bfd"` - // The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a - // subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + // The custom learned route IP address range. Must be a valid CIDR-formatted prefix. + // If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, + // a /32 singular IP address range, and, for IPv6, /128. + // Structure is documented below. CustomLearnedIpRanges []RouterPeerCustomLearnedIpRange `pulumi:"customLearnedIpRanges"` - // The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route - // ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a - // priority of 100 to the ranges. + // The user-defined custom learned route priority for a BGP session. + // This value is applied to all custom learned route ranges for the session. + // You can choose a value from 0 to 65335. If you don't provide a value, + // Google Cloud assigns a priority of 100 to the ranges. CustomLearnedRoutePriority *int `pulumi:"customLearnedRoutePriority"` // The status of the BGP peer connection. If set to false, any active session // with the peer is terminated and all associated routing information is removed. @@ -1040,12 +1052,15 @@ type RouterPeerArgs struct { // BFD configuration for the BGP peering. // Structure is documented below. Bfd RouterPeerBfdPtrInput - // The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a - // subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + // The custom learned route IP address range. Must be a valid CIDR-formatted prefix. + // If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, + // a /32 singular IP address range, and, for IPv6, /128. + // Structure is documented below. CustomLearnedIpRanges RouterPeerCustomLearnedIpRangeArrayInput - // The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route - // ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a - // priority of 100 to the ranges. + // The user-defined custom learned route priority for a BGP session. + // This value is applied to all custom learned route ranges for the session. + // You can choose a value from 0 to 65335. If you don't provide a value, + // Google Cloud assigns a priority of 100 to the ranges. CustomLearnedRoutePriority pulumi.IntPtrInput // The status of the BGP peer connection. If set to false, any active session // with the peer is terminated and all associated routing information is removed. @@ -1246,15 +1261,18 @@ func (o RouterPeerOutput) Bfd() RouterPeerBfdOutput { return o.ApplyT(func(v *RouterPeer) RouterPeerBfdOutput { return v.Bfd }).(RouterPeerBfdOutput) } -// The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a -// subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. +// The custom learned route IP address range. Must be a valid CIDR-formatted prefix. +// If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, +// a /32 singular IP address range, and, for IPv6, /128. +// Structure is documented below. func (o RouterPeerOutput) CustomLearnedIpRanges() RouterPeerCustomLearnedIpRangeArrayOutput { return o.ApplyT(func(v *RouterPeer) RouterPeerCustomLearnedIpRangeArrayOutput { return v.CustomLearnedIpRanges }).(RouterPeerCustomLearnedIpRangeArrayOutput) } -// The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route -// ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a -// priority of 100 to the ranges. +// The user-defined custom learned route priority for a BGP session. +// This value is applied to all custom learned route ranges for the session. +// You can choose a value from 0 to 65335. If you don't provide a value, +// Google Cloud assigns a priority of 100 to the ranges. func (o RouterPeerOutput) CustomLearnedRoutePriority() pulumi.IntPtrOutput { return o.ApplyT(func(v *RouterPeer) pulumi.IntPtrOutput { return v.CustomLearnedRoutePriority }).(pulumi.IntPtrOutput) } diff --git a/sdk/go/gcp/compute/securityScanConfig.go b/sdk/go/gcp/compute/securityScanConfig.go index 89e74048ee..14ebc11fd4 100644 --- a/sdk/go/gcp/compute/securityScanConfig.go +++ b/sdk/go/gcp/compute/securityScanConfig.go @@ -68,20 +68,20 @@ import ( // // ScanConfig can be imported using any of these accepted formats: // -// * `projects/{{project}}/scanConfigs/{{name}}` -// // * `{{project}}/{{name}}` // +// * `{{project}} {{name}}` +// // * `{{name}}` // // When using the `pulumi import` command, ScanConfig can be imported using one of the formats above. For example: // // ```sh -// $ pulumi import gcp:compute/securityScanConfig:SecurityScanConfig default projects/{{project}}/scanConfigs/{{name}} +// $ pulumi import gcp:compute/securityScanConfig:SecurityScanConfig default {{project}}/{{name}} // ``` // // ```sh -// $ pulumi import gcp:compute/securityScanConfig:SecurityScanConfig default {{project}}/{{name}} +// $ pulumi import gcp:compute/securityScanConfig:SecurityScanConfig default "{{project}} {{name}}" // ``` // // ```sh diff --git a/sdk/go/gcp/config/config.go b/sdk/go/gcp/config/config.go index 821a989849..4a685ebde1 100644 --- a/sdk/go/gcp/config/config.go +++ b/sdk/go/gcp/config/config.go @@ -203,6 +203,9 @@ func GetDataplexCustomEndpoint(ctx *pulumi.Context) string { func GetDataprocCustomEndpoint(ctx *pulumi.Context) string { return config.Get(ctx, "gcp:dataprocCustomEndpoint") } +func GetDataprocGdcCustomEndpoint(ctx *pulumi.Context) string { + return config.Get(ctx, "gcp:dataprocGdcCustomEndpoint") +} func GetDataprocMetastoreCustomEndpoint(ctx *pulumi.Context) string { return config.Get(ctx, "gcp:dataprocMetastoreCustomEndpoint") } @@ -302,6 +305,9 @@ func GetHealthcareCustomEndpoint(ctx *pulumi.Context) string { func GetIam2CustomEndpoint(ctx *pulumi.Context) string { return config.Get(ctx, "gcp:iam2CustomEndpoint") } +func GetIam3CustomEndpoint(ctx *pulumi.Context) string { + return config.Get(ctx, "gcp:iam3CustomEndpoint") +} func GetIamBetaCustomEndpoint(ctx *pulumi.Context) string { return config.Get(ctx, "gcp:iamBetaCustomEndpoint") } diff --git a/sdk/go/gcp/container/cluster.go b/sdk/go/gcp/container/cluster.go index 674d41cee5..881e30b493 100644 --- a/sdk/go/gcp/container/cluster.go +++ b/sdk/go/gcp/container/cluster.go @@ -235,6 +235,9 @@ type Cluster struct { ClusterTelemetry ClusterClusterTelemetryOutput `pulumi:"clusterTelemetry"` // Configuration for [Confidential Nodes](https://cloud.google.com/kubernetes-engine/docs/how-to/confidential-gke-nodes) feature. Structure is documented below documented below. ConfidentialNodes ClusterConfidentialNodesOutput `pulumi:"confidentialNodes"` + // Configuration for all of the cluster's control plane endpoints. + // Structure is documented below. + ControlPlaneEndpointsConfig ClusterControlPlaneEndpointsConfigOutput `pulumi:"controlPlaneEndpointsConfig"` // Configuration for the // [Cost Allocation](https://cloud.google.com/kubernetes-engine/docs/how-to/cost-allocations) feature. // Structure is documented below. @@ -494,6 +497,8 @@ type Cluster struct { // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) // notation (e.g. `1.2.3.4/29`). TpuIpv4CidrBlock pulumi.StringOutput `pulumi:"tpuIpv4CidrBlock"` + // The custom keys configuration of the cluster. + UserManagedKeysConfig ClusterUserManagedKeysConfigPtrOutput `pulumi:"userManagedKeysConfig"` // Vertical Pod Autoscaling automatically adjusts the resources of pods controlled by it. // Structure is documented below. VerticalPodAutoscaling ClusterVerticalPodAutoscalingOutput `pulumi:"verticalPodAutoscaling"` @@ -573,6 +578,9 @@ type clusterState struct { ClusterTelemetry *ClusterClusterTelemetry `pulumi:"clusterTelemetry"` // Configuration for [Confidential Nodes](https://cloud.google.com/kubernetes-engine/docs/how-to/confidential-gke-nodes) feature. Structure is documented below documented below. ConfidentialNodes *ClusterConfidentialNodes `pulumi:"confidentialNodes"` + // Configuration for all of the cluster's control plane endpoints. + // Structure is documented below. + ControlPlaneEndpointsConfig *ClusterControlPlaneEndpointsConfig `pulumi:"controlPlaneEndpointsConfig"` // Configuration for the // [Cost Allocation](https://cloud.google.com/kubernetes-engine/docs/how-to/cost-allocations) feature. // Structure is documented below. @@ -832,6 +840,8 @@ type clusterState struct { // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) // notation (e.g. `1.2.3.4/29`). TpuIpv4CidrBlock *string `pulumi:"tpuIpv4CidrBlock"` + // The custom keys configuration of the cluster. + UserManagedKeysConfig *ClusterUserManagedKeysConfig `pulumi:"userManagedKeysConfig"` // Vertical Pod Autoscaling automatically adjusts the resources of pods controlled by it. // Structure is documented below. VerticalPodAutoscaling *ClusterVerticalPodAutoscaling `pulumi:"verticalPodAutoscaling"` @@ -877,6 +887,9 @@ type ClusterState struct { ClusterTelemetry ClusterClusterTelemetryPtrInput // Configuration for [Confidential Nodes](https://cloud.google.com/kubernetes-engine/docs/how-to/confidential-gke-nodes) feature. Structure is documented below documented below. ConfidentialNodes ClusterConfidentialNodesPtrInput + // Configuration for all of the cluster's control plane endpoints. + // Structure is documented below. + ControlPlaneEndpointsConfig ClusterControlPlaneEndpointsConfigPtrInput // Configuration for the // [Cost Allocation](https://cloud.google.com/kubernetes-engine/docs/how-to/cost-allocations) feature. // Structure is documented below. @@ -1136,6 +1149,8 @@ type ClusterState struct { // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) // notation (e.g. `1.2.3.4/29`). TpuIpv4CidrBlock pulumi.StringPtrInput + // The custom keys configuration of the cluster. + UserManagedKeysConfig ClusterUserManagedKeysConfigPtrInput // Vertical Pod Autoscaling automatically adjusts the resources of pods controlled by it. // Structure is documented below. VerticalPodAutoscaling ClusterVerticalPodAutoscalingPtrInput @@ -1185,6 +1200,9 @@ type clusterArgs struct { ClusterTelemetry *ClusterClusterTelemetry `pulumi:"clusterTelemetry"` // Configuration for [Confidential Nodes](https://cloud.google.com/kubernetes-engine/docs/how-to/confidential-gke-nodes) feature. Structure is documented below documented below. ConfidentialNodes *ClusterConfidentialNodes `pulumi:"confidentialNodes"` + // Configuration for all of the cluster's control plane endpoints. + // Structure is documented below. + ControlPlaneEndpointsConfig *ClusterControlPlaneEndpointsConfig `pulumi:"controlPlaneEndpointsConfig"` // Configuration for the // [Cost Allocation](https://cloud.google.com/kubernetes-engine/docs/how-to/cost-allocations) feature. // Structure is documented below. @@ -1420,6 +1438,8 @@ type clusterArgs struct { Subnetwork *string `pulumi:"subnetwork"` // TPU configuration for the cluster. TpuConfig *ClusterTpuConfig `pulumi:"tpuConfig"` + // The custom keys configuration of the cluster. + UserManagedKeysConfig *ClusterUserManagedKeysConfig `pulumi:"userManagedKeysConfig"` // Vertical Pod Autoscaling automatically adjusts the resources of pods controlled by it. // Structure is documented below. VerticalPodAutoscaling *ClusterVerticalPodAutoscaling `pulumi:"verticalPodAutoscaling"` @@ -1466,6 +1486,9 @@ type ClusterArgs struct { ClusterTelemetry ClusterClusterTelemetryPtrInput // Configuration for [Confidential Nodes](https://cloud.google.com/kubernetes-engine/docs/how-to/confidential-gke-nodes) feature. Structure is documented below documented below. ConfidentialNodes ClusterConfidentialNodesPtrInput + // Configuration for all of the cluster's control plane endpoints. + // Structure is documented below. + ControlPlaneEndpointsConfig ClusterControlPlaneEndpointsConfigPtrInput // Configuration for the // [Cost Allocation](https://cloud.google.com/kubernetes-engine/docs/how-to/cost-allocations) feature. // Structure is documented below. @@ -1701,6 +1724,8 @@ type ClusterArgs struct { Subnetwork pulumi.StringPtrInput // TPU configuration for the cluster. TpuConfig ClusterTpuConfigPtrInput + // The custom keys configuration of the cluster. + UserManagedKeysConfig ClusterUserManagedKeysConfigPtrInput // Vertical Pod Autoscaling automatically adjusts the resources of pods controlled by it. // Structure is documented below. VerticalPodAutoscaling ClusterVerticalPodAutoscalingPtrInput @@ -1856,6 +1881,12 @@ func (o ClusterOutput) ConfidentialNodes() ClusterConfidentialNodesOutput { return o.ApplyT(func(v *Cluster) ClusterConfidentialNodesOutput { return v.ConfidentialNodes }).(ClusterConfidentialNodesOutput) } +// Configuration for all of the cluster's control plane endpoints. +// Structure is documented below. +func (o ClusterOutput) ControlPlaneEndpointsConfig() ClusterControlPlaneEndpointsConfigOutput { + return o.ApplyT(func(v *Cluster) ClusterControlPlaneEndpointsConfigOutput { return v.ControlPlaneEndpointsConfig }).(ClusterControlPlaneEndpointsConfigOutput) +} + // Configuration for the // [Cost Allocation](https://cloud.google.com/kubernetes-engine/docs/how-to/cost-allocations) feature. // Structure is documented below. @@ -2319,6 +2350,11 @@ func (o ClusterOutput) TpuIpv4CidrBlock() pulumi.StringOutput { return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.TpuIpv4CidrBlock }).(pulumi.StringOutput) } +// The custom keys configuration of the cluster. +func (o ClusterOutput) UserManagedKeysConfig() ClusterUserManagedKeysConfigPtrOutput { + return o.ApplyT(func(v *Cluster) ClusterUserManagedKeysConfigPtrOutput { return v.UserManagedKeysConfig }).(ClusterUserManagedKeysConfigPtrOutput) +} + // Vertical Pod Autoscaling automatically adjusts the resources of pods controlled by it. // Structure is documented below. func (o ClusterOutput) VerticalPodAutoscaling() ClusterVerticalPodAutoscalingOutput { diff --git a/sdk/go/gcp/container/getCluster.go b/sdk/go/gcp/container/getCluster.go index 98c53bc2aa..a2244f1c36 100644 --- a/sdk/go/gcp/container/getCluster.go +++ b/sdk/go/gcp/container/getCluster.go @@ -68,37 +68,38 @@ type LookupClusterArgs struct { // A collection of values returned by getCluster. type LookupClusterResult struct { - AddonsConfigs []GetClusterAddonsConfig `pulumi:"addonsConfigs"` - AllowNetAdmin bool `pulumi:"allowNetAdmin"` - AuthenticatorGroupsConfigs []GetClusterAuthenticatorGroupsConfig `pulumi:"authenticatorGroupsConfigs"` - BinaryAuthorizations []GetClusterBinaryAuthorization `pulumi:"binaryAuthorizations"` - ClusterAutoscalings []GetClusterClusterAutoscaling `pulumi:"clusterAutoscalings"` - ClusterIpv4Cidr string `pulumi:"clusterIpv4Cidr"` - ClusterTelemetries []GetClusterClusterTelemetry `pulumi:"clusterTelemetries"` - ConfidentialNodes []GetClusterConfidentialNode `pulumi:"confidentialNodes"` - CostManagementConfigs []GetClusterCostManagementConfig `pulumi:"costManagementConfigs"` - DatabaseEncryptions []GetClusterDatabaseEncryption `pulumi:"databaseEncryptions"` - DatapathProvider string `pulumi:"datapathProvider"` - DefaultMaxPodsPerNode int `pulumi:"defaultMaxPodsPerNode"` - DefaultSnatStatuses []GetClusterDefaultSnatStatus `pulumi:"defaultSnatStatuses"` - DeletionProtection bool `pulumi:"deletionProtection"` - Description string `pulumi:"description"` - DnsConfigs []GetClusterDnsConfig `pulumi:"dnsConfigs"` - EffectiveLabels map[string]string `pulumi:"effectiveLabels"` - EnableAutopilot bool `pulumi:"enableAutopilot"` - EnableCiliumClusterwideNetworkPolicy bool `pulumi:"enableCiliumClusterwideNetworkPolicy"` - EnableFqdnNetworkPolicy bool `pulumi:"enableFqdnNetworkPolicy"` - EnableIntranodeVisibility bool `pulumi:"enableIntranodeVisibility"` - EnableK8sBetaApis []GetClusterEnableK8sBetaApi `pulumi:"enableK8sBetaApis"` - EnableKubernetesAlpha bool `pulumi:"enableKubernetesAlpha"` - EnableL4IlbSubsetting bool `pulumi:"enableL4IlbSubsetting"` - EnableLegacyAbac bool `pulumi:"enableLegacyAbac"` - EnableMultiNetworking bool `pulumi:"enableMultiNetworking"` - EnableShieldedNodes bool `pulumi:"enableShieldedNodes"` - EnableTpu bool `pulumi:"enableTpu"` - Endpoint string `pulumi:"endpoint"` - Fleets []GetClusterFleet `pulumi:"fleets"` - GatewayApiConfigs []GetClusterGatewayApiConfig `pulumi:"gatewayApiConfigs"` + AddonsConfigs []GetClusterAddonsConfig `pulumi:"addonsConfigs"` + AllowNetAdmin bool `pulumi:"allowNetAdmin"` + AuthenticatorGroupsConfigs []GetClusterAuthenticatorGroupsConfig `pulumi:"authenticatorGroupsConfigs"` + BinaryAuthorizations []GetClusterBinaryAuthorization `pulumi:"binaryAuthorizations"` + ClusterAutoscalings []GetClusterClusterAutoscaling `pulumi:"clusterAutoscalings"` + ClusterIpv4Cidr string `pulumi:"clusterIpv4Cidr"` + ClusterTelemetries []GetClusterClusterTelemetry `pulumi:"clusterTelemetries"` + ConfidentialNodes []GetClusterConfidentialNode `pulumi:"confidentialNodes"` + ControlPlaneEndpointsConfigs []GetClusterControlPlaneEndpointsConfig `pulumi:"controlPlaneEndpointsConfigs"` + CostManagementConfigs []GetClusterCostManagementConfig `pulumi:"costManagementConfigs"` + DatabaseEncryptions []GetClusterDatabaseEncryption `pulumi:"databaseEncryptions"` + DatapathProvider string `pulumi:"datapathProvider"` + DefaultMaxPodsPerNode int `pulumi:"defaultMaxPodsPerNode"` + DefaultSnatStatuses []GetClusterDefaultSnatStatus `pulumi:"defaultSnatStatuses"` + DeletionProtection bool `pulumi:"deletionProtection"` + Description string `pulumi:"description"` + DnsConfigs []GetClusterDnsConfig `pulumi:"dnsConfigs"` + EffectiveLabels map[string]string `pulumi:"effectiveLabels"` + EnableAutopilot bool `pulumi:"enableAutopilot"` + EnableCiliumClusterwideNetworkPolicy bool `pulumi:"enableCiliumClusterwideNetworkPolicy"` + EnableFqdnNetworkPolicy bool `pulumi:"enableFqdnNetworkPolicy"` + EnableIntranodeVisibility bool `pulumi:"enableIntranodeVisibility"` + EnableK8sBetaApis []GetClusterEnableK8sBetaApi `pulumi:"enableK8sBetaApis"` + EnableKubernetesAlpha bool `pulumi:"enableKubernetesAlpha"` + EnableL4IlbSubsetting bool `pulumi:"enableL4IlbSubsetting"` + EnableLegacyAbac bool `pulumi:"enableLegacyAbac"` + EnableMultiNetworking bool `pulumi:"enableMultiNetworking"` + EnableShieldedNodes bool `pulumi:"enableShieldedNodes"` + EnableTpu bool `pulumi:"enableTpu"` + Endpoint string `pulumi:"endpoint"` + Fleets []GetClusterFleet `pulumi:"fleets"` + GatewayApiConfigs []GetClusterGatewayApiConfig `pulumi:"gatewayApiConfigs"` // The provider-assigned unique ID for this managed resource. Id string `pulumi:"id"` IdentityServiceConfigs []GetClusterIdentityServiceConfig `pulumi:"identityServiceConfigs"` @@ -146,6 +147,7 @@ type LookupClusterResult struct { Subnetwork string `pulumi:"subnetwork"` TpuConfigs []GetClusterTpuConfig `pulumi:"tpuConfigs"` TpuIpv4CidrBlock string `pulumi:"tpuIpv4CidrBlock"` + UserManagedKeysConfigs []GetClusterUserManagedKeysConfig `pulumi:"userManagedKeysConfigs"` VerticalPodAutoscalings []GetClusterVerticalPodAutoscaling `pulumi:"verticalPodAutoscalings"` WorkloadAltsConfigs []GetClusterWorkloadAltsConfig `pulumi:"workloadAltsConfigs"` WorkloadIdentityConfigs []GetClusterWorkloadIdentityConfig `pulumi:"workloadIdentityConfigs"` @@ -234,6 +236,12 @@ func (o LookupClusterResultOutput) ConfidentialNodes() GetClusterConfidentialNod return o.ApplyT(func(v LookupClusterResult) []GetClusterConfidentialNode { return v.ConfidentialNodes }).(GetClusterConfidentialNodeArrayOutput) } +func (o LookupClusterResultOutput) ControlPlaneEndpointsConfigs() GetClusterControlPlaneEndpointsConfigArrayOutput { + return o.ApplyT(func(v LookupClusterResult) []GetClusterControlPlaneEndpointsConfig { + return v.ControlPlaneEndpointsConfigs + }).(GetClusterControlPlaneEndpointsConfigArrayOutput) +} + func (o LookupClusterResultOutput) CostManagementConfigs() GetClusterCostManagementConfigArrayOutput { return o.ApplyT(func(v LookupClusterResult) []GetClusterCostManagementConfig { return v.CostManagementConfigs }).(GetClusterCostManagementConfigArrayOutput) } @@ -513,6 +521,10 @@ func (o LookupClusterResultOutput) TpuIpv4CidrBlock() pulumi.StringOutput { return o.ApplyT(func(v LookupClusterResult) string { return v.TpuIpv4CidrBlock }).(pulumi.StringOutput) } +func (o LookupClusterResultOutput) UserManagedKeysConfigs() GetClusterUserManagedKeysConfigArrayOutput { + return o.ApplyT(func(v LookupClusterResult) []GetClusterUserManagedKeysConfig { return v.UserManagedKeysConfigs }).(GetClusterUserManagedKeysConfigArrayOutput) +} + func (o LookupClusterResultOutput) VerticalPodAutoscalings() GetClusterVerticalPodAutoscalingArrayOutput { return o.ApplyT(func(v LookupClusterResult) []GetClusterVerticalPodAutoscaling { return v.VerticalPodAutoscalings }).(GetClusterVerticalPodAutoscalingArrayOutput) } diff --git a/sdk/go/gcp/container/pulumiTypes.go b/sdk/go/gcp/container/pulumiTypes.go index 64f7d71be5..d283ebed14 100644 --- a/sdk/go/gcp/container/pulumiTypes.go +++ b/sdk/go/gcp/container/pulumiTypes.go @@ -10823,6 +10823,14 @@ type ClusterAddonsConfig struct { // It can only be disabled if the nodes already do not have network policies enabled. // Defaults to disabled; set `disabled = false` to enable. NetworkPolicyConfig *ClusterAddonsConfigNetworkPolicyConfig `pulumi:"networkPolicyConfig"` + // The status of the Parallelstore CSI driver addon, + // which allows the usage of a Parallelstore instances as volumes. + // It is disabled by default for Standard clusters; set `enabled = true` to enable. + // It is enabled by default for Autopilot clusters with version 1.29 or later; set `enabled = true` to enable it explicitly. + // See [Enable the Parallelstore CSI driver](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/parallelstore-csi-new-volume#enable) for more information. + // + // This example `addonsConfig` disables two addons: + ParallelstoreCsiDriverConfig *ClusterAddonsConfigParallelstoreCsiDriverConfig `pulumi:"parallelstoreCsiDriverConfig"` // . The status of the [Ray Operator // addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview). // It is disabled by default. Set `enabled = true` to enable. The minimum @@ -10835,8 +10843,6 @@ type ClusterAddonsConfig struct { // clusters on // GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) // for more information. - // - // This example `addonsConfig` disables two addons: RayOperatorConfigs []ClusterAddonsConfigRayOperatorConfig `pulumi:"rayOperatorConfigs"` // . // The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. @@ -10909,6 +10915,14 @@ type ClusterAddonsConfigArgs struct { // It can only be disabled if the nodes already do not have network policies enabled. // Defaults to disabled; set `disabled = false` to enable. NetworkPolicyConfig ClusterAddonsConfigNetworkPolicyConfigPtrInput `pulumi:"networkPolicyConfig"` + // The status of the Parallelstore CSI driver addon, + // which allows the usage of a Parallelstore instances as volumes. + // It is disabled by default for Standard clusters; set `enabled = true` to enable. + // It is enabled by default for Autopilot clusters with version 1.29 or later; set `enabled = true` to enable it explicitly. + // See [Enable the Parallelstore CSI driver](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/parallelstore-csi-new-volume#enable) for more information. + // + // This example `addonsConfig` disables two addons: + ParallelstoreCsiDriverConfig ClusterAddonsConfigParallelstoreCsiDriverConfigPtrInput `pulumi:"parallelstoreCsiDriverConfig"` // . The status of the [Ray Operator // addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview). // It is disabled by default. Set `enabled = true` to enable. The minimum @@ -10921,8 +10935,6 @@ type ClusterAddonsConfigArgs struct { // clusters on // GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) // for more information. - // - // This example `addonsConfig` disables two addons: RayOperatorConfigs ClusterAddonsConfigRayOperatorConfigArrayInput `pulumi:"rayOperatorConfigs"` // . // The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. @@ -11104,6 +11116,19 @@ func (o ClusterAddonsConfigOutput) NetworkPolicyConfig() ClusterAddonsConfigNetw return o.ApplyT(func(v ClusterAddonsConfig) *ClusterAddonsConfigNetworkPolicyConfig { return v.NetworkPolicyConfig }).(ClusterAddonsConfigNetworkPolicyConfigPtrOutput) } +// The status of the Parallelstore CSI driver addon, +// which allows the usage of a Parallelstore instances as volumes. +// It is disabled by default for Standard clusters; set `enabled = true` to enable. +// It is enabled by default for Autopilot clusters with version 1.29 or later; set `enabled = true` to enable it explicitly. +// See [Enable the Parallelstore CSI driver](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/parallelstore-csi-new-volume#enable) for more information. +// +// This example `addonsConfig` disables two addons: +func (o ClusterAddonsConfigOutput) ParallelstoreCsiDriverConfig() ClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutput { + return o.ApplyT(func(v ClusterAddonsConfig) *ClusterAddonsConfigParallelstoreCsiDriverConfig { + return v.ParallelstoreCsiDriverConfig + }).(ClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutput) +} + // . The status of the [Ray Operator // addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview). // It is disabled by default. Set `enabled = true` to enable. The minimum @@ -11116,8 +11141,6 @@ func (o ClusterAddonsConfigOutput) NetworkPolicyConfig() ClusterAddonsConfigNetw // clusters on // GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) // for more information. -// -// This example `addonsConfig` disables two addons: func (o ClusterAddonsConfigOutput) RayOperatorConfigs() ClusterAddonsConfigRayOperatorConfigArrayOutput { return o.ApplyT(func(v ClusterAddonsConfig) []ClusterAddonsConfigRayOperatorConfig { return v.RayOperatorConfigs }).(ClusterAddonsConfigRayOperatorConfigArrayOutput) } @@ -11302,6 +11325,22 @@ func (o ClusterAddonsConfigPtrOutput) NetworkPolicyConfig() ClusterAddonsConfigN }).(ClusterAddonsConfigNetworkPolicyConfigPtrOutput) } +// The status of the Parallelstore CSI driver addon, +// which allows the usage of a Parallelstore instances as volumes. +// It is disabled by default for Standard clusters; set `enabled = true` to enable. +// It is enabled by default for Autopilot clusters with version 1.29 or later; set `enabled = true` to enable it explicitly. +// See [Enable the Parallelstore CSI driver](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/parallelstore-csi-new-volume#enable) for more information. +// +// This example `addonsConfig` disables two addons: +func (o ClusterAddonsConfigPtrOutput) ParallelstoreCsiDriverConfig() ClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutput { + return o.ApplyT(func(v *ClusterAddonsConfig) *ClusterAddonsConfigParallelstoreCsiDriverConfig { + if v == nil { + return nil + } + return v.ParallelstoreCsiDriverConfig + }).(ClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutput) +} + // . The status of the [Ray Operator // addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview). // It is disabled by default. Set `enabled = true` to enable. The minimum @@ -11314,8 +11353,6 @@ func (o ClusterAddonsConfigPtrOutput) NetworkPolicyConfig() ClusterAddonsConfigN // clusters on // GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) // for more information. -// -// This example `addonsConfig` disables two addons: func (o ClusterAddonsConfigPtrOutput) RayOperatorConfigs() ClusterAddonsConfigRayOperatorConfigArrayOutput { return o.ApplyT(func(v *ClusterAddonsConfig) []ClusterAddonsConfigRayOperatorConfig { if v == nil { @@ -13023,6 +13060,139 @@ func (o ClusterAddonsConfigNetworkPolicyConfigPtrOutput) Disabled() pulumi.BoolP }).(pulumi.BoolPtrOutput) } +type ClusterAddonsConfigParallelstoreCsiDriverConfig struct { + Enabled bool `pulumi:"enabled"` +} + +// ClusterAddonsConfigParallelstoreCsiDriverConfigInput is an input type that accepts ClusterAddonsConfigParallelstoreCsiDriverConfigArgs and ClusterAddonsConfigParallelstoreCsiDriverConfigOutput values. +// You can construct a concrete instance of `ClusterAddonsConfigParallelstoreCsiDriverConfigInput` via: +// +// ClusterAddonsConfigParallelstoreCsiDriverConfigArgs{...} +type ClusterAddonsConfigParallelstoreCsiDriverConfigInput interface { + pulumi.Input + + ToClusterAddonsConfigParallelstoreCsiDriverConfigOutput() ClusterAddonsConfigParallelstoreCsiDriverConfigOutput + ToClusterAddonsConfigParallelstoreCsiDriverConfigOutputWithContext(context.Context) ClusterAddonsConfigParallelstoreCsiDriverConfigOutput +} + +type ClusterAddonsConfigParallelstoreCsiDriverConfigArgs struct { + Enabled pulumi.BoolInput `pulumi:"enabled"` +} + +func (ClusterAddonsConfigParallelstoreCsiDriverConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ClusterAddonsConfigParallelstoreCsiDriverConfig)(nil)).Elem() +} + +func (i ClusterAddonsConfigParallelstoreCsiDriverConfigArgs) ToClusterAddonsConfigParallelstoreCsiDriverConfigOutput() ClusterAddonsConfigParallelstoreCsiDriverConfigOutput { + return i.ToClusterAddonsConfigParallelstoreCsiDriverConfigOutputWithContext(context.Background()) +} + +func (i ClusterAddonsConfigParallelstoreCsiDriverConfigArgs) ToClusterAddonsConfigParallelstoreCsiDriverConfigOutputWithContext(ctx context.Context) ClusterAddonsConfigParallelstoreCsiDriverConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterAddonsConfigParallelstoreCsiDriverConfigOutput) +} + +func (i ClusterAddonsConfigParallelstoreCsiDriverConfigArgs) ToClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutput() ClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutput { + return i.ToClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutputWithContext(context.Background()) +} + +func (i ClusterAddonsConfigParallelstoreCsiDriverConfigArgs) ToClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutputWithContext(ctx context.Context) ClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterAddonsConfigParallelstoreCsiDriverConfigOutput).ToClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutputWithContext(ctx) +} + +// ClusterAddonsConfigParallelstoreCsiDriverConfigPtrInput is an input type that accepts ClusterAddonsConfigParallelstoreCsiDriverConfigArgs, ClusterAddonsConfigParallelstoreCsiDriverConfigPtr and ClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutput values. +// You can construct a concrete instance of `ClusterAddonsConfigParallelstoreCsiDriverConfigPtrInput` via: +// +// ClusterAddonsConfigParallelstoreCsiDriverConfigArgs{...} +// +// or: +// +// nil +type ClusterAddonsConfigParallelstoreCsiDriverConfigPtrInput interface { + pulumi.Input + + ToClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutput() ClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutput + ToClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutputWithContext(context.Context) ClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutput +} + +type clusterAddonsConfigParallelstoreCsiDriverConfigPtrType ClusterAddonsConfigParallelstoreCsiDriverConfigArgs + +func ClusterAddonsConfigParallelstoreCsiDriverConfigPtr(v *ClusterAddonsConfigParallelstoreCsiDriverConfigArgs) ClusterAddonsConfigParallelstoreCsiDriverConfigPtrInput { + return (*clusterAddonsConfigParallelstoreCsiDriverConfigPtrType)(v) +} + +func (*clusterAddonsConfigParallelstoreCsiDriverConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ClusterAddonsConfigParallelstoreCsiDriverConfig)(nil)).Elem() +} + +func (i *clusterAddonsConfigParallelstoreCsiDriverConfigPtrType) ToClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutput() ClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutput { + return i.ToClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutputWithContext(context.Background()) +} + +func (i *clusterAddonsConfigParallelstoreCsiDriverConfigPtrType) ToClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutputWithContext(ctx context.Context) ClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutput) +} + +type ClusterAddonsConfigParallelstoreCsiDriverConfigOutput struct{ *pulumi.OutputState } + +func (ClusterAddonsConfigParallelstoreCsiDriverConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ClusterAddonsConfigParallelstoreCsiDriverConfig)(nil)).Elem() +} + +func (o ClusterAddonsConfigParallelstoreCsiDriverConfigOutput) ToClusterAddonsConfigParallelstoreCsiDriverConfigOutput() ClusterAddonsConfigParallelstoreCsiDriverConfigOutput { + return o +} + +func (o ClusterAddonsConfigParallelstoreCsiDriverConfigOutput) ToClusterAddonsConfigParallelstoreCsiDriverConfigOutputWithContext(ctx context.Context) ClusterAddonsConfigParallelstoreCsiDriverConfigOutput { + return o +} + +func (o ClusterAddonsConfigParallelstoreCsiDriverConfigOutput) ToClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutput() ClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutput { + return o.ToClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutputWithContext(context.Background()) +} + +func (o ClusterAddonsConfigParallelstoreCsiDriverConfigOutput) ToClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutputWithContext(ctx context.Context) ClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ClusterAddonsConfigParallelstoreCsiDriverConfig) *ClusterAddonsConfigParallelstoreCsiDriverConfig { + return &v + }).(ClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutput) +} + +func (o ClusterAddonsConfigParallelstoreCsiDriverConfigOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v ClusterAddonsConfigParallelstoreCsiDriverConfig) bool { return v.Enabled }).(pulumi.BoolOutput) +} + +type ClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutput struct{ *pulumi.OutputState } + +func (ClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ClusterAddonsConfigParallelstoreCsiDriverConfig)(nil)).Elem() +} + +func (o ClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutput) ToClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutput() ClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutput { + return o +} + +func (o ClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutput) ToClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutputWithContext(ctx context.Context) ClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutput { + return o +} + +func (o ClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutput) Elem() ClusterAddonsConfigParallelstoreCsiDriverConfigOutput { + return o.ApplyT(func(v *ClusterAddonsConfigParallelstoreCsiDriverConfig) ClusterAddonsConfigParallelstoreCsiDriverConfig { + if v != nil { + return *v + } + var ret ClusterAddonsConfigParallelstoreCsiDriverConfig + return ret + }).(ClusterAddonsConfigParallelstoreCsiDriverConfigOutput) +} + +func (o ClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ClusterAddonsConfigParallelstoreCsiDriverConfig) *bool { + if v == nil { + return nil + } + return &v.Enabled + }).(pulumi.BoolPtrOutput) +} + type ClusterAddonsConfigRayOperatorConfig struct { Enabled bool `pulumi:"enabled"` // The status of Ray Logging, which scrapes Ray cluster logs to Cloud Logging. Defaults to disabled; set enabled = true to enable. @@ -15839,6 +16009,301 @@ func (o ClusterConfidentialNodesPtrOutput) Enabled() pulumi.BoolPtrOutput { }).(pulumi.BoolPtrOutput) } +type ClusterControlPlaneEndpointsConfig struct { + // DNS endpoint configuration. + DnsEndpointConfig *ClusterControlPlaneEndpointsConfigDnsEndpointConfig `pulumi:"dnsEndpointConfig"` +} + +// ClusterControlPlaneEndpointsConfigInput is an input type that accepts ClusterControlPlaneEndpointsConfigArgs and ClusterControlPlaneEndpointsConfigOutput values. +// You can construct a concrete instance of `ClusterControlPlaneEndpointsConfigInput` via: +// +// ClusterControlPlaneEndpointsConfigArgs{...} +type ClusterControlPlaneEndpointsConfigInput interface { + pulumi.Input + + ToClusterControlPlaneEndpointsConfigOutput() ClusterControlPlaneEndpointsConfigOutput + ToClusterControlPlaneEndpointsConfigOutputWithContext(context.Context) ClusterControlPlaneEndpointsConfigOutput +} + +type ClusterControlPlaneEndpointsConfigArgs struct { + // DNS endpoint configuration. + DnsEndpointConfig ClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrInput `pulumi:"dnsEndpointConfig"` +} + +func (ClusterControlPlaneEndpointsConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ClusterControlPlaneEndpointsConfig)(nil)).Elem() +} + +func (i ClusterControlPlaneEndpointsConfigArgs) ToClusterControlPlaneEndpointsConfigOutput() ClusterControlPlaneEndpointsConfigOutput { + return i.ToClusterControlPlaneEndpointsConfigOutputWithContext(context.Background()) +} + +func (i ClusterControlPlaneEndpointsConfigArgs) ToClusterControlPlaneEndpointsConfigOutputWithContext(ctx context.Context) ClusterControlPlaneEndpointsConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterControlPlaneEndpointsConfigOutput) +} + +func (i ClusterControlPlaneEndpointsConfigArgs) ToClusterControlPlaneEndpointsConfigPtrOutput() ClusterControlPlaneEndpointsConfigPtrOutput { + return i.ToClusterControlPlaneEndpointsConfigPtrOutputWithContext(context.Background()) +} + +func (i ClusterControlPlaneEndpointsConfigArgs) ToClusterControlPlaneEndpointsConfigPtrOutputWithContext(ctx context.Context) ClusterControlPlaneEndpointsConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterControlPlaneEndpointsConfigOutput).ToClusterControlPlaneEndpointsConfigPtrOutputWithContext(ctx) +} + +// ClusterControlPlaneEndpointsConfigPtrInput is an input type that accepts ClusterControlPlaneEndpointsConfigArgs, ClusterControlPlaneEndpointsConfigPtr and ClusterControlPlaneEndpointsConfigPtrOutput values. +// You can construct a concrete instance of `ClusterControlPlaneEndpointsConfigPtrInput` via: +// +// ClusterControlPlaneEndpointsConfigArgs{...} +// +// or: +// +// nil +type ClusterControlPlaneEndpointsConfigPtrInput interface { + pulumi.Input + + ToClusterControlPlaneEndpointsConfigPtrOutput() ClusterControlPlaneEndpointsConfigPtrOutput + ToClusterControlPlaneEndpointsConfigPtrOutputWithContext(context.Context) ClusterControlPlaneEndpointsConfigPtrOutput +} + +type clusterControlPlaneEndpointsConfigPtrType ClusterControlPlaneEndpointsConfigArgs + +func ClusterControlPlaneEndpointsConfigPtr(v *ClusterControlPlaneEndpointsConfigArgs) ClusterControlPlaneEndpointsConfigPtrInput { + return (*clusterControlPlaneEndpointsConfigPtrType)(v) +} + +func (*clusterControlPlaneEndpointsConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ClusterControlPlaneEndpointsConfig)(nil)).Elem() +} + +func (i *clusterControlPlaneEndpointsConfigPtrType) ToClusterControlPlaneEndpointsConfigPtrOutput() ClusterControlPlaneEndpointsConfigPtrOutput { + return i.ToClusterControlPlaneEndpointsConfigPtrOutputWithContext(context.Background()) +} + +func (i *clusterControlPlaneEndpointsConfigPtrType) ToClusterControlPlaneEndpointsConfigPtrOutputWithContext(ctx context.Context) ClusterControlPlaneEndpointsConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterControlPlaneEndpointsConfigPtrOutput) +} + +type ClusterControlPlaneEndpointsConfigOutput struct{ *pulumi.OutputState } + +func (ClusterControlPlaneEndpointsConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ClusterControlPlaneEndpointsConfig)(nil)).Elem() +} + +func (o ClusterControlPlaneEndpointsConfigOutput) ToClusterControlPlaneEndpointsConfigOutput() ClusterControlPlaneEndpointsConfigOutput { + return o +} + +func (o ClusterControlPlaneEndpointsConfigOutput) ToClusterControlPlaneEndpointsConfigOutputWithContext(ctx context.Context) ClusterControlPlaneEndpointsConfigOutput { + return o +} + +func (o ClusterControlPlaneEndpointsConfigOutput) ToClusterControlPlaneEndpointsConfigPtrOutput() ClusterControlPlaneEndpointsConfigPtrOutput { + return o.ToClusterControlPlaneEndpointsConfigPtrOutputWithContext(context.Background()) +} + +func (o ClusterControlPlaneEndpointsConfigOutput) ToClusterControlPlaneEndpointsConfigPtrOutputWithContext(ctx context.Context) ClusterControlPlaneEndpointsConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ClusterControlPlaneEndpointsConfig) *ClusterControlPlaneEndpointsConfig { + return &v + }).(ClusterControlPlaneEndpointsConfigPtrOutput) +} + +// DNS endpoint configuration. +func (o ClusterControlPlaneEndpointsConfigOutput) DnsEndpointConfig() ClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutput { + return o.ApplyT(func(v ClusterControlPlaneEndpointsConfig) *ClusterControlPlaneEndpointsConfigDnsEndpointConfig { + return v.DnsEndpointConfig + }).(ClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutput) +} + +type ClusterControlPlaneEndpointsConfigPtrOutput struct{ *pulumi.OutputState } + +func (ClusterControlPlaneEndpointsConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ClusterControlPlaneEndpointsConfig)(nil)).Elem() +} + +func (o ClusterControlPlaneEndpointsConfigPtrOutput) ToClusterControlPlaneEndpointsConfigPtrOutput() ClusterControlPlaneEndpointsConfigPtrOutput { + return o +} + +func (o ClusterControlPlaneEndpointsConfigPtrOutput) ToClusterControlPlaneEndpointsConfigPtrOutputWithContext(ctx context.Context) ClusterControlPlaneEndpointsConfigPtrOutput { + return o +} + +func (o ClusterControlPlaneEndpointsConfigPtrOutput) Elem() ClusterControlPlaneEndpointsConfigOutput { + return o.ApplyT(func(v *ClusterControlPlaneEndpointsConfig) ClusterControlPlaneEndpointsConfig { + if v != nil { + return *v + } + var ret ClusterControlPlaneEndpointsConfig + return ret + }).(ClusterControlPlaneEndpointsConfigOutput) +} + +// DNS endpoint configuration. +func (o ClusterControlPlaneEndpointsConfigPtrOutput) DnsEndpointConfig() ClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutput { + return o.ApplyT(func(v *ClusterControlPlaneEndpointsConfig) *ClusterControlPlaneEndpointsConfigDnsEndpointConfig { + if v == nil { + return nil + } + return v.DnsEndpointConfig + }).(ClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutput) +} + +type ClusterControlPlaneEndpointsConfigDnsEndpointConfig struct { + // Controls whether user traffic is allowed over this endpoint. Note that GCP-managed services may still use the endpoint even if this is false. + AllowExternalTraffic *bool `pulumi:"allowExternalTraffic"` + // The cluster's DNS endpoint. + Endpoint *string `pulumi:"endpoint"` +} + +// ClusterControlPlaneEndpointsConfigDnsEndpointConfigInput is an input type that accepts ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs and ClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput values. +// You can construct a concrete instance of `ClusterControlPlaneEndpointsConfigDnsEndpointConfigInput` via: +// +// ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs{...} +type ClusterControlPlaneEndpointsConfigDnsEndpointConfigInput interface { + pulumi.Input + + ToClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput() ClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput + ToClusterControlPlaneEndpointsConfigDnsEndpointConfigOutputWithContext(context.Context) ClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput +} + +type ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs struct { + // Controls whether user traffic is allowed over this endpoint. Note that GCP-managed services may still use the endpoint even if this is false. + AllowExternalTraffic pulumi.BoolPtrInput `pulumi:"allowExternalTraffic"` + // The cluster's DNS endpoint. + Endpoint pulumi.StringPtrInput `pulumi:"endpoint"` +} + +func (ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ClusterControlPlaneEndpointsConfigDnsEndpointConfig)(nil)).Elem() +} + +func (i ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs) ToClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput() ClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput { + return i.ToClusterControlPlaneEndpointsConfigDnsEndpointConfigOutputWithContext(context.Background()) +} + +func (i ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs) ToClusterControlPlaneEndpointsConfigDnsEndpointConfigOutputWithContext(ctx context.Context) ClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput) +} + +func (i ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs) ToClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutput() ClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutput { + return i.ToClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutputWithContext(context.Background()) +} + +func (i ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs) ToClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutputWithContext(ctx context.Context) ClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput).ToClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutputWithContext(ctx) +} + +// ClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrInput is an input type that accepts ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs, ClusterControlPlaneEndpointsConfigDnsEndpointConfigPtr and ClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutput values. +// You can construct a concrete instance of `ClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrInput` via: +// +// ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs{...} +// +// or: +// +// nil +type ClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrInput interface { + pulumi.Input + + ToClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutput() ClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutput + ToClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutputWithContext(context.Context) ClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutput +} + +type clusterControlPlaneEndpointsConfigDnsEndpointConfigPtrType ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs + +func ClusterControlPlaneEndpointsConfigDnsEndpointConfigPtr(v *ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs) ClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrInput { + return (*clusterControlPlaneEndpointsConfigDnsEndpointConfigPtrType)(v) +} + +func (*clusterControlPlaneEndpointsConfigDnsEndpointConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ClusterControlPlaneEndpointsConfigDnsEndpointConfig)(nil)).Elem() +} + +func (i *clusterControlPlaneEndpointsConfigDnsEndpointConfigPtrType) ToClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutput() ClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutput { + return i.ToClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutputWithContext(context.Background()) +} + +func (i *clusterControlPlaneEndpointsConfigDnsEndpointConfigPtrType) ToClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutputWithContext(ctx context.Context) ClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutput) +} + +type ClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput struct{ *pulumi.OutputState } + +func (ClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ClusterControlPlaneEndpointsConfigDnsEndpointConfig)(nil)).Elem() +} + +func (o ClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput) ToClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput() ClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput { + return o +} + +func (o ClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput) ToClusterControlPlaneEndpointsConfigDnsEndpointConfigOutputWithContext(ctx context.Context) ClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput { + return o +} + +func (o ClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput) ToClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutput() ClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutput { + return o.ToClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutputWithContext(context.Background()) +} + +func (o ClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput) ToClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutputWithContext(ctx context.Context) ClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ClusterControlPlaneEndpointsConfigDnsEndpointConfig) *ClusterControlPlaneEndpointsConfigDnsEndpointConfig { + return &v + }).(ClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutput) +} + +// Controls whether user traffic is allowed over this endpoint. Note that GCP-managed services may still use the endpoint even if this is false. +func (o ClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput) AllowExternalTraffic() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ClusterControlPlaneEndpointsConfigDnsEndpointConfig) *bool { return v.AllowExternalTraffic }).(pulumi.BoolPtrOutput) +} + +// The cluster's DNS endpoint. +func (o ClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput) Endpoint() pulumi.StringPtrOutput { + return o.ApplyT(func(v ClusterControlPlaneEndpointsConfigDnsEndpointConfig) *string { return v.Endpoint }).(pulumi.StringPtrOutput) +} + +type ClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutput struct{ *pulumi.OutputState } + +func (ClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ClusterControlPlaneEndpointsConfigDnsEndpointConfig)(nil)).Elem() +} + +func (o ClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutput) ToClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutput() ClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutput { + return o +} + +func (o ClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutput) ToClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutputWithContext(ctx context.Context) ClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutput { + return o +} + +func (o ClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutput) Elem() ClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput { + return o.ApplyT(func(v *ClusterControlPlaneEndpointsConfigDnsEndpointConfig) ClusterControlPlaneEndpointsConfigDnsEndpointConfig { + if v != nil { + return *v + } + var ret ClusterControlPlaneEndpointsConfigDnsEndpointConfig + return ret + }).(ClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput) +} + +// Controls whether user traffic is allowed over this endpoint. Note that GCP-managed services may still use the endpoint even if this is false. +func (o ClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutput) AllowExternalTraffic() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ClusterControlPlaneEndpointsConfigDnsEndpointConfig) *bool { + if v == nil { + return nil + } + return v.AllowExternalTraffic + }).(pulumi.BoolPtrOutput) +} + +// The cluster's DNS endpoint. +func (o ClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutput) Endpoint() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ClusterControlPlaneEndpointsConfigDnsEndpointConfig) *string { + if v == nil { + return nil + } + return v.Endpoint + }).(pulumi.StringPtrOutput) +} + type ClusterCostManagementConfig struct { // Whether to enable the [cost allocation](https://cloud.google.com/kubernetes-engine/docs/how-to/cost-allocations) feature. Enabled bool `pulumi:"enabled"` @@ -19027,6 +19492,8 @@ type ClusterMasterAuthorizedNetworksConfig struct { // Whether Kubernetes master is // accessible via Google Compute Engine Public IPs. GcpPublicCidrsAccessEnabled *bool `pulumi:"gcpPublicCidrsAccessEnabled"` + // Whether authorized networks is enforced on the private endpoint or not. Defaults to false. + PrivateEndpointEnforcementEnabled *bool `pulumi:"privateEndpointEnforcementEnabled"` } // ClusterMasterAuthorizedNetworksConfigInput is an input type that accepts ClusterMasterAuthorizedNetworksConfigArgs and ClusterMasterAuthorizedNetworksConfigOutput values. @@ -19047,6 +19514,8 @@ type ClusterMasterAuthorizedNetworksConfigArgs struct { // Whether Kubernetes master is // accessible via Google Compute Engine Public IPs. GcpPublicCidrsAccessEnabled pulumi.BoolPtrInput `pulumi:"gcpPublicCidrsAccessEnabled"` + // Whether authorized networks is enforced on the private endpoint or not. Defaults to false. + PrivateEndpointEnforcementEnabled pulumi.BoolPtrInput `pulumi:"privateEndpointEnforcementEnabled"` } func (ClusterMasterAuthorizedNetworksConfigArgs) ElementType() reflect.Type { @@ -19140,6 +19609,11 @@ func (o ClusterMasterAuthorizedNetworksConfigOutput) GcpPublicCidrsAccessEnabled return o.ApplyT(func(v ClusterMasterAuthorizedNetworksConfig) *bool { return v.GcpPublicCidrsAccessEnabled }).(pulumi.BoolPtrOutput) } +// Whether authorized networks is enforced on the private endpoint or not. Defaults to false. +func (o ClusterMasterAuthorizedNetworksConfigOutput) PrivateEndpointEnforcementEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ClusterMasterAuthorizedNetworksConfig) *bool { return v.PrivateEndpointEnforcementEnabled }).(pulumi.BoolPtrOutput) +} + type ClusterMasterAuthorizedNetworksConfigPtrOutput struct{ *pulumi.OutputState } func (ClusterMasterAuthorizedNetworksConfigPtrOutput) ElementType() reflect.Type { @@ -19186,6 +19660,16 @@ func (o ClusterMasterAuthorizedNetworksConfigPtrOutput) GcpPublicCidrsAccessEnab }).(pulumi.BoolPtrOutput) } +// Whether authorized networks is enforced on the private endpoint or not. Defaults to false. +func (o ClusterMasterAuthorizedNetworksConfigPtrOutput) PrivateEndpointEnforcementEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ClusterMasterAuthorizedNetworksConfig) *bool { + if v == nil { + return nil + } + return v.PrivateEndpointEnforcementEnabled + }).(pulumi.BoolPtrOutput) +} + type ClusterMasterAuthorizedNetworksConfigCidrBlock struct { // External network that can access Kubernetes master through HTTPS. // Must be specified in CIDR notation. @@ -36567,6 +37051,276 @@ func (o ClusterTpuConfigPtrOutput) UseServiceNetworking() pulumi.BoolPtrOutput { }).(pulumi.BoolPtrOutput) } +type ClusterUserManagedKeysConfig struct { + // The Certificate Authority Service caPool to use for the aggreation CA in this cluster. + AggregationCa *string `pulumi:"aggregationCa"` + // The Certificate Authority Service caPool to use for the cluster CA in this cluster. + ClusterCa *string `pulumi:"clusterCa"` + // The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes. + ControlPlaneDiskEncryptionKey *string `pulumi:"controlPlaneDiskEncryptionKey"` + // The Certificate Authority Service caPool to use for the etcd API CA in this cluster. + EtcdApiCa *string `pulumi:"etcdApiCa"` + // The Certificate Authority Service caPool to use for the etcd peer CA in this cluster. + EtcdPeerCa *string `pulumi:"etcdPeerCa"` + // Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups. + GkeopsEtcdBackupEncryptionKey *string `pulumi:"gkeopsEtcdBackupEncryptionKey"` + // The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. + ServiceAccountSigningKeys []string `pulumi:"serviceAccountSigningKeys"` + // The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. + ServiceAccountVerificationKeys []string `pulumi:"serviceAccountVerificationKeys"` +} + +// ClusterUserManagedKeysConfigInput is an input type that accepts ClusterUserManagedKeysConfigArgs and ClusterUserManagedKeysConfigOutput values. +// You can construct a concrete instance of `ClusterUserManagedKeysConfigInput` via: +// +// ClusterUserManagedKeysConfigArgs{...} +type ClusterUserManagedKeysConfigInput interface { + pulumi.Input + + ToClusterUserManagedKeysConfigOutput() ClusterUserManagedKeysConfigOutput + ToClusterUserManagedKeysConfigOutputWithContext(context.Context) ClusterUserManagedKeysConfigOutput +} + +type ClusterUserManagedKeysConfigArgs struct { + // The Certificate Authority Service caPool to use for the aggreation CA in this cluster. + AggregationCa pulumi.StringPtrInput `pulumi:"aggregationCa"` + // The Certificate Authority Service caPool to use for the cluster CA in this cluster. + ClusterCa pulumi.StringPtrInput `pulumi:"clusterCa"` + // The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes. + ControlPlaneDiskEncryptionKey pulumi.StringPtrInput `pulumi:"controlPlaneDiskEncryptionKey"` + // The Certificate Authority Service caPool to use for the etcd API CA in this cluster. + EtcdApiCa pulumi.StringPtrInput `pulumi:"etcdApiCa"` + // The Certificate Authority Service caPool to use for the etcd peer CA in this cluster. + EtcdPeerCa pulumi.StringPtrInput `pulumi:"etcdPeerCa"` + // Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups. + GkeopsEtcdBackupEncryptionKey pulumi.StringPtrInput `pulumi:"gkeopsEtcdBackupEncryptionKey"` + // The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. + ServiceAccountSigningKeys pulumi.StringArrayInput `pulumi:"serviceAccountSigningKeys"` + // The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. + ServiceAccountVerificationKeys pulumi.StringArrayInput `pulumi:"serviceAccountVerificationKeys"` +} + +func (ClusterUserManagedKeysConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ClusterUserManagedKeysConfig)(nil)).Elem() +} + +func (i ClusterUserManagedKeysConfigArgs) ToClusterUserManagedKeysConfigOutput() ClusterUserManagedKeysConfigOutput { + return i.ToClusterUserManagedKeysConfigOutputWithContext(context.Background()) +} + +func (i ClusterUserManagedKeysConfigArgs) ToClusterUserManagedKeysConfigOutputWithContext(ctx context.Context) ClusterUserManagedKeysConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterUserManagedKeysConfigOutput) +} + +func (i ClusterUserManagedKeysConfigArgs) ToClusterUserManagedKeysConfigPtrOutput() ClusterUserManagedKeysConfigPtrOutput { + return i.ToClusterUserManagedKeysConfigPtrOutputWithContext(context.Background()) +} + +func (i ClusterUserManagedKeysConfigArgs) ToClusterUserManagedKeysConfigPtrOutputWithContext(ctx context.Context) ClusterUserManagedKeysConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterUserManagedKeysConfigOutput).ToClusterUserManagedKeysConfigPtrOutputWithContext(ctx) +} + +// ClusterUserManagedKeysConfigPtrInput is an input type that accepts ClusterUserManagedKeysConfigArgs, ClusterUserManagedKeysConfigPtr and ClusterUserManagedKeysConfigPtrOutput values. +// You can construct a concrete instance of `ClusterUserManagedKeysConfigPtrInput` via: +// +// ClusterUserManagedKeysConfigArgs{...} +// +// or: +// +// nil +type ClusterUserManagedKeysConfigPtrInput interface { + pulumi.Input + + ToClusterUserManagedKeysConfigPtrOutput() ClusterUserManagedKeysConfigPtrOutput + ToClusterUserManagedKeysConfigPtrOutputWithContext(context.Context) ClusterUserManagedKeysConfigPtrOutput +} + +type clusterUserManagedKeysConfigPtrType ClusterUserManagedKeysConfigArgs + +func ClusterUserManagedKeysConfigPtr(v *ClusterUserManagedKeysConfigArgs) ClusterUserManagedKeysConfigPtrInput { + return (*clusterUserManagedKeysConfigPtrType)(v) +} + +func (*clusterUserManagedKeysConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ClusterUserManagedKeysConfig)(nil)).Elem() +} + +func (i *clusterUserManagedKeysConfigPtrType) ToClusterUserManagedKeysConfigPtrOutput() ClusterUserManagedKeysConfigPtrOutput { + return i.ToClusterUserManagedKeysConfigPtrOutputWithContext(context.Background()) +} + +func (i *clusterUserManagedKeysConfigPtrType) ToClusterUserManagedKeysConfigPtrOutputWithContext(ctx context.Context) ClusterUserManagedKeysConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterUserManagedKeysConfigPtrOutput) +} + +type ClusterUserManagedKeysConfigOutput struct{ *pulumi.OutputState } + +func (ClusterUserManagedKeysConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ClusterUserManagedKeysConfig)(nil)).Elem() +} + +func (o ClusterUserManagedKeysConfigOutput) ToClusterUserManagedKeysConfigOutput() ClusterUserManagedKeysConfigOutput { + return o +} + +func (o ClusterUserManagedKeysConfigOutput) ToClusterUserManagedKeysConfigOutputWithContext(ctx context.Context) ClusterUserManagedKeysConfigOutput { + return o +} + +func (o ClusterUserManagedKeysConfigOutput) ToClusterUserManagedKeysConfigPtrOutput() ClusterUserManagedKeysConfigPtrOutput { + return o.ToClusterUserManagedKeysConfigPtrOutputWithContext(context.Background()) +} + +func (o ClusterUserManagedKeysConfigOutput) ToClusterUserManagedKeysConfigPtrOutputWithContext(ctx context.Context) ClusterUserManagedKeysConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ClusterUserManagedKeysConfig) *ClusterUserManagedKeysConfig { + return &v + }).(ClusterUserManagedKeysConfigPtrOutput) +} + +// The Certificate Authority Service caPool to use for the aggreation CA in this cluster. +func (o ClusterUserManagedKeysConfigOutput) AggregationCa() pulumi.StringPtrOutput { + return o.ApplyT(func(v ClusterUserManagedKeysConfig) *string { return v.AggregationCa }).(pulumi.StringPtrOutput) +} + +// The Certificate Authority Service caPool to use for the cluster CA in this cluster. +func (o ClusterUserManagedKeysConfigOutput) ClusterCa() pulumi.StringPtrOutput { + return o.ApplyT(func(v ClusterUserManagedKeysConfig) *string { return v.ClusterCa }).(pulumi.StringPtrOutput) +} + +// The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes. +func (o ClusterUserManagedKeysConfigOutput) ControlPlaneDiskEncryptionKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v ClusterUserManagedKeysConfig) *string { return v.ControlPlaneDiskEncryptionKey }).(pulumi.StringPtrOutput) +} + +// The Certificate Authority Service caPool to use for the etcd API CA in this cluster. +func (o ClusterUserManagedKeysConfigOutput) EtcdApiCa() pulumi.StringPtrOutput { + return o.ApplyT(func(v ClusterUserManagedKeysConfig) *string { return v.EtcdApiCa }).(pulumi.StringPtrOutput) +} + +// The Certificate Authority Service caPool to use for the etcd peer CA in this cluster. +func (o ClusterUserManagedKeysConfigOutput) EtcdPeerCa() pulumi.StringPtrOutput { + return o.ApplyT(func(v ClusterUserManagedKeysConfig) *string { return v.EtcdPeerCa }).(pulumi.StringPtrOutput) +} + +// Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups. +func (o ClusterUserManagedKeysConfigOutput) GkeopsEtcdBackupEncryptionKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v ClusterUserManagedKeysConfig) *string { return v.GkeopsEtcdBackupEncryptionKey }).(pulumi.StringPtrOutput) +} + +// The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. +func (o ClusterUserManagedKeysConfigOutput) ServiceAccountSigningKeys() pulumi.StringArrayOutput { + return o.ApplyT(func(v ClusterUserManagedKeysConfig) []string { return v.ServiceAccountSigningKeys }).(pulumi.StringArrayOutput) +} + +// The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. +func (o ClusterUserManagedKeysConfigOutput) ServiceAccountVerificationKeys() pulumi.StringArrayOutput { + return o.ApplyT(func(v ClusterUserManagedKeysConfig) []string { return v.ServiceAccountVerificationKeys }).(pulumi.StringArrayOutput) +} + +type ClusterUserManagedKeysConfigPtrOutput struct{ *pulumi.OutputState } + +func (ClusterUserManagedKeysConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ClusterUserManagedKeysConfig)(nil)).Elem() +} + +func (o ClusterUserManagedKeysConfigPtrOutput) ToClusterUserManagedKeysConfigPtrOutput() ClusterUserManagedKeysConfigPtrOutput { + return o +} + +func (o ClusterUserManagedKeysConfigPtrOutput) ToClusterUserManagedKeysConfigPtrOutputWithContext(ctx context.Context) ClusterUserManagedKeysConfigPtrOutput { + return o +} + +func (o ClusterUserManagedKeysConfigPtrOutput) Elem() ClusterUserManagedKeysConfigOutput { + return o.ApplyT(func(v *ClusterUserManagedKeysConfig) ClusterUserManagedKeysConfig { + if v != nil { + return *v + } + var ret ClusterUserManagedKeysConfig + return ret + }).(ClusterUserManagedKeysConfigOutput) +} + +// The Certificate Authority Service caPool to use for the aggreation CA in this cluster. +func (o ClusterUserManagedKeysConfigPtrOutput) AggregationCa() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ClusterUserManagedKeysConfig) *string { + if v == nil { + return nil + } + return v.AggregationCa + }).(pulumi.StringPtrOutput) +} + +// The Certificate Authority Service caPool to use for the cluster CA in this cluster. +func (o ClusterUserManagedKeysConfigPtrOutput) ClusterCa() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ClusterUserManagedKeysConfig) *string { + if v == nil { + return nil + } + return v.ClusterCa + }).(pulumi.StringPtrOutput) +} + +// The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes. +func (o ClusterUserManagedKeysConfigPtrOutput) ControlPlaneDiskEncryptionKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ClusterUserManagedKeysConfig) *string { + if v == nil { + return nil + } + return v.ControlPlaneDiskEncryptionKey + }).(pulumi.StringPtrOutput) +} + +// The Certificate Authority Service caPool to use for the etcd API CA in this cluster. +func (o ClusterUserManagedKeysConfigPtrOutput) EtcdApiCa() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ClusterUserManagedKeysConfig) *string { + if v == nil { + return nil + } + return v.EtcdApiCa + }).(pulumi.StringPtrOutput) +} + +// The Certificate Authority Service caPool to use for the etcd peer CA in this cluster. +func (o ClusterUserManagedKeysConfigPtrOutput) EtcdPeerCa() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ClusterUserManagedKeysConfig) *string { + if v == nil { + return nil + } + return v.EtcdPeerCa + }).(pulumi.StringPtrOutput) +} + +// Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups. +func (o ClusterUserManagedKeysConfigPtrOutput) GkeopsEtcdBackupEncryptionKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ClusterUserManagedKeysConfig) *string { + if v == nil { + return nil + } + return v.GkeopsEtcdBackupEncryptionKey + }).(pulumi.StringPtrOutput) +} + +// The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. +func (o ClusterUserManagedKeysConfigPtrOutput) ServiceAccountSigningKeys() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ClusterUserManagedKeysConfig) []string { + if v == nil { + return nil + } + return v.ServiceAccountSigningKeys + }).(pulumi.StringArrayOutput) +} + +// The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. +func (o ClusterUserManagedKeysConfigPtrOutput) ServiceAccountVerificationKeys() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ClusterUserManagedKeysConfig) []string { + if v == nil { + return nil + } + return v.ServiceAccountVerificationKeys + }).(pulumi.StringArrayOutput) +} + type ClusterVerticalPodAutoscaling struct { // Enables vertical pod autoscaling Enabled bool `pulumi:"enabled"` @@ -43909,6 +44663,8 @@ type GetClusterAddonsConfig struct { KalmConfigs []GetClusterAddonsConfigKalmConfig `pulumi:"kalmConfigs"` // Whether we should enable the network policy addon for the master. This must be enabled in order to enable network policy for the nodes. To enable this, you must also define a networkPolicy block, otherwise nothing will happen. It can only be disabled if the nodes already do not have network policies enabled. Defaults to disabled; set disabled = false to enable. NetworkPolicyConfigs []GetClusterAddonsConfigNetworkPolicyConfig `pulumi:"networkPolicyConfigs"` + // The status of the Parallelstore CSI driver addon, which allows the usage of Parallelstore instances as volumes. Defaults to disabled; set enabled = true to enable. + ParallelstoreCsiDriverConfigs []GetClusterAddonsConfigParallelstoreCsiDriverConfig `pulumi:"parallelstoreCsiDriverConfigs"` // The status of the Ray Operator addon, which enabled management of Ray AI/ML jobs on GKE. Defaults to disabled; set enabled = true to enable. RayOperatorConfigs []GetClusterAddonsConfigRayOperatorConfig `pulumi:"rayOperatorConfigs"` // The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. Defaults to disabled; set enabled = true to enable. @@ -43951,6 +44707,8 @@ type GetClusterAddonsConfigArgs struct { KalmConfigs GetClusterAddonsConfigKalmConfigArrayInput `pulumi:"kalmConfigs"` // Whether we should enable the network policy addon for the master. This must be enabled in order to enable network policy for the nodes. To enable this, you must also define a networkPolicy block, otherwise nothing will happen. It can only be disabled if the nodes already do not have network policies enabled. Defaults to disabled; set disabled = false to enable. NetworkPolicyConfigs GetClusterAddonsConfigNetworkPolicyConfigArrayInput `pulumi:"networkPolicyConfigs"` + // The status of the Parallelstore CSI driver addon, which allows the usage of Parallelstore instances as volumes. Defaults to disabled; set enabled = true to enable. + ParallelstoreCsiDriverConfigs GetClusterAddonsConfigParallelstoreCsiDriverConfigArrayInput `pulumi:"parallelstoreCsiDriverConfigs"` // The status of the Ray Operator addon, which enabled management of Ray AI/ML jobs on GKE. Defaults to disabled; set enabled = true to enable. RayOperatorConfigs GetClusterAddonsConfigRayOperatorConfigArrayInput `pulumi:"rayOperatorConfigs"` // The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. Defaults to disabled; set enabled = true to enable. @@ -44082,6 +44840,13 @@ func (o GetClusterAddonsConfigOutput) NetworkPolicyConfigs() GetClusterAddonsCon }).(GetClusterAddonsConfigNetworkPolicyConfigArrayOutput) } +// The status of the Parallelstore CSI driver addon, which allows the usage of Parallelstore instances as volumes. Defaults to disabled; set enabled = true to enable. +func (o GetClusterAddonsConfigOutput) ParallelstoreCsiDriverConfigs() GetClusterAddonsConfigParallelstoreCsiDriverConfigArrayOutput { + return o.ApplyT(func(v GetClusterAddonsConfig) []GetClusterAddonsConfigParallelstoreCsiDriverConfig { + return v.ParallelstoreCsiDriverConfigs + }).(GetClusterAddonsConfigParallelstoreCsiDriverConfigArrayOutput) +} + // The status of the Ray Operator addon, which enabled management of Ray AI/ML jobs on GKE. Defaults to disabled; set enabled = true to enable. func (o GetClusterAddonsConfigOutput) RayOperatorConfigs() GetClusterAddonsConfigRayOperatorConfigArrayOutput { return o.ApplyT(func(v GetClusterAddonsConfig) []GetClusterAddonsConfigRayOperatorConfig { return v.RayOperatorConfigs }).(GetClusterAddonsConfigRayOperatorConfigArrayOutput) @@ -45258,6 +46023,100 @@ func (o GetClusterAddonsConfigNetworkPolicyConfigArrayOutput) Index(i pulumi.Int }).(GetClusterAddonsConfigNetworkPolicyConfigOutput) } +type GetClusterAddonsConfigParallelstoreCsiDriverConfig struct { + Enabled bool `pulumi:"enabled"` +} + +// GetClusterAddonsConfigParallelstoreCsiDriverConfigInput is an input type that accepts GetClusterAddonsConfigParallelstoreCsiDriverConfigArgs and GetClusterAddonsConfigParallelstoreCsiDriverConfigOutput values. +// You can construct a concrete instance of `GetClusterAddonsConfigParallelstoreCsiDriverConfigInput` via: +// +// GetClusterAddonsConfigParallelstoreCsiDriverConfigArgs{...} +type GetClusterAddonsConfigParallelstoreCsiDriverConfigInput interface { + pulumi.Input + + ToGetClusterAddonsConfigParallelstoreCsiDriverConfigOutput() GetClusterAddonsConfigParallelstoreCsiDriverConfigOutput + ToGetClusterAddonsConfigParallelstoreCsiDriverConfigOutputWithContext(context.Context) GetClusterAddonsConfigParallelstoreCsiDriverConfigOutput +} + +type GetClusterAddonsConfigParallelstoreCsiDriverConfigArgs struct { + Enabled pulumi.BoolInput `pulumi:"enabled"` +} + +func (GetClusterAddonsConfigParallelstoreCsiDriverConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterAddonsConfigParallelstoreCsiDriverConfig)(nil)).Elem() +} + +func (i GetClusterAddonsConfigParallelstoreCsiDriverConfigArgs) ToGetClusterAddonsConfigParallelstoreCsiDriverConfigOutput() GetClusterAddonsConfigParallelstoreCsiDriverConfigOutput { + return i.ToGetClusterAddonsConfigParallelstoreCsiDriverConfigOutputWithContext(context.Background()) +} + +func (i GetClusterAddonsConfigParallelstoreCsiDriverConfigArgs) ToGetClusterAddonsConfigParallelstoreCsiDriverConfigOutputWithContext(ctx context.Context) GetClusterAddonsConfigParallelstoreCsiDriverConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterAddonsConfigParallelstoreCsiDriverConfigOutput) +} + +// GetClusterAddonsConfigParallelstoreCsiDriverConfigArrayInput is an input type that accepts GetClusterAddonsConfigParallelstoreCsiDriverConfigArray and GetClusterAddonsConfigParallelstoreCsiDriverConfigArrayOutput values. +// You can construct a concrete instance of `GetClusterAddonsConfigParallelstoreCsiDriverConfigArrayInput` via: +// +// GetClusterAddonsConfigParallelstoreCsiDriverConfigArray{ GetClusterAddonsConfigParallelstoreCsiDriverConfigArgs{...} } +type GetClusterAddonsConfigParallelstoreCsiDriverConfigArrayInput interface { + pulumi.Input + + ToGetClusterAddonsConfigParallelstoreCsiDriverConfigArrayOutput() GetClusterAddonsConfigParallelstoreCsiDriverConfigArrayOutput + ToGetClusterAddonsConfigParallelstoreCsiDriverConfigArrayOutputWithContext(context.Context) GetClusterAddonsConfigParallelstoreCsiDriverConfigArrayOutput +} + +type GetClusterAddonsConfigParallelstoreCsiDriverConfigArray []GetClusterAddonsConfigParallelstoreCsiDriverConfigInput + +func (GetClusterAddonsConfigParallelstoreCsiDriverConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterAddonsConfigParallelstoreCsiDriverConfig)(nil)).Elem() +} + +func (i GetClusterAddonsConfigParallelstoreCsiDriverConfigArray) ToGetClusterAddonsConfigParallelstoreCsiDriverConfigArrayOutput() GetClusterAddonsConfigParallelstoreCsiDriverConfigArrayOutput { + return i.ToGetClusterAddonsConfigParallelstoreCsiDriverConfigArrayOutputWithContext(context.Background()) +} + +func (i GetClusterAddonsConfigParallelstoreCsiDriverConfigArray) ToGetClusterAddonsConfigParallelstoreCsiDriverConfigArrayOutputWithContext(ctx context.Context) GetClusterAddonsConfigParallelstoreCsiDriverConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterAddonsConfigParallelstoreCsiDriverConfigArrayOutput) +} + +type GetClusterAddonsConfigParallelstoreCsiDriverConfigOutput struct{ *pulumi.OutputState } + +func (GetClusterAddonsConfigParallelstoreCsiDriverConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterAddonsConfigParallelstoreCsiDriverConfig)(nil)).Elem() +} + +func (o GetClusterAddonsConfigParallelstoreCsiDriverConfigOutput) ToGetClusterAddonsConfigParallelstoreCsiDriverConfigOutput() GetClusterAddonsConfigParallelstoreCsiDriverConfigOutput { + return o +} + +func (o GetClusterAddonsConfigParallelstoreCsiDriverConfigOutput) ToGetClusterAddonsConfigParallelstoreCsiDriverConfigOutputWithContext(ctx context.Context) GetClusterAddonsConfigParallelstoreCsiDriverConfigOutput { + return o +} + +func (o GetClusterAddonsConfigParallelstoreCsiDriverConfigOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v GetClusterAddonsConfigParallelstoreCsiDriverConfig) bool { return v.Enabled }).(pulumi.BoolOutput) +} + +type GetClusterAddonsConfigParallelstoreCsiDriverConfigArrayOutput struct{ *pulumi.OutputState } + +func (GetClusterAddonsConfigParallelstoreCsiDriverConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterAddonsConfigParallelstoreCsiDriverConfig)(nil)).Elem() +} + +func (o GetClusterAddonsConfigParallelstoreCsiDriverConfigArrayOutput) ToGetClusterAddonsConfigParallelstoreCsiDriverConfigArrayOutput() GetClusterAddonsConfigParallelstoreCsiDriverConfigArrayOutput { + return o +} + +func (o GetClusterAddonsConfigParallelstoreCsiDriverConfigArrayOutput) ToGetClusterAddonsConfigParallelstoreCsiDriverConfigArrayOutputWithContext(ctx context.Context) GetClusterAddonsConfigParallelstoreCsiDriverConfigArrayOutput { + return o +} + +func (o GetClusterAddonsConfigParallelstoreCsiDriverConfigArrayOutput) Index(i pulumi.IntInput) GetClusterAddonsConfigParallelstoreCsiDriverConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetClusterAddonsConfigParallelstoreCsiDriverConfig { + return vs[0].([]GetClusterAddonsConfigParallelstoreCsiDriverConfig)[vs[1].(int)] + }).(GetClusterAddonsConfigParallelstoreCsiDriverConfigOutput) +} + type GetClusterAddonsConfigRayOperatorConfig struct { Enabled bool `pulumi:"enabled"` // The status of Ray Logging, which scrapes Ray cluster logs to Cloud Logging. Defaults to disabled; set enabled = true to enable. @@ -47195,6 +48054,211 @@ func (o GetClusterConfidentialNodeArrayOutput) Index(i pulumi.IntInput) GetClust }).(GetClusterConfidentialNodeOutput) } +type GetClusterControlPlaneEndpointsConfig struct { + // DNS endpoint configuration. + DnsEndpointConfigs []GetClusterControlPlaneEndpointsConfigDnsEndpointConfig `pulumi:"dnsEndpointConfigs"` +} + +// GetClusterControlPlaneEndpointsConfigInput is an input type that accepts GetClusterControlPlaneEndpointsConfigArgs and GetClusterControlPlaneEndpointsConfigOutput values. +// You can construct a concrete instance of `GetClusterControlPlaneEndpointsConfigInput` via: +// +// GetClusterControlPlaneEndpointsConfigArgs{...} +type GetClusterControlPlaneEndpointsConfigInput interface { + pulumi.Input + + ToGetClusterControlPlaneEndpointsConfigOutput() GetClusterControlPlaneEndpointsConfigOutput + ToGetClusterControlPlaneEndpointsConfigOutputWithContext(context.Context) GetClusterControlPlaneEndpointsConfigOutput +} + +type GetClusterControlPlaneEndpointsConfigArgs struct { + // DNS endpoint configuration. + DnsEndpointConfigs GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArrayInput `pulumi:"dnsEndpointConfigs"` +} + +func (GetClusterControlPlaneEndpointsConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterControlPlaneEndpointsConfig)(nil)).Elem() +} + +func (i GetClusterControlPlaneEndpointsConfigArgs) ToGetClusterControlPlaneEndpointsConfigOutput() GetClusterControlPlaneEndpointsConfigOutput { + return i.ToGetClusterControlPlaneEndpointsConfigOutputWithContext(context.Background()) +} + +func (i GetClusterControlPlaneEndpointsConfigArgs) ToGetClusterControlPlaneEndpointsConfigOutputWithContext(ctx context.Context) GetClusterControlPlaneEndpointsConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterControlPlaneEndpointsConfigOutput) +} + +// GetClusterControlPlaneEndpointsConfigArrayInput is an input type that accepts GetClusterControlPlaneEndpointsConfigArray and GetClusterControlPlaneEndpointsConfigArrayOutput values. +// You can construct a concrete instance of `GetClusterControlPlaneEndpointsConfigArrayInput` via: +// +// GetClusterControlPlaneEndpointsConfigArray{ GetClusterControlPlaneEndpointsConfigArgs{...} } +type GetClusterControlPlaneEndpointsConfigArrayInput interface { + pulumi.Input + + ToGetClusterControlPlaneEndpointsConfigArrayOutput() GetClusterControlPlaneEndpointsConfigArrayOutput + ToGetClusterControlPlaneEndpointsConfigArrayOutputWithContext(context.Context) GetClusterControlPlaneEndpointsConfigArrayOutput +} + +type GetClusterControlPlaneEndpointsConfigArray []GetClusterControlPlaneEndpointsConfigInput + +func (GetClusterControlPlaneEndpointsConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterControlPlaneEndpointsConfig)(nil)).Elem() +} + +func (i GetClusterControlPlaneEndpointsConfigArray) ToGetClusterControlPlaneEndpointsConfigArrayOutput() GetClusterControlPlaneEndpointsConfigArrayOutput { + return i.ToGetClusterControlPlaneEndpointsConfigArrayOutputWithContext(context.Background()) +} + +func (i GetClusterControlPlaneEndpointsConfigArray) ToGetClusterControlPlaneEndpointsConfigArrayOutputWithContext(ctx context.Context) GetClusterControlPlaneEndpointsConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterControlPlaneEndpointsConfigArrayOutput) +} + +type GetClusterControlPlaneEndpointsConfigOutput struct{ *pulumi.OutputState } + +func (GetClusterControlPlaneEndpointsConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterControlPlaneEndpointsConfig)(nil)).Elem() +} + +func (o GetClusterControlPlaneEndpointsConfigOutput) ToGetClusterControlPlaneEndpointsConfigOutput() GetClusterControlPlaneEndpointsConfigOutput { + return o +} + +func (o GetClusterControlPlaneEndpointsConfigOutput) ToGetClusterControlPlaneEndpointsConfigOutputWithContext(ctx context.Context) GetClusterControlPlaneEndpointsConfigOutput { + return o +} + +// DNS endpoint configuration. +func (o GetClusterControlPlaneEndpointsConfigOutput) DnsEndpointConfigs() GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArrayOutput { + return o.ApplyT(func(v GetClusterControlPlaneEndpointsConfig) []GetClusterControlPlaneEndpointsConfigDnsEndpointConfig { + return v.DnsEndpointConfigs + }).(GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArrayOutput) +} + +type GetClusterControlPlaneEndpointsConfigArrayOutput struct{ *pulumi.OutputState } + +func (GetClusterControlPlaneEndpointsConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterControlPlaneEndpointsConfig)(nil)).Elem() +} + +func (o GetClusterControlPlaneEndpointsConfigArrayOutput) ToGetClusterControlPlaneEndpointsConfigArrayOutput() GetClusterControlPlaneEndpointsConfigArrayOutput { + return o +} + +func (o GetClusterControlPlaneEndpointsConfigArrayOutput) ToGetClusterControlPlaneEndpointsConfigArrayOutputWithContext(ctx context.Context) GetClusterControlPlaneEndpointsConfigArrayOutput { + return o +} + +func (o GetClusterControlPlaneEndpointsConfigArrayOutput) Index(i pulumi.IntInput) GetClusterControlPlaneEndpointsConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetClusterControlPlaneEndpointsConfig { + return vs[0].([]GetClusterControlPlaneEndpointsConfig)[vs[1].(int)] + }).(GetClusterControlPlaneEndpointsConfigOutput) +} + +type GetClusterControlPlaneEndpointsConfigDnsEndpointConfig struct { + // Controls whether user traffic is allowed over this endpoint. Note that GCP-managed services may still use the endpoint even if this is false. + AllowExternalTraffic bool `pulumi:"allowExternalTraffic"` + // The cluster's DNS endpoint. + Endpoint string `pulumi:"endpoint"` +} + +// GetClusterControlPlaneEndpointsConfigDnsEndpointConfigInput is an input type that accepts GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs and GetClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput values. +// You can construct a concrete instance of `GetClusterControlPlaneEndpointsConfigDnsEndpointConfigInput` via: +// +// GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs{...} +type GetClusterControlPlaneEndpointsConfigDnsEndpointConfigInput interface { + pulumi.Input + + ToGetClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput() GetClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput + ToGetClusterControlPlaneEndpointsConfigDnsEndpointConfigOutputWithContext(context.Context) GetClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput +} + +type GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs struct { + // Controls whether user traffic is allowed over this endpoint. Note that GCP-managed services may still use the endpoint even if this is false. + AllowExternalTraffic pulumi.BoolInput `pulumi:"allowExternalTraffic"` + // The cluster's DNS endpoint. + Endpoint pulumi.StringInput `pulumi:"endpoint"` +} + +func (GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterControlPlaneEndpointsConfigDnsEndpointConfig)(nil)).Elem() +} + +func (i GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs) ToGetClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput() GetClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput { + return i.ToGetClusterControlPlaneEndpointsConfigDnsEndpointConfigOutputWithContext(context.Background()) +} + +func (i GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs) ToGetClusterControlPlaneEndpointsConfigDnsEndpointConfigOutputWithContext(ctx context.Context) GetClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput) +} + +// GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArrayInput is an input type that accepts GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArray and GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArrayOutput values. +// You can construct a concrete instance of `GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArrayInput` via: +// +// GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArray{ GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs{...} } +type GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArrayInput interface { + pulumi.Input + + ToGetClusterControlPlaneEndpointsConfigDnsEndpointConfigArrayOutput() GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArrayOutput + ToGetClusterControlPlaneEndpointsConfigDnsEndpointConfigArrayOutputWithContext(context.Context) GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArrayOutput +} + +type GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArray []GetClusterControlPlaneEndpointsConfigDnsEndpointConfigInput + +func (GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterControlPlaneEndpointsConfigDnsEndpointConfig)(nil)).Elem() +} + +func (i GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArray) ToGetClusterControlPlaneEndpointsConfigDnsEndpointConfigArrayOutput() GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArrayOutput { + return i.ToGetClusterControlPlaneEndpointsConfigDnsEndpointConfigArrayOutputWithContext(context.Background()) +} + +func (i GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArray) ToGetClusterControlPlaneEndpointsConfigDnsEndpointConfigArrayOutputWithContext(ctx context.Context) GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArrayOutput) +} + +type GetClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput struct{ *pulumi.OutputState } + +func (GetClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterControlPlaneEndpointsConfigDnsEndpointConfig)(nil)).Elem() +} + +func (o GetClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput) ToGetClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput() GetClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput { + return o +} + +func (o GetClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput) ToGetClusterControlPlaneEndpointsConfigDnsEndpointConfigOutputWithContext(ctx context.Context) GetClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput { + return o +} + +// Controls whether user traffic is allowed over this endpoint. Note that GCP-managed services may still use the endpoint even if this is false. +func (o GetClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput) AllowExternalTraffic() pulumi.BoolOutput { + return o.ApplyT(func(v GetClusterControlPlaneEndpointsConfigDnsEndpointConfig) bool { return v.AllowExternalTraffic }).(pulumi.BoolOutput) +} + +// The cluster's DNS endpoint. +func (o GetClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput) Endpoint() pulumi.StringOutput { + return o.ApplyT(func(v GetClusterControlPlaneEndpointsConfigDnsEndpointConfig) string { return v.Endpoint }).(pulumi.StringOutput) +} + +type GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArrayOutput struct{ *pulumi.OutputState } + +func (GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterControlPlaneEndpointsConfigDnsEndpointConfig)(nil)).Elem() +} + +func (o GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArrayOutput) ToGetClusterControlPlaneEndpointsConfigDnsEndpointConfigArrayOutput() GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArrayOutput { + return o +} + +func (o GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArrayOutput) ToGetClusterControlPlaneEndpointsConfigDnsEndpointConfigArrayOutputWithContext(ctx context.Context) GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArrayOutput { + return o +} + +func (o GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArrayOutput) Index(i pulumi.IntInput) GetClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetClusterControlPlaneEndpointsConfigDnsEndpointConfig { + return vs[0].([]GetClusterControlPlaneEndpointsConfigDnsEndpointConfig)[vs[1].(int)] + }).(GetClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput) +} + type GetClusterCostManagementConfig struct { // Whether to enable GKE cost allocation. When you enable GKE cost allocation, the cluster name and namespace of your GKE workloads appear in the labels field of the billing export to BigQuery. Defaults to false. Enabled bool `pulumi:"enabled"` @@ -49258,6 +50322,8 @@ type GetClusterMasterAuthorizedNetworksConfig struct { CidrBlocks []GetClusterMasterAuthorizedNetworksConfigCidrBlock `pulumi:"cidrBlocks"` // Whether Kubernetes master is accessible via Google Compute Engine Public IPs. GcpPublicCidrsAccessEnabled bool `pulumi:"gcpPublicCidrsAccessEnabled"` + // Whether authorized networks is enforced on the private endpoint or not. Defaults to false. + PrivateEndpointEnforcementEnabled bool `pulumi:"privateEndpointEnforcementEnabled"` } // GetClusterMasterAuthorizedNetworksConfigInput is an input type that accepts GetClusterMasterAuthorizedNetworksConfigArgs and GetClusterMasterAuthorizedNetworksConfigOutput values. @@ -49276,6 +50342,8 @@ type GetClusterMasterAuthorizedNetworksConfigArgs struct { CidrBlocks GetClusterMasterAuthorizedNetworksConfigCidrBlockArrayInput `pulumi:"cidrBlocks"` // Whether Kubernetes master is accessible via Google Compute Engine Public IPs. GcpPublicCidrsAccessEnabled pulumi.BoolInput `pulumi:"gcpPublicCidrsAccessEnabled"` + // Whether authorized networks is enforced on the private endpoint or not. Defaults to false. + PrivateEndpointEnforcementEnabled pulumi.BoolInput `pulumi:"privateEndpointEnforcementEnabled"` } func (GetClusterMasterAuthorizedNetworksConfigArgs) ElementType() reflect.Type { @@ -49341,6 +50409,11 @@ func (o GetClusterMasterAuthorizedNetworksConfigOutput) GcpPublicCidrsAccessEnab return o.ApplyT(func(v GetClusterMasterAuthorizedNetworksConfig) bool { return v.GcpPublicCidrsAccessEnabled }).(pulumi.BoolOutput) } +// Whether authorized networks is enforced on the private endpoint or not. Defaults to false. +func (o GetClusterMasterAuthorizedNetworksConfigOutput) PrivateEndpointEnforcementEnabled() pulumi.BoolOutput { + return o.ApplyT(func(v GetClusterMasterAuthorizedNetworksConfig) bool { return v.PrivateEndpointEnforcementEnabled }).(pulumi.BoolOutput) +} + type GetClusterMasterAuthorizedNetworksConfigArrayOutput struct{ *pulumi.OutputState } func (GetClusterMasterAuthorizedNetworksConfigArrayOutput) ElementType() reflect.Type { @@ -61163,6 +62236,166 @@ func (o GetClusterTpuConfigArrayOutput) Index(i pulumi.IntInput) GetClusterTpuCo }).(GetClusterTpuConfigOutput) } +type GetClusterUserManagedKeysConfig struct { + // The Certificate Authority Service caPool to use for the aggreation CA in this cluster. + AggregationCa string `pulumi:"aggregationCa"` + // The Certificate Authority Service caPool to use for the cluster CA in this cluster. + ClusterCa string `pulumi:"clusterCa"` + // The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes. + ControlPlaneDiskEncryptionKey string `pulumi:"controlPlaneDiskEncryptionKey"` + // The Certificate Authority Service caPool to use for the etcd API CA in this cluster. + EtcdApiCa string `pulumi:"etcdApiCa"` + // The Certificate Authority Service caPool to use for the etcd peer CA in this cluster. + EtcdPeerCa string `pulumi:"etcdPeerCa"` + // Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups. + GkeopsEtcdBackupEncryptionKey string `pulumi:"gkeopsEtcdBackupEncryptionKey"` + // The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. + ServiceAccountSigningKeys []string `pulumi:"serviceAccountSigningKeys"` + // The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. + ServiceAccountVerificationKeys []string `pulumi:"serviceAccountVerificationKeys"` +} + +// GetClusterUserManagedKeysConfigInput is an input type that accepts GetClusterUserManagedKeysConfigArgs and GetClusterUserManagedKeysConfigOutput values. +// You can construct a concrete instance of `GetClusterUserManagedKeysConfigInput` via: +// +// GetClusterUserManagedKeysConfigArgs{...} +type GetClusterUserManagedKeysConfigInput interface { + pulumi.Input + + ToGetClusterUserManagedKeysConfigOutput() GetClusterUserManagedKeysConfigOutput + ToGetClusterUserManagedKeysConfigOutputWithContext(context.Context) GetClusterUserManagedKeysConfigOutput +} + +type GetClusterUserManagedKeysConfigArgs struct { + // The Certificate Authority Service caPool to use for the aggreation CA in this cluster. + AggregationCa pulumi.StringInput `pulumi:"aggregationCa"` + // The Certificate Authority Service caPool to use for the cluster CA in this cluster. + ClusterCa pulumi.StringInput `pulumi:"clusterCa"` + // The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes. + ControlPlaneDiskEncryptionKey pulumi.StringInput `pulumi:"controlPlaneDiskEncryptionKey"` + // The Certificate Authority Service caPool to use for the etcd API CA in this cluster. + EtcdApiCa pulumi.StringInput `pulumi:"etcdApiCa"` + // The Certificate Authority Service caPool to use for the etcd peer CA in this cluster. + EtcdPeerCa pulumi.StringInput `pulumi:"etcdPeerCa"` + // Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups. + GkeopsEtcdBackupEncryptionKey pulumi.StringInput `pulumi:"gkeopsEtcdBackupEncryptionKey"` + // The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. + ServiceAccountSigningKeys pulumi.StringArrayInput `pulumi:"serviceAccountSigningKeys"` + // The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. + ServiceAccountVerificationKeys pulumi.StringArrayInput `pulumi:"serviceAccountVerificationKeys"` +} + +func (GetClusterUserManagedKeysConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterUserManagedKeysConfig)(nil)).Elem() +} + +func (i GetClusterUserManagedKeysConfigArgs) ToGetClusterUserManagedKeysConfigOutput() GetClusterUserManagedKeysConfigOutput { + return i.ToGetClusterUserManagedKeysConfigOutputWithContext(context.Background()) +} + +func (i GetClusterUserManagedKeysConfigArgs) ToGetClusterUserManagedKeysConfigOutputWithContext(ctx context.Context) GetClusterUserManagedKeysConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterUserManagedKeysConfigOutput) +} + +// GetClusterUserManagedKeysConfigArrayInput is an input type that accepts GetClusterUserManagedKeysConfigArray and GetClusterUserManagedKeysConfigArrayOutput values. +// You can construct a concrete instance of `GetClusterUserManagedKeysConfigArrayInput` via: +// +// GetClusterUserManagedKeysConfigArray{ GetClusterUserManagedKeysConfigArgs{...} } +type GetClusterUserManagedKeysConfigArrayInput interface { + pulumi.Input + + ToGetClusterUserManagedKeysConfigArrayOutput() GetClusterUserManagedKeysConfigArrayOutput + ToGetClusterUserManagedKeysConfigArrayOutputWithContext(context.Context) GetClusterUserManagedKeysConfigArrayOutput +} + +type GetClusterUserManagedKeysConfigArray []GetClusterUserManagedKeysConfigInput + +func (GetClusterUserManagedKeysConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterUserManagedKeysConfig)(nil)).Elem() +} + +func (i GetClusterUserManagedKeysConfigArray) ToGetClusterUserManagedKeysConfigArrayOutput() GetClusterUserManagedKeysConfigArrayOutput { + return i.ToGetClusterUserManagedKeysConfigArrayOutputWithContext(context.Background()) +} + +func (i GetClusterUserManagedKeysConfigArray) ToGetClusterUserManagedKeysConfigArrayOutputWithContext(ctx context.Context) GetClusterUserManagedKeysConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterUserManagedKeysConfigArrayOutput) +} + +type GetClusterUserManagedKeysConfigOutput struct{ *pulumi.OutputState } + +func (GetClusterUserManagedKeysConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterUserManagedKeysConfig)(nil)).Elem() +} + +func (o GetClusterUserManagedKeysConfigOutput) ToGetClusterUserManagedKeysConfigOutput() GetClusterUserManagedKeysConfigOutput { + return o +} + +func (o GetClusterUserManagedKeysConfigOutput) ToGetClusterUserManagedKeysConfigOutputWithContext(ctx context.Context) GetClusterUserManagedKeysConfigOutput { + return o +} + +// The Certificate Authority Service caPool to use for the aggreation CA in this cluster. +func (o GetClusterUserManagedKeysConfigOutput) AggregationCa() pulumi.StringOutput { + return o.ApplyT(func(v GetClusterUserManagedKeysConfig) string { return v.AggregationCa }).(pulumi.StringOutput) +} + +// The Certificate Authority Service caPool to use for the cluster CA in this cluster. +func (o GetClusterUserManagedKeysConfigOutput) ClusterCa() pulumi.StringOutput { + return o.ApplyT(func(v GetClusterUserManagedKeysConfig) string { return v.ClusterCa }).(pulumi.StringOutput) +} + +// The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes. +func (o GetClusterUserManagedKeysConfigOutput) ControlPlaneDiskEncryptionKey() pulumi.StringOutput { + return o.ApplyT(func(v GetClusterUserManagedKeysConfig) string { return v.ControlPlaneDiskEncryptionKey }).(pulumi.StringOutput) +} + +// The Certificate Authority Service caPool to use for the etcd API CA in this cluster. +func (o GetClusterUserManagedKeysConfigOutput) EtcdApiCa() pulumi.StringOutput { + return o.ApplyT(func(v GetClusterUserManagedKeysConfig) string { return v.EtcdApiCa }).(pulumi.StringOutput) +} + +// The Certificate Authority Service caPool to use for the etcd peer CA in this cluster. +func (o GetClusterUserManagedKeysConfigOutput) EtcdPeerCa() pulumi.StringOutput { + return o.ApplyT(func(v GetClusterUserManagedKeysConfig) string { return v.EtcdPeerCa }).(pulumi.StringOutput) +} + +// Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups. +func (o GetClusterUserManagedKeysConfigOutput) GkeopsEtcdBackupEncryptionKey() pulumi.StringOutput { + return o.ApplyT(func(v GetClusterUserManagedKeysConfig) string { return v.GkeopsEtcdBackupEncryptionKey }).(pulumi.StringOutput) +} + +// The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. +func (o GetClusterUserManagedKeysConfigOutput) ServiceAccountSigningKeys() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetClusterUserManagedKeysConfig) []string { return v.ServiceAccountSigningKeys }).(pulumi.StringArrayOutput) +} + +// The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. +func (o GetClusterUserManagedKeysConfigOutput) ServiceAccountVerificationKeys() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetClusterUserManagedKeysConfig) []string { return v.ServiceAccountVerificationKeys }).(pulumi.StringArrayOutput) +} + +type GetClusterUserManagedKeysConfigArrayOutput struct{ *pulumi.OutputState } + +func (GetClusterUserManagedKeysConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterUserManagedKeysConfig)(nil)).Elem() +} + +func (o GetClusterUserManagedKeysConfigArrayOutput) ToGetClusterUserManagedKeysConfigArrayOutput() GetClusterUserManagedKeysConfigArrayOutput { + return o +} + +func (o GetClusterUserManagedKeysConfigArrayOutput) ToGetClusterUserManagedKeysConfigArrayOutputWithContext(ctx context.Context) GetClusterUserManagedKeysConfigArrayOutput { + return o +} + +func (o GetClusterUserManagedKeysConfigArrayOutput) Index(i pulumi.IntInput) GetClusterUserManagedKeysConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetClusterUserManagedKeysConfig { + return vs[0].([]GetClusterUserManagedKeysConfig)[vs[1].(int)] + }).(GetClusterUserManagedKeysConfigOutput) +} + type GetClusterVerticalPodAutoscaling struct { // Enables vertical pod autoscaling. Enabled bool `pulumi:"enabled"` @@ -61619,6 +62852,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ClusterAddonsConfigKalmConfigPtrInput)(nil)).Elem(), ClusterAddonsConfigKalmConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ClusterAddonsConfigNetworkPolicyConfigInput)(nil)).Elem(), ClusterAddonsConfigNetworkPolicyConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ClusterAddonsConfigNetworkPolicyConfigPtrInput)(nil)).Elem(), ClusterAddonsConfigNetworkPolicyConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterAddonsConfigParallelstoreCsiDriverConfigInput)(nil)).Elem(), ClusterAddonsConfigParallelstoreCsiDriverConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterAddonsConfigParallelstoreCsiDriverConfigPtrInput)(nil)).Elem(), ClusterAddonsConfigParallelstoreCsiDriverConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ClusterAddonsConfigRayOperatorConfigInput)(nil)).Elem(), ClusterAddonsConfigRayOperatorConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ClusterAddonsConfigRayOperatorConfigArrayInput)(nil)).Elem(), ClusterAddonsConfigRayOperatorConfigArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigInput)(nil)).Elem(), ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs{}) @@ -61653,6 +62888,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ClusterClusterTelemetryPtrInput)(nil)).Elem(), ClusterClusterTelemetryArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ClusterConfidentialNodesInput)(nil)).Elem(), ClusterConfidentialNodesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ClusterConfidentialNodesPtrInput)(nil)).Elem(), ClusterConfidentialNodesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterControlPlaneEndpointsConfigInput)(nil)).Elem(), ClusterControlPlaneEndpointsConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterControlPlaneEndpointsConfigPtrInput)(nil)).Elem(), ClusterControlPlaneEndpointsConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterControlPlaneEndpointsConfigDnsEndpointConfigInput)(nil)).Elem(), ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrInput)(nil)).Elem(), ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ClusterCostManagementConfigInput)(nil)).Elem(), ClusterCostManagementConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ClusterCostManagementConfigPtrInput)(nil)).Elem(), ClusterCostManagementConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ClusterDatabaseEncryptionInput)(nil)).Elem(), ClusterDatabaseEncryptionArgs{}) @@ -61894,6 +63133,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ClusterServiceExternalIpsConfigPtrInput)(nil)).Elem(), ClusterServiceExternalIpsConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ClusterTpuConfigInput)(nil)).Elem(), ClusterTpuConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ClusterTpuConfigPtrInput)(nil)).Elem(), ClusterTpuConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterUserManagedKeysConfigInput)(nil)).Elem(), ClusterUserManagedKeysConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterUserManagedKeysConfigPtrInput)(nil)).Elem(), ClusterUserManagedKeysConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ClusterVerticalPodAutoscalingInput)(nil)).Elem(), ClusterVerticalPodAutoscalingArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ClusterVerticalPodAutoscalingPtrInput)(nil)).Elem(), ClusterVerticalPodAutoscalingArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ClusterWorkloadAltsConfigInput)(nil)).Elem(), ClusterWorkloadAltsConfigArgs{}) @@ -62007,6 +63248,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetClusterAddonsConfigKalmConfigArrayInput)(nil)).Elem(), GetClusterAddonsConfigKalmConfigArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetClusterAddonsConfigNetworkPolicyConfigInput)(nil)).Elem(), GetClusterAddonsConfigNetworkPolicyConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetClusterAddonsConfigNetworkPolicyConfigArrayInput)(nil)).Elem(), GetClusterAddonsConfigNetworkPolicyConfigArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterAddonsConfigParallelstoreCsiDriverConfigInput)(nil)).Elem(), GetClusterAddonsConfigParallelstoreCsiDriverConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterAddonsConfigParallelstoreCsiDriverConfigArrayInput)(nil)).Elem(), GetClusterAddonsConfigParallelstoreCsiDriverConfigArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetClusterAddonsConfigRayOperatorConfigInput)(nil)).Elem(), GetClusterAddonsConfigRayOperatorConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetClusterAddonsConfigRayOperatorConfigArrayInput)(nil)).Elem(), GetClusterAddonsConfigRayOperatorConfigArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigInput)(nil)).Elem(), GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs{}) @@ -62041,6 +63284,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetClusterClusterTelemetryArrayInput)(nil)).Elem(), GetClusterClusterTelemetryArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetClusterConfidentialNodeInput)(nil)).Elem(), GetClusterConfidentialNodeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetClusterConfidentialNodeArrayInput)(nil)).Elem(), GetClusterConfidentialNodeArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterControlPlaneEndpointsConfigInput)(nil)).Elem(), GetClusterControlPlaneEndpointsConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterControlPlaneEndpointsConfigArrayInput)(nil)).Elem(), GetClusterControlPlaneEndpointsConfigArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterControlPlaneEndpointsConfigDnsEndpointConfigInput)(nil)).Elem(), GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArrayInput)(nil)).Elem(), GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetClusterCostManagementConfigInput)(nil)).Elem(), GetClusterCostManagementConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetClusterCostManagementConfigArrayInput)(nil)).Elem(), GetClusterCostManagementConfigArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetClusterDatabaseEncryptionInput)(nil)).Elem(), GetClusterDatabaseEncryptionArgs{}) @@ -62285,6 +63532,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetClusterServiceExternalIpsConfigArrayInput)(nil)).Elem(), GetClusterServiceExternalIpsConfigArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetClusterTpuConfigInput)(nil)).Elem(), GetClusterTpuConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetClusterTpuConfigArrayInput)(nil)).Elem(), GetClusterTpuConfigArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterUserManagedKeysConfigInput)(nil)).Elem(), GetClusterUserManagedKeysConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterUserManagedKeysConfigArrayInput)(nil)).Elem(), GetClusterUserManagedKeysConfigArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetClusterVerticalPodAutoscalingInput)(nil)).Elem(), GetClusterVerticalPodAutoscalingArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetClusterVerticalPodAutoscalingArrayInput)(nil)).Elem(), GetClusterVerticalPodAutoscalingArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetClusterWorkloadAltsConfigInput)(nil)).Elem(), GetClusterWorkloadAltsConfigArgs{}) @@ -62455,6 +63704,8 @@ func init() { pulumi.RegisterOutputType(ClusterAddonsConfigKalmConfigPtrOutput{}) pulumi.RegisterOutputType(ClusterAddonsConfigNetworkPolicyConfigOutput{}) pulumi.RegisterOutputType(ClusterAddonsConfigNetworkPolicyConfigPtrOutput{}) + pulumi.RegisterOutputType(ClusterAddonsConfigParallelstoreCsiDriverConfigOutput{}) + pulumi.RegisterOutputType(ClusterAddonsConfigParallelstoreCsiDriverConfigPtrOutput{}) pulumi.RegisterOutputType(ClusterAddonsConfigRayOperatorConfigOutput{}) pulumi.RegisterOutputType(ClusterAddonsConfigRayOperatorConfigArrayOutput{}) pulumi.RegisterOutputType(ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput{}) @@ -62489,6 +63740,10 @@ func init() { pulumi.RegisterOutputType(ClusterClusterTelemetryPtrOutput{}) pulumi.RegisterOutputType(ClusterConfidentialNodesOutput{}) pulumi.RegisterOutputType(ClusterConfidentialNodesPtrOutput{}) + pulumi.RegisterOutputType(ClusterControlPlaneEndpointsConfigOutput{}) + pulumi.RegisterOutputType(ClusterControlPlaneEndpointsConfigPtrOutput{}) + pulumi.RegisterOutputType(ClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput{}) + pulumi.RegisterOutputType(ClusterControlPlaneEndpointsConfigDnsEndpointConfigPtrOutput{}) pulumi.RegisterOutputType(ClusterCostManagementConfigOutput{}) pulumi.RegisterOutputType(ClusterCostManagementConfigPtrOutput{}) pulumi.RegisterOutputType(ClusterDatabaseEncryptionOutput{}) @@ -62730,6 +63985,8 @@ func init() { pulumi.RegisterOutputType(ClusterServiceExternalIpsConfigPtrOutput{}) pulumi.RegisterOutputType(ClusterTpuConfigOutput{}) pulumi.RegisterOutputType(ClusterTpuConfigPtrOutput{}) + pulumi.RegisterOutputType(ClusterUserManagedKeysConfigOutput{}) + pulumi.RegisterOutputType(ClusterUserManagedKeysConfigPtrOutput{}) pulumi.RegisterOutputType(ClusterVerticalPodAutoscalingOutput{}) pulumi.RegisterOutputType(ClusterVerticalPodAutoscalingPtrOutput{}) pulumi.RegisterOutputType(ClusterWorkloadAltsConfigOutput{}) @@ -62843,6 +64100,8 @@ func init() { pulumi.RegisterOutputType(GetClusterAddonsConfigKalmConfigArrayOutput{}) pulumi.RegisterOutputType(GetClusterAddonsConfigNetworkPolicyConfigOutput{}) pulumi.RegisterOutputType(GetClusterAddonsConfigNetworkPolicyConfigArrayOutput{}) + pulumi.RegisterOutputType(GetClusterAddonsConfigParallelstoreCsiDriverConfigOutput{}) + pulumi.RegisterOutputType(GetClusterAddonsConfigParallelstoreCsiDriverConfigArrayOutput{}) pulumi.RegisterOutputType(GetClusterAddonsConfigRayOperatorConfigOutput{}) pulumi.RegisterOutputType(GetClusterAddonsConfigRayOperatorConfigArrayOutput{}) pulumi.RegisterOutputType(GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput{}) @@ -62877,6 +64136,10 @@ func init() { pulumi.RegisterOutputType(GetClusterClusterTelemetryArrayOutput{}) pulumi.RegisterOutputType(GetClusterConfidentialNodeOutput{}) pulumi.RegisterOutputType(GetClusterConfidentialNodeArrayOutput{}) + pulumi.RegisterOutputType(GetClusterControlPlaneEndpointsConfigOutput{}) + pulumi.RegisterOutputType(GetClusterControlPlaneEndpointsConfigArrayOutput{}) + pulumi.RegisterOutputType(GetClusterControlPlaneEndpointsConfigDnsEndpointConfigOutput{}) + pulumi.RegisterOutputType(GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArrayOutput{}) pulumi.RegisterOutputType(GetClusterCostManagementConfigOutput{}) pulumi.RegisterOutputType(GetClusterCostManagementConfigArrayOutput{}) pulumi.RegisterOutputType(GetClusterDatabaseEncryptionOutput{}) @@ -63121,6 +64384,8 @@ func init() { pulumi.RegisterOutputType(GetClusterServiceExternalIpsConfigArrayOutput{}) pulumi.RegisterOutputType(GetClusterTpuConfigOutput{}) pulumi.RegisterOutputType(GetClusterTpuConfigArrayOutput{}) + pulumi.RegisterOutputType(GetClusterUserManagedKeysConfigOutput{}) + pulumi.RegisterOutputType(GetClusterUserManagedKeysConfigArrayOutput{}) pulumi.RegisterOutputType(GetClusterVerticalPodAutoscalingOutput{}) pulumi.RegisterOutputType(GetClusterVerticalPodAutoscalingArrayOutput{}) pulumi.RegisterOutputType(GetClusterWorkloadAltsConfigOutput{}) diff --git a/sdk/go/gcp/dataloss/preventionDiscoveryConfig.go b/sdk/go/gcp/dataloss/preventionDiscoveryConfig.go index e381e3d265..6b1dd0e917 100644 --- a/sdk/go/gcp/dataloss/preventionDiscoveryConfig.go +++ b/sdk/go/gcp/dataloss/preventionDiscoveryConfig.go @@ -62,7 +62,7 @@ type PreventionDiscoveryConfig struct { Location pulumi.StringOutput `pulumi:"location"` // Unique resource name for the DiscoveryConfig, assigned by the service when the DiscoveryConfig is created. Name pulumi.StringOutput `pulumi:"name"` - // A nested object resource + // A nested object resource. // Structure is documented below. OrgConfig PreventionDiscoveryConfigOrgConfigPtrOutput `pulumi:"orgConfig"` // The parent of the discovery config in any of the following formats: @@ -135,7 +135,7 @@ type preventionDiscoveryConfigState struct { Location *string `pulumi:"location"` // Unique resource name for the DiscoveryConfig, assigned by the service when the DiscoveryConfig is created. Name *string `pulumi:"name"` - // A nested object resource + // A nested object resource. // Structure is documented below. OrgConfig *PreventionDiscoveryConfigOrgConfig `pulumi:"orgConfig"` // The parent of the discovery config in any of the following formats: @@ -173,7 +173,7 @@ type PreventionDiscoveryConfigState struct { Location pulumi.StringPtrInput // Unique resource name for the DiscoveryConfig, assigned by the service when the DiscoveryConfig is created. Name pulumi.StringPtrInput - // A nested object resource + // A nested object resource. // Structure is documented below. OrgConfig PreventionDiscoveryConfigOrgConfigPtrInput // The parent of the discovery config in any of the following formats: @@ -206,7 +206,7 @@ type preventionDiscoveryConfigArgs struct { // // *** Location string `pulumi:"location"` - // A nested object resource + // A nested object resource. // Structure is documented below. OrgConfig *PreventionDiscoveryConfigOrgConfig `pulumi:"orgConfig"` // The parent of the discovery config in any of the following formats: @@ -234,7 +234,7 @@ type PreventionDiscoveryConfigArgs struct { // // *** Location pulumi.StringInput - // A nested object resource + // A nested object resource. // Structure is documented below. OrgConfig PreventionDiscoveryConfigOrgConfigPtrInput // The parent of the discovery config in any of the following formats: @@ -380,7 +380,7 @@ func (o PreventionDiscoveryConfigOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *PreventionDiscoveryConfig) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o PreventionDiscoveryConfigOutput) OrgConfig() PreventionDiscoveryConfigOrgConfigPtrOutput { return o.ApplyT(func(v *PreventionDiscoveryConfig) PreventionDiscoveryConfigOrgConfigPtrOutput { return v.OrgConfig }).(PreventionDiscoveryConfigOrgConfigPtrOutput) diff --git a/sdk/go/gcp/dataproc/gdcApplicationEnvironment.go b/sdk/go/gcp/dataproc/gdcApplicationEnvironment.go new file mode 100644 index 0000000000..784e746c81 --- /dev/null +++ b/sdk/go/gcp/dataproc/gdcApplicationEnvironment.go @@ -0,0 +1,578 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package dataproc + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// An ApplicationEnvironment contains shared configuration that may be referenced by multiple SparkApplications. +// +// To get more information about ApplicationEnvironment, see: +// +// * [API documentation](https://cloud.google.com/dataproc-gdc/docs/reference/rest/v1/projects.locations.applicationEnvironments) +// * How-to Guides +// - [Dataproc Intro](https://cloud.google.com/dataproc/) +// +// ## Example Usage +// +// ### Dataprocgdc Applicationenvironment Basic +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/dataproc" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := dataproc.NewGdcApplicationEnvironment(ctx, "application-environment", &dataproc.GdcApplicationEnvironmentArgs{ +// ApplicationEnvironmentId: pulumi.String("dp-tf-e2e-application-environment-basic"), +// Serviceinstance: pulumi.String("do-not-delete-dataproc-gdc-instance"), +// Project: pulumi.String("my-project"), +// Location: pulumi.String("us-west2"), +// Namespace: pulumi.String("default"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Dataprocgdc Applicationenvironment +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/dataproc" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := dataproc.NewGdcApplicationEnvironment(ctx, "application-environment", &dataproc.GdcApplicationEnvironmentArgs{ +// ApplicationEnvironmentId: pulumi.String("dp-tf-e2e-application-environment"), +// Serviceinstance: pulumi.String("do-not-delete-dataproc-gdc-instance"), +// Project: pulumi.String("my-project"), +// Location: pulumi.String("us-west2"), +// Namespace: pulumi.String("default"), +// DisplayName: pulumi.String("An application environment"), +// Labels: pulumi.StringMap{ +// "test-label": pulumi.String("label-value"), +// }, +// Annotations: pulumi.StringMap{ +// "an_annotation": pulumi.String("annotation_value"), +// }, +// SparkApplicationEnvironmentConfig: &dataproc.GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs{ +// DefaultProperties: pulumi.StringMap{ +// "spark.executor.memory": pulumi.String("4g"), +// }, +// DefaultVersion: pulumi.String("1.2"), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// ApplicationEnvironment can be imported using any of these accepted formats: +// +// * `projects/{{project}}/locations/{{location}}/serviceInstances/{{serviceinstance}}/applicationEnvironments/{{application_environment_id}}` +// +// * `{{project}}/{{location}}/{{serviceinstance}}/{{application_environment_id}}` +// +// * `{{location}}/{{serviceinstance}}/{{application_environment_id}}` +// +// When using the `pulumi import` command, ApplicationEnvironment can be imported using one of the formats above. For example: +// +// ```sh +// $ pulumi import gcp:dataproc/gdcApplicationEnvironment:GdcApplicationEnvironment default projects/{{project}}/locations/{{location}}/serviceInstances/{{serviceinstance}}/applicationEnvironments/{{application_environment_id}} +// ``` +// +// ```sh +// $ pulumi import gcp:dataproc/gdcApplicationEnvironment:GdcApplicationEnvironment default {{project}}/{{location}}/{{serviceinstance}}/{{application_environment_id}} +// ``` +// +// ```sh +// $ pulumi import gcp:dataproc/gdcApplicationEnvironment:GdcApplicationEnvironment default {{location}}/{{serviceinstance}}/{{application_environment_id}} +// ``` +type GdcApplicationEnvironment struct { + pulumi.CustomResourceState + + // The annotations to associate with this application environment. Annotations may be used to store client information, but are not used by the server. + // **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + // Please refer to the field `effectiveAnnotations` for all of the annotations present on the resource. + Annotations pulumi.StringMapOutput `pulumi:"annotations"` + // The id of the application environment + ApplicationEnvironmentId pulumi.StringPtrOutput `pulumi:"applicationEnvironmentId"` + // The timestamp when the resource was created. + CreateTime pulumi.StringOutput `pulumi:"createTime"` + // User-provided human-readable name to be used in user interfaces. + DisplayName pulumi.StringPtrOutput `pulumi:"displayName"` + EffectiveAnnotations pulumi.StringMapOutput `pulumi:"effectiveAnnotations"` + // All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + EffectiveLabels pulumi.StringMapOutput `pulumi:"effectiveLabels"` + // The labels to associate with this application environment. Labels may be used for filtering and billing tracking. + // **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + // Please refer to the field `effectiveLabels` for all of the labels present on the resource. + Labels pulumi.StringMapOutput `pulumi:"labels"` + // The location of the application environment + Location pulumi.StringOutput `pulumi:"location"` + // Identifier. The name of the application environment. Format: projects/{project}/locations/{location}/serviceInstances/{service_instance}/applicationEnvironments/{application_environment_id} + Name pulumi.StringOutput `pulumi:"name"` + // The name of the namespace in which to create this ApplicationEnvironment. This namespace must already exist in the cluster + Namespace pulumi.StringPtrOutput `pulumi:"namespace"` + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project pulumi.StringOutput `pulumi:"project"` + // The combination of labels configured directly on the resource + // and default labels configured on the provider. + PulumiLabels pulumi.StringMapOutput `pulumi:"pulumiLabels"` + // The id of the service instance to which this application environment belongs. + // + // *** + Serviceinstance pulumi.StringOutput `pulumi:"serviceinstance"` + // Represents the SparkApplicationEnvironmentConfig. + // Structure is documented below. + SparkApplicationEnvironmentConfig GdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutput `pulumi:"sparkApplicationEnvironmentConfig"` + // System generated unique identifier for this application environment, formatted as UUID4. + Uid pulumi.StringOutput `pulumi:"uid"` + // The timestamp when the resource was most recently updated. + UpdateTime pulumi.StringOutput `pulumi:"updateTime"` +} + +// NewGdcApplicationEnvironment registers a new resource with the given unique name, arguments, and options. +func NewGdcApplicationEnvironment(ctx *pulumi.Context, + name string, args *GdcApplicationEnvironmentArgs, opts ...pulumi.ResourceOption) (*GdcApplicationEnvironment, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Location == nil { + return nil, errors.New("invalid value for required argument 'Location'") + } + if args.Serviceinstance == nil { + return nil, errors.New("invalid value for required argument 'Serviceinstance'") + } + secrets := pulumi.AdditionalSecretOutputs([]string{ + "effectiveLabels", + "pulumiLabels", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource GdcApplicationEnvironment + err := ctx.RegisterResource("gcp:dataproc/gdcApplicationEnvironment:GdcApplicationEnvironment", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetGdcApplicationEnvironment gets an existing GdcApplicationEnvironment resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetGdcApplicationEnvironment(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *GdcApplicationEnvironmentState, opts ...pulumi.ResourceOption) (*GdcApplicationEnvironment, error) { + var resource GdcApplicationEnvironment + err := ctx.ReadResource("gcp:dataproc/gdcApplicationEnvironment:GdcApplicationEnvironment", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering GdcApplicationEnvironment resources. +type gdcApplicationEnvironmentState struct { + // The annotations to associate with this application environment. Annotations may be used to store client information, but are not used by the server. + // **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + // Please refer to the field `effectiveAnnotations` for all of the annotations present on the resource. + Annotations map[string]string `pulumi:"annotations"` + // The id of the application environment + ApplicationEnvironmentId *string `pulumi:"applicationEnvironmentId"` + // The timestamp when the resource was created. + CreateTime *string `pulumi:"createTime"` + // User-provided human-readable name to be used in user interfaces. + DisplayName *string `pulumi:"displayName"` + EffectiveAnnotations map[string]string `pulumi:"effectiveAnnotations"` + // All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + EffectiveLabels map[string]string `pulumi:"effectiveLabels"` + // The labels to associate with this application environment. Labels may be used for filtering and billing tracking. + // **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + // Please refer to the field `effectiveLabels` for all of the labels present on the resource. + Labels map[string]string `pulumi:"labels"` + // The location of the application environment + Location *string `pulumi:"location"` + // Identifier. The name of the application environment. Format: projects/{project}/locations/{location}/serviceInstances/{service_instance}/applicationEnvironments/{application_environment_id} + Name *string `pulumi:"name"` + // The name of the namespace in which to create this ApplicationEnvironment. This namespace must already exist in the cluster + Namespace *string `pulumi:"namespace"` + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project *string `pulumi:"project"` + // The combination of labels configured directly on the resource + // and default labels configured on the provider. + PulumiLabels map[string]string `pulumi:"pulumiLabels"` + // The id of the service instance to which this application environment belongs. + // + // *** + Serviceinstance *string `pulumi:"serviceinstance"` + // Represents the SparkApplicationEnvironmentConfig. + // Structure is documented below. + SparkApplicationEnvironmentConfig *GdcApplicationEnvironmentSparkApplicationEnvironmentConfig `pulumi:"sparkApplicationEnvironmentConfig"` + // System generated unique identifier for this application environment, formatted as UUID4. + Uid *string `pulumi:"uid"` + // The timestamp when the resource was most recently updated. + UpdateTime *string `pulumi:"updateTime"` +} + +type GdcApplicationEnvironmentState struct { + // The annotations to associate with this application environment. Annotations may be used to store client information, but are not used by the server. + // **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + // Please refer to the field `effectiveAnnotations` for all of the annotations present on the resource. + Annotations pulumi.StringMapInput + // The id of the application environment + ApplicationEnvironmentId pulumi.StringPtrInput + // The timestamp when the resource was created. + CreateTime pulumi.StringPtrInput + // User-provided human-readable name to be used in user interfaces. + DisplayName pulumi.StringPtrInput + EffectiveAnnotations pulumi.StringMapInput + // All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + EffectiveLabels pulumi.StringMapInput + // The labels to associate with this application environment. Labels may be used for filtering and billing tracking. + // **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + // Please refer to the field `effectiveLabels` for all of the labels present on the resource. + Labels pulumi.StringMapInput + // The location of the application environment + Location pulumi.StringPtrInput + // Identifier. The name of the application environment. Format: projects/{project}/locations/{location}/serviceInstances/{service_instance}/applicationEnvironments/{application_environment_id} + Name pulumi.StringPtrInput + // The name of the namespace in which to create this ApplicationEnvironment. This namespace must already exist in the cluster + Namespace pulumi.StringPtrInput + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project pulumi.StringPtrInput + // The combination of labels configured directly on the resource + // and default labels configured on the provider. + PulumiLabels pulumi.StringMapInput + // The id of the service instance to which this application environment belongs. + // + // *** + Serviceinstance pulumi.StringPtrInput + // Represents the SparkApplicationEnvironmentConfig. + // Structure is documented below. + SparkApplicationEnvironmentConfig GdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrInput + // System generated unique identifier for this application environment, formatted as UUID4. + Uid pulumi.StringPtrInput + // The timestamp when the resource was most recently updated. + UpdateTime pulumi.StringPtrInput +} + +func (GdcApplicationEnvironmentState) ElementType() reflect.Type { + return reflect.TypeOf((*gdcApplicationEnvironmentState)(nil)).Elem() +} + +type gdcApplicationEnvironmentArgs struct { + // The annotations to associate with this application environment. Annotations may be used to store client information, but are not used by the server. + // **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + // Please refer to the field `effectiveAnnotations` for all of the annotations present on the resource. + Annotations map[string]string `pulumi:"annotations"` + // The id of the application environment + ApplicationEnvironmentId *string `pulumi:"applicationEnvironmentId"` + // User-provided human-readable name to be used in user interfaces. + DisplayName *string `pulumi:"displayName"` + // The labels to associate with this application environment. Labels may be used for filtering and billing tracking. + // **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + // Please refer to the field `effectiveLabels` for all of the labels present on the resource. + Labels map[string]string `pulumi:"labels"` + // The location of the application environment + Location string `pulumi:"location"` + // The name of the namespace in which to create this ApplicationEnvironment. This namespace must already exist in the cluster + Namespace *string `pulumi:"namespace"` + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project *string `pulumi:"project"` + // The id of the service instance to which this application environment belongs. + // + // *** + Serviceinstance string `pulumi:"serviceinstance"` + // Represents the SparkApplicationEnvironmentConfig. + // Structure is documented below. + SparkApplicationEnvironmentConfig *GdcApplicationEnvironmentSparkApplicationEnvironmentConfig `pulumi:"sparkApplicationEnvironmentConfig"` +} + +// The set of arguments for constructing a GdcApplicationEnvironment resource. +type GdcApplicationEnvironmentArgs struct { + // The annotations to associate with this application environment. Annotations may be used to store client information, but are not used by the server. + // **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + // Please refer to the field `effectiveAnnotations` for all of the annotations present on the resource. + Annotations pulumi.StringMapInput + // The id of the application environment + ApplicationEnvironmentId pulumi.StringPtrInput + // User-provided human-readable name to be used in user interfaces. + DisplayName pulumi.StringPtrInput + // The labels to associate with this application environment. Labels may be used for filtering and billing tracking. + // **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + // Please refer to the field `effectiveLabels` for all of the labels present on the resource. + Labels pulumi.StringMapInput + // The location of the application environment + Location pulumi.StringInput + // The name of the namespace in which to create this ApplicationEnvironment. This namespace must already exist in the cluster + Namespace pulumi.StringPtrInput + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project pulumi.StringPtrInput + // The id of the service instance to which this application environment belongs. + // + // *** + Serviceinstance pulumi.StringInput + // Represents the SparkApplicationEnvironmentConfig. + // Structure is documented below. + SparkApplicationEnvironmentConfig GdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrInput +} + +func (GdcApplicationEnvironmentArgs) ElementType() reflect.Type { + return reflect.TypeOf((*gdcApplicationEnvironmentArgs)(nil)).Elem() +} + +type GdcApplicationEnvironmentInput interface { + pulumi.Input + + ToGdcApplicationEnvironmentOutput() GdcApplicationEnvironmentOutput + ToGdcApplicationEnvironmentOutputWithContext(ctx context.Context) GdcApplicationEnvironmentOutput +} + +func (*GdcApplicationEnvironment) ElementType() reflect.Type { + return reflect.TypeOf((**GdcApplicationEnvironment)(nil)).Elem() +} + +func (i *GdcApplicationEnvironment) ToGdcApplicationEnvironmentOutput() GdcApplicationEnvironmentOutput { + return i.ToGdcApplicationEnvironmentOutputWithContext(context.Background()) +} + +func (i *GdcApplicationEnvironment) ToGdcApplicationEnvironmentOutputWithContext(ctx context.Context) GdcApplicationEnvironmentOutput { + return pulumi.ToOutputWithContext(ctx, i).(GdcApplicationEnvironmentOutput) +} + +// GdcApplicationEnvironmentArrayInput is an input type that accepts GdcApplicationEnvironmentArray and GdcApplicationEnvironmentArrayOutput values. +// You can construct a concrete instance of `GdcApplicationEnvironmentArrayInput` via: +// +// GdcApplicationEnvironmentArray{ GdcApplicationEnvironmentArgs{...} } +type GdcApplicationEnvironmentArrayInput interface { + pulumi.Input + + ToGdcApplicationEnvironmentArrayOutput() GdcApplicationEnvironmentArrayOutput + ToGdcApplicationEnvironmentArrayOutputWithContext(context.Context) GdcApplicationEnvironmentArrayOutput +} + +type GdcApplicationEnvironmentArray []GdcApplicationEnvironmentInput + +func (GdcApplicationEnvironmentArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*GdcApplicationEnvironment)(nil)).Elem() +} + +func (i GdcApplicationEnvironmentArray) ToGdcApplicationEnvironmentArrayOutput() GdcApplicationEnvironmentArrayOutput { + return i.ToGdcApplicationEnvironmentArrayOutputWithContext(context.Background()) +} + +func (i GdcApplicationEnvironmentArray) ToGdcApplicationEnvironmentArrayOutputWithContext(ctx context.Context) GdcApplicationEnvironmentArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GdcApplicationEnvironmentArrayOutput) +} + +// GdcApplicationEnvironmentMapInput is an input type that accepts GdcApplicationEnvironmentMap and GdcApplicationEnvironmentMapOutput values. +// You can construct a concrete instance of `GdcApplicationEnvironmentMapInput` via: +// +// GdcApplicationEnvironmentMap{ "key": GdcApplicationEnvironmentArgs{...} } +type GdcApplicationEnvironmentMapInput interface { + pulumi.Input + + ToGdcApplicationEnvironmentMapOutput() GdcApplicationEnvironmentMapOutput + ToGdcApplicationEnvironmentMapOutputWithContext(context.Context) GdcApplicationEnvironmentMapOutput +} + +type GdcApplicationEnvironmentMap map[string]GdcApplicationEnvironmentInput + +func (GdcApplicationEnvironmentMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*GdcApplicationEnvironment)(nil)).Elem() +} + +func (i GdcApplicationEnvironmentMap) ToGdcApplicationEnvironmentMapOutput() GdcApplicationEnvironmentMapOutput { + return i.ToGdcApplicationEnvironmentMapOutputWithContext(context.Background()) +} + +func (i GdcApplicationEnvironmentMap) ToGdcApplicationEnvironmentMapOutputWithContext(ctx context.Context) GdcApplicationEnvironmentMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(GdcApplicationEnvironmentMapOutput) +} + +type GdcApplicationEnvironmentOutput struct{ *pulumi.OutputState } + +func (GdcApplicationEnvironmentOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GdcApplicationEnvironment)(nil)).Elem() +} + +func (o GdcApplicationEnvironmentOutput) ToGdcApplicationEnvironmentOutput() GdcApplicationEnvironmentOutput { + return o +} + +func (o GdcApplicationEnvironmentOutput) ToGdcApplicationEnvironmentOutputWithContext(ctx context.Context) GdcApplicationEnvironmentOutput { + return o +} + +// The annotations to associate with this application environment. Annotations may be used to store client information, but are not used by the server. +// **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. +// Please refer to the field `effectiveAnnotations` for all of the annotations present on the resource. +func (o GdcApplicationEnvironmentOutput) Annotations() pulumi.StringMapOutput { + return o.ApplyT(func(v *GdcApplicationEnvironment) pulumi.StringMapOutput { return v.Annotations }).(pulumi.StringMapOutput) +} + +// The id of the application environment +func (o GdcApplicationEnvironmentOutput) ApplicationEnvironmentId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GdcApplicationEnvironment) pulumi.StringPtrOutput { return v.ApplicationEnvironmentId }).(pulumi.StringPtrOutput) +} + +// The timestamp when the resource was created. +func (o GdcApplicationEnvironmentOutput) CreateTime() pulumi.StringOutput { + return o.ApplyT(func(v *GdcApplicationEnvironment) pulumi.StringOutput { return v.CreateTime }).(pulumi.StringOutput) +} + +// User-provided human-readable name to be used in user interfaces. +func (o GdcApplicationEnvironmentOutput) DisplayName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GdcApplicationEnvironment) pulumi.StringPtrOutput { return v.DisplayName }).(pulumi.StringPtrOutput) +} + +func (o GdcApplicationEnvironmentOutput) EffectiveAnnotations() pulumi.StringMapOutput { + return o.ApplyT(func(v *GdcApplicationEnvironment) pulumi.StringMapOutput { return v.EffectiveAnnotations }).(pulumi.StringMapOutput) +} + +// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. +func (o GdcApplicationEnvironmentOutput) EffectiveLabels() pulumi.StringMapOutput { + return o.ApplyT(func(v *GdcApplicationEnvironment) pulumi.StringMapOutput { return v.EffectiveLabels }).(pulumi.StringMapOutput) +} + +// The labels to associate with this application environment. Labels may be used for filtering and billing tracking. +// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. +// Please refer to the field `effectiveLabels` for all of the labels present on the resource. +func (o GdcApplicationEnvironmentOutput) Labels() pulumi.StringMapOutput { + return o.ApplyT(func(v *GdcApplicationEnvironment) pulumi.StringMapOutput { return v.Labels }).(pulumi.StringMapOutput) +} + +// The location of the application environment +func (o GdcApplicationEnvironmentOutput) Location() pulumi.StringOutput { + return o.ApplyT(func(v *GdcApplicationEnvironment) pulumi.StringOutput { return v.Location }).(pulumi.StringOutput) +} + +// Identifier. The name of the application environment. Format: projects/{project}/locations/{location}/serviceInstances/{service_instance}/applicationEnvironments/{application_environment_id} +func (o GdcApplicationEnvironmentOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *GdcApplicationEnvironment) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The name of the namespace in which to create this ApplicationEnvironment. This namespace must already exist in the cluster +func (o GdcApplicationEnvironmentOutput) Namespace() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GdcApplicationEnvironment) pulumi.StringPtrOutput { return v.Namespace }).(pulumi.StringPtrOutput) +} + +// The ID of the project in which the resource belongs. +// If it is not provided, the provider project is used. +func (o GdcApplicationEnvironmentOutput) Project() pulumi.StringOutput { + return o.ApplyT(func(v *GdcApplicationEnvironment) pulumi.StringOutput { return v.Project }).(pulumi.StringOutput) +} + +// The combination of labels configured directly on the resource +// and default labels configured on the provider. +func (o GdcApplicationEnvironmentOutput) PulumiLabels() pulumi.StringMapOutput { + return o.ApplyT(func(v *GdcApplicationEnvironment) pulumi.StringMapOutput { return v.PulumiLabels }).(pulumi.StringMapOutput) +} + +// The id of the service instance to which this application environment belongs. +// +// *** +func (o GdcApplicationEnvironmentOutput) Serviceinstance() pulumi.StringOutput { + return o.ApplyT(func(v *GdcApplicationEnvironment) pulumi.StringOutput { return v.Serviceinstance }).(pulumi.StringOutput) +} + +// Represents the SparkApplicationEnvironmentConfig. +// Structure is documented below. +func (o GdcApplicationEnvironmentOutput) SparkApplicationEnvironmentConfig() GdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutput { + return o.ApplyT(func(v *GdcApplicationEnvironment) GdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutput { + return v.SparkApplicationEnvironmentConfig + }).(GdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutput) +} + +// System generated unique identifier for this application environment, formatted as UUID4. +func (o GdcApplicationEnvironmentOutput) Uid() pulumi.StringOutput { + return o.ApplyT(func(v *GdcApplicationEnvironment) pulumi.StringOutput { return v.Uid }).(pulumi.StringOutput) +} + +// The timestamp when the resource was most recently updated. +func (o GdcApplicationEnvironmentOutput) UpdateTime() pulumi.StringOutput { + return o.ApplyT(func(v *GdcApplicationEnvironment) pulumi.StringOutput { return v.UpdateTime }).(pulumi.StringOutput) +} + +type GdcApplicationEnvironmentArrayOutput struct{ *pulumi.OutputState } + +func (GdcApplicationEnvironmentArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*GdcApplicationEnvironment)(nil)).Elem() +} + +func (o GdcApplicationEnvironmentArrayOutput) ToGdcApplicationEnvironmentArrayOutput() GdcApplicationEnvironmentArrayOutput { + return o +} + +func (o GdcApplicationEnvironmentArrayOutput) ToGdcApplicationEnvironmentArrayOutputWithContext(ctx context.Context) GdcApplicationEnvironmentArrayOutput { + return o +} + +func (o GdcApplicationEnvironmentArrayOutput) Index(i pulumi.IntInput) GdcApplicationEnvironmentOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *GdcApplicationEnvironment { + return vs[0].([]*GdcApplicationEnvironment)[vs[1].(int)] + }).(GdcApplicationEnvironmentOutput) +} + +type GdcApplicationEnvironmentMapOutput struct{ *pulumi.OutputState } + +func (GdcApplicationEnvironmentMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*GdcApplicationEnvironment)(nil)).Elem() +} + +func (o GdcApplicationEnvironmentMapOutput) ToGdcApplicationEnvironmentMapOutput() GdcApplicationEnvironmentMapOutput { + return o +} + +func (o GdcApplicationEnvironmentMapOutput) ToGdcApplicationEnvironmentMapOutputWithContext(ctx context.Context) GdcApplicationEnvironmentMapOutput { + return o +} + +func (o GdcApplicationEnvironmentMapOutput) MapIndex(k pulumi.StringInput) GdcApplicationEnvironmentOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *GdcApplicationEnvironment { + return vs[0].(map[string]*GdcApplicationEnvironment)[vs[1].(string)] + }).(GdcApplicationEnvironmentOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*GdcApplicationEnvironmentInput)(nil)).Elem(), &GdcApplicationEnvironment{}) + pulumi.RegisterInputType(reflect.TypeOf((*GdcApplicationEnvironmentArrayInput)(nil)).Elem(), GdcApplicationEnvironmentArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GdcApplicationEnvironmentMapInput)(nil)).Elem(), GdcApplicationEnvironmentMap{}) + pulumi.RegisterOutputType(GdcApplicationEnvironmentOutput{}) + pulumi.RegisterOutputType(GdcApplicationEnvironmentArrayOutput{}) + pulumi.RegisterOutputType(GdcApplicationEnvironmentMapOutput{}) +} diff --git a/sdk/go/gcp/dataproc/gdcServiceInstance.go b/sdk/go/gcp/dataproc/gdcServiceInstance.go new file mode 100644 index 0000000000..d6e3ca61ed --- /dev/null +++ b/sdk/go/gcp/dataproc/gdcServiceInstance.go @@ -0,0 +1,635 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package dataproc + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// A service instance is an instance of the Dataproc operator running on a GDC cluster. +// +// To get more information about ServiceInstance, see: +// +// * [API documentation](https://cloud.google.com/dataproc-gdc/docs/reference/rest/v1/projects.locations.serviceInstances) +// * How-to Guides +// - [Dataproc Intro](https://cloud.google.com/dataproc/) +// +// ## Example Usage +// +// ### Dataprocgdc Serviceinstance +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/dataproc" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := dataproc.NewGdcServiceInstance(ctx, "service-instance", &dataproc.GdcServiceInstanceArgs{ +// ServiceInstanceId: pulumi.String("tf-e2e-service-instance"), +// Project: pulumi.String("my-project"), +// Location: pulumi.String("us-west2"), +// GdceCluster: &dataproc.GdcServiceInstanceGdceClusterArgs{ +// GdceCluster: pulumi.String("projects/gdce-cluster-monitoring/locations/us-west2/clusters/gdce-prism-prober-ord106"), +// }, +// DisplayName: pulumi.String("A service instance"), +// Labels: pulumi.StringMap{ +// "test-label": pulumi.String("label-value"), +// }, +// ServiceAccount: pulumi.String("dataprocgdc-cep-workflows@gdce-cluster-monitoring.iam.gserviceaccount.com"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// ServiceInstance can be imported using any of these accepted formats: +// +// * `projects/{{project}}/locations/{{location}}/serviceInstances/{{service_instance_id}}` +// +// * `{{project}}/{{location}}/{{service_instance_id}}` +// +// * `{{location}}/{{service_instance_id}}` +// +// When using the `pulumi import` command, ServiceInstance can be imported using one of the formats above. For example: +// +// ```sh +// $ pulumi import gcp:dataproc/gdcServiceInstance:GdcServiceInstance default projects/{{project}}/locations/{{location}}/serviceInstances/{{service_instance_id}} +// ``` +// +// ```sh +// $ pulumi import gcp:dataproc/gdcServiceInstance:GdcServiceInstance default {{project}}/{{location}}/{{service_instance_id}} +// ``` +// +// ```sh +// $ pulumi import gcp:dataproc/gdcServiceInstance:GdcServiceInstance default {{location}}/{{service_instance_id}} +// ``` +type GdcServiceInstance struct { + pulumi.CustomResourceState + + // The timestamp when the resource was created. + CreateTime pulumi.StringOutput `pulumi:"createTime"` + // User-provided human-readable name to be used in user interfaces. + DisplayName pulumi.StringPtrOutput `pulumi:"displayName"` + // All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + EffectiveLabels pulumi.StringMapOutput `pulumi:"effectiveLabels"` + // Effective service account associated with ServiceInstance. This will be the serviceAccount if specified. Otherwise, it will be an automatically created per-resource P4SA that also automatically has Fleet Workload. Identity bindings applied. + EffectiveServiceAccount pulumi.StringOutput `pulumi:"effectiveServiceAccount"` + // Gdce cluster information. + // Structure is documented below. + GdceCluster GdcServiceInstanceGdceClusterPtrOutput `pulumi:"gdceCluster"` + // The labels to associate with this service instance. Labels may be used for filtering and billing tracking. + // **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + // Please refer to the field `effectiveLabels` for all of the labels present on the resource. + Labels pulumi.StringMapOutput `pulumi:"labels"` + // Location of the resource. + Location pulumi.StringOutput `pulumi:"location"` + // Identifier. The name of the service instance. + Name pulumi.StringOutput `pulumi:"name"` + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project pulumi.StringOutput `pulumi:"project"` + // The combination of labels configured directly on the resource + // and default labels configured on the provider. + PulumiLabels pulumi.StringMapOutput `pulumi:"pulumiLabels"` + // Whether the service instance is currently reconciling. True if the current state of the resource does not match the intended state, and the system is working to reconcile them, whether or not the change was user initiated. + Reconciling pulumi.BoolOutput `pulumi:"reconciling"` + // The intended state to which the service instance is reconciling. Possible values: + // * `CREATING` + // * `ACTIVE` + // * `DISCONNECTED` + // * `DELETING` + // * `STOPPING` + // * `STOPPED` + // * `STARTING` + // * `UPDATING` + // * `FAILED` + RequestedState pulumi.StringOutput `pulumi:"requestedState"` + // Requested service account to associate with ServiceInstance. + ServiceAccount pulumi.StringPtrOutput `pulumi:"serviceAccount"` + // Id of the service instance. + // + // *** + ServiceInstanceId pulumi.StringOutput `pulumi:"serviceInstanceId"` + // Spark-specific service instance configuration. + SparkServiceInstanceConfig GdcServiceInstanceSparkServiceInstanceConfigPtrOutput `pulumi:"sparkServiceInstanceConfig"` + // The current state. Possible values: + // * `CREATING` + // * `ACTIVE` + // * `DISCONNECTED` + // * `DELETING` + // * `STOPPING` + // * `STOPPED` + // * `STARTING` + // * `UPDATING` + // * `FAILED` + State pulumi.StringOutput `pulumi:"state"` + // A message explaining the current state. + StateMessage pulumi.StringOutput `pulumi:"stateMessage"` + // System generated unique identifier for this service instance, formatted as UUID4. + Uid pulumi.StringOutput `pulumi:"uid"` + // The timestamp when the resource was most recently updated. + UpdateTime pulumi.StringOutput `pulumi:"updateTime"` +} + +// NewGdcServiceInstance registers a new resource with the given unique name, arguments, and options. +func NewGdcServiceInstance(ctx *pulumi.Context, + name string, args *GdcServiceInstanceArgs, opts ...pulumi.ResourceOption) (*GdcServiceInstance, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Location == nil { + return nil, errors.New("invalid value for required argument 'Location'") + } + if args.ServiceInstanceId == nil { + return nil, errors.New("invalid value for required argument 'ServiceInstanceId'") + } + secrets := pulumi.AdditionalSecretOutputs([]string{ + "effectiveLabels", + "pulumiLabels", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource GdcServiceInstance + err := ctx.RegisterResource("gcp:dataproc/gdcServiceInstance:GdcServiceInstance", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetGdcServiceInstance gets an existing GdcServiceInstance resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetGdcServiceInstance(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *GdcServiceInstanceState, opts ...pulumi.ResourceOption) (*GdcServiceInstance, error) { + var resource GdcServiceInstance + err := ctx.ReadResource("gcp:dataproc/gdcServiceInstance:GdcServiceInstance", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering GdcServiceInstance resources. +type gdcServiceInstanceState struct { + // The timestamp when the resource was created. + CreateTime *string `pulumi:"createTime"` + // User-provided human-readable name to be used in user interfaces. + DisplayName *string `pulumi:"displayName"` + // All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + EffectiveLabels map[string]string `pulumi:"effectiveLabels"` + // Effective service account associated with ServiceInstance. This will be the serviceAccount if specified. Otherwise, it will be an automatically created per-resource P4SA that also automatically has Fleet Workload. Identity bindings applied. + EffectiveServiceAccount *string `pulumi:"effectiveServiceAccount"` + // Gdce cluster information. + // Structure is documented below. + GdceCluster *GdcServiceInstanceGdceCluster `pulumi:"gdceCluster"` + // The labels to associate with this service instance. Labels may be used for filtering and billing tracking. + // **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + // Please refer to the field `effectiveLabels` for all of the labels present on the resource. + Labels map[string]string `pulumi:"labels"` + // Location of the resource. + Location *string `pulumi:"location"` + // Identifier. The name of the service instance. + Name *string `pulumi:"name"` + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project *string `pulumi:"project"` + // The combination of labels configured directly on the resource + // and default labels configured on the provider. + PulumiLabels map[string]string `pulumi:"pulumiLabels"` + // Whether the service instance is currently reconciling. True if the current state of the resource does not match the intended state, and the system is working to reconcile them, whether or not the change was user initiated. + Reconciling *bool `pulumi:"reconciling"` + // The intended state to which the service instance is reconciling. Possible values: + // * `CREATING` + // * `ACTIVE` + // * `DISCONNECTED` + // * `DELETING` + // * `STOPPING` + // * `STOPPED` + // * `STARTING` + // * `UPDATING` + // * `FAILED` + RequestedState *string `pulumi:"requestedState"` + // Requested service account to associate with ServiceInstance. + ServiceAccount *string `pulumi:"serviceAccount"` + // Id of the service instance. + // + // *** + ServiceInstanceId *string `pulumi:"serviceInstanceId"` + // Spark-specific service instance configuration. + SparkServiceInstanceConfig *GdcServiceInstanceSparkServiceInstanceConfig `pulumi:"sparkServiceInstanceConfig"` + // The current state. Possible values: + // * `CREATING` + // * `ACTIVE` + // * `DISCONNECTED` + // * `DELETING` + // * `STOPPING` + // * `STOPPED` + // * `STARTING` + // * `UPDATING` + // * `FAILED` + State *string `pulumi:"state"` + // A message explaining the current state. + StateMessage *string `pulumi:"stateMessage"` + // System generated unique identifier for this service instance, formatted as UUID4. + Uid *string `pulumi:"uid"` + // The timestamp when the resource was most recently updated. + UpdateTime *string `pulumi:"updateTime"` +} + +type GdcServiceInstanceState struct { + // The timestamp when the resource was created. + CreateTime pulumi.StringPtrInput + // User-provided human-readable name to be used in user interfaces. + DisplayName pulumi.StringPtrInput + // All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + EffectiveLabels pulumi.StringMapInput + // Effective service account associated with ServiceInstance. This will be the serviceAccount if specified. Otherwise, it will be an automatically created per-resource P4SA that also automatically has Fleet Workload. Identity bindings applied. + EffectiveServiceAccount pulumi.StringPtrInput + // Gdce cluster information. + // Structure is documented below. + GdceCluster GdcServiceInstanceGdceClusterPtrInput + // The labels to associate with this service instance. Labels may be used for filtering and billing tracking. + // **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + // Please refer to the field `effectiveLabels` for all of the labels present on the resource. + Labels pulumi.StringMapInput + // Location of the resource. + Location pulumi.StringPtrInput + // Identifier. The name of the service instance. + Name pulumi.StringPtrInput + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project pulumi.StringPtrInput + // The combination of labels configured directly on the resource + // and default labels configured on the provider. + PulumiLabels pulumi.StringMapInput + // Whether the service instance is currently reconciling. True if the current state of the resource does not match the intended state, and the system is working to reconcile them, whether or not the change was user initiated. + Reconciling pulumi.BoolPtrInput + // The intended state to which the service instance is reconciling. Possible values: + // * `CREATING` + // * `ACTIVE` + // * `DISCONNECTED` + // * `DELETING` + // * `STOPPING` + // * `STOPPED` + // * `STARTING` + // * `UPDATING` + // * `FAILED` + RequestedState pulumi.StringPtrInput + // Requested service account to associate with ServiceInstance. + ServiceAccount pulumi.StringPtrInput + // Id of the service instance. + // + // *** + ServiceInstanceId pulumi.StringPtrInput + // Spark-specific service instance configuration. + SparkServiceInstanceConfig GdcServiceInstanceSparkServiceInstanceConfigPtrInput + // The current state. Possible values: + // * `CREATING` + // * `ACTIVE` + // * `DISCONNECTED` + // * `DELETING` + // * `STOPPING` + // * `STOPPED` + // * `STARTING` + // * `UPDATING` + // * `FAILED` + State pulumi.StringPtrInput + // A message explaining the current state. + StateMessage pulumi.StringPtrInput + // System generated unique identifier for this service instance, formatted as UUID4. + Uid pulumi.StringPtrInput + // The timestamp when the resource was most recently updated. + UpdateTime pulumi.StringPtrInput +} + +func (GdcServiceInstanceState) ElementType() reflect.Type { + return reflect.TypeOf((*gdcServiceInstanceState)(nil)).Elem() +} + +type gdcServiceInstanceArgs struct { + // User-provided human-readable name to be used in user interfaces. + DisplayName *string `pulumi:"displayName"` + // Gdce cluster information. + // Structure is documented below. + GdceCluster *GdcServiceInstanceGdceCluster `pulumi:"gdceCluster"` + // The labels to associate with this service instance. Labels may be used for filtering and billing tracking. + // **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + // Please refer to the field `effectiveLabels` for all of the labels present on the resource. + Labels map[string]string `pulumi:"labels"` + // Location of the resource. + Location string `pulumi:"location"` + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project *string `pulumi:"project"` + // Requested service account to associate with ServiceInstance. + ServiceAccount *string `pulumi:"serviceAccount"` + // Id of the service instance. + // + // *** + ServiceInstanceId string `pulumi:"serviceInstanceId"` + // Spark-specific service instance configuration. + SparkServiceInstanceConfig *GdcServiceInstanceSparkServiceInstanceConfig `pulumi:"sparkServiceInstanceConfig"` +} + +// The set of arguments for constructing a GdcServiceInstance resource. +type GdcServiceInstanceArgs struct { + // User-provided human-readable name to be used in user interfaces. + DisplayName pulumi.StringPtrInput + // Gdce cluster information. + // Structure is documented below. + GdceCluster GdcServiceInstanceGdceClusterPtrInput + // The labels to associate with this service instance. Labels may be used for filtering and billing tracking. + // **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + // Please refer to the field `effectiveLabels` for all of the labels present on the resource. + Labels pulumi.StringMapInput + // Location of the resource. + Location pulumi.StringInput + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project pulumi.StringPtrInput + // Requested service account to associate with ServiceInstance. + ServiceAccount pulumi.StringPtrInput + // Id of the service instance. + // + // *** + ServiceInstanceId pulumi.StringInput + // Spark-specific service instance configuration. + SparkServiceInstanceConfig GdcServiceInstanceSparkServiceInstanceConfigPtrInput +} + +func (GdcServiceInstanceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*gdcServiceInstanceArgs)(nil)).Elem() +} + +type GdcServiceInstanceInput interface { + pulumi.Input + + ToGdcServiceInstanceOutput() GdcServiceInstanceOutput + ToGdcServiceInstanceOutputWithContext(ctx context.Context) GdcServiceInstanceOutput +} + +func (*GdcServiceInstance) ElementType() reflect.Type { + return reflect.TypeOf((**GdcServiceInstance)(nil)).Elem() +} + +func (i *GdcServiceInstance) ToGdcServiceInstanceOutput() GdcServiceInstanceOutput { + return i.ToGdcServiceInstanceOutputWithContext(context.Background()) +} + +func (i *GdcServiceInstance) ToGdcServiceInstanceOutputWithContext(ctx context.Context) GdcServiceInstanceOutput { + return pulumi.ToOutputWithContext(ctx, i).(GdcServiceInstanceOutput) +} + +// GdcServiceInstanceArrayInput is an input type that accepts GdcServiceInstanceArray and GdcServiceInstanceArrayOutput values. +// You can construct a concrete instance of `GdcServiceInstanceArrayInput` via: +// +// GdcServiceInstanceArray{ GdcServiceInstanceArgs{...} } +type GdcServiceInstanceArrayInput interface { + pulumi.Input + + ToGdcServiceInstanceArrayOutput() GdcServiceInstanceArrayOutput + ToGdcServiceInstanceArrayOutputWithContext(context.Context) GdcServiceInstanceArrayOutput +} + +type GdcServiceInstanceArray []GdcServiceInstanceInput + +func (GdcServiceInstanceArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*GdcServiceInstance)(nil)).Elem() +} + +func (i GdcServiceInstanceArray) ToGdcServiceInstanceArrayOutput() GdcServiceInstanceArrayOutput { + return i.ToGdcServiceInstanceArrayOutputWithContext(context.Background()) +} + +func (i GdcServiceInstanceArray) ToGdcServiceInstanceArrayOutputWithContext(ctx context.Context) GdcServiceInstanceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GdcServiceInstanceArrayOutput) +} + +// GdcServiceInstanceMapInput is an input type that accepts GdcServiceInstanceMap and GdcServiceInstanceMapOutput values. +// You can construct a concrete instance of `GdcServiceInstanceMapInput` via: +// +// GdcServiceInstanceMap{ "key": GdcServiceInstanceArgs{...} } +type GdcServiceInstanceMapInput interface { + pulumi.Input + + ToGdcServiceInstanceMapOutput() GdcServiceInstanceMapOutput + ToGdcServiceInstanceMapOutputWithContext(context.Context) GdcServiceInstanceMapOutput +} + +type GdcServiceInstanceMap map[string]GdcServiceInstanceInput + +func (GdcServiceInstanceMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*GdcServiceInstance)(nil)).Elem() +} + +func (i GdcServiceInstanceMap) ToGdcServiceInstanceMapOutput() GdcServiceInstanceMapOutput { + return i.ToGdcServiceInstanceMapOutputWithContext(context.Background()) +} + +func (i GdcServiceInstanceMap) ToGdcServiceInstanceMapOutputWithContext(ctx context.Context) GdcServiceInstanceMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(GdcServiceInstanceMapOutput) +} + +type GdcServiceInstanceOutput struct{ *pulumi.OutputState } + +func (GdcServiceInstanceOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GdcServiceInstance)(nil)).Elem() +} + +func (o GdcServiceInstanceOutput) ToGdcServiceInstanceOutput() GdcServiceInstanceOutput { + return o +} + +func (o GdcServiceInstanceOutput) ToGdcServiceInstanceOutputWithContext(ctx context.Context) GdcServiceInstanceOutput { + return o +} + +// The timestamp when the resource was created. +func (o GdcServiceInstanceOutput) CreateTime() pulumi.StringOutput { + return o.ApplyT(func(v *GdcServiceInstance) pulumi.StringOutput { return v.CreateTime }).(pulumi.StringOutput) +} + +// User-provided human-readable name to be used in user interfaces. +func (o GdcServiceInstanceOutput) DisplayName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GdcServiceInstance) pulumi.StringPtrOutput { return v.DisplayName }).(pulumi.StringPtrOutput) +} + +// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. +func (o GdcServiceInstanceOutput) EffectiveLabels() pulumi.StringMapOutput { + return o.ApplyT(func(v *GdcServiceInstance) pulumi.StringMapOutput { return v.EffectiveLabels }).(pulumi.StringMapOutput) +} + +// Effective service account associated with ServiceInstance. This will be the serviceAccount if specified. Otherwise, it will be an automatically created per-resource P4SA that also automatically has Fleet Workload. Identity bindings applied. +func (o GdcServiceInstanceOutput) EffectiveServiceAccount() pulumi.StringOutput { + return o.ApplyT(func(v *GdcServiceInstance) pulumi.StringOutput { return v.EffectiveServiceAccount }).(pulumi.StringOutput) +} + +// Gdce cluster information. +// Structure is documented below. +func (o GdcServiceInstanceOutput) GdceCluster() GdcServiceInstanceGdceClusterPtrOutput { + return o.ApplyT(func(v *GdcServiceInstance) GdcServiceInstanceGdceClusterPtrOutput { return v.GdceCluster }).(GdcServiceInstanceGdceClusterPtrOutput) +} + +// The labels to associate with this service instance. Labels may be used for filtering and billing tracking. +// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. +// Please refer to the field `effectiveLabels` for all of the labels present on the resource. +func (o GdcServiceInstanceOutput) Labels() pulumi.StringMapOutput { + return o.ApplyT(func(v *GdcServiceInstance) pulumi.StringMapOutput { return v.Labels }).(pulumi.StringMapOutput) +} + +// Location of the resource. +func (o GdcServiceInstanceOutput) Location() pulumi.StringOutput { + return o.ApplyT(func(v *GdcServiceInstance) pulumi.StringOutput { return v.Location }).(pulumi.StringOutput) +} + +// Identifier. The name of the service instance. +func (o GdcServiceInstanceOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *GdcServiceInstance) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The ID of the project in which the resource belongs. +// If it is not provided, the provider project is used. +func (o GdcServiceInstanceOutput) Project() pulumi.StringOutput { + return o.ApplyT(func(v *GdcServiceInstance) pulumi.StringOutput { return v.Project }).(pulumi.StringOutput) +} + +// The combination of labels configured directly on the resource +// and default labels configured on the provider. +func (o GdcServiceInstanceOutput) PulumiLabels() pulumi.StringMapOutput { + return o.ApplyT(func(v *GdcServiceInstance) pulumi.StringMapOutput { return v.PulumiLabels }).(pulumi.StringMapOutput) +} + +// Whether the service instance is currently reconciling. True if the current state of the resource does not match the intended state, and the system is working to reconcile them, whether or not the change was user initiated. +func (o GdcServiceInstanceOutput) Reconciling() pulumi.BoolOutput { + return o.ApplyT(func(v *GdcServiceInstance) pulumi.BoolOutput { return v.Reconciling }).(pulumi.BoolOutput) +} + +// The intended state to which the service instance is reconciling. Possible values: +// * `CREATING` +// * `ACTIVE` +// * `DISCONNECTED` +// * `DELETING` +// * `STOPPING` +// * `STOPPED` +// * `STARTING` +// * `UPDATING` +// * `FAILED` +func (o GdcServiceInstanceOutput) RequestedState() pulumi.StringOutput { + return o.ApplyT(func(v *GdcServiceInstance) pulumi.StringOutput { return v.RequestedState }).(pulumi.StringOutput) +} + +// Requested service account to associate with ServiceInstance. +func (o GdcServiceInstanceOutput) ServiceAccount() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GdcServiceInstance) pulumi.StringPtrOutput { return v.ServiceAccount }).(pulumi.StringPtrOutput) +} + +// Id of the service instance. +// +// *** +func (o GdcServiceInstanceOutput) ServiceInstanceId() pulumi.StringOutput { + return o.ApplyT(func(v *GdcServiceInstance) pulumi.StringOutput { return v.ServiceInstanceId }).(pulumi.StringOutput) +} + +// Spark-specific service instance configuration. +func (o GdcServiceInstanceOutput) SparkServiceInstanceConfig() GdcServiceInstanceSparkServiceInstanceConfigPtrOutput { + return o.ApplyT(func(v *GdcServiceInstance) GdcServiceInstanceSparkServiceInstanceConfigPtrOutput { + return v.SparkServiceInstanceConfig + }).(GdcServiceInstanceSparkServiceInstanceConfigPtrOutput) +} + +// The current state. Possible values: +// * `CREATING` +// * `ACTIVE` +// * `DISCONNECTED` +// * `DELETING` +// * `STOPPING` +// * `STOPPED` +// * `STARTING` +// * `UPDATING` +// * `FAILED` +func (o GdcServiceInstanceOutput) State() pulumi.StringOutput { + return o.ApplyT(func(v *GdcServiceInstance) pulumi.StringOutput { return v.State }).(pulumi.StringOutput) +} + +// A message explaining the current state. +func (o GdcServiceInstanceOutput) StateMessage() pulumi.StringOutput { + return o.ApplyT(func(v *GdcServiceInstance) pulumi.StringOutput { return v.StateMessage }).(pulumi.StringOutput) +} + +// System generated unique identifier for this service instance, formatted as UUID4. +func (o GdcServiceInstanceOutput) Uid() pulumi.StringOutput { + return o.ApplyT(func(v *GdcServiceInstance) pulumi.StringOutput { return v.Uid }).(pulumi.StringOutput) +} + +// The timestamp when the resource was most recently updated. +func (o GdcServiceInstanceOutput) UpdateTime() pulumi.StringOutput { + return o.ApplyT(func(v *GdcServiceInstance) pulumi.StringOutput { return v.UpdateTime }).(pulumi.StringOutput) +} + +type GdcServiceInstanceArrayOutput struct{ *pulumi.OutputState } + +func (GdcServiceInstanceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*GdcServiceInstance)(nil)).Elem() +} + +func (o GdcServiceInstanceArrayOutput) ToGdcServiceInstanceArrayOutput() GdcServiceInstanceArrayOutput { + return o +} + +func (o GdcServiceInstanceArrayOutput) ToGdcServiceInstanceArrayOutputWithContext(ctx context.Context) GdcServiceInstanceArrayOutput { + return o +} + +func (o GdcServiceInstanceArrayOutput) Index(i pulumi.IntInput) GdcServiceInstanceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *GdcServiceInstance { + return vs[0].([]*GdcServiceInstance)[vs[1].(int)] + }).(GdcServiceInstanceOutput) +} + +type GdcServiceInstanceMapOutput struct{ *pulumi.OutputState } + +func (GdcServiceInstanceMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*GdcServiceInstance)(nil)).Elem() +} + +func (o GdcServiceInstanceMapOutput) ToGdcServiceInstanceMapOutput() GdcServiceInstanceMapOutput { + return o +} + +func (o GdcServiceInstanceMapOutput) ToGdcServiceInstanceMapOutputWithContext(ctx context.Context) GdcServiceInstanceMapOutput { + return o +} + +func (o GdcServiceInstanceMapOutput) MapIndex(k pulumi.StringInput) GdcServiceInstanceOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *GdcServiceInstance { + return vs[0].(map[string]*GdcServiceInstance)[vs[1].(string)] + }).(GdcServiceInstanceOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*GdcServiceInstanceInput)(nil)).Elem(), &GdcServiceInstance{}) + pulumi.RegisterInputType(reflect.TypeOf((*GdcServiceInstanceArrayInput)(nil)).Elem(), GdcServiceInstanceArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GdcServiceInstanceMapInput)(nil)).Elem(), GdcServiceInstanceMap{}) + pulumi.RegisterOutputType(GdcServiceInstanceOutput{}) + pulumi.RegisterOutputType(GdcServiceInstanceArrayOutput{}) + pulumi.RegisterOutputType(GdcServiceInstanceMapOutput{}) +} diff --git a/sdk/go/gcp/dataproc/init.go b/sdk/go/gcp/dataproc/init.go index d9d465278c..b1afbe827b 100644 --- a/sdk/go/gcp/dataproc/init.go +++ b/sdk/go/gcp/dataproc/init.go @@ -39,6 +39,10 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &ClusterIAMMember{} case "gcp:dataproc/clusterIAMPolicy:ClusterIAMPolicy": r = &ClusterIAMPolicy{} + case "gcp:dataproc/gdcApplicationEnvironment:GdcApplicationEnvironment": + r = &GdcApplicationEnvironment{} + case "gcp:dataproc/gdcServiceInstance:GdcServiceInstance": + r = &GdcServiceInstance{} case "gcp:dataproc/job:Job": r = &Job{} case "gcp:dataproc/jobIAMBinding:JobIAMBinding": @@ -123,6 +127,16 @@ func init() { "dataproc/clusterIAMPolicy", &module{version}, ) + pulumi.RegisterResourceModule( + "gcp", + "dataproc/gdcApplicationEnvironment", + &module{version}, + ) + pulumi.RegisterResourceModule( + "gcp", + "dataproc/gdcServiceInstance", + &module{version}, + ) pulumi.RegisterResourceModule( "gcp", "dataproc/job", diff --git a/sdk/go/gcp/dataproc/pulumiTypes.go b/sdk/go/gcp/dataproc/pulumiTypes.go index 688149cf18..44324d7e26 100644 --- a/sdk/go/gcp/dataproc/pulumiTypes.go +++ b/sdk/go/gcp/dataproc/pulumiTypes.go @@ -12427,6 +12427,419 @@ func (o ClusterVirtualClusterConfigKubernetesClusterConfigKubernetesSoftwareConf }).(pulumi.StringMapOutput) } +type GdcApplicationEnvironmentSparkApplicationEnvironmentConfig struct { + // A map of default Spark properties to apply to workloads in this application environment. These defaults may be overridden by per-application properties. + DefaultProperties map[string]string `pulumi:"defaultProperties"` + // The default Dataproc version to use for applications submitted to this application environment + DefaultVersion *string `pulumi:"defaultVersion"` +} + +// GdcApplicationEnvironmentSparkApplicationEnvironmentConfigInput is an input type that accepts GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs and GdcApplicationEnvironmentSparkApplicationEnvironmentConfigOutput values. +// You can construct a concrete instance of `GdcApplicationEnvironmentSparkApplicationEnvironmentConfigInput` via: +// +// GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs{...} +type GdcApplicationEnvironmentSparkApplicationEnvironmentConfigInput interface { + pulumi.Input + + ToGdcApplicationEnvironmentSparkApplicationEnvironmentConfigOutput() GdcApplicationEnvironmentSparkApplicationEnvironmentConfigOutput + ToGdcApplicationEnvironmentSparkApplicationEnvironmentConfigOutputWithContext(context.Context) GdcApplicationEnvironmentSparkApplicationEnvironmentConfigOutput +} + +type GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs struct { + // A map of default Spark properties to apply to workloads in this application environment. These defaults may be overridden by per-application properties. + DefaultProperties pulumi.StringMapInput `pulumi:"defaultProperties"` + // The default Dataproc version to use for applications submitted to this application environment + DefaultVersion pulumi.StringPtrInput `pulumi:"defaultVersion"` +} + +func (GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GdcApplicationEnvironmentSparkApplicationEnvironmentConfig)(nil)).Elem() +} + +func (i GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs) ToGdcApplicationEnvironmentSparkApplicationEnvironmentConfigOutput() GdcApplicationEnvironmentSparkApplicationEnvironmentConfigOutput { + return i.ToGdcApplicationEnvironmentSparkApplicationEnvironmentConfigOutputWithContext(context.Background()) +} + +func (i GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs) ToGdcApplicationEnvironmentSparkApplicationEnvironmentConfigOutputWithContext(ctx context.Context) GdcApplicationEnvironmentSparkApplicationEnvironmentConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(GdcApplicationEnvironmentSparkApplicationEnvironmentConfigOutput) +} + +func (i GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs) ToGdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutput() GdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutput { + return i.ToGdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutputWithContext(context.Background()) +} + +func (i GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs) ToGdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutputWithContext(ctx context.Context) GdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GdcApplicationEnvironmentSparkApplicationEnvironmentConfigOutput).ToGdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutputWithContext(ctx) +} + +// GdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrInput is an input type that accepts GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs, GdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtr and GdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutput values. +// You can construct a concrete instance of `GdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrInput` via: +// +// GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs{...} +// +// or: +// +// nil +type GdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrInput interface { + pulumi.Input + + ToGdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutput() GdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutput + ToGdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutputWithContext(context.Context) GdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutput +} + +type gdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrType GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs + +func GdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtr(v *GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs) GdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrInput { + return (*gdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrType)(v) +} + +func (*gdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GdcApplicationEnvironmentSparkApplicationEnvironmentConfig)(nil)).Elem() +} + +func (i *gdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrType) ToGdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutput() GdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutput { + return i.ToGdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutputWithContext(context.Background()) +} + +func (i *gdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrType) ToGdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutputWithContext(ctx context.Context) GdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutput) +} + +type GdcApplicationEnvironmentSparkApplicationEnvironmentConfigOutput struct{ *pulumi.OutputState } + +func (GdcApplicationEnvironmentSparkApplicationEnvironmentConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GdcApplicationEnvironmentSparkApplicationEnvironmentConfig)(nil)).Elem() +} + +func (o GdcApplicationEnvironmentSparkApplicationEnvironmentConfigOutput) ToGdcApplicationEnvironmentSparkApplicationEnvironmentConfigOutput() GdcApplicationEnvironmentSparkApplicationEnvironmentConfigOutput { + return o +} + +func (o GdcApplicationEnvironmentSparkApplicationEnvironmentConfigOutput) ToGdcApplicationEnvironmentSparkApplicationEnvironmentConfigOutputWithContext(ctx context.Context) GdcApplicationEnvironmentSparkApplicationEnvironmentConfigOutput { + return o +} + +func (o GdcApplicationEnvironmentSparkApplicationEnvironmentConfigOutput) ToGdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutput() GdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutput { + return o.ToGdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutputWithContext(context.Background()) +} + +func (o GdcApplicationEnvironmentSparkApplicationEnvironmentConfigOutput) ToGdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutputWithContext(ctx context.Context) GdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GdcApplicationEnvironmentSparkApplicationEnvironmentConfig) *GdcApplicationEnvironmentSparkApplicationEnvironmentConfig { + return &v + }).(GdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutput) +} + +// A map of default Spark properties to apply to workloads in this application environment. These defaults may be overridden by per-application properties. +func (o GdcApplicationEnvironmentSparkApplicationEnvironmentConfigOutput) DefaultProperties() pulumi.StringMapOutput { + return o.ApplyT(func(v GdcApplicationEnvironmentSparkApplicationEnvironmentConfig) map[string]string { + return v.DefaultProperties + }).(pulumi.StringMapOutput) +} + +// The default Dataproc version to use for applications submitted to this application environment +func (o GdcApplicationEnvironmentSparkApplicationEnvironmentConfigOutput) DefaultVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v GdcApplicationEnvironmentSparkApplicationEnvironmentConfig) *string { return v.DefaultVersion }).(pulumi.StringPtrOutput) +} + +type GdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutput struct{ *pulumi.OutputState } + +func (GdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GdcApplicationEnvironmentSparkApplicationEnvironmentConfig)(nil)).Elem() +} + +func (o GdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutput) ToGdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutput() GdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutput { + return o +} + +func (o GdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutput) ToGdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutputWithContext(ctx context.Context) GdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutput { + return o +} + +func (o GdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutput) Elem() GdcApplicationEnvironmentSparkApplicationEnvironmentConfigOutput { + return o.ApplyT(func(v *GdcApplicationEnvironmentSparkApplicationEnvironmentConfig) GdcApplicationEnvironmentSparkApplicationEnvironmentConfig { + if v != nil { + return *v + } + var ret GdcApplicationEnvironmentSparkApplicationEnvironmentConfig + return ret + }).(GdcApplicationEnvironmentSparkApplicationEnvironmentConfigOutput) +} + +// A map of default Spark properties to apply to workloads in this application environment. These defaults may be overridden by per-application properties. +func (o GdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutput) DefaultProperties() pulumi.StringMapOutput { + return o.ApplyT(func(v *GdcApplicationEnvironmentSparkApplicationEnvironmentConfig) map[string]string { + if v == nil { + return nil + } + return v.DefaultProperties + }).(pulumi.StringMapOutput) +} + +// The default Dataproc version to use for applications submitted to this application environment +func (o GdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutput) DefaultVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GdcApplicationEnvironmentSparkApplicationEnvironmentConfig) *string { + if v == nil { + return nil + } + return v.DefaultVersion + }).(pulumi.StringPtrOutput) +} + +type GdcServiceInstanceGdceCluster struct { + // Gdce cluster resource id. + GdceCluster string `pulumi:"gdceCluster"` +} + +// GdcServiceInstanceGdceClusterInput is an input type that accepts GdcServiceInstanceGdceClusterArgs and GdcServiceInstanceGdceClusterOutput values. +// You can construct a concrete instance of `GdcServiceInstanceGdceClusterInput` via: +// +// GdcServiceInstanceGdceClusterArgs{...} +type GdcServiceInstanceGdceClusterInput interface { + pulumi.Input + + ToGdcServiceInstanceGdceClusterOutput() GdcServiceInstanceGdceClusterOutput + ToGdcServiceInstanceGdceClusterOutputWithContext(context.Context) GdcServiceInstanceGdceClusterOutput +} + +type GdcServiceInstanceGdceClusterArgs struct { + // Gdce cluster resource id. + GdceCluster pulumi.StringInput `pulumi:"gdceCluster"` +} + +func (GdcServiceInstanceGdceClusterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GdcServiceInstanceGdceCluster)(nil)).Elem() +} + +func (i GdcServiceInstanceGdceClusterArgs) ToGdcServiceInstanceGdceClusterOutput() GdcServiceInstanceGdceClusterOutput { + return i.ToGdcServiceInstanceGdceClusterOutputWithContext(context.Background()) +} + +func (i GdcServiceInstanceGdceClusterArgs) ToGdcServiceInstanceGdceClusterOutputWithContext(ctx context.Context) GdcServiceInstanceGdceClusterOutput { + return pulumi.ToOutputWithContext(ctx, i).(GdcServiceInstanceGdceClusterOutput) +} + +func (i GdcServiceInstanceGdceClusterArgs) ToGdcServiceInstanceGdceClusterPtrOutput() GdcServiceInstanceGdceClusterPtrOutput { + return i.ToGdcServiceInstanceGdceClusterPtrOutputWithContext(context.Background()) +} + +func (i GdcServiceInstanceGdceClusterArgs) ToGdcServiceInstanceGdceClusterPtrOutputWithContext(ctx context.Context) GdcServiceInstanceGdceClusterPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GdcServiceInstanceGdceClusterOutput).ToGdcServiceInstanceGdceClusterPtrOutputWithContext(ctx) +} + +// GdcServiceInstanceGdceClusterPtrInput is an input type that accepts GdcServiceInstanceGdceClusterArgs, GdcServiceInstanceGdceClusterPtr and GdcServiceInstanceGdceClusterPtrOutput values. +// You can construct a concrete instance of `GdcServiceInstanceGdceClusterPtrInput` via: +// +// GdcServiceInstanceGdceClusterArgs{...} +// +// or: +// +// nil +type GdcServiceInstanceGdceClusterPtrInput interface { + pulumi.Input + + ToGdcServiceInstanceGdceClusterPtrOutput() GdcServiceInstanceGdceClusterPtrOutput + ToGdcServiceInstanceGdceClusterPtrOutputWithContext(context.Context) GdcServiceInstanceGdceClusterPtrOutput +} + +type gdcServiceInstanceGdceClusterPtrType GdcServiceInstanceGdceClusterArgs + +func GdcServiceInstanceGdceClusterPtr(v *GdcServiceInstanceGdceClusterArgs) GdcServiceInstanceGdceClusterPtrInput { + return (*gdcServiceInstanceGdceClusterPtrType)(v) +} + +func (*gdcServiceInstanceGdceClusterPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GdcServiceInstanceGdceCluster)(nil)).Elem() +} + +func (i *gdcServiceInstanceGdceClusterPtrType) ToGdcServiceInstanceGdceClusterPtrOutput() GdcServiceInstanceGdceClusterPtrOutput { + return i.ToGdcServiceInstanceGdceClusterPtrOutputWithContext(context.Background()) +} + +func (i *gdcServiceInstanceGdceClusterPtrType) ToGdcServiceInstanceGdceClusterPtrOutputWithContext(ctx context.Context) GdcServiceInstanceGdceClusterPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GdcServiceInstanceGdceClusterPtrOutput) +} + +type GdcServiceInstanceGdceClusterOutput struct{ *pulumi.OutputState } + +func (GdcServiceInstanceGdceClusterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GdcServiceInstanceGdceCluster)(nil)).Elem() +} + +func (o GdcServiceInstanceGdceClusterOutput) ToGdcServiceInstanceGdceClusterOutput() GdcServiceInstanceGdceClusterOutput { + return o +} + +func (o GdcServiceInstanceGdceClusterOutput) ToGdcServiceInstanceGdceClusterOutputWithContext(ctx context.Context) GdcServiceInstanceGdceClusterOutput { + return o +} + +func (o GdcServiceInstanceGdceClusterOutput) ToGdcServiceInstanceGdceClusterPtrOutput() GdcServiceInstanceGdceClusterPtrOutput { + return o.ToGdcServiceInstanceGdceClusterPtrOutputWithContext(context.Background()) +} + +func (o GdcServiceInstanceGdceClusterOutput) ToGdcServiceInstanceGdceClusterPtrOutputWithContext(ctx context.Context) GdcServiceInstanceGdceClusterPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GdcServiceInstanceGdceCluster) *GdcServiceInstanceGdceCluster { + return &v + }).(GdcServiceInstanceGdceClusterPtrOutput) +} + +// Gdce cluster resource id. +func (o GdcServiceInstanceGdceClusterOutput) GdceCluster() pulumi.StringOutput { + return o.ApplyT(func(v GdcServiceInstanceGdceCluster) string { return v.GdceCluster }).(pulumi.StringOutput) +} + +type GdcServiceInstanceGdceClusterPtrOutput struct{ *pulumi.OutputState } + +func (GdcServiceInstanceGdceClusterPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GdcServiceInstanceGdceCluster)(nil)).Elem() +} + +func (o GdcServiceInstanceGdceClusterPtrOutput) ToGdcServiceInstanceGdceClusterPtrOutput() GdcServiceInstanceGdceClusterPtrOutput { + return o +} + +func (o GdcServiceInstanceGdceClusterPtrOutput) ToGdcServiceInstanceGdceClusterPtrOutputWithContext(ctx context.Context) GdcServiceInstanceGdceClusterPtrOutput { + return o +} + +func (o GdcServiceInstanceGdceClusterPtrOutput) Elem() GdcServiceInstanceGdceClusterOutput { + return o.ApplyT(func(v *GdcServiceInstanceGdceCluster) GdcServiceInstanceGdceCluster { + if v != nil { + return *v + } + var ret GdcServiceInstanceGdceCluster + return ret + }).(GdcServiceInstanceGdceClusterOutput) +} + +// Gdce cluster resource id. +func (o GdcServiceInstanceGdceClusterPtrOutput) GdceCluster() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GdcServiceInstanceGdceCluster) *string { + if v == nil { + return nil + } + return &v.GdceCluster + }).(pulumi.StringPtrOutput) +} + +type GdcServiceInstanceSparkServiceInstanceConfig struct { +} + +// GdcServiceInstanceSparkServiceInstanceConfigInput is an input type that accepts GdcServiceInstanceSparkServiceInstanceConfigArgs and GdcServiceInstanceSparkServiceInstanceConfigOutput values. +// You can construct a concrete instance of `GdcServiceInstanceSparkServiceInstanceConfigInput` via: +// +// GdcServiceInstanceSparkServiceInstanceConfigArgs{...} +type GdcServiceInstanceSparkServiceInstanceConfigInput interface { + pulumi.Input + + ToGdcServiceInstanceSparkServiceInstanceConfigOutput() GdcServiceInstanceSparkServiceInstanceConfigOutput + ToGdcServiceInstanceSparkServiceInstanceConfigOutputWithContext(context.Context) GdcServiceInstanceSparkServiceInstanceConfigOutput +} + +type GdcServiceInstanceSparkServiceInstanceConfigArgs struct { +} + +func (GdcServiceInstanceSparkServiceInstanceConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GdcServiceInstanceSparkServiceInstanceConfig)(nil)).Elem() +} + +func (i GdcServiceInstanceSparkServiceInstanceConfigArgs) ToGdcServiceInstanceSparkServiceInstanceConfigOutput() GdcServiceInstanceSparkServiceInstanceConfigOutput { + return i.ToGdcServiceInstanceSparkServiceInstanceConfigOutputWithContext(context.Background()) +} + +func (i GdcServiceInstanceSparkServiceInstanceConfigArgs) ToGdcServiceInstanceSparkServiceInstanceConfigOutputWithContext(ctx context.Context) GdcServiceInstanceSparkServiceInstanceConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(GdcServiceInstanceSparkServiceInstanceConfigOutput) +} + +func (i GdcServiceInstanceSparkServiceInstanceConfigArgs) ToGdcServiceInstanceSparkServiceInstanceConfigPtrOutput() GdcServiceInstanceSparkServiceInstanceConfigPtrOutput { + return i.ToGdcServiceInstanceSparkServiceInstanceConfigPtrOutputWithContext(context.Background()) +} + +func (i GdcServiceInstanceSparkServiceInstanceConfigArgs) ToGdcServiceInstanceSparkServiceInstanceConfigPtrOutputWithContext(ctx context.Context) GdcServiceInstanceSparkServiceInstanceConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GdcServiceInstanceSparkServiceInstanceConfigOutput).ToGdcServiceInstanceSparkServiceInstanceConfigPtrOutputWithContext(ctx) +} + +// GdcServiceInstanceSparkServiceInstanceConfigPtrInput is an input type that accepts GdcServiceInstanceSparkServiceInstanceConfigArgs, GdcServiceInstanceSparkServiceInstanceConfigPtr and GdcServiceInstanceSparkServiceInstanceConfigPtrOutput values. +// You can construct a concrete instance of `GdcServiceInstanceSparkServiceInstanceConfigPtrInput` via: +// +// GdcServiceInstanceSparkServiceInstanceConfigArgs{...} +// +// or: +// +// nil +type GdcServiceInstanceSparkServiceInstanceConfigPtrInput interface { + pulumi.Input + + ToGdcServiceInstanceSparkServiceInstanceConfigPtrOutput() GdcServiceInstanceSparkServiceInstanceConfigPtrOutput + ToGdcServiceInstanceSparkServiceInstanceConfigPtrOutputWithContext(context.Context) GdcServiceInstanceSparkServiceInstanceConfigPtrOutput +} + +type gdcServiceInstanceSparkServiceInstanceConfigPtrType GdcServiceInstanceSparkServiceInstanceConfigArgs + +func GdcServiceInstanceSparkServiceInstanceConfigPtr(v *GdcServiceInstanceSparkServiceInstanceConfigArgs) GdcServiceInstanceSparkServiceInstanceConfigPtrInput { + return (*gdcServiceInstanceSparkServiceInstanceConfigPtrType)(v) +} + +func (*gdcServiceInstanceSparkServiceInstanceConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GdcServiceInstanceSparkServiceInstanceConfig)(nil)).Elem() +} + +func (i *gdcServiceInstanceSparkServiceInstanceConfigPtrType) ToGdcServiceInstanceSparkServiceInstanceConfigPtrOutput() GdcServiceInstanceSparkServiceInstanceConfigPtrOutput { + return i.ToGdcServiceInstanceSparkServiceInstanceConfigPtrOutputWithContext(context.Background()) +} + +func (i *gdcServiceInstanceSparkServiceInstanceConfigPtrType) ToGdcServiceInstanceSparkServiceInstanceConfigPtrOutputWithContext(ctx context.Context) GdcServiceInstanceSparkServiceInstanceConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GdcServiceInstanceSparkServiceInstanceConfigPtrOutput) +} + +type GdcServiceInstanceSparkServiceInstanceConfigOutput struct{ *pulumi.OutputState } + +func (GdcServiceInstanceSparkServiceInstanceConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GdcServiceInstanceSparkServiceInstanceConfig)(nil)).Elem() +} + +func (o GdcServiceInstanceSparkServiceInstanceConfigOutput) ToGdcServiceInstanceSparkServiceInstanceConfigOutput() GdcServiceInstanceSparkServiceInstanceConfigOutput { + return o +} + +func (o GdcServiceInstanceSparkServiceInstanceConfigOutput) ToGdcServiceInstanceSparkServiceInstanceConfigOutputWithContext(ctx context.Context) GdcServiceInstanceSparkServiceInstanceConfigOutput { + return o +} + +func (o GdcServiceInstanceSparkServiceInstanceConfigOutput) ToGdcServiceInstanceSparkServiceInstanceConfigPtrOutput() GdcServiceInstanceSparkServiceInstanceConfigPtrOutput { + return o.ToGdcServiceInstanceSparkServiceInstanceConfigPtrOutputWithContext(context.Background()) +} + +func (o GdcServiceInstanceSparkServiceInstanceConfigOutput) ToGdcServiceInstanceSparkServiceInstanceConfigPtrOutputWithContext(ctx context.Context) GdcServiceInstanceSparkServiceInstanceConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GdcServiceInstanceSparkServiceInstanceConfig) *GdcServiceInstanceSparkServiceInstanceConfig { + return &v + }).(GdcServiceInstanceSparkServiceInstanceConfigPtrOutput) +} + +type GdcServiceInstanceSparkServiceInstanceConfigPtrOutput struct{ *pulumi.OutputState } + +func (GdcServiceInstanceSparkServiceInstanceConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GdcServiceInstanceSparkServiceInstanceConfig)(nil)).Elem() +} + +func (o GdcServiceInstanceSparkServiceInstanceConfigPtrOutput) ToGdcServiceInstanceSparkServiceInstanceConfigPtrOutput() GdcServiceInstanceSparkServiceInstanceConfigPtrOutput { + return o +} + +func (o GdcServiceInstanceSparkServiceInstanceConfigPtrOutput) ToGdcServiceInstanceSparkServiceInstanceConfigPtrOutputWithContext(ctx context.Context) GdcServiceInstanceSparkServiceInstanceConfigPtrOutput { + return o +} + +func (o GdcServiceInstanceSparkServiceInstanceConfigPtrOutput) Elem() GdcServiceInstanceSparkServiceInstanceConfigOutput { + return o.ApplyT(func(v *GdcServiceInstanceSparkServiceInstanceConfig) GdcServiceInstanceSparkServiceInstanceConfig { + if v != nil { + return *v + } + var ret GdcServiceInstanceSparkServiceInstanceConfig + return ret + }).(GdcServiceInstanceSparkServiceInstanceConfigOutput) +} + type JobHadoopConfig struct { // HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip. ArchiveUris []string `pulumi:"archiveUris"` @@ -31341,6 +31754,12 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ClusterVirtualClusterConfigKubernetesClusterConfigGkeClusterConfigNodePoolTargetNodePoolConfigConfigPtrInput)(nil)).Elem(), ClusterVirtualClusterConfigKubernetesClusterConfigGkeClusterConfigNodePoolTargetNodePoolConfigConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ClusterVirtualClusterConfigKubernetesClusterConfigKubernetesSoftwareConfigInput)(nil)).Elem(), ClusterVirtualClusterConfigKubernetesClusterConfigKubernetesSoftwareConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ClusterVirtualClusterConfigKubernetesClusterConfigKubernetesSoftwareConfigPtrInput)(nil)).Elem(), ClusterVirtualClusterConfigKubernetesClusterConfigKubernetesSoftwareConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GdcApplicationEnvironmentSparkApplicationEnvironmentConfigInput)(nil)).Elem(), GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrInput)(nil)).Elem(), GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GdcServiceInstanceGdceClusterInput)(nil)).Elem(), GdcServiceInstanceGdceClusterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GdcServiceInstanceGdceClusterPtrInput)(nil)).Elem(), GdcServiceInstanceGdceClusterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GdcServiceInstanceSparkServiceInstanceConfigInput)(nil)).Elem(), GdcServiceInstanceSparkServiceInstanceConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GdcServiceInstanceSparkServiceInstanceConfigPtrInput)(nil)).Elem(), GdcServiceInstanceSparkServiceInstanceConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*JobHadoopConfigInput)(nil)).Elem(), JobHadoopConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*JobHadoopConfigPtrInput)(nil)).Elem(), JobHadoopConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*JobHadoopConfigLoggingConfigInput)(nil)).Elem(), JobHadoopConfigLoggingConfigArgs{}) @@ -31689,6 +32108,12 @@ func init() { pulumi.RegisterOutputType(ClusterVirtualClusterConfigKubernetesClusterConfigGkeClusterConfigNodePoolTargetNodePoolConfigConfigPtrOutput{}) pulumi.RegisterOutputType(ClusterVirtualClusterConfigKubernetesClusterConfigKubernetesSoftwareConfigOutput{}) pulumi.RegisterOutputType(ClusterVirtualClusterConfigKubernetesClusterConfigKubernetesSoftwareConfigPtrOutput{}) + pulumi.RegisterOutputType(GdcApplicationEnvironmentSparkApplicationEnvironmentConfigOutput{}) + pulumi.RegisterOutputType(GdcApplicationEnvironmentSparkApplicationEnvironmentConfigPtrOutput{}) + pulumi.RegisterOutputType(GdcServiceInstanceGdceClusterOutput{}) + pulumi.RegisterOutputType(GdcServiceInstanceGdceClusterPtrOutput{}) + pulumi.RegisterOutputType(GdcServiceInstanceSparkServiceInstanceConfigOutput{}) + pulumi.RegisterOutputType(GdcServiceInstanceSparkServiceInstanceConfigPtrOutput{}) pulumi.RegisterOutputType(JobHadoopConfigOutput{}) pulumi.RegisterOutputType(JobHadoopConfigPtrOutput{}) pulumi.RegisterOutputType(JobHadoopConfigLoggingConfigOutput{}) diff --git a/sdk/go/gcp/edgecontainer/vpnConnection.go b/sdk/go/gcp/edgecontainer/vpnConnection.go index 7892df5020..6b95bb8f95 100644 --- a/sdk/go/gcp/edgecontainer/vpnConnection.go +++ b/sdk/go/gcp/edgecontainer/vpnConnection.go @@ -137,7 +137,7 @@ type VpnConnection struct { Cluster pulumi.StringOutput `pulumi:"cluster"` // The time when the VPN connection was created. CreateTime pulumi.StringOutput `pulumi:"createTime"` - // A nested object resource + // A nested object resource. // Structure is documented below. Details VpnConnectionDetailArrayOutput `pulumi:"details"` // All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. @@ -219,7 +219,7 @@ type vpnConnectionState struct { Cluster *string `pulumi:"cluster"` // The time when the VPN connection was created. CreateTime *string `pulumi:"createTime"` - // A nested object resource + // A nested object resource. // Structure is documented below. Details []VpnConnectionDetail `pulumi:"details"` // All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. @@ -261,7 +261,7 @@ type VpnConnectionState struct { Cluster pulumi.StringPtrInput // The time when the VPN connection was created. CreateTime pulumi.StringPtrInput - // A nested object resource + // A nested object resource. // Structure is documented below. Details VpnConnectionDetailArrayInput // All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. @@ -460,7 +460,7 @@ func (o VpnConnectionOutput) CreateTime() pulumi.StringOutput { return o.ApplyT(func(v *VpnConnection) pulumi.StringOutput { return v.CreateTime }).(pulumi.StringOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o VpnConnectionOutput) Details() VpnConnectionDetailArrayOutput { return o.ApplyT(func(v *VpnConnection) VpnConnectionDetailArrayOutput { return v.Details }).(VpnConnectionDetailArrayOutput) diff --git a/sdk/go/gcp/firebase/androidApp.go b/sdk/go/gcp/firebase/androidApp.go index 9c8febd801..56524cb0cd 100644 --- a/sdk/go/gcp/firebase/androidApp.go +++ b/sdk/go/gcp/firebase/androidApp.go @@ -118,7 +118,7 @@ import ( // When using the `pulumi import` command, AndroidApp can be imported using one of the formats above. For example: // // ```sh -// $ pulumi import gcp:firebase/androidApp:AndroidApp default {{project}} projects/{{project}}/androidApps/{{app_id}} +// $ pulumi import gcp:firebase/androidApp:AndroidApp default "{{project}} projects/{{project}}/androidApps/{{app_id}}" // ``` // // ```sh diff --git a/sdk/go/gcp/firebase/appleApp.go b/sdk/go/gcp/firebase/appleApp.go index 71f98e70a7..020e74d0af 100644 --- a/sdk/go/gcp/firebase/appleApp.go +++ b/sdk/go/gcp/firebase/appleApp.go @@ -105,7 +105,7 @@ import ( // When using the `pulumi import` command, AppleApp can be imported using one of the formats above. For example: // // ```sh -// $ pulumi import gcp:firebase/appleApp:AppleApp default {{project}} projects/{{project}}/iosApps/{{app_id}} +// $ pulumi import gcp:firebase/appleApp:AppleApp default "{{project}} projects/{{project}}/iosApps/{{app_id}}" // ``` // // ```sh diff --git a/sdk/go/gcp/firebase/webApp.go b/sdk/go/gcp/firebase/webApp.go index f20088f96b..8ad85be7c3 100644 --- a/sdk/go/gcp/firebase/webApp.go +++ b/sdk/go/gcp/firebase/webApp.go @@ -84,7 +84,7 @@ import ( // When using the `pulumi import` command, WebApp can be imported using one of the formats above. For example: // // ```sh -// $ pulumi import gcp:firebase/webApp:WebApp default {{project}} projects/{{project}}/webApps/{{app_id}} +// $ pulumi import gcp:firebase/webApp:WebApp default "{{project}} projects/{{project}}/webApps/{{app_id}}" // ``` // // ```sh diff --git a/sdk/go/gcp/firestore/index.go b/sdk/go/gcp/firestore/index.go index 8d64a3f915..167dcf1558 100644 --- a/sdk/go/gcp/firestore/index.go +++ b/sdk/go/gcp/firestore/index.go @@ -186,6 +186,50 @@ import ( // } // // ``` +// ### Firestore Index Name Descending +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/firestore" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// database, err := firestore.NewDatabase(ctx, "database", &firestore.DatabaseArgs{ +// Project: pulumi.String("my-project-name"), +// Name: pulumi.String("database-id"), +// LocationId: pulumi.String("nam5"), +// Type: pulumi.String("FIRESTORE_NATIVE"), +// DeleteProtectionState: pulumi.String("DELETE_PROTECTION_DISABLED"), +// DeletionPolicy: pulumi.String("DELETE"), +// }) +// if err != nil { +// return err +// } +// _, err = firestore.NewIndex(ctx, "my-index", &firestore.IndexArgs{ +// Project: pulumi.String("my-project-name"), +// Database: database.Name, +// Collection: pulumi.String("atestcollection"), +// Fields: firestore.IndexFieldArray{ +// &firestore.IndexFieldArgs{ +// FieldPath: pulumi.String("__name__"), +// Order: pulumi.String("DESCENDING"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` // // ## Import // diff --git a/sdk/go/gcp/gkeonprem/pulumiTypes.go b/sdk/go/gcp/gkeonprem/pulumiTypes.go index b786de3477..072bbd32ed 100644 --- a/sdk/go/gcp/gkeonprem/pulumiTypes.go +++ b/sdk/go/gcp/gkeonprem/pulumiTypes.go @@ -1196,7 +1196,7 @@ func (o BareMetalAdminClusterFleetArrayOutput) Index(i pulumi.IntInput) BareMeta } type BareMetalAdminClusterLoadBalancer struct { - // A nested object resource + // A nested object resource. // Structure is documented below. ManualLbConfig *BareMetalAdminClusterLoadBalancerManualLbConfig `pulumi:"manualLbConfig"` // Specifies the load balancer ports. @@ -1219,7 +1219,7 @@ type BareMetalAdminClusterLoadBalancerInput interface { } type BareMetalAdminClusterLoadBalancerArgs struct { - // A nested object resource + // A nested object resource. // Structure is documented below. ManualLbConfig BareMetalAdminClusterLoadBalancerManualLbConfigPtrInput `pulumi:"manualLbConfig"` // Specifies the load balancer ports. @@ -1307,7 +1307,7 @@ func (o BareMetalAdminClusterLoadBalancerOutput) ToBareMetalAdminClusterLoadBala }).(BareMetalAdminClusterLoadBalancerPtrOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o BareMetalAdminClusterLoadBalancerOutput) ManualLbConfig() BareMetalAdminClusterLoadBalancerManualLbConfigPtrOutput { return o.ApplyT(func(v BareMetalAdminClusterLoadBalancer) *BareMetalAdminClusterLoadBalancerManualLbConfig { @@ -1355,7 +1355,7 @@ func (o BareMetalAdminClusterLoadBalancerPtrOutput) Elem() BareMetalAdminCluster }).(BareMetalAdminClusterLoadBalancerOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o BareMetalAdminClusterLoadBalancerPtrOutput) ManualLbConfig() BareMetalAdminClusterLoadBalancerManualLbConfigPtrOutput { return o.ApplyT(func(v *BareMetalAdminClusterLoadBalancer) *BareMetalAdminClusterLoadBalancerManualLbConfig { @@ -1949,7 +1949,7 @@ func (o BareMetalAdminClusterMaintenanceConfigPtrOutput) MaintenanceAddressCidrB } type BareMetalAdminClusterNetworkConfig struct { - // A nested object resource + // A nested object resource. // Structure is documented below. IslandModeCidr *BareMetalAdminClusterNetworkConfigIslandModeCidr `pulumi:"islandModeCidr"` } @@ -1966,7 +1966,7 @@ type BareMetalAdminClusterNetworkConfigInput interface { } type BareMetalAdminClusterNetworkConfigArgs struct { - // A nested object resource + // A nested object resource. // Structure is documented below. IslandModeCidr BareMetalAdminClusterNetworkConfigIslandModeCidrPtrInput `pulumi:"islandModeCidr"` } @@ -2048,7 +2048,7 @@ func (o BareMetalAdminClusterNetworkConfigOutput) ToBareMetalAdminClusterNetwork }).(BareMetalAdminClusterNetworkConfigPtrOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o BareMetalAdminClusterNetworkConfigOutput) IslandModeCidr() BareMetalAdminClusterNetworkConfigIslandModeCidrPtrOutput { return o.ApplyT(func(v BareMetalAdminClusterNetworkConfig) *BareMetalAdminClusterNetworkConfigIslandModeCidr { @@ -2080,7 +2080,7 @@ func (o BareMetalAdminClusterNetworkConfigPtrOutput) Elem() BareMetalAdminCluste }).(BareMetalAdminClusterNetworkConfigOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o BareMetalAdminClusterNetworkConfigPtrOutput) IslandModeCidr() BareMetalAdminClusterNetworkConfigIslandModeCidrPtrOutput { return o.ApplyT(func(v *BareMetalAdminClusterNetworkConfig) *BareMetalAdminClusterNetworkConfigIslandModeCidr { @@ -5724,10 +5724,10 @@ type BareMetalClusterLoadBalancer struct { // Configuration for BGP typed load balancers. // Structure is documented below. BgpLbConfig *BareMetalClusterLoadBalancerBgpLbConfig `pulumi:"bgpLbConfig"` - // A nested object resource + // A nested object resource. // Structure is documented below. ManualLbConfig *BareMetalClusterLoadBalancerManualLbConfig `pulumi:"manualLbConfig"` - // A nested object resource + // A nested object resource. // Structure is documented below. MetalLbConfig *BareMetalClusterLoadBalancerMetalLbConfig `pulumi:"metalLbConfig"` // Specifies the load balancer ports. @@ -5753,10 +5753,10 @@ type BareMetalClusterLoadBalancerArgs struct { // Configuration for BGP typed load balancers. // Structure is documented below. BgpLbConfig BareMetalClusterLoadBalancerBgpLbConfigPtrInput `pulumi:"bgpLbConfig"` - // A nested object resource + // A nested object resource. // Structure is documented below. ManualLbConfig BareMetalClusterLoadBalancerManualLbConfigPtrInput `pulumi:"manualLbConfig"` - // A nested object resource + // A nested object resource. // Structure is documented below. MetalLbConfig BareMetalClusterLoadBalancerMetalLbConfigPtrInput `pulumi:"metalLbConfig"` // Specifies the load balancer ports. @@ -5850,7 +5850,7 @@ func (o BareMetalClusterLoadBalancerOutput) BgpLbConfig() BareMetalClusterLoadBa return o.ApplyT(func(v BareMetalClusterLoadBalancer) *BareMetalClusterLoadBalancerBgpLbConfig { return v.BgpLbConfig }).(BareMetalClusterLoadBalancerBgpLbConfigPtrOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o BareMetalClusterLoadBalancerOutput) ManualLbConfig() BareMetalClusterLoadBalancerManualLbConfigPtrOutput { return o.ApplyT(func(v BareMetalClusterLoadBalancer) *BareMetalClusterLoadBalancerManualLbConfig { @@ -5858,7 +5858,7 @@ func (o BareMetalClusterLoadBalancerOutput) ManualLbConfig() BareMetalClusterLoa }).(BareMetalClusterLoadBalancerManualLbConfigPtrOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o BareMetalClusterLoadBalancerOutput) MetalLbConfig() BareMetalClusterLoadBalancerMetalLbConfigPtrOutput { return o.ApplyT(func(v BareMetalClusterLoadBalancer) *BareMetalClusterLoadBalancerMetalLbConfig { @@ -5913,7 +5913,7 @@ func (o BareMetalClusterLoadBalancerPtrOutput) BgpLbConfig() BareMetalClusterLoa }).(BareMetalClusterLoadBalancerBgpLbConfigPtrOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o BareMetalClusterLoadBalancerPtrOutput) ManualLbConfig() BareMetalClusterLoadBalancerManualLbConfigPtrOutput { return o.ApplyT(func(v *BareMetalClusterLoadBalancer) *BareMetalClusterLoadBalancerManualLbConfig { @@ -5924,7 +5924,7 @@ func (o BareMetalClusterLoadBalancerPtrOutput) ManualLbConfig() BareMetalCluster }).(BareMetalClusterLoadBalancerManualLbConfigPtrOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o BareMetalClusterLoadBalancerPtrOutput) MetalLbConfig() BareMetalClusterLoadBalancerMetalLbConfigPtrOutput { return o.ApplyT(func(v *BareMetalClusterLoadBalancer) *BareMetalClusterLoadBalancerMetalLbConfig { @@ -8914,7 +8914,7 @@ type BareMetalClusterNetworkConfig struct { // Setting configuration for advanced networking features will automatically // set this flag. AdvancedNetworking *bool `pulumi:"advancedNetworking"` - // A nested object resource + // A nested object resource. // Structure is documented below. IslandModeCidr *BareMetalClusterNetworkConfigIslandModeCidr `pulumi:"islandModeCidr"` // Configuration for multiple network interfaces. @@ -8942,7 +8942,7 @@ type BareMetalClusterNetworkConfigArgs struct { // Setting configuration for advanced networking features will automatically // set this flag. AdvancedNetworking pulumi.BoolPtrInput `pulumi:"advancedNetworking"` - // A nested object resource + // A nested object resource. // Structure is documented below. IslandModeCidr BareMetalClusterNetworkConfigIslandModeCidrPtrInput `pulumi:"islandModeCidr"` // Configuration for multiple network interfaces. @@ -9038,7 +9038,7 @@ func (o BareMetalClusterNetworkConfigOutput) AdvancedNetworking() pulumi.BoolPtr return o.ApplyT(func(v BareMetalClusterNetworkConfig) *bool { return v.AdvancedNetworking }).(pulumi.BoolPtrOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o BareMetalClusterNetworkConfigOutput) IslandModeCidr() BareMetalClusterNetworkConfigIslandModeCidrPtrOutput { return o.ApplyT(func(v BareMetalClusterNetworkConfig) *BareMetalClusterNetworkConfigIslandModeCidr { @@ -9097,7 +9097,7 @@ func (o BareMetalClusterNetworkConfigPtrOutput) AdvancedNetworking() pulumi.Bool }).(pulumi.BoolPtrOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o BareMetalClusterNetworkConfigPtrOutput) IslandModeCidr() BareMetalClusterNetworkConfigIslandModeCidrPtrOutput { return o.ApplyT(func(v *BareMetalClusterNetworkConfig) *BareMetalClusterNetworkConfigIslandModeCidr { diff --git a/sdk/go/gcp/healthcare/dataset.go b/sdk/go/gcp/healthcare/dataset.go index e37bc3675b..94af5c58e1 100644 --- a/sdk/go/gcp/healthcare/dataset.go +++ b/sdk/go/gcp/healthcare/dataset.go @@ -141,7 +141,7 @@ import ( type Dataset struct { pulumi.CustomResourceState - // A nested object resource + // A nested object resource. // Structure is documented below. EncryptionSpec DatasetEncryptionSpecOutput `pulumi:"encryptionSpec"` // The location for the Dataset. @@ -194,7 +194,7 @@ func GetDataset(ctx *pulumi.Context, // Input properties used for looking up and filtering Dataset resources. type datasetState struct { - // A nested object resource + // A nested object resource. // Structure is documented below. EncryptionSpec *DatasetEncryptionSpec `pulumi:"encryptionSpec"` // The location for the Dataset. @@ -215,7 +215,7 @@ type datasetState struct { } type DatasetState struct { - // A nested object resource + // A nested object resource. // Structure is documented below. EncryptionSpec DatasetEncryptionSpecPtrInput // The location for the Dataset. @@ -240,7 +240,7 @@ func (DatasetState) ElementType() reflect.Type { } type datasetArgs struct { - // A nested object resource + // A nested object resource. // Structure is documented below. EncryptionSpec *DatasetEncryptionSpec `pulumi:"encryptionSpec"` // The location for the Dataset. @@ -260,7 +260,7 @@ type datasetArgs struct { // The set of arguments for constructing a Dataset resource. type DatasetArgs struct { - // A nested object resource + // A nested object resource. // Structure is documented below. EncryptionSpec DatasetEncryptionSpecPtrInput // The location for the Dataset. @@ -365,7 +365,7 @@ func (o DatasetOutput) ToDatasetOutputWithContext(ctx context.Context) DatasetOu return o } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o DatasetOutput) EncryptionSpec() DatasetEncryptionSpecOutput { return o.ApplyT(func(v *Dataset) DatasetEncryptionSpecOutput { return v.EncryptionSpec }).(DatasetEncryptionSpecOutput) diff --git a/sdk/go/gcp/healthcare/dicomStore.go b/sdk/go/gcp/healthcare/dicomStore.go index ae9e723d11..7a0e49a404 100644 --- a/sdk/go/gcp/healthcare/dicomStore.go +++ b/sdk/go/gcp/healthcare/dicomStore.go @@ -192,7 +192,7 @@ type DicomStore struct { // The resource name for the DicomStore. // ** Changing this property may recreate the Dicom store (removing all data) ** Name pulumi.StringOutput `pulumi:"name"` - // A nested object resource + // A nested object resource. // Structure is documented below. NotificationConfig DicomStoreNotificationConfigPtrOutput `pulumi:"notificationConfig"` // The combination of labels configured directly on the resource @@ -266,7 +266,7 @@ type dicomStoreState struct { // The resource name for the DicomStore. // ** Changing this property may recreate the Dicom store (removing all data) ** Name *string `pulumi:"name"` - // A nested object resource + // A nested object resource. // Structure is documented below. NotificationConfig *DicomStoreNotificationConfig `pulumi:"notificationConfig"` // The combination of labels configured directly on the resource @@ -303,7 +303,7 @@ type DicomStoreState struct { // The resource name for the DicomStore. // ** Changing this property may recreate the Dicom store (removing all data) ** Name pulumi.StringPtrInput - // A nested object resource + // A nested object resource. // Structure is documented below. NotificationConfig DicomStoreNotificationConfigPtrInput // The combination of labels configured directly on the resource @@ -342,7 +342,7 @@ type dicomStoreArgs struct { // The resource name for the DicomStore. // ** Changing this property may recreate the Dicom store (removing all data) ** Name *string `pulumi:"name"` - // A nested object resource + // A nested object resource. // Structure is documented below. NotificationConfig *DicomStoreNotificationConfig `pulumi:"notificationConfig"` // To enable streaming to BigQuery, configure the streamConfigs object in your DICOM store. @@ -373,7 +373,7 @@ type DicomStoreArgs struct { // The resource name for the DicomStore. // ** Changing this property may recreate the Dicom store (removing all data) ** Name pulumi.StringPtrInput - // A nested object resource + // A nested object resource. // Structure is documented below. NotificationConfig DicomStoreNotificationConfigPtrInput // To enable streaming to BigQuery, configure the streamConfigs object in your DICOM store. @@ -503,7 +503,7 @@ func (o DicomStoreOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *DicomStore) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o DicomStoreOutput) NotificationConfig() DicomStoreNotificationConfigPtrOutput { return o.ApplyT(func(v *DicomStore) DicomStoreNotificationConfigPtrOutput { return v.NotificationConfig }).(DicomStoreNotificationConfigPtrOutput) diff --git a/sdk/go/gcp/healthcare/fhirStore.go b/sdk/go/gcp/healthcare/fhirStore.go index 184c7f5b43..493571abce 100644 --- a/sdk/go/gcp/healthcare/fhirStore.go +++ b/sdk/go/gcp/healthcare/fhirStore.go @@ -297,7 +297,7 @@ type FhirStore struct { // ** Changing this property may recreate the FHIR store (removing all data) ** Name pulumi.StringOutput `pulumi:"name"` // (Optional, Deprecated) - // A nested object resource + // A nested object resource. // Structure is documented below. // // > **Warning:** `notificationConfig` is deprecated and will be removed in a future major release. Use `notificationConfigs` instead. @@ -425,7 +425,7 @@ type fhirStoreState struct { // ** Changing this property may recreate the FHIR store (removing all data) ** Name *string `pulumi:"name"` // (Optional, Deprecated) - // A nested object resource + // A nested object resource. // Structure is documented below. // // > **Warning:** `notificationConfig` is deprecated and will be removed in a future major release. Use `notificationConfigs` instead. @@ -516,7 +516,7 @@ type FhirStoreState struct { // ** Changing this property may recreate the FHIR store (removing all data) ** Name pulumi.StringPtrInput // (Optional, Deprecated) - // A nested object resource + // A nested object resource. // Structure is documented below. // // > **Warning:** `notificationConfig` is deprecated and will be removed in a future major release. Use `notificationConfigs` instead. @@ -609,7 +609,7 @@ type fhirStoreArgs struct { // ** Changing this property may recreate the FHIR store (removing all data) ** Name *string `pulumi:"name"` // (Optional, Deprecated) - // A nested object resource + // A nested object resource. // Structure is documented below. // // > **Warning:** `notificationConfig` is deprecated and will be removed in a future major release. Use `notificationConfigs` instead. @@ -694,7 +694,7 @@ type FhirStoreArgs struct { // ** Changing this property may recreate the FHIR store (removing all data) ** Name pulumi.StringPtrInput // (Optional, Deprecated) - // A nested object resource + // A nested object resource. // Structure is documented below. // // > **Warning:** `notificationConfig` is deprecated and will be removed in a future major release. Use `notificationConfigs` instead. @@ -899,7 +899,7 @@ func (o FhirStoreOutput) Name() pulumi.StringOutput { } // (Optional, Deprecated) -// A nested object resource +// A nested object resource. // Structure is documented below. // // > **Warning:** `notificationConfig` is deprecated and will be removed in a future major release. Use `notificationConfigs` instead. diff --git a/sdk/go/gcp/healthcare/hl7Store.go b/sdk/go/gcp/healthcare/hl7Store.go index 1e5159d276..dfafc86d80 100644 --- a/sdk/go/gcp/healthcare/hl7Store.go +++ b/sdk/go/gcp/healthcare/hl7Store.go @@ -272,7 +272,7 @@ type Hl7Store struct { // ** Changing this property may recreate the Hl7v2 store (removing all data) ** Name pulumi.StringOutput `pulumi:"name"` // (Optional, Deprecated) - // A nested object resource + // A nested object resource. // Structure is documented below. // // > **Warning:** `notificationConfig` is deprecated and will be removed in a future major release. Use `notificationConfigs` instead. @@ -284,7 +284,7 @@ type Hl7Store struct { // is sent as part of the notification. Supplied by the client. // Structure is documented below. NotificationConfigs Hl7StoreNotificationConfigsArrayOutput `pulumi:"notificationConfigs"` - // A nested object resource + // A nested object resource. // Structure is documented below. ParserConfig Hl7StoreParserConfigOutput `pulumi:"parserConfig"` // The combination of labels configured directly on the resource @@ -357,7 +357,7 @@ type hl7StoreState struct { // ** Changing this property may recreate the Hl7v2 store (removing all data) ** Name *string `pulumi:"name"` // (Optional, Deprecated) - // A nested object resource + // A nested object resource. // Structure is documented below. // // > **Warning:** `notificationConfig` is deprecated and will be removed in a future major release. Use `notificationConfigs` instead. @@ -369,7 +369,7 @@ type hl7StoreState struct { // is sent as part of the notification. Supplied by the client. // Structure is documented below. NotificationConfigs []Hl7StoreNotificationConfigs `pulumi:"notificationConfigs"` - // A nested object resource + // A nested object resource. // Structure is documented below. ParserConfig *Hl7StoreParserConfig `pulumi:"parserConfig"` // The combination of labels configured directly on the resource @@ -405,7 +405,7 @@ type Hl7StoreState struct { // ** Changing this property may recreate the Hl7v2 store (removing all data) ** Name pulumi.StringPtrInput // (Optional, Deprecated) - // A nested object resource + // A nested object resource. // Structure is documented below. // // > **Warning:** `notificationConfig` is deprecated and will be removed in a future major release. Use `notificationConfigs` instead. @@ -417,7 +417,7 @@ type Hl7StoreState struct { // is sent as part of the notification. Supplied by the client. // Structure is documented below. NotificationConfigs Hl7StoreNotificationConfigsArrayInput - // A nested object resource + // A nested object resource. // Structure is documented below. ParserConfig Hl7StoreParserConfigPtrInput // The combination of labels configured directly on the resource @@ -455,7 +455,7 @@ type hl7StoreArgs struct { // ** Changing this property may recreate the Hl7v2 store (removing all data) ** Name *string `pulumi:"name"` // (Optional, Deprecated) - // A nested object resource + // A nested object resource. // Structure is documented below. // // > **Warning:** `notificationConfig` is deprecated and will be removed in a future major release. Use `notificationConfigs` instead. @@ -467,7 +467,7 @@ type hl7StoreArgs struct { // is sent as part of the notification. Supplied by the client. // Structure is documented below. NotificationConfigs []Hl7StoreNotificationConfigs `pulumi:"notificationConfigs"` - // A nested object resource + // A nested object resource. // Structure is documented below. ParserConfig *Hl7StoreParserConfig `pulumi:"parserConfig"` // Determines whether duplicate messages are allowed. @@ -497,7 +497,7 @@ type Hl7StoreArgs struct { // ** Changing this property may recreate the Hl7v2 store (removing all data) ** Name pulumi.StringPtrInput // (Optional, Deprecated) - // A nested object resource + // A nested object resource. // Structure is documented below. // // > **Warning:** `notificationConfig` is deprecated and will be removed in a future major release. Use `notificationConfigs` instead. @@ -509,7 +509,7 @@ type Hl7StoreArgs struct { // is sent as part of the notification. Supplied by the client. // Structure is documented below. NotificationConfigs Hl7StoreNotificationConfigsArrayInput - // A nested object resource + // A nested object resource. // Structure is documented below. ParserConfig Hl7StoreParserConfigPtrInput // Determines whether duplicate messages are allowed. @@ -638,7 +638,7 @@ func (o Hl7StoreOutput) Name() pulumi.StringOutput { } // (Optional, Deprecated) -// A nested object resource +// A nested object resource. // Structure is documented below. // // > **Warning:** `notificationConfig` is deprecated and will be removed in a future major release. Use `notificationConfigs` instead. @@ -656,7 +656,7 @@ func (o Hl7StoreOutput) NotificationConfigs() Hl7StoreNotificationConfigsArrayOu return o.ApplyT(func(v *Hl7Store) Hl7StoreNotificationConfigsArrayOutput { return v.NotificationConfigs }).(Hl7StoreNotificationConfigsArrayOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o Hl7StoreOutput) ParserConfig() Hl7StoreParserConfigOutput { return o.ApplyT(func(v *Hl7Store) Hl7StoreParserConfigOutput { return v.ParserConfig }).(Hl7StoreParserConfigOutput) diff --git a/sdk/go/gcp/iam/init.go b/sdk/go/gcp/iam/init.go index 965642a32c..1c273d5075 100644 --- a/sdk/go/gcp/iam/init.go +++ b/sdk/go/gcp/iam/init.go @@ -25,6 +25,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &AccessBoundaryPolicy{} case "gcp:iam/denyPolicy:DenyPolicy": r = &DenyPolicy{} + case "gcp:iam/principalAccessBoundaryPolicy:PrincipalAccessBoundaryPolicy": + r = &PrincipalAccessBoundaryPolicy{} case "gcp:iam/workforcePool:WorkforcePool": r = &WorkforcePool{} case "gcp:iam/workforcePoolProvider:WorkforcePoolProvider": @@ -56,6 +58,11 @@ func init() { "iam/denyPolicy", &module{version}, ) + pulumi.RegisterResourceModule( + "gcp", + "iam/principalAccessBoundaryPolicy", + &module{version}, + ) pulumi.RegisterResourceModule( "gcp", "iam/workforcePool", diff --git a/sdk/go/gcp/iam/principalAccessBoundaryPolicy.go b/sdk/go/gcp/iam/principalAccessBoundaryPolicy.go new file mode 100644 index 0000000000..96c5dee3f5 --- /dev/null +++ b/sdk/go/gcp/iam/principalAccessBoundaryPolicy.go @@ -0,0 +1,461 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// ## Example Usage +// +// ### Iam Principal Access Boundary Policy +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.NewPrincipalAccessBoundaryPolicy(ctx, "my-pab-policy", &iam.PrincipalAccessBoundaryPolicyArgs{ +// Organization: pulumi.String("123456789"), +// Location: pulumi.String("global"), +// DisplayName: pulumi.String("test pab policy"), +// PrincipalAccessBoundaryPolicyId: pulumi.String("test-pab-policy"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// PrincipalAccessBoundaryPolicy can be imported using any of these accepted formats: +// +// * `organizations/{{organization}}/locations/{{location}}/principalAccessBoundaryPolicies/{{principal_access_boundary_policy_id}}` +// +// * `{{organization}}/{{location}}/{{principal_access_boundary_policy_id}}` +// +// When using the `pulumi import` command, PrincipalAccessBoundaryPolicy can be imported using one of the formats above. For example: +// +// ```sh +// $ pulumi import gcp:iam/principalAccessBoundaryPolicy:PrincipalAccessBoundaryPolicy default organizations/{{organization}}/locations/{{location}}/principalAccessBoundaryPolicies/{{principal_access_boundary_policy_id}} +// ``` +// +// ```sh +// $ pulumi import gcp:iam/principalAccessBoundaryPolicy:PrincipalAccessBoundaryPolicy default {{organization}}/{{location}}/{{principal_access_boundary_policy_id}} +// ``` +type PrincipalAccessBoundaryPolicy struct { + pulumi.CustomResourceState + + // User defined annotations. See https://google.aip.dev/148#annotations + // for more details such as format and size limitations + // + // **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + // Please refer to the field `effectiveAnnotations` for all of the annotations present on the resource. + Annotations pulumi.StringMapOutput `pulumi:"annotations"` + // Output only. The time when the principal access boundary policy was created. + CreateTime pulumi.StringOutput `pulumi:"createTime"` + // Principal access boundary policy details + // Structure is documented below. + Details PrincipalAccessBoundaryPolicyDetailsOutput `pulumi:"details"` + // The description of the principal access boundary policy. Must be less than or equal to 63 characters. + DisplayName pulumi.StringPtrOutput `pulumi:"displayName"` + EffectiveAnnotations pulumi.StringMapOutput `pulumi:"effectiveAnnotations"` + // The etag for the principal access boundary. If this is provided on update, it must match the server's etag. + Etag pulumi.StringOutput `pulumi:"etag"` + // The location the principal access boundary policy is in. + Location pulumi.StringOutput `pulumi:"location"` + // Identifier. The resource name of the principal access boundary policy. The following format is supported: + // `organizations/{organization_id}/locations/{location}/principalAccessBoundaryPolicies/{policy_id}` + Name pulumi.StringOutput `pulumi:"name"` + // The parent organization of the principal access boundary policy. + Organization pulumi.StringOutput `pulumi:"organization"` + // The ID to use to create the principal access boundary policy. + // This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, hyphens, or dots. Pattern, /a-z{2,62}/. + // + // *** + PrincipalAccessBoundaryPolicyId pulumi.StringOutput `pulumi:"principalAccessBoundaryPolicyId"` + // Output only. The globally unique ID of the principal access boundary policy. + Uid pulumi.StringOutput `pulumi:"uid"` + // Output only. The time when the principal access boundary policy was most recently updated. + UpdateTime pulumi.StringOutput `pulumi:"updateTime"` +} + +// NewPrincipalAccessBoundaryPolicy registers a new resource with the given unique name, arguments, and options. +func NewPrincipalAccessBoundaryPolicy(ctx *pulumi.Context, + name string, args *PrincipalAccessBoundaryPolicyArgs, opts ...pulumi.ResourceOption) (*PrincipalAccessBoundaryPolicy, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Location == nil { + return nil, errors.New("invalid value for required argument 'Location'") + } + if args.Organization == nil { + return nil, errors.New("invalid value for required argument 'Organization'") + } + if args.PrincipalAccessBoundaryPolicyId == nil { + return nil, errors.New("invalid value for required argument 'PrincipalAccessBoundaryPolicyId'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource PrincipalAccessBoundaryPolicy + err := ctx.RegisterResource("gcp:iam/principalAccessBoundaryPolicy:PrincipalAccessBoundaryPolicy", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetPrincipalAccessBoundaryPolicy gets an existing PrincipalAccessBoundaryPolicy resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetPrincipalAccessBoundaryPolicy(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *PrincipalAccessBoundaryPolicyState, opts ...pulumi.ResourceOption) (*PrincipalAccessBoundaryPolicy, error) { + var resource PrincipalAccessBoundaryPolicy + err := ctx.ReadResource("gcp:iam/principalAccessBoundaryPolicy:PrincipalAccessBoundaryPolicy", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering PrincipalAccessBoundaryPolicy resources. +type principalAccessBoundaryPolicyState struct { + // User defined annotations. See https://google.aip.dev/148#annotations + // for more details such as format and size limitations + // + // **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + // Please refer to the field `effectiveAnnotations` for all of the annotations present on the resource. + Annotations map[string]string `pulumi:"annotations"` + // Output only. The time when the principal access boundary policy was created. + CreateTime *string `pulumi:"createTime"` + // Principal access boundary policy details + // Structure is documented below. + Details *PrincipalAccessBoundaryPolicyDetails `pulumi:"details"` + // The description of the principal access boundary policy. Must be less than or equal to 63 characters. + DisplayName *string `pulumi:"displayName"` + EffectiveAnnotations map[string]string `pulumi:"effectiveAnnotations"` + // The etag for the principal access boundary. If this is provided on update, it must match the server's etag. + Etag *string `pulumi:"etag"` + // The location the principal access boundary policy is in. + Location *string `pulumi:"location"` + // Identifier. The resource name of the principal access boundary policy. The following format is supported: + // `organizations/{organization_id}/locations/{location}/principalAccessBoundaryPolicies/{policy_id}` + Name *string `pulumi:"name"` + // The parent organization of the principal access boundary policy. + Organization *string `pulumi:"organization"` + // The ID to use to create the principal access boundary policy. + // This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, hyphens, or dots. Pattern, /a-z{2,62}/. + // + // *** + PrincipalAccessBoundaryPolicyId *string `pulumi:"principalAccessBoundaryPolicyId"` + // Output only. The globally unique ID of the principal access boundary policy. + Uid *string `pulumi:"uid"` + // Output only. The time when the principal access boundary policy was most recently updated. + UpdateTime *string `pulumi:"updateTime"` +} + +type PrincipalAccessBoundaryPolicyState struct { + // User defined annotations. See https://google.aip.dev/148#annotations + // for more details such as format and size limitations + // + // **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + // Please refer to the field `effectiveAnnotations` for all of the annotations present on the resource. + Annotations pulumi.StringMapInput + // Output only. The time when the principal access boundary policy was created. + CreateTime pulumi.StringPtrInput + // Principal access boundary policy details + // Structure is documented below. + Details PrincipalAccessBoundaryPolicyDetailsPtrInput + // The description of the principal access boundary policy. Must be less than or equal to 63 characters. + DisplayName pulumi.StringPtrInput + EffectiveAnnotations pulumi.StringMapInput + // The etag for the principal access boundary. If this is provided on update, it must match the server's etag. + Etag pulumi.StringPtrInput + // The location the principal access boundary policy is in. + Location pulumi.StringPtrInput + // Identifier. The resource name of the principal access boundary policy. The following format is supported: + // `organizations/{organization_id}/locations/{location}/principalAccessBoundaryPolicies/{policy_id}` + Name pulumi.StringPtrInput + // The parent organization of the principal access boundary policy. + Organization pulumi.StringPtrInput + // The ID to use to create the principal access boundary policy. + // This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, hyphens, or dots. Pattern, /a-z{2,62}/. + // + // *** + PrincipalAccessBoundaryPolicyId pulumi.StringPtrInput + // Output only. The globally unique ID of the principal access boundary policy. + Uid pulumi.StringPtrInput + // Output only. The time when the principal access boundary policy was most recently updated. + UpdateTime pulumi.StringPtrInput +} + +func (PrincipalAccessBoundaryPolicyState) ElementType() reflect.Type { + return reflect.TypeOf((*principalAccessBoundaryPolicyState)(nil)).Elem() +} + +type principalAccessBoundaryPolicyArgs struct { + // User defined annotations. See https://google.aip.dev/148#annotations + // for more details such as format and size limitations + // + // **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + // Please refer to the field `effectiveAnnotations` for all of the annotations present on the resource. + Annotations map[string]string `pulumi:"annotations"` + // Principal access boundary policy details + // Structure is documented below. + Details *PrincipalAccessBoundaryPolicyDetails `pulumi:"details"` + // The description of the principal access boundary policy. Must be less than or equal to 63 characters. + DisplayName *string `pulumi:"displayName"` + // The location the principal access boundary policy is in. + Location string `pulumi:"location"` + // The parent organization of the principal access boundary policy. + Organization string `pulumi:"organization"` + // The ID to use to create the principal access boundary policy. + // This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, hyphens, or dots. Pattern, /a-z{2,62}/. + // + // *** + PrincipalAccessBoundaryPolicyId string `pulumi:"principalAccessBoundaryPolicyId"` +} + +// The set of arguments for constructing a PrincipalAccessBoundaryPolicy resource. +type PrincipalAccessBoundaryPolicyArgs struct { + // User defined annotations. See https://google.aip.dev/148#annotations + // for more details such as format and size limitations + // + // **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + // Please refer to the field `effectiveAnnotations` for all of the annotations present on the resource. + Annotations pulumi.StringMapInput + // Principal access boundary policy details + // Structure is documented below. + Details PrincipalAccessBoundaryPolicyDetailsPtrInput + // The description of the principal access boundary policy. Must be less than or equal to 63 characters. + DisplayName pulumi.StringPtrInput + // The location the principal access boundary policy is in. + Location pulumi.StringInput + // The parent organization of the principal access boundary policy. + Organization pulumi.StringInput + // The ID to use to create the principal access boundary policy. + // This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, hyphens, or dots. Pattern, /a-z{2,62}/. + // + // *** + PrincipalAccessBoundaryPolicyId pulumi.StringInput +} + +func (PrincipalAccessBoundaryPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*principalAccessBoundaryPolicyArgs)(nil)).Elem() +} + +type PrincipalAccessBoundaryPolicyInput interface { + pulumi.Input + + ToPrincipalAccessBoundaryPolicyOutput() PrincipalAccessBoundaryPolicyOutput + ToPrincipalAccessBoundaryPolicyOutputWithContext(ctx context.Context) PrincipalAccessBoundaryPolicyOutput +} + +func (*PrincipalAccessBoundaryPolicy) ElementType() reflect.Type { + return reflect.TypeOf((**PrincipalAccessBoundaryPolicy)(nil)).Elem() +} + +func (i *PrincipalAccessBoundaryPolicy) ToPrincipalAccessBoundaryPolicyOutput() PrincipalAccessBoundaryPolicyOutput { + return i.ToPrincipalAccessBoundaryPolicyOutputWithContext(context.Background()) +} + +func (i *PrincipalAccessBoundaryPolicy) ToPrincipalAccessBoundaryPolicyOutputWithContext(ctx context.Context) PrincipalAccessBoundaryPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrincipalAccessBoundaryPolicyOutput) +} + +// PrincipalAccessBoundaryPolicyArrayInput is an input type that accepts PrincipalAccessBoundaryPolicyArray and PrincipalAccessBoundaryPolicyArrayOutput values. +// You can construct a concrete instance of `PrincipalAccessBoundaryPolicyArrayInput` via: +// +// PrincipalAccessBoundaryPolicyArray{ PrincipalAccessBoundaryPolicyArgs{...} } +type PrincipalAccessBoundaryPolicyArrayInput interface { + pulumi.Input + + ToPrincipalAccessBoundaryPolicyArrayOutput() PrincipalAccessBoundaryPolicyArrayOutput + ToPrincipalAccessBoundaryPolicyArrayOutputWithContext(context.Context) PrincipalAccessBoundaryPolicyArrayOutput +} + +type PrincipalAccessBoundaryPolicyArray []PrincipalAccessBoundaryPolicyInput + +func (PrincipalAccessBoundaryPolicyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*PrincipalAccessBoundaryPolicy)(nil)).Elem() +} + +func (i PrincipalAccessBoundaryPolicyArray) ToPrincipalAccessBoundaryPolicyArrayOutput() PrincipalAccessBoundaryPolicyArrayOutput { + return i.ToPrincipalAccessBoundaryPolicyArrayOutputWithContext(context.Background()) +} + +func (i PrincipalAccessBoundaryPolicyArray) ToPrincipalAccessBoundaryPolicyArrayOutputWithContext(ctx context.Context) PrincipalAccessBoundaryPolicyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrincipalAccessBoundaryPolicyArrayOutput) +} + +// PrincipalAccessBoundaryPolicyMapInput is an input type that accepts PrincipalAccessBoundaryPolicyMap and PrincipalAccessBoundaryPolicyMapOutput values. +// You can construct a concrete instance of `PrincipalAccessBoundaryPolicyMapInput` via: +// +// PrincipalAccessBoundaryPolicyMap{ "key": PrincipalAccessBoundaryPolicyArgs{...} } +type PrincipalAccessBoundaryPolicyMapInput interface { + pulumi.Input + + ToPrincipalAccessBoundaryPolicyMapOutput() PrincipalAccessBoundaryPolicyMapOutput + ToPrincipalAccessBoundaryPolicyMapOutputWithContext(context.Context) PrincipalAccessBoundaryPolicyMapOutput +} + +type PrincipalAccessBoundaryPolicyMap map[string]PrincipalAccessBoundaryPolicyInput + +func (PrincipalAccessBoundaryPolicyMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*PrincipalAccessBoundaryPolicy)(nil)).Elem() +} + +func (i PrincipalAccessBoundaryPolicyMap) ToPrincipalAccessBoundaryPolicyMapOutput() PrincipalAccessBoundaryPolicyMapOutput { + return i.ToPrincipalAccessBoundaryPolicyMapOutputWithContext(context.Background()) +} + +func (i PrincipalAccessBoundaryPolicyMap) ToPrincipalAccessBoundaryPolicyMapOutputWithContext(ctx context.Context) PrincipalAccessBoundaryPolicyMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrincipalAccessBoundaryPolicyMapOutput) +} + +type PrincipalAccessBoundaryPolicyOutput struct{ *pulumi.OutputState } + +func (PrincipalAccessBoundaryPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PrincipalAccessBoundaryPolicy)(nil)).Elem() +} + +func (o PrincipalAccessBoundaryPolicyOutput) ToPrincipalAccessBoundaryPolicyOutput() PrincipalAccessBoundaryPolicyOutput { + return o +} + +func (o PrincipalAccessBoundaryPolicyOutput) ToPrincipalAccessBoundaryPolicyOutputWithContext(ctx context.Context) PrincipalAccessBoundaryPolicyOutput { + return o +} + +// User defined annotations. See https://google.aip.dev/148#annotations +// for more details such as format and size limitations +// +// **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. +// Please refer to the field `effectiveAnnotations` for all of the annotations present on the resource. +func (o PrincipalAccessBoundaryPolicyOutput) Annotations() pulumi.StringMapOutput { + return o.ApplyT(func(v *PrincipalAccessBoundaryPolicy) pulumi.StringMapOutput { return v.Annotations }).(pulumi.StringMapOutput) +} + +// Output only. The time when the principal access boundary policy was created. +func (o PrincipalAccessBoundaryPolicyOutput) CreateTime() pulumi.StringOutput { + return o.ApplyT(func(v *PrincipalAccessBoundaryPolicy) pulumi.StringOutput { return v.CreateTime }).(pulumi.StringOutput) +} + +// Principal access boundary policy details +// Structure is documented below. +func (o PrincipalAccessBoundaryPolicyOutput) Details() PrincipalAccessBoundaryPolicyDetailsOutput { + return o.ApplyT(func(v *PrincipalAccessBoundaryPolicy) PrincipalAccessBoundaryPolicyDetailsOutput { return v.Details }).(PrincipalAccessBoundaryPolicyDetailsOutput) +} + +// The description of the principal access boundary policy. Must be less than or equal to 63 characters. +func (o PrincipalAccessBoundaryPolicyOutput) DisplayName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PrincipalAccessBoundaryPolicy) pulumi.StringPtrOutput { return v.DisplayName }).(pulumi.StringPtrOutput) +} + +func (o PrincipalAccessBoundaryPolicyOutput) EffectiveAnnotations() pulumi.StringMapOutput { + return o.ApplyT(func(v *PrincipalAccessBoundaryPolicy) pulumi.StringMapOutput { return v.EffectiveAnnotations }).(pulumi.StringMapOutput) +} + +// The etag for the principal access boundary. If this is provided on update, it must match the server's etag. +func (o PrincipalAccessBoundaryPolicyOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v *PrincipalAccessBoundaryPolicy) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) +} + +// The location the principal access boundary policy is in. +func (o PrincipalAccessBoundaryPolicyOutput) Location() pulumi.StringOutput { + return o.ApplyT(func(v *PrincipalAccessBoundaryPolicy) pulumi.StringOutput { return v.Location }).(pulumi.StringOutput) +} + +// Identifier. The resource name of the principal access boundary policy. The following format is supported: +// `organizations/{organization_id}/locations/{location}/principalAccessBoundaryPolicies/{policy_id}` +func (o PrincipalAccessBoundaryPolicyOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *PrincipalAccessBoundaryPolicy) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The parent organization of the principal access boundary policy. +func (o PrincipalAccessBoundaryPolicyOutput) Organization() pulumi.StringOutput { + return o.ApplyT(func(v *PrincipalAccessBoundaryPolicy) pulumi.StringOutput { return v.Organization }).(pulumi.StringOutput) +} + +// The ID to use to create the principal access boundary policy. +// This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, hyphens, or dots. Pattern, /a-z{2,62}/. +// +// *** +func (o PrincipalAccessBoundaryPolicyOutput) PrincipalAccessBoundaryPolicyId() pulumi.StringOutput { + return o.ApplyT(func(v *PrincipalAccessBoundaryPolicy) pulumi.StringOutput { return v.PrincipalAccessBoundaryPolicyId }).(pulumi.StringOutput) +} + +// Output only. The globally unique ID of the principal access boundary policy. +func (o PrincipalAccessBoundaryPolicyOutput) Uid() pulumi.StringOutput { + return o.ApplyT(func(v *PrincipalAccessBoundaryPolicy) pulumi.StringOutput { return v.Uid }).(pulumi.StringOutput) +} + +// Output only. The time when the principal access boundary policy was most recently updated. +func (o PrincipalAccessBoundaryPolicyOutput) UpdateTime() pulumi.StringOutput { + return o.ApplyT(func(v *PrincipalAccessBoundaryPolicy) pulumi.StringOutput { return v.UpdateTime }).(pulumi.StringOutput) +} + +type PrincipalAccessBoundaryPolicyArrayOutput struct{ *pulumi.OutputState } + +func (PrincipalAccessBoundaryPolicyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*PrincipalAccessBoundaryPolicy)(nil)).Elem() +} + +func (o PrincipalAccessBoundaryPolicyArrayOutput) ToPrincipalAccessBoundaryPolicyArrayOutput() PrincipalAccessBoundaryPolicyArrayOutput { + return o +} + +func (o PrincipalAccessBoundaryPolicyArrayOutput) ToPrincipalAccessBoundaryPolicyArrayOutputWithContext(ctx context.Context) PrincipalAccessBoundaryPolicyArrayOutput { + return o +} + +func (o PrincipalAccessBoundaryPolicyArrayOutput) Index(i pulumi.IntInput) PrincipalAccessBoundaryPolicyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *PrincipalAccessBoundaryPolicy { + return vs[0].([]*PrincipalAccessBoundaryPolicy)[vs[1].(int)] + }).(PrincipalAccessBoundaryPolicyOutput) +} + +type PrincipalAccessBoundaryPolicyMapOutput struct{ *pulumi.OutputState } + +func (PrincipalAccessBoundaryPolicyMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*PrincipalAccessBoundaryPolicy)(nil)).Elem() +} + +func (o PrincipalAccessBoundaryPolicyMapOutput) ToPrincipalAccessBoundaryPolicyMapOutput() PrincipalAccessBoundaryPolicyMapOutput { + return o +} + +func (o PrincipalAccessBoundaryPolicyMapOutput) ToPrincipalAccessBoundaryPolicyMapOutputWithContext(ctx context.Context) PrincipalAccessBoundaryPolicyMapOutput { + return o +} + +func (o PrincipalAccessBoundaryPolicyMapOutput) MapIndex(k pulumi.StringInput) PrincipalAccessBoundaryPolicyOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *PrincipalAccessBoundaryPolicy { + return vs[0].(map[string]*PrincipalAccessBoundaryPolicy)[vs[1].(string)] + }).(PrincipalAccessBoundaryPolicyOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*PrincipalAccessBoundaryPolicyInput)(nil)).Elem(), &PrincipalAccessBoundaryPolicy{}) + pulumi.RegisterInputType(reflect.TypeOf((*PrincipalAccessBoundaryPolicyArrayInput)(nil)).Elem(), PrincipalAccessBoundaryPolicyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*PrincipalAccessBoundaryPolicyMapInput)(nil)).Elem(), PrincipalAccessBoundaryPolicyMap{}) + pulumi.RegisterOutputType(PrincipalAccessBoundaryPolicyOutput{}) + pulumi.RegisterOutputType(PrincipalAccessBoundaryPolicyArrayOutput{}) + pulumi.RegisterOutputType(PrincipalAccessBoundaryPolicyMapOutput{}) +} diff --git a/sdk/go/gcp/iam/pulumiTypes.go b/sdk/go/gcp/iam/pulumiTypes.go index 48942ec1e0..709948f9e6 100644 --- a/sdk/go/gcp/iam/pulumiTypes.go +++ b/sdk/go/gcp/iam/pulumiTypes.go @@ -1075,6 +1075,319 @@ func (o DenyPolicyRuleDenyRuleDenialConditionPtrOutput) Title() pulumi.StringPtr }).(pulumi.StringPtrOutput) } +type PrincipalAccessBoundaryPolicyDetails struct { + // The version number that indicates which Google Cloud services + // are included in the enforcement (e.g. \"latest\", \"1\", ...). If empty, the + // PAB policy version will be set to the current latest version, and this version + // won't get updated when new versions are released. + EnforcementVersion *string `pulumi:"enforcementVersion"` + // A list of principal access boundary policy rules. The number of rules in a policy is limited to 500. + // Structure is documented below. + Rules []PrincipalAccessBoundaryPolicyDetailsRule `pulumi:"rules"` +} + +// PrincipalAccessBoundaryPolicyDetailsInput is an input type that accepts PrincipalAccessBoundaryPolicyDetailsArgs and PrincipalAccessBoundaryPolicyDetailsOutput values. +// You can construct a concrete instance of `PrincipalAccessBoundaryPolicyDetailsInput` via: +// +// PrincipalAccessBoundaryPolicyDetailsArgs{...} +type PrincipalAccessBoundaryPolicyDetailsInput interface { + pulumi.Input + + ToPrincipalAccessBoundaryPolicyDetailsOutput() PrincipalAccessBoundaryPolicyDetailsOutput + ToPrincipalAccessBoundaryPolicyDetailsOutputWithContext(context.Context) PrincipalAccessBoundaryPolicyDetailsOutput +} + +type PrincipalAccessBoundaryPolicyDetailsArgs struct { + // The version number that indicates which Google Cloud services + // are included in the enforcement (e.g. \"latest\", \"1\", ...). If empty, the + // PAB policy version will be set to the current latest version, and this version + // won't get updated when new versions are released. + EnforcementVersion pulumi.StringPtrInput `pulumi:"enforcementVersion"` + // A list of principal access boundary policy rules. The number of rules in a policy is limited to 500. + // Structure is documented below. + Rules PrincipalAccessBoundaryPolicyDetailsRuleArrayInput `pulumi:"rules"` +} + +func (PrincipalAccessBoundaryPolicyDetailsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PrincipalAccessBoundaryPolicyDetails)(nil)).Elem() +} + +func (i PrincipalAccessBoundaryPolicyDetailsArgs) ToPrincipalAccessBoundaryPolicyDetailsOutput() PrincipalAccessBoundaryPolicyDetailsOutput { + return i.ToPrincipalAccessBoundaryPolicyDetailsOutputWithContext(context.Background()) +} + +func (i PrincipalAccessBoundaryPolicyDetailsArgs) ToPrincipalAccessBoundaryPolicyDetailsOutputWithContext(ctx context.Context) PrincipalAccessBoundaryPolicyDetailsOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrincipalAccessBoundaryPolicyDetailsOutput) +} + +func (i PrincipalAccessBoundaryPolicyDetailsArgs) ToPrincipalAccessBoundaryPolicyDetailsPtrOutput() PrincipalAccessBoundaryPolicyDetailsPtrOutput { + return i.ToPrincipalAccessBoundaryPolicyDetailsPtrOutputWithContext(context.Background()) +} + +func (i PrincipalAccessBoundaryPolicyDetailsArgs) ToPrincipalAccessBoundaryPolicyDetailsPtrOutputWithContext(ctx context.Context) PrincipalAccessBoundaryPolicyDetailsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrincipalAccessBoundaryPolicyDetailsOutput).ToPrincipalAccessBoundaryPolicyDetailsPtrOutputWithContext(ctx) +} + +// PrincipalAccessBoundaryPolicyDetailsPtrInput is an input type that accepts PrincipalAccessBoundaryPolicyDetailsArgs, PrincipalAccessBoundaryPolicyDetailsPtr and PrincipalAccessBoundaryPolicyDetailsPtrOutput values. +// You can construct a concrete instance of `PrincipalAccessBoundaryPolicyDetailsPtrInput` via: +// +// PrincipalAccessBoundaryPolicyDetailsArgs{...} +// +// or: +// +// nil +type PrincipalAccessBoundaryPolicyDetailsPtrInput interface { + pulumi.Input + + ToPrincipalAccessBoundaryPolicyDetailsPtrOutput() PrincipalAccessBoundaryPolicyDetailsPtrOutput + ToPrincipalAccessBoundaryPolicyDetailsPtrOutputWithContext(context.Context) PrincipalAccessBoundaryPolicyDetailsPtrOutput +} + +type principalAccessBoundaryPolicyDetailsPtrType PrincipalAccessBoundaryPolicyDetailsArgs + +func PrincipalAccessBoundaryPolicyDetailsPtr(v *PrincipalAccessBoundaryPolicyDetailsArgs) PrincipalAccessBoundaryPolicyDetailsPtrInput { + return (*principalAccessBoundaryPolicyDetailsPtrType)(v) +} + +func (*principalAccessBoundaryPolicyDetailsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PrincipalAccessBoundaryPolicyDetails)(nil)).Elem() +} + +func (i *principalAccessBoundaryPolicyDetailsPtrType) ToPrincipalAccessBoundaryPolicyDetailsPtrOutput() PrincipalAccessBoundaryPolicyDetailsPtrOutput { + return i.ToPrincipalAccessBoundaryPolicyDetailsPtrOutputWithContext(context.Background()) +} + +func (i *principalAccessBoundaryPolicyDetailsPtrType) ToPrincipalAccessBoundaryPolicyDetailsPtrOutputWithContext(ctx context.Context) PrincipalAccessBoundaryPolicyDetailsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrincipalAccessBoundaryPolicyDetailsPtrOutput) +} + +type PrincipalAccessBoundaryPolicyDetailsOutput struct{ *pulumi.OutputState } + +func (PrincipalAccessBoundaryPolicyDetailsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PrincipalAccessBoundaryPolicyDetails)(nil)).Elem() +} + +func (o PrincipalAccessBoundaryPolicyDetailsOutput) ToPrincipalAccessBoundaryPolicyDetailsOutput() PrincipalAccessBoundaryPolicyDetailsOutput { + return o +} + +func (o PrincipalAccessBoundaryPolicyDetailsOutput) ToPrincipalAccessBoundaryPolicyDetailsOutputWithContext(ctx context.Context) PrincipalAccessBoundaryPolicyDetailsOutput { + return o +} + +func (o PrincipalAccessBoundaryPolicyDetailsOutput) ToPrincipalAccessBoundaryPolicyDetailsPtrOutput() PrincipalAccessBoundaryPolicyDetailsPtrOutput { + return o.ToPrincipalAccessBoundaryPolicyDetailsPtrOutputWithContext(context.Background()) +} + +func (o PrincipalAccessBoundaryPolicyDetailsOutput) ToPrincipalAccessBoundaryPolicyDetailsPtrOutputWithContext(ctx context.Context) PrincipalAccessBoundaryPolicyDetailsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PrincipalAccessBoundaryPolicyDetails) *PrincipalAccessBoundaryPolicyDetails { + return &v + }).(PrincipalAccessBoundaryPolicyDetailsPtrOutput) +} + +// The version number that indicates which Google Cloud services +// are included in the enforcement (e.g. \"latest\", \"1\", ...). If empty, the +// PAB policy version will be set to the current latest version, and this version +// won't get updated when new versions are released. +func (o PrincipalAccessBoundaryPolicyDetailsOutput) EnforcementVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrincipalAccessBoundaryPolicyDetails) *string { return v.EnforcementVersion }).(pulumi.StringPtrOutput) +} + +// A list of principal access boundary policy rules. The number of rules in a policy is limited to 500. +// Structure is documented below. +func (o PrincipalAccessBoundaryPolicyDetailsOutput) Rules() PrincipalAccessBoundaryPolicyDetailsRuleArrayOutput { + return o.ApplyT(func(v PrincipalAccessBoundaryPolicyDetails) []PrincipalAccessBoundaryPolicyDetailsRule { + return v.Rules + }).(PrincipalAccessBoundaryPolicyDetailsRuleArrayOutput) +} + +type PrincipalAccessBoundaryPolicyDetailsPtrOutput struct{ *pulumi.OutputState } + +func (PrincipalAccessBoundaryPolicyDetailsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PrincipalAccessBoundaryPolicyDetails)(nil)).Elem() +} + +func (o PrincipalAccessBoundaryPolicyDetailsPtrOutput) ToPrincipalAccessBoundaryPolicyDetailsPtrOutput() PrincipalAccessBoundaryPolicyDetailsPtrOutput { + return o +} + +func (o PrincipalAccessBoundaryPolicyDetailsPtrOutput) ToPrincipalAccessBoundaryPolicyDetailsPtrOutputWithContext(ctx context.Context) PrincipalAccessBoundaryPolicyDetailsPtrOutput { + return o +} + +func (o PrincipalAccessBoundaryPolicyDetailsPtrOutput) Elem() PrincipalAccessBoundaryPolicyDetailsOutput { + return o.ApplyT(func(v *PrincipalAccessBoundaryPolicyDetails) PrincipalAccessBoundaryPolicyDetails { + if v != nil { + return *v + } + var ret PrincipalAccessBoundaryPolicyDetails + return ret + }).(PrincipalAccessBoundaryPolicyDetailsOutput) +} + +// The version number that indicates which Google Cloud services +// are included in the enforcement (e.g. \"latest\", \"1\", ...). If empty, the +// PAB policy version will be set to the current latest version, and this version +// won't get updated when new versions are released. +func (o PrincipalAccessBoundaryPolicyDetailsPtrOutput) EnforcementVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PrincipalAccessBoundaryPolicyDetails) *string { + if v == nil { + return nil + } + return v.EnforcementVersion + }).(pulumi.StringPtrOutput) +} + +// A list of principal access boundary policy rules. The number of rules in a policy is limited to 500. +// Structure is documented below. +func (o PrincipalAccessBoundaryPolicyDetailsPtrOutput) Rules() PrincipalAccessBoundaryPolicyDetailsRuleArrayOutput { + return o.ApplyT(func(v *PrincipalAccessBoundaryPolicyDetails) []PrincipalAccessBoundaryPolicyDetailsRule { + if v == nil { + return nil + } + return v.Rules + }).(PrincipalAccessBoundaryPolicyDetailsRuleArrayOutput) +} + +type PrincipalAccessBoundaryPolicyDetailsRule struct { + // The description of the principal access boundary policy rule. Must be less than or equal to 256 characters. + Description *string `pulumi:"description"` + // The access relationship of principals to the resources in this rule. + // Possible values: ALLOW + Effect string `pulumi:"effect"` + // A list of Cloud Resource Manager resources. The resource + // and all the descendants are included. The number of resources in a policy + // is limited to 500 across all rules. + // The following resource types are supported: + // * Organizations, such as `//cloudresourcemanager.googleapis.com/organizations/123`. + // * Folders, such as `//cloudresourcemanager.googleapis.com/folders/123`. + // * Projects, such as `//cloudresourcemanager.googleapis.com/projects/123` + // or `//cloudresourcemanager.googleapis.com/projects/my-project-id`. + Resources []string `pulumi:"resources"` +} + +// PrincipalAccessBoundaryPolicyDetailsRuleInput is an input type that accepts PrincipalAccessBoundaryPolicyDetailsRuleArgs and PrincipalAccessBoundaryPolicyDetailsRuleOutput values. +// You can construct a concrete instance of `PrincipalAccessBoundaryPolicyDetailsRuleInput` via: +// +// PrincipalAccessBoundaryPolicyDetailsRuleArgs{...} +type PrincipalAccessBoundaryPolicyDetailsRuleInput interface { + pulumi.Input + + ToPrincipalAccessBoundaryPolicyDetailsRuleOutput() PrincipalAccessBoundaryPolicyDetailsRuleOutput + ToPrincipalAccessBoundaryPolicyDetailsRuleOutputWithContext(context.Context) PrincipalAccessBoundaryPolicyDetailsRuleOutput +} + +type PrincipalAccessBoundaryPolicyDetailsRuleArgs struct { + // The description of the principal access boundary policy rule. Must be less than or equal to 256 characters. + Description pulumi.StringPtrInput `pulumi:"description"` + // The access relationship of principals to the resources in this rule. + // Possible values: ALLOW + Effect pulumi.StringInput `pulumi:"effect"` + // A list of Cloud Resource Manager resources. The resource + // and all the descendants are included. The number of resources in a policy + // is limited to 500 across all rules. + // The following resource types are supported: + // * Organizations, such as `//cloudresourcemanager.googleapis.com/organizations/123`. + // * Folders, such as `//cloudresourcemanager.googleapis.com/folders/123`. + // * Projects, such as `//cloudresourcemanager.googleapis.com/projects/123` + // or `//cloudresourcemanager.googleapis.com/projects/my-project-id`. + Resources pulumi.StringArrayInput `pulumi:"resources"` +} + +func (PrincipalAccessBoundaryPolicyDetailsRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PrincipalAccessBoundaryPolicyDetailsRule)(nil)).Elem() +} + +func (i PrincipalAccessBoundaryPolicyDetailsRuleArgs) ToPrincipalAccessBoundaryPolicyDetailsRuleOutput() PrincipalAccessBoundaryPolicyDetailsRuleOutput { + return i.ToPrincipalAccessBoundaryPolicyDetailsRuleOutputWithContext(context.Background()) +} + +func (i PrincipalAccessBoundaryPolicyDetailsRuleArgs) ToPrincipalAccessBoundaryPolicyDetailsRuleOutputWithContext(ctx context.Context) PrincipalAccessBoundaryPolicyDetailsRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrincipalAccessBoundaryPolicyDetailsRuleOutput) +} + +// PrincipalAccessBoundaryPolicyDetailsRuleArrayInput is an input type that accepts PrincipalAccessBoundaryPolicyDetailsRuleArray and PrincipalAccessBoundaryPolicyDetailsRuleArrayOutput values. +// You can construct a concrete instance of `PrincipalAccessBoundaryPolicyDetailsRuleArrayInput` via: +// +// PrincipalAccessBoundaryPolicyDetailsRuleArray{ PrincipalAccessBoundaryPolicyDetailsRuleArgs{...} } +type PrincipalAccessBoundaryPolicyDetailsRuleArrayInput interface { + pulumi.Input + + ToPrincipalAccessBoundaryPolicyDetailsRuleArrayOutput() PrincipalAccessBoundaryPolicyDetailsRuleArrayOutput + ToPrincipalAccessBoundaryPolicyDetailsRuleArrayOutputWithContext(context.Context) PrincipalAccessBoundaryPolicyDetailsRuleArrayOutput +} + +type PrincipalAccessBoundaryPolicyDetailsRuleArray []PrincipalAccessBoundaryPolicyDetailsRuleInput + +func (PrincipalAccessBoundaryPolicyDetailsRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]PrincipalAccessBoundaryPolicyDetailsRule)(nil)).Elem() +} + +func (i PrincipalAccessBoundaryPolicyDetailsRuleArray) ToPrincipalAccessBoundaryPolicyDetailsRuleArrayOutput() PrincipalAccessBoundaryPolicyDetailsRuleArrayOutput { + return i.ToPrincipalAccessBoundaryPolicyDetailsRuleArrayOutputWithContext(context.Background()) +} + +func (i PrincipalAccessBoundaryPolicyDetailsRuleArray) ToPrincipalAccessBoundaryPolicyDetailsRuleArrayOutputWithContext(ctx context.Context) PrincipalAccessBoundaryPolicyDetailsRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrincipalAccessBoundaryPolicyDetailsRuleArrayOutput) +} + +type PrincipalAccessBoundaryPolicyDetailsRuleOutput struct{ *pulumi.OutputState } + +func (PrincipalAccessBoundaryPolicyDetailsRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PrincipalAccessBoundaryPolicyDetailsRule)(nil)).Elem() +} + +func (o PrincipalAccessBoundaryPolicyDetailsRuleOutput) ToPrincipalAccessBoundaryPolicyDetailsRuleOutput() PrincipalAccessBoundaryPolicyDetailsRuleOutput { + return o +} + +func (o PrincipalAccessBoundaryPolicyDetailsRuleOutput) ToPrincipalAccessBoundaryPolicyDetailsRuleOutputWithContext(ctx context.Context) PrincipalAccessBoundaryPolicyDetailsRuleOutput { + return o +} + +// The description of the principal access boundary policy rule. Must be less than or equal to 256 characters. +func (o PrincipalAccessBoundaryPolicyDetailsRuleOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrincipalAccessBoundaryPolicyDetailsRule) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// The access relationship of principals to the resources in this rule. +// Possible values: ALLOW +func (o PrincipalAccessBoundaryPolicyDetailsRuleOutput) Effect() pulumi.StringOutput { + return o.ApplyT(func(v PrincipalAccessBoundaryPolicyDetailsRule) string { return v.Effect }).(pulumi.StringOutput) +} + +// A list of Cloud Resource Manager resources. The resource +// and all the descendants are included. The number of resources in a policy +// is limited to 500 across all rules. +// The following resource types are supported: +// - Organizations, such as `//cloudresourcemanager.googleapis.com/organizations/123`. +// - Folders, such as `//cloudresourcemanager.googleapis.com/folders/123`. +// - Projects, such as `//cloudresourcemanager.googleapis.com/projects/123` +// or `//cloudresourcemanager.googleapis.com/projects/my-project-id`. +func (o PrincipalAccessBoundaryPolicyDetailsRuleOutput) Resources() pulumi.StringArrayOutput { + return o.ApplyT(func(v PrincipalAccessBoundaryPolicyDetailsRule) []string { return v.Resources }).(pulumi.StringArrayOutput) +} + +type PrincipalAccessBoundaryPolicyDetailsRuleArrayOutput struct{ *pulumi.OutputState } + +func (PrincipalAccessBoundaryPolicyDetailsRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]PrincipalAccessBoundaryPolicyDetailsRule)(nil)).Elem() +} + +func (o PrincipalAccessBoundaryPolicyDetailsRuleArrayOutput) ToPrincipalAccessBoundaryPolicyDetailsRuleArrayOutput() PrincipalAccessBoundaryPolicyDetailsRuleArrayOutput { + return o +} + +func (o PrincipalAccessBoundaryPolicyDetailsRuleArrayOutput) ToPrincipalAccessBoundaryPolicyDetailsRuleArrayOutputWithContext(ctx context.Context) PrincipalAccessBoundaryPolicyDetailsRuleArrayOutput { + return o +} + +func (o PrincipalAccessBoundaryPolicyDetailsRuleArrayOutput) Index(i pulumi.IntInput) PrincipalAccessBoundaryPolicyDetailsRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) PrincipalAccessBoundaryPolicyDetailsRule { + return vs[0].([]PrincipalAccessBoundaryPolicyDetailsRule)[vs[1].(int)] + }).(PrincipalAccessBoundaryPolicyDetailsRuleOutput) +} + type WorkforcePoolAccessRestrictions struct { // Services allowed for web sign-in with the workforce pool. // If not set by default there are no restrictions. @@ -4999,6 +5312,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*DenyPolicyRuleDenyRulePtrInput)(nil)).Elem(), DenyPolicyRuleDenyRuleArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DenyPolicyRuleDenyRuleDenialConditionInput)(nil)).Elem(), DenyPolicyRuleDenyRuleDenialConditionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DenyPolicyRuleDenyRuleDenialConditionPtrInput)(nil)).Elem(), DenyPolicyRuleDenyRuleDenialConditionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PrincipalAccessBoundaryPolicyDetailsInput)(nil)).Elem(), PrincipalAccessBoundaryPolicyDetailsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PrincipalAccessBoundaryPolicyDetailsPtrInput)(nil)).Elem(), PrincipalAccessBoundaryPolicyDetailsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PrincipalAccessBoundaryPolicyDetailsRuleInput)(nil)).Elem(), PrincipalAccessBoundaryPolicyDetailsRuleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PrincipalAccessBoundaryPolicyDetailsRuleArrayInput)(nil)).Elem(), PrincipalAccessBoundaryPolicyDetailsRuleArray{}) pulumi.RegisterInputType(reflect.TypeOf((*WorkforcePoolAccessRestrictionsInput)(nil)).Elem(), WorkforcePoolAccessRestrictionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*WorkforcePoolAccessRestrictionsPtrInput)(nil)).Elem(), WorkforcePoolAccessRestrictionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*WorkforcePoolAccessRestrictionsAllowedServiceInput)(nil)).Elem(), WorkforcePoolAccessRestrictionsAllowedServiceArgs{}) @@ -5063,6 +5380,10 @@ func init() { pulumi.RegisterOutputType(DenyPolicyRuleDenyRulePtrOutput{}) pulumi.RegisterOutputType(DenyPolicyRuleDenyRuleDenialConditionOutput{}) pulumi.RegisterOutputType(DenyPolicyRuleDenyRuleDenialConditionPtrOutput{}) + pulumi.RegisterOutputType(PrincipalAccessBoundaryPolicyDetailsOutput{}) + pulumi.RegisterOutputType(PrincipalAccessBoundaryPolicyDetailsPtrOutput{}) + pulumi.RegisterOutputType(PrincipalAccessBoundaryPolicyDetailsRuleOutput{}) + pulumi.RegisterOutputType(PrincipalAccessBoundaryPolicyDetailsRuleArrayOutput{}) pulumi.RegisterOutputType(WorkforcePoolAccessRestrictionsOutput{}) pulumi.RegisterOutputType(WorkforcePoolAccessRestrictionsPtrOutput{}) pulumi.RegisterOutputType(WorkforcePoolAccessRestrictionsAllowedServiceOutput{}) diff --git a/sdk/go/gcp/logging/metric.go b/sdk/go/gcp/logging/metric.go index 062c2d616d..a04457acbb 100644 --- a/sdk/go/gcp/logging/metric.go +++ b/sdk/go/gcp/logging/metric.go @@ -228,7 +228,7 @@ import ( // When using the `pulumi import` command, Metric can be imported using one of the formats above. For example: // // ```sh -// $ pulumi import gcp:logging/metric:Metric default {{project}} {{name}} +// $ pulumi import gcp:logging/metric:Metric default "{{project}} {{name}}" // ``` // // ```sh diff --git a/sdk/go/gcp/looker/instance.go b/sdk/go/gcp/looker/instance.go index 45a9834c0a..ed847ffd34 100644 --- a/sdk/go/gcp/looker/instance.go +++ b/sdk/go/gcp/looker/instance.go @@ -7,6 +7,7 @@ import ( "context" "reflect" + "errors" "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -406,32 +407,25 @@ type Instance struct { pulumi.CustomResourceState // Looker instance Admin settings. - // Structure is documented below. AdminSettings InstanceAdminSettingsPtrOutput `pulumi:"adminSettings"` - // Network name in the consumer project in the format of: projects/{project}/global/networks/{network} - // Note that the consumer network may be in a different GCP project than the consumer - // project that is hosting the Looker Instance. + // Network name in the consumer project in the format of: projects/{project}/global/networks/{network} Note that the + // consumer network may be in a different GCP project than the consumer project that is hosting the Looker Instance. ConsumerNetwork pulumi.StringPtrOutput `pulumi:"consumerNetwork"` // The time the instance was created in RFC3339 UTC "Zulu" format, // accurate to nanoseconds. CreateTime pulumi.StringOutput `pulumi:"createTime"` // Custom domain settings for a Looker instance. - // Structure is documented below. CustomDomain InstanceCustomDomainPtrOutput `pulumi:"customDomain"` - // Policy to determine if the cluster should be deleted forcefully. - // If setting deletionPolicy = "FORCE", the Looker instance will be deleted regardless - // of its nested resources. If set to "DEFAULT", Looker instances that still have + // Policy to determine if the cluster should be deleted forcefully. If setting deletionPolicy = "FORCE", the Looker + // instance will be deleted regardless of its nested resources. If set to "DEFAULT", Looker instances that still have // nested resources will return an error. Possible values: DEFAULT, FORCE DeletionPolicy pulumi.StringPtrOutput `pulumi:"deletionPolicy"` - // Maintenance denial period for this instance. - // You must allow at least 14 days of maintenance availability - // between any two deny maintenance periods. - // Structure is documented below. + // Maintenance denial period for this instance. You must allow at least 14 days of maintenance availability between any two + // deny maintenance periods. DenyMaintenancePeriod InstanceDenyMaintenancePeriodPtrOutput `pulumi:"denyMaintenancePeriod"` // Public Egress IP (IPv4). EgressPublicIp pulumi.StringOutput `pulumi:"egressPublicIp"` // Looker instance encryption settings. - // Structure is documented below. EncryptionConfig InstanceEncryptionConfigOutput `pulumi:"encryptionConfig"` // FIPS 140-2 Encryption enablement for Looker (Google Cloud Core). FipsEnabled pulumi.BoolPtrOutput `pulumi:"fipsEnabled"` @@ -443,35 +437,25 @@ type Instance struct { LookerUri pulumi.StringOutput `pulumi:"lookerUri"` // The Looker version that the instance is using. LookerVersion pulumi.StringOutput `pulumi:"lookerVersion"` - // Maintenance window for an instance. - // Maintenance of your instance takes place once a month, and will require - // your instance to be restarted during updates, which will temporarily - // disrupt service. - // Structure is documented below. + // Maintenance window for an instance. Maintenance of your instance takes place once a month, and will require your + // instance to be restarted during updates, which will temporarily disrupt service. MaintenanceWindow InstanceMaintenanceWindowPtrOutput `pulumi:"maintenanceWindow"` // The ID of the instance or a fully qualified identifier for the instance. - // - // *** Name pulumi.StringOutput `pulumi:"name"` // Looker Instance OAuth login settings. // Structure is documented below. - OauthConfig InstanceOauthConfigPtrOutput `pulumi:"oauthConfig"` - // Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values: - // - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - // - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable) - // - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - // - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - // - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance - // Default value is `LOOKER_CORE_TRIAL`. - // Possible values are: `LOOKER_CORE_TRIAL`, `LOOKER_CORE_STANDARD`, `LOOKER_CORE_STANDARD_ANNUAL`, `LOOKER_CORE_ENTERPRISE_ANNUAL`, `LOOKER_CORE_EMBED_ANNUAL`. + OauthConfig InstanceOauthConfigOutput `pulumi:"oauthConfig"` + // Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of + // these values: - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - LOOKER_CORE_STANDARD: pay as you go standard + // instance (Currently Unavailable) - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - + // LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance + // Default value: "LOOKER_CORE_TRIAL" Possible values: ["LOOKER_CORE_TRIAL", "LOOKER_CORE_STANDARD", + // "LOOKER_CORE_STANDARD_ANNUAL", "LOOKER_CORE_ENTERPRISE_ANNUAL", "LOOKER_CORE_EMBED_ANNUAL"] PlatformEdition pulumi.StringPtrOutput `pulumi:"platformEdition"` // Whether private IP is enabled on the Looker instance. PrivateIpEnabled pulumi.BoolPtrOutput `pulumi:"privateIpEnabled"` - // The ID of the project in which the resource belongs. - // If it is not provided, the provider project is used. - Project pulumi.StringOutput `pulumi:"project"` + Project pulumi.StringOutput `pulumi:"project"` // Information for Private Service Connect (PSC) setup for a Looker instance. - // Structure is documented below. PscConfig InstancePscConfigPtrOutput `pulumi:"pscConfig"` // Whether Public Service Connect (PSC) is enabled on the Looker instance PscEnabled pulumi.BoolPtrOutput `pulumi:"pscEnabled"` @@ -479,20 +463,17 @@ type Instance struct { PublicIpEnabled pulumi.BoolPtrOutput `pulumi:"publicIpEnabled"` // The name of the Looker region of the instance. Region pulumi.StringOutput `pulumi:"region"` - // Name of a reserved IP address range within the consumer network, to be used for - // private service access connection. User may or may not specify this in a request. + // Name of a reserved IP address range within the consumer network, to be used for private service access connection. User + // may or may not specify this in a request. ReservedRange pulumi.StringPtrOutput `pulumi:"reservedRange"` // The time the instance was updated in RFC3339 UTC "Zulu" format, // accurate to nanoseconds. UpdateTime pulumi.StringOutput `pulumi:"updateTime"` - // Metadata about users for a Looker instance. - // These settings are only available when platform edition LOOKER_CORE_STANDARD is set. - // There are ten Standard and two Developer users included in the cost of the product. - // You can allocate additional Standard, Viewer, and Developer users for this instance. - // It is an optional step and can be modified later. - // With the Standard edition of Looker (Google Cloud core), you can provision up to 50 - // total users, distributed across Viewer, Standard, and Developer. - // Structure is documented below. + // Metadata about users for a Looker instance. These settings are only available when platform edition LOOKER_CORE_STANDARD + // is set. There are ten Standard and two Developer users included in the cost of the product. You can allocate additional + // Standard, Viewer, and Developer users for this instance. It is an optional step and can be modified later. With the + // Standard edition of Looker (Google Cloud core), you can provision up to 50 total users, distributed across Viewer, + // Standard, and Developer. UserMetadata InstanceUserMetadataPtrOutput `pulumi:"userMetadata"` } @@ -500,9 +481,12 @@ type Instance struct { func NewInstance(ctx *pulumi.Context, name string, args *InstanceArgs, opts ...pulumi.ResourceOption) (*Instance, error) { if args == nil { - args = &InstanceArgs{} + return nil, errors.New("missing one or more required arguments") } + if args.OauthConfig == nil { + return nil, errors.New("invalid value for required argument 'OauthConfig'") + } opts = internal.PkgResourceDefaultOpts(opts) var resource Instance err := ctx.RegisterResource("gcp:looker/instance:Instance", name, args, &resource, opts...) @@ -527,32 +511,25 @@ func GetInstance(ctx *pulumi.Context, // Input properties used for looking up and filtering Instance resources. type instanceState struct { // Looker instance Admin settings. - // Structure is documented below. AdminSettings *InstanceAdminSettings `pulumi:"adminSettings"` - // Network name in the consumer project in the format of: projects/{project}/global/networks/{network} - // Note that the consumer network may be in a different GCP project than the consumer - // project that is hosting the Looker Instance. + // Network name in the consumer project in the format of: projects/{project}/global/networks/{network} Note that the + // consumer network may be in a different GCP project than the consumer project that is hosting the Looker Instance. ConsumerNetwork *string `pulumi:"consumerNetwork"` // The time the instance was created in RFC3339 UTC "Zulu" format, // accurate to nanoseconds. CreateTime *string `pulumi:"createTime"` // Custom domain settings for a Looker instance. - // Structure is documented below. CustomDomain *InstanceCustomDomain `pulumi:"customDomain"` - // Policy to determine if the cluster should be deleted forcefully. - // If setting deletionPolicy = "FORCE", the Looker instance will be deleted regardless - // of its nested resources. If set to "DEFAULT", Looker instances that still have + // Policy to determine if the cluster should be deleted forcefully. If setting deletionPolicy = "FORCE", the Looker + // instance will be deleted regardless of its nested resources. If set to "DEFAULT", Looker instances that still have // nested resources will return an error. Possible values: DEFAULT, FORCE DeletionPolicy *string `pulumi:"deletionPolicy"` - // Maintenance denial period for this instance. - // You must allow at least 14 days of maintenance availability - // between any two deny maintenance periods. - // Structure is documented below. + // Maintenance denial period for this instance. You must allow at least 14 days of maintenance availability between any two + // deny maintenance periods. DenyMaintenancePeriod *InstanceDenyMaintenancePeriod `pulumi:"denyMaintenancePeriod"` // Public Egress IP (IPv4). EgressPublicIp *string `pulumi:"egressPublicIp"` // Looker instance encryption settings. - // Structure is documented below. EncryptionConfig *InstanceEncryptionConfig `pulumi:"encryptionConfig"` // FIPS 140-2 Encryption enablement for Looker (Google Cloud Core). FipsEnabled *bool `pulumi:"fipsEnabled"` @@ -564,35 +541,25 @@ type instanceState struct { LookerUri *string `pulumi:"lookerUri"` // The Looker version that the instance is using. LookerVersion *string `pulumi:"lookerVersion"` - // Maintenance window for an instance. - // Maintenance of your instance takes place once a month, and will require - // your instance to be restarted during updates, which will temporarily - // disrupt service. - // Structure is documented below. + // Maintenance window for an instance. Maintenance of your instance takes place once a month, and will require your + // instance to be restarted during updates, which will temporarily disrupt service. MaintenanceWindow *InstanceMaintenanceWindow `pulumi:"maintenanceWindow"` // The ID of the instance or a fully qualified identifier for the instance. - // - // *** Name *string `pulumi:"name"` // Looker Instance OAuth login settings. // Structure is documented below. OauthConfig *InstanceOauthConfig `pulumi:"oauthConfig"` - // Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values: - // - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - // - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable) - // - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - // - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - // - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance - // Default value is `LOOKER_CORE_TRIAL`. - // Possible values are: `LOOKER_CORE_TRIAL`, `LOOKER_CORE_STANDARD`, `LOOKER_CORE_STANDARD_ANNUAL`, `LOOKER_CORE_ENTERPRISE_ANNUAL`, `LOOKER_CORE_EMBED_ANNUAL`. + // Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of + // these values: - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - LOOKER_CORE_STANDARD: pay as you go standard + // instance (Currently Unavailable) - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - + // LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance + // Default value: "LOOKER_CORE_TRIAL" Possible values: ["LOOKER_CORE_TRIAL", "LOOKER_CORE_STANDARD", + // "LOOKER_CORE_STANDARD_ANNUAL", "LOOKER_CORE_ENTERPRISE_ANNUAL", "LOOKER_CORE_EMBED_ANNUAL"] PlatformEdition *string `pulumi:"platformEdition"` // Whether private IP is enabled on the Looker instance. - PrivateIpEnabled *bool `pulumi:"privateIpEnabled"` - // The ID of the project in which the resource belongs. - // If it is not provided, the provider project is used. - Project *string `pulumi:"project"` + PrivateIpEnabled *bool `pulumi:"privateIpEnabled"` + Project *string `pulumi:"project"` // Information for Private Service Connect (PSC) setup for a Looker instance. - // Structure is documented below. PscConfig *InstancePscConfig `pulumi:"pscConfig"` // Whether Public Service Connect (PSC) is enabled on the Looker instance PscEnabled *bool `pulumi:"pscEnabled"` @@ -600,51 +567,41 @@ type instanceState struct { PublicIpEnabled *bool `pulumi:"publicIpEnabled"` // The name of the Looker region of the instance. Region *string `pulumi:"region"` - // Name of a reserved IP address range within the consumer network, to be used for - // private service access connection. User may or may not specify this in a request. + // Name of a reserved IP address range within the consumer network, to be used for private service access connection. User + // may or may not specify this in a request. ReservedRange *string `pulumi:"reservedRange"` // The time the instance was updated in RFC3339 UTC "Zulu" format, // accurate to nanoseconds. UpdateTime *string `pulumi:"updateTime"` - // Metadata about users for a Looker instance. - // These settings are only available when platform edition LOOKER_CORE_STANDARD is set. - // There are ten Standard and two Developer users included in the cost of the product. - // You can allocate additional Standard, Viewer, and Developer users for this instance. - // It is an optional step and can be modified later. - // With the Standard edition of Looker (Google Cloud core), you can provision up to 50 - // total users, distributed across Viewer, Standard, and Developer. - // Structure is documented below. + // Metadata about users for a Looker instance. These settings are only available when platform edition LOOKER_CORE_STANDARD + // is set. There are ten Standard and two Developer users included in the cost of the product. You can allocate additional + // Standard, Viewer, and Developer users for this instance. It is an optional step and can be modified later. With the + // Standard edition of Looker (Google Cloud core), you can provision up to 50 total users, distributed across Viewer, + // Standard, and Developer. UserMetadata *InstanceUserMetadata `pulumi:"userMetadata"` } type InstanceState struct { // Looker instance Admin settings. - // Structure is documented below. AdminSettings InstanceAdminSettingsPtrInput - // Network name in the consumer project in the format of: projects/{project}/global/networks/{network} - // Note that the consumer network may be in a different GCP project than the consumer - // project that is hosting the Looker Instance. + // Network name in the consumer project in the format of: projects/{project}/global/networks/{network} Note that the + // consumer network may be in a different GCP project than the consumer project that is hosting the Looker Instance. ConsumerNetwork pulumi.StringPtrInput // The time the instance was created in RFC3339 UTC "Zulu" format, // accurate to nanoseconds. CreateTime pulumi.StringPtrInput // Custom domain settings for a Looker instance. - // Structure is documented below. CustomDomain InstanceCustomDomainPtrInput - // Policy to determine if the cluster should be deleted forcefully. - // If setting deletionPolicy = "FORCE", the Looker instance will be deleted regardless - // of its nested resources. If set to "DEFAULT", Looker instances that still have + // Policy to determine if the cluster should be deleted forcefully. If setting deletionPolicy = "FORCE", the Looker + // instance will be deleted regardless of its nested resources. If set to "DEFAULT", Looker instances that still have // nested resources will return an error. Possible values: DEFAULT, FORCE DeletionPolicy pulumi.StringPtrInput - // Maintenance denial period for this instance. - // You must allow at least 14 days of maintenance availability - // between any two deny maintenance periods. - // Structure is documented below. + // Maintenance denial period for this instance. You must allow at least 14 days of maintenance availability between any two + // deny maintenance periods. DenyMaintenancePeriod InstanceDenyMaintenancePeriodPtrInput // Public Egress IP (IPv4). EgressPublicIp pulumi.StringPtrInput // Looker instance encryption settings. - // Structure is documented below. EncryptionConfig InstanceEncryptionConfigPtrInput // FIPS 140-2 Encryption enablement for Looker (Google Cloud Core). FipsEnabled pulumi.BoolPtrInput @@ -656,35 +613,25 @@ type InstanceState struct { LookerUri pulumi.StringPtrInput // The Looker version that the instance is using. LookerVersion pulumi.StringPtrInput - // Maintenance window for an instance. - // Maintenance of your instance takes place once a month, and will require - // your instance to be restarted during updates, which will temporarily - // disrupt service. - // Structure is documented below. + // Maintenance window for an instance. Maintenance of your instance takes place once a month, and will require your + // instance to be restarted during updates, which will temporarily disrupt service. MaintenanceWindow InstanceMaintenanceWindowPtrInput // The ID of the instance or a fully qualified identifier for the instance. - // - // *** Name pulumi.StringPtrInput // Looker Instance OAuth login settings. // Structure is documented below. OauthConfig InstanceOauthConfigPtrInput - // Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values: - // - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - // - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable) - // - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - // - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - // - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance - // Default value is `LOOKER_CORE_TRIAL`. - // Possible values are: `LOOKER_CORE_TRIAL`, `LOOKER_CORE_STANDARD`, `LOOKER_CORE_STANDARD_ANNUAL`, `LOOKER_CORE_ENTERPRISE_ANNUAL`, `LOOKER_CORE_EMBED_ANNUAL`. + // Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of + // these values: - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - LOOKER_CORE_STANDARD: pay as you go standard + // instance (Currently Unavailable) - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - + // LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance + // Default value: "LOOKER_CORE_TRIAL" Possible values: ["LOOKER_CORE_TRIAL", "LOOKER_CORE_STANDARD", + // "LOOKER_CORE_STANDARD_ANNUAL", "LOOKER_CORE_ENTERPRISE_ANNUAL", "LOOKER_CORE_EMBED_ANNUAL"] PlatformEdition pulumi.StringPtrInput // Whether private IP is enabled on the Looker instance. PrivateIpEnabled pulumi.BoolPtrInput - // The ID of the project in which the resource belongs. - // If it is not provided, the provider project is used. - Project pulumi.StringPtrInput + Project pulumi.StringPtrInput // Information for Private Service Connect (PSC) setup for a Looker instance. - // Structure is documented below. PscConfig InstancePscConfigPtrInput // Whether Public Service Connect (PSC) is enabled on the Looker instance PscEnabled pulumi.BoolPtrInput @@ -692,20 +639,17 @@ type InstanceState struct { PublicIpEnabled pulumi.BoolPtrInput // The name of the Looker region of the instance. Region pulumi.StringPtrInput - // Name of a reserved IP address range within the consumer network, to be used for - // private service access connection. User may or may not specify this in a request. + // Name of a reserved IP address range within the consumer network, to be used for private service access connection. User + // may or may not specify this in a request. ReservedRange pulumi.StringPtrInput // The time the instance was updated in RFC3339 UTC "Zulu" format, // accurate to nanoseconds. UpdateTime pulumi.StringPtrInput - // Metadata about users for a Looker instance. - // These settings are only available when platform edition LOOKER_CORE_STANDARD is set. - // There are ten Standard and two Developer users included in the cost of the product. - // You can allocate additional Standard, Viewer, and Developer users for this instance. - // It is an optional step and can be modified later. - // With the Standard edition of Looker (Google Cloud core), you can provision up to 50 - // total users, distributed across Viewer, Standard, and Developer. - // Structure is documented below. + // Metadata about users for a Looker instance. These settings are only available when platform edition LOOKER_CORE_STANDARD + // is set. There are ten Standard and two Developer users included in the cost of the product. You can allocate additional + // Standard, Viewer, and Developer users for this instance. It is an optional step and can be modified later. With the + // Standard edition of Looker (Google Cloud core), you can provision up to 50 total users, distributed across Viewer, + // Standard, and Developer. UserMetadata InstanceUserMetadataPtrInput } @@ -715,59 +659,42 @@ func (InstanceState) ElementType() reflect.Type { type instanceArgs struct { // Looker instance Admin settings. - // Structure is documented below. AdminSettings *InstanceAdminSettings `pulumi:"adminSettings"` - // Network name in the consumer project in the format of: projects/{project}/global/networks/{network} - // Note that the consumer network may be in a different GCP project than the consumer - // project that is hosting the Looker Instance. + // Network name in the consumer project in the format of: projects/{project}/global/networks/{network} Note that the + // consumer network may be in a different GCP project than the consumer project that is hosting the Looker Instance. ConsumerNetwork *string `pulumi:"consumerNetwork"` // Custom domain settings for a Looker instance. - // Structure is documented below. CustomDomain *InstanceCustomDomain `pulumi:"customDomain"` - // Policy to determine if the cluster should be deleted forcefully. - // If setting deletionPolicy = "FORCE", the Looker instance will be deleted regardless - // of its nested resources. If set to "DEFAULT", Looker instances that still have + // Policy to determine if the cluster should be deleted forcefully. If setting deletionPolicy = "FORCE", the Looker + // instance will be deleted regardless of its nested resources. If set to "DEFAULT", Looker instances that still have // nested resources will return an error. Possible values: DEFAULT, FORCE DeletionPolicy *string `pulumi:"deletionPolicy"` - // Maintenance denial period for this instance. - // You must allow at least 14 days of maintenance availability - // between any two deny maintenance periods. - // Structure is documented below. + // Maintenance denial period for this instance. You must allow at least 14 days of maintenance availability between any two + // deny maintenance periods. DenyMaintenancePeriod *InstanceDenyMaintenancePeriod `pulumi:"denyMaintenancePeriod"` // Looker instance encryption settings. - // Structure is documented below. EncryptionConfig *InstanceEncryptionConfig `pulumi:"encryptionConfig"` // FIPS 140-2 Encryption enablement for Looker (Google Cloud Core). FipsEnabled *bool `pulumi:"fipsEnabled"` - // Maintenance window for an instance. - // Maintenance of your instance takes place once a month, and will require - // your instance to be restarted during updates, which will temporarily - // disrupt service. - // Structure is documented below. + // Maintenance window for an instance. Maintenance of your instance takes place once a month, and will require your + // instance to be restarted during updates, which will temporarily disrupt service. MaintenanceWindow *InstanceMaintenanceWindow `pulumi:"maintenanceWindow"` // The ID of the instance or a fully qualified identifier for the instance. - // - // *** Name *string `pulumi:"name"` // Looker Instance OAuth login settings. // Structure is documented below. - OauthConfig *InstanceOauthConfig `pulumi:"oauthConfig"` - // Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values: - // - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - // - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable) - // - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - // - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - // - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance - // Default value is `LOOKER_CORE_TRIAL`. - // Possible values are: `LOOKER_CORE_TRIAL`, `LOOKER_CORE_STANDARD`, `LOOKER_CORE_STANDARD_ANNUAL`, `LOOKER_CORE_ENTERPRISE_ANNUAL`, `LOOKER_CORE_EMBED_ANNUAL`. + OauthConfig InstanceOauthConfig `pulumi:"oauthConfig"` + // Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of + // these values: - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - LOOKER_CORE_STANDARD: pay as you go standard + // instance (Currently Unavailable) - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - + // LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance + // Default value: "LOOKER_CORE_TRIAL" Possible values: ["LOOKER_CORE_TRIAL", "LOOKER_CORE_STANDARD", + // "LOOKER_CORE_STANDARD_ANNUAL", "LOOKER_CORE_ENTERPRISE_ANNUAL", "LOOKER_CORE_EMBED_ANNUAL"] PlatformEdition *string `pulumi:"platformEdition"` // Whether private IP is enabled on the Looker instance. - PrivateIpEnabled *bool `pulumi:"privateIpEnabled"` - // The ID of the project in which the resource belongs. - // If it is not provided, the provider project is used. - Project *string `pulumi:"project"` + PrivateIpEnabled *bool `pulumi:"privateIpEnabled"` + Project *string `pulumi:"project"` // Information for Private Service Connect (PSC) setup for a Looker instance. - // Structure is documented below. PscConfig *InstancePscConfig `pulumi:"pscConfig"` // Whether Public Service Connect (PSC) is enabled on the Looker instance PscEnabled *bool `pulumi:"pscEnabled"` @@ -775,76 +702,56 @@ type instanceArgs struct { PublicIpEnabled *bool `pulumi:"publicIpEnabled"` // The name of the Looker region of the instance. Region *string `pulumi:"region"` - // Name of a reserved IP address range within the consumer network, to be used for - // private service access connection. User may or may not specify this in a request. + // Name of a reserved IP address range within the consumer network, to be used for private service access connection. User + // may or may not specify this in a request. ReservedRange *string `pulumi:"reservedRange"` - // Metadata about users for a Looker instance. - // These settings are only available when platform edition LOOKER_CORE_STANDARD is set. - // There are ten Standard and two Developer users included in the cost of the product. - // You can allocate additional Standard, Viewer, and Developer users for this instance. - // It is an optional step and can be modified later. - // With the Standard edition of Looker (Google Cloud core), you can provision up to 50 - // total users, distributed across Viewer, Standard, and Developer. - // Structure is documented below. + // Metadata about users for a Looker instance. These settings are only available when platform edition LOOKER_CORE_STANDARD + // is set. There are ten Standard and two Developer users included in the cost of the product. You can allocate additional + // Standard, Viewer, and Developer users for this instance. It is an optional step and can be modified later. With the + // Standard edition of Looker (Google Cloud core), you can provision up to 50 total users, distributed across Viewer, + // Standard, and Developer. UserMetadata *InstanceUserMetadata `pulumi:"userMetadata"` } // The set of arguments for constructing a Instance resource. type InstanceArgs struct { // Looker instance Admin settings. - // Structure is documented below. AdminSettings InstanceAdminSettingsPtrInput - // Network name in the consumer project in the format of: projects/{project}/global/networks/{network} - // Note that the consumer network may be in a different GCP project than the consumer - // project that is hosting the Looker Instance. + // Network name in the consumer project in the format of: projects/{project}/global/networks/{network} Note that the + // consumer network may be in a different GCP project than the consumer project that is hosting the Looker Instance. ConsumerNetwork pulumi.StringPtrInput // Custom domain settings for a Looker instance. - // Structure is documented below. CustomDomain InstanceCustomDomainPtrInput - // Policy to determine if the cluster should be deleted forcefully. - // If setting deletionPolicy = "FORCE", the Looker instance will be deleted regardless - // of its nested resources. If set to "DEFAULT", Looker instances that still have + // Policy to determine if the cluster should be deleted forcefully. If setting deletionPolicy = "FORCE", the Looker + // instance will be deleted regardless of its nested resources. If set to "DEFAULT", Looker instances that still have // nested resources will return an error. Possible values: DEFAULT, FORCE DeletionPolicy pulumi.StringPtrInput - // Maintenance denial period for this instance. - // You must allow at least 14 days of maintenance availability - // between any two deny maintenance periods. - // Structure is documented below. + // Maintenance denial period for this instance. You must allow at least 14 days of maintenance availability between any two + // deny maintenance periods. DenyMaintenancePeriod InstanceDenyMaintenancePeriodPtrInput // Looker instance encryption settings. - // Structure is documented below. EncryptionConfig InstanceEncryptionConfigPtrInput // FIPS 140-2 Encryption enablement for Looker (Google Cloud Core). FipsEnabled pulumi.BoolPtrInput - // Maintenance window for an instance. - // Maintenance of your instance takes place once a month, and will require - // your instance to be restarted during updates, which will temporarily - // disrupt service. - // Structure is documented below. + // Maintenance window for an instance. Maintenance of your instance takes place once a month, and will require your + // instance to be restarted during updates, which will temporarily disrupt service. MaintenanceWindow InstanceMaintenanceWindowPtrInput // The ID of the instance or a fully qualified identifier for the instance. - // - // *** Name pulumi.StringPtrInput // Looker Instance OAuth login settings. // Structure is documented below. - OauthConfig InstanceOauthConfigPtrInput - // Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values: - // - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - // - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable) - // - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - // - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - // - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance - // Default value is `LOOKER_CORE_TRIAL`. - // Possible values are: `LOOKER_CORE_TRIAL`, `LOOKER_CORE_STANDARD`, `LOOKER_CORE_STANDARD_ANNUAL`, `LOOKER_CORE_ENTERPRISE_ANNUAL`, `LOOKER_CORE_EMBED_ANNUAL`. + OauthConfig InstanceOauthConfigInput + // Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of + // these values: - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - LOOKER_CORE_STANDARD: pay as you go standard + // instance (Currently Unavailable) - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - + // LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance + // Default value: "LOOKER_CORE_TRIAL" Possible values: ["LOOKER_CORE_TRIAL", "LOOKER_CORE_STANDARD", + // "LOOKER_CORE_STANDARD_ANNUAL", "LOOKER_CORE_ENTERPRISE_ANNUAL", "LOOKER_CORE_EMBED_ANNUAL"] PlatformEdition pulumi.StringPtrInput // Whether private IP is enabled on the Looker instance. PrivateIpEnabled pulumi.BoolPtrInput - // The ID of the project in which the resource belongs. - // If it is not provided, the provider project is used. - Project pulumi.StringPtrInput + Project pulumi.StringPtrInput // Information for Private Service Connect (PSC) setup for a Looker instance. - // Structure is documented below. PscConfig InstancePscConfigPtrInput // Whether Public Service Connect (PSC) is enabled on the Looker instance PscEnabled pulumi.BoolPtrInput @@ -852,17 +759,14 @@ type InstanceArgs struct { PublicIpEnabled pulumi.BoolPtrInput // The name of the Looker region of the instance. Region pulumi.StringPtrInput - // Name of a reserved IP address range within the consumer network, to be used for - // private service access connection. User may or may not specify this in a request. + // Name of a reserved IP address range within the consumer network, to be used for private service access connection. User + // may or may not specify this in a request. ReservedRange pulumi.StringPtrInput - // Metadata about users for a Looker instance. - // These settings are only available when platform edition LOOKER_CORE_STANDARD is set. - // There are ten Standard and two Developer users included in the cost of the product. - // You can allocate additional Standard, Viewer, and Developer users for this instance. - // It is an optional step and can be modified later. - // With the Standard edition of Looker (Google Cloud core), you can provision up to 50 - // total users, distributed across Viewer, Standard, and Developer. - // Structure is documented below. + // Metadata about users for a Looker instance. These settings are only available when platform edition LOOKER_CORE_STANDARD + // is set. There are ten Standard and two Developer users included in the cost of the product. You can allocate additional + // Standard, Viewer, and Developer users for this instance. It is an optional step and can be modified later. With the + // Standard edition of Looker (Google Cloud core), you can provision up to 50 total users, distributed across Viewer, + // Standard, and Developer. UserMetadata InstanceUserMetadataPtrInput } @@ -954,14 +858,12 @@ func (o InstanceOutput) ToInstanceOutputWithContext(ctx context.Context) Instanc } // Looker instance Admin settings. -// Structure is documented below. func (o InstanceOutput) AdminSettings() InstanceAdminSettingsPtrOutput { return o.ApplyT(func(v *Instance) InstanceAdminSettingsPtrOutput { return v.AdminSettings }).(InstanceAdminSettingsPtrOutput) } -// Network name in the consumer project in the format of: projects/{project}/global/networks/{network} -// Note that the consumer network may be in a different GCP project than the consumer -// project that is hosting the Looker Instance. +// Network name in the consumer project in the format of: projects/{project}/global/networks/{network} Note that the +// consumer network may be in a different GCP project than the consumer project that is hosting the Looker Instance. func (o InstanceOutput) ConsumerNetwork() pulumi.StringPtrOutput { return o.ApplyT(func(v *Instance) pulumi.StringPtrOutput { return v.ConsumerNetwork }).(pulumi.StringPtrOutput) } @@ -973,23 +875,19 @@ func (o InstanceOutput) CreateTime() pulumi.StringOutput { } // Custom domain settings for a Looker instance. -// Structure is documented below. func (o InstanceOutput) CustomDomain() InstanceCustomDomainPtrOutput { return o.ApplyT(func(v *Instance) InstanceCustomDomainPtrOutput { return v.CustomDomain }).(InstanceCustomDomainPtrOutput) } -// Policy to determine if the cluster should be deleted forcefully. -// If setting deletionPolicy = "FORCE", the Looker instance will be deleted regardless -// of its nested resources. If set to "DEFAULT", Looker instances that still have +// Policy to determine if the cluster should be deleted forcefully. If setting deletionPolicy = "FORCE", the Looker +// instance will be deleted regardless of its nested resources. If set to "DEFAULT", Looker instances that still have // nested resources will return an error. Possible values: DEFAULT, FORCE func (o InstanceOutput) DeletionPolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v *Instance) pulumi.StringPtrOutput { return v.DeletionPolicy }).(pulumi.StringPtrOutput) } -// Maintenance denial period for this instance. -// You must allow at least 14 days of maintenance availability -// between any two deny maintenance periods. -// Structure is documented below. +// Maintenance denial period for this instance. You must allow at least 14 days of maintenance availability between any two +// deny maintenance periods. func (o InstanceOutput) DenyMaintenancePeriod() InstanceDenyMaintenancePeriodPtrOutput { return o.ApplyT(func(v *Instance) InstanceDenyMaintenancePeriodPtrOutput { return v.DenyMaintenancePeriod }).(InstanceDenyMaintenancePeriodPtrOutput) } @@ -1000,7 +898,6 @@ func (o InstanceOutput) EgressPublicIp() pulumi.StringOutput { } // Looker instance encryption settings. -// Structure is documented below. func (o InstanceOutput) EncryptionConfig() InstanceEncryptionConfigOutput { return o.ApplyT(func(v *Instance) InstanceEncryptionConfigOutput { return v.EncryptionConfig }).(InstanceEncryptionConfigOutput) } @@ -1030,36 +927,29 @@ func (o InstanceOutput) LookerVersion() pulumi.StringOutput { return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.LookerVersion }).(pulumi.StringOutput) } -// Maintenance window for an instance. -// Maintenance of your instance takes place once a month, and will require -// your instance to be restarted during updates, which will temporarily -// disrupt service. -// Structure is documented below. +// Maintenance window for an instance. Maintenance of your instance takes place once a month, and will require your +// instance to be restarted during updates, which will temporarily disrupt service. func (o InstanceOutput) MaintenanceWindow() InstanceMaintenanceWindowPtrOutput { return o.ApplyT(func(v *Instance) InstanceMaintenanceWindowPtrOutput { return v.MaintenanceWindow }).(InstanceMaintenanceWindowPtrOutput) } // The ID of the instance or a fully qualified identifier for the instance. -// -// *** func (o InstanceOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } // Looker Instance OAuth login settings. // Structure is documented below. -func (o InstanceOutput) OauthConfig() InstanceOauthConfigPtrOutput { - return o.ApplyT(func(v *Instance) InstanceOauthConfigPtrOutput { return v.OauthConfig }).(InstanceOauthConfigPtrOutput) +func (o InstanceOutput) OauthConfig() InstanceOauthConfigOutput { + return o.ApplyT(func(v *Instance) InstanceOauthConfigOutput { return v.OauthConfig }).(InstanceOauthConfigOutput) } -// Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values: -// - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) -// - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable) -// - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance -// - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance -// - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance -// Default value is `LOOKER_CORE_TRIAL`. -// Possible values are: `LOOKER_CORE_TRIAL`, `LOOKER_CORE_STANDARD`, `LOOKER_CORE_STANDARD_ANNUAL`, `LOOKER_CORE_ENTERPRISE_ANNUAL`, `LOOKER_CORE_EMBED_ANNUAL`. +// Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of +// these values: - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - LOOKER_CORE_STANDARD: pay as you go standard +// instance (Currently Unavailable) - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - +// LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance +// Default value: "LOOKER_CORE_TRIAL" Possible values: ["LOOKER_CORE_TRIAL", "LOOKER_CORE_STANDARD", +// "LOOKER_CORE_STANDARD_ANNUAL", "LOOKER_CORE_ENTERPRISE_ANNUAL", "LOOKER_CORE_EMBED_ANNUAL"] func (o InstanceOutput) PlatformEdition() pulumi.StringPtrOutput { return o.ApplyT(func(v *Instance) pulumi.StringPtrOutput { return v.PlatformEdition }).(pulumi.StringPtrOutput) } @@ -1069,14 +959,11 @@ func (o InstanceOutput) PrivateIpEnabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v *Instance) pulumi.BoolPtrOutput { return v.PrivateIpEnabled }).(pulumi.BoolPtrOutput) } -// The ID of the project in which the resource belongs. -// If it is not provided, the provider project is used. func (o InstanceOutput) Project() pulumi.StringOutput { return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.Project }).(pulumi.StringOutput) } // Information for Private Service Connect (PSC) setup for a Looker instance. -// Structure is documented below. func (o InstanceOutput) PscConfig() InstancePscConfigPtrOutput { return o.ApplyT(func(v *Instance) InstancePscConfigPtrOutput { return v.PscConfig }).(InstancePscConfigPtrOutput) } @@ -1096,8 +983,8 @@ func (o InstanceOutput) Region() pulumi.StringOutput { return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput) } -// Name of a reserved IP address range within the consumer network, to be used for -// private service access connection. User may or may not specify this in a request. +// Name of a reserved IP address range within the consumer network, to be used for private service access connection. User +// may or may not specify this in a request. func (o InstanceOutput) ReservedRange() pulumi.StringPtrOutput { return o.ApplyT(func(v *Instance) pulumi.StringPtrOutput { return v.ReservedRange }).(pulumi.StringPtrOutput) } @@ -1108,14 +995,11 @@ func (o InstanceOutput) UpdateTime() pulumi.StringOutput { return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.UpdateTime }).(pulumi.StringOutput) } -// Metadata about users for a Looker instance. -// These settings are only available when platform edition LOOKER_CORE_STANDARD is set. -// There are ten Standard and two Developer users included in the cost of the product. -// You can allocate additional Standard, Viewer, and Developer users for this instance. -// It is an optional step and can be modified later. -// With the Standard edition of Looker (Google Cloud core), you can provision up to 50 -// total users, distributed across Viewer, Standard, and Developer. -// Structure is documented below. +// Metadata about users for a Looker instance. These settings are only available when platform edition LOOKER_CORE_STANDARD +// is set. There are ten Standard and two Developer users included in the cost of the product. You can allocate additional +// Standard, Viewer, and Developer users for this instance. It is an optional step and can be modified later. With the +// Standard edition of Looker (Google Cloud core), you can provision up to 50 total users, distributed across Viewer, +// Standard, and Developer. func (o InstanceOutput) UserMetadata() InstanceUserMetadataPtrOutput { return o.ApplyT(func(v *Instance) InstanceUserMetadataPtrOutput { return v.UserMetadata }).(InstanceUserMetadataPtrOutput) } diff --git a/sdk/go/gcp/looker/pulumiTypes.go b/sdk/go/gcp/looker/pulumiTypes.go index 2363c045f3..f3c9fddf2a 100644 --- a/sdk/go/gcp/looker/pulumiTypes.go +++ b/sdk/go/gcp/looker/pulumiTypes.go @@ -1634,6 +1634,8 @@ type InstanceOauthConfig struct { // The client ID for the Oauth config. ClientId string `pulumi:"clientId"` // The client secret for the Oauth config. + // + // *** ClientSecret string `pulumi:"clientSecret"` } @@ -1652,6 +1654,8 @@ type InstanceOauthConfigArgs struct { // The client ID for the Oauth config. ClientId pulumi.StringInput `pulumi:"clientId"` // The client secret for the Oauth config. + // + // *** ClientSecret pulumi.StringInput `pulumi:"clientSecret"` } @@ -1738,6 +1742,8 @@ func (o InstanceOauthConfigOutput) ClientId() pulumi.StringOutput { } // The client secret for the Oauth config. +// +// *** func (o InstanceOauthConfigOutput) ClientSecret() pulumi.StringOutput { return o.ApplyT(func(v InstanceOauthConfig) string { return v.ClientSecret }).(pulumi.StringOutput) } @@ -1777,6 +1783,8 @@ func (o InstanceOauthConfigPtrOutput) ClientId() pulumi.StringPtrOutput { } // The client secret for the Oauth config. +// +// *** func (o InstanceOauthConfigPtrOutput) ClientSecret() pulumi.StringPtrOutput { return o.ApplyT(func(v *InstanceOauthConfig) *string { if v == nil { diff --git a/sdk/go/gcp/memorystore/instance.go b/sdk/go/gcp/memorystore/instance.go index f960e80cf7..f435c55622 100644 --- a/sdk/go/gcp/memorystore/instance.go +++ b/sdk/go/gcp/memorystore/instance.go @@ -12,6 +12,8 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) +// A Google Cloud Memorystore instance. +// // ## Example Usage // // ### Memorystore Instance Basic diff --git a/sdk/go/gcp/monitoring/alertPolicy.go b/sdk/go/gcp/monitoring/alertPolicy.go index 610513727e..bdce5e3e2b 100644 --- a/sdk/go/gcp/monitoring/alertPolicy.go +++ b/sdk/go/gcp/monitoring/alertPolicy.go @@ -209,11 +209,23 @@ import ( // // AlertPolicy can be imported using any of these accepted formats: // +// * `{{project}}/{{name}}` +// +// * `{{project}} {{name}}` +// // * `{{name}}` // // When using the `pulumi import` command, AlertPolicy can be imported using one of the formats above. For example: // // ```sh +// $ pulumi import gcp:monitoring/alertPolicy:AlertPolicy default {{project}}/{{name}} +// ``` +// +// ```sh +// $ pulumi import gcp:monitoring/alertPolicy:AlertPolicy default "{{project}} {{name}}" +// ``` +// +// ```sh // $ pulumi import gcp:monitoring/alertPolicy:AlertPolicy default {{name}} // ``` type AlertPolicy struct { diff --git a/sdk/go/gcp/monitoring/customService.go b/sdk/go/gcp/monitoring/customService.go index 376641025a..e3079cd8bf 100644 --- a/sdk/go/gcp/monitoring/customService.go +++ b/sdk/go/gcp/monitoring/customService.go @@ -64,11 +64,23 @@ import ( // // Service can be imported using any of these accepted formats: // +// * `{{project}}/{{name}}` +// +// * `{{project}} {{name}}` +// // * `{{name}}` // // When using the `pulumi import` command, Service can be imported using one of the formats above. For example: // // ```sh +// $ pulumi import gcp:monitoring/customService:CustomService default {{project}}/{{name}} +// ``` +// +// ```sh +// $ pulumi import gcp:monitoring/customService:CustomService default "{{project}} {{name}}" +// ``` +// +// ```sh // $ pulumi import gcp:monitoring/customService:CustomService default {{name}} // ``` type CustomService struct { diff --git a/sdk/go/gcp/monitoring/group.go b/sdk/go/gcp/monitoring/group.go index 957a887a4f..cd744eb2dd 100644 --- a/sdk/go/gcp/monitoring/group.go +++ b/sdk/go/gcp/monitoring/group.go @@ -90,11 +90,23 @@ import ( // // Group can be imported using any of these accepted formats: // +// * `{{project}}/{{name}}` +// +// * `{{project}} {{name}}` +// // * `{{name}}` // // When using the `pulumi import` command, Group can be imported using one of the formats above. For example: // // ```sh +// $ pulumi import gcp:monitoring/group:Group default {{project}}/{{name}} +// ``` +// +// ```sh +// $ pulumi import gcp:monitoring/group:Group default "{{project}} {{name}}" +// ``` +// +// ```sh // $ pulumi import gcp:monitoring/group:Group default {{name}} // ``` type Group struct { diff --git a/sdk/go/gcp/monitoring/metricDescriptor.go b/sdk/go/gcp/monitoring/metricDescriptor.go index 38b7f2ed4a..5e74277bfd 100644 --- a/sdk/go/gcp/monitoring/metricDescriptor.go +++ b/sdk/go/gcp/monitoring/metricDescriptor.go @@ -120,11 +120,23 @@ import ( // // MetricDescriptor can be imported using any of these accepted formats: // +// * `{{project}}/{{name}}` +// +// * `{{project}} {{name}}` +// // * `{{name}}` // // When using the `pulumi import` command, MetricDescriptor can be imported using one of the formats above. For example: // // ```sh +// $ pulumi import gcp:monitoring/metricDescriptor:MetricDescriptor default {{project}}/{{name}} +// ``` +// +// ```sh +// $ pulumi import gcp:monitoring/metricDescriptor:MetricDescriptor default "{{project}} {{name}}" +// ``` +// +// ```sh // $ pulumi import gcp:monitoring/metricDescriptor:MetricDescriptor default {{name}} // ``` type MetricDescriptor struct { diff --git a/sdk/go/gcp/monitoring/slo.go b/sdk/go/gcp/monitoring/slo.go index d17ade9048..2f050e00b6 100644 --- a/sdk/go/gcp/monitoring/slo.go +++ b/sdk/go/gcp/monitoring/slo.go @@ -343,11 +343,23 @@ import ( // // Slo can be imported using any of these accepted formats: // +// * `{{project}}/{{name}}` +// +// * `{{project}} {{name}}` +// // * `{{name}}` // // When using the `pulumi import` command, Slo can be imported using one of the formats above. For example: // // ```sh +// $ pulumi import gcp:monitoring/slo:Slo default {{project}}/{{name}} +// ``` +// +// ```sh +// $ pulumi import gcp:monitoring/slo:Slo default "{{project}} {{name}}" +// ``` +// +// ```sh // $ pulumi import gcp:monitoring/slo:Slo default {{name}} // ``` type Slo struct { diff --git a/sdk/go/gcp/monitoring/uptimeCheckConfig.go b/sdk/go/gcp/monitoring/uptimeCheckConfig.go index e16a4d72ec..12c804675e 100644 --- a/sdk/go/gcp/monitoring/uptimeCheckConfig.go +++ b/sdk/go/gcp/monitoring/uptimeCheckConfig.go @@ -313,11 +313,23 @@ import ( // // UptimeCheckConfig can be imported using any of these accepted formats: // +// * `{{project}}/{{name}}` +// +// * `{{project}} {{name}}` +// // * `{{name}}` // // When using the `pulumi import` command, UptimeCheckConfig can be imported using one of the formats above. For example: // // ```sh +// $ pulumi import gcp:monitoring/uptimeCheckConfig:UptimeCheckConfig default {{project}}/{{name}} +// ``` +// +// ```sh +// $ pulumi import gcp:monitoring/uptimeCheckConfig:UptimeCheckConfig default "{{project}} {{name}}" +// ``` +// +// ```sh // $ pulumi import gcp:monitoring/uptimeCheckConfig:UptimeCheckConfig default {{name}} // ``` type UptimeCheckConfig struct { diff --git a/sdk/go/gcp/networkmanagement/init.go b/sdk/go/gcp/networkmanagement/init.go index a41af429f1..8a51b8a1aa 100644 --- a/sdk/go/gcp/networkmanagement/init.go +++ b/sdk/go/gcp/networkmanagement/init.go @@ -23,6 +23,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi switch typ { case "gcp:networkmanagement/connectivityTest:ConnectivityTest": r = &ConnectivityTest{} + case "gcp:networkmanagement/vpcFlowLogsConfig:VpcFlowLogsConfig": + r = &VpcFlowLogsConfig{} default: return nil, fmt.Errorf("unknown resource type: %s", typ) } @@ -41,4 +43,9 @@ func init() { "networkmanagement/connectivityTest", &module{version}, ) + pulumi.RegisterResourceModule( + "gcp", + "networkmanagement/vpcFlowLogsConfig", + &module{version}, + ) } diff --git a/sdk/go/gcp/networkmanagement/vpcFlowLogsConfig.go b/sdk/go/gcp/networkmanagement/vpcFlowLogsConfig.go new file mode 100644 index 0000000000..12b2833476 --- /dev/null +++ b/sdk/go/gcp/networkmanagement/vpcFlowLogsConfig.go @@ -0,0 +1,945 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package networkmanagement + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// ## Example Usage +// +// ### Network Management Vpc Flow Logs Config Interconnect Full +// +// ```go +// package main +// +// import ( +// +// "fmt" +// +// "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute" +// "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/networkmanagement" +// "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// project, err := organizations.LookupProject(ctx, &organizations.LookupProjectArgs{}, nil) +// if err != nil { +// return err +// } +// network, err := compute.NewNetwork(ctx, "network", &compute.NetworkArgs{ +// Name: pulumi.String("full-interconnect-test-network"), +// }) +// if err != nil { +// return err +// } +// router, err := compute.NewRouter(ctx, "router", &compute.RouterArgs{ +// Name: pulumi.String("full-interconnect-test-router"), +// Network: network.Name, +// Bgp: &compute.RouterBgpArgs{ +// Asn: pulumi.Int(16550), +// }, +// }) +// if err != nil { +// return err +// } +// attachment, err := compute.NewInterconnectAttachment(ctx, "attachment", &compute.InterconnectAttachmentArgs{ +// Name: pulumi.String("full-interconnect-test-id"), +// EdgeAvailabilityDomain: pulumi.String("AVAILABILITY_DOMAIN_1"), +// Type: pulumi.String("PARTNER"), +// Router: router.ID(), +// Mtu: pulumi.String("1500"), +// }) +// if err != nil { +// return err +// } +// _, err = networkmanagement.NewVpcFlowLogsConfig(ctx, "interconnect-test", &networkmanagement.VpcFlowLogsConfigArgs{ +// VpcFlowLogsConfigId: pulumi.String("full-interconnect-test-id"), +// Location: pulumi.String("global"), +// InterconnectAttachment: attachment.Name.ApplyT(func(name string) (string, error) { +// return fmt.Sprintf("projects/%v/regions/us-east4/interconnectAttachments/%v", project.Number, name), nil +// }).(pulumi.StringOutput), +// State: pulumi.String("ENABLED"), +// AggregationInterval: pulumi.String("INTERVAL_5_SEC"), +// Description: pulumi.String("VPC Flow Logs over a VPN Gateway."), +// FlowSampling: pulumi.Float64(0.5), +// Metadata: pulumi.String("INCLUDE_ALL_METADATA"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Network Management Vpc Flow Logs Config Interconnect Basic +// +// ```go +// package main +// +// import ( +// +// "fmt" +// +// "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute" +// "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/networkmanagement" +// "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// project, err := organizations.LookupProject(ctx, &organizations.LookupProjectArgs{}, nil) +// if err != nil { +// return err +// } +// network, err := compute.NewNetwork(ctx, "network", &compute.NetworkArgs{ +// Name: pulumi.String("basic-interconnect-test-network"), +// }) +// if err != nil { +// return err +// } +// router, err := compute.NewRouter(ctx, "router", &compute.RouterArgs{ +// Name: pulumi.String("basic-interconnect-test-router"), +// Network: network.Name, +// Bgp: &compute.RouterBgpArgs{ +// Asn: pulumi.Int(16550), +// }, +// }) +// if err != nil { +// return err +// } +// attachment, err := compute.NewInterconnectAttachment(ctx, "attachment", &compute.InterconnectAttachmentArgs{ +// Name: pulumi.String("basic-interconnect-test-id"), +// EdgeAvailabilityDomain: pulumi.String("AVAILABILITY_DOMAIN_1"), +// Type: pulumi.String("PARTNER"), +// Router: router.ID(), +// Mtu: pulumi.String("1500"), +// }) +// if err != nil { +// return err +// } +// _, err = networkmanagement.NewVpcFlowLogsConfig(ctx, "interconnect-test", &networkmanagement.VpcFlowLogsConfigArgs{ +// VpcFlowLogsConfigId: pulumi.String("basic-interconnect-test-id"), +// Location: pulumi.String("global"), +// InterconnectAttachment: attachment.Name.ApplyT(func(name string) (string, error) { +// return fmt.Sprintf("projects/%v/regions/us-east4/interconnectAttachments/%v", project.Number, name), nil +// }).(pulumi.StringOutput), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Network Management Vpc Flow Logs Config Vpn Basic +// +// ```go +// package main +// +// import ( +// +// "fmt" +// +// "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute" +// "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/networkmanagement" +// "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// project, err := organizations.LookupProject(ctx, &organizations.LookupProjectArgs{}, nil) +// if err != nil { +// return err +// } +// network, err := compute.NewNetwork(ctx, "network", &compute.NetworkArgs{ +// Name: pulumi.String("basic-test-network"), +// }) +// if err != nil { +// return err +// } +// targetGateway, err := compute.NewVPNGateway(ctx, "target_gateway", &compute.VPNGatewayArgs{ +// Name: pulumi.String("basic-test-gateway"), +// Network: network.ID(), +// }) +// if err != nil { +// return err +// } +// vpnStaticIp, err := compute.NewAddress(ctx, "vpn_static_ip", &compute.AddressArgs{ +// Name: pulumi.String("basic-test-address"), +// }) +// if err != nil { +// return err +// } +// frEsp, err := compute.NewForwardingRule(ctx, "fr_esp", &compute.ForwardingRuleArgs{ +// Name: pulumi.String("basic-test-fresp"), +// IpProtocol: pulumi.String("ESP"), +// IpAddress: vpnStaticIp.Address, +// Target: targetGateway.ID(), +// }) +// if err != nil { +// return err +// } +// frUdp500, err := compute.NewForwardingRule(ctx, "fr_udp500", &compute.ForwardingRuleArgs{ +// Name: pulumi.String("basic-test-fr500"), +// IpProtocol: pulumi.String("UDP"), +// PortRange: pulumi.String("500"), +// IpAddress: vpnStaticIp.Address, +// Target: targetGateway.ID(), +// }) +// if err != nil { +// return err +// } +// frUdp4500, err := compute.NewForwardingRule(ctx, "fr_udp4500", &compute.ForwardingRuleArgs{ +// Name: pulumi.String("basic-test-fr4500"), +// IpProtocol: pulumi.String("UDP"), +// PortRange: pulumi.String("4500"), +// IpAddress: vpnStaticIp.Address, +// Target: targetGateway.ID(), +// }) +// if err != nil { +// return err +// } +// tunnel, err := compute.NewVPNTunnel(ctx, "tunnel", &compute.VPNTunnelArgs{ +// Name: pulumi.String("basic-test-tunnel"), +// PeerIp: pulumi.String("15.0.0.120"), +// SharedSecret: pulumi.String("a secret message"), +// TargetVpnGateway: targetGateway.ID(), +// }, pulumi.DependsOn([]pulumi.Resource{ +// frEsp, +// frUdp500, +// frUdp4500, +// })) +// if err != nil { +// return err +// } +// _, err = networkmanagement.NewVpcFlowLogsConfig(ctx, "vpn-test", &networkmanagement.VpcFlowLogsConfigArgs{ +// VpcFlowLogsConfigId: pulumi.String("basic-test-id"), +// Location: pulumi.String("global"), +// VpnTunnel: tunnel.Name.ApplyT(func(name string) (string, error) { +// return fmt.Sprintf("projects/%v/regions/us-central1/vpnTunnels/%v", project.Number, name), nil +// }).(pulumi.StringOutput), +// }) +// if err != nil { +// return err +// } +// _, err = compute.NewRoute(ctx, "route", &compute.RouteArgs{ +// Name: pulumi.String("basic-test-route"), +// Network: network.Name, +// DestRange: pulumi.String("15.0.0.0/24"), +// Priority: pulumi.Int(1000), +// NextHopVpnTunnel: tunnel.ID(), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Network Management Vpc Flow Logs Config Vpn Full +// +// ```go +// package main +// +// import ( +// +// "fmt" +// +// "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute" +// "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/networkmanagement" +// "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// project, err := organizations.LookupProject(ctx, &organizations.LookupProjectArgs{}, nil) +// if err != nil { +// return err +// } +// network, err := compute.NewNetwork(ctx, "network", &compute.NetworkArgs{ +// Name: pulumi.String("full-test-network"), +// }) +// if err != nil { +// return err +// } +// targetGateway, err := compute.NewVPNGateway(ctx, "target_gateway", &compute.VPNGatewayArgs{ +// Name: pulumi.String("full-test-gateway"), +// Network: network.ID(), +// }) +// if err != nil { +// return err +// } +// vpnStaticIp, err := compute.NewAddress(ctx, "vpn_static_ip", &compute.AddressArgs{ +// Name: pulumi.String("full-test-address"), +// }) +// if err != nil { +// return err +// } +// frEsp, err := compute.NewForwardingRule(ctx, "fr_esp", &compute.ForwardingRuleArgs{ +// Name: pulumi.String("full-test-fresp"), +// IpProtocol: pulumi.String("ESP"), +// IpAddress: vpnStaticIp.Address, +// Target: targetGateway.ID(), +// }) +// if err != nil { +// return err +// } +// frUdp500, err := compute.NewForwardingRule(ctx, "fr_udp500", &compute.ForwardingRuleArgs{ +// Name: pulumi.String("full-test-fr500"), +// IpProtocol: pulumi.String("UDP"), +// PortRange: pulumi.String("500"), +// IpAddress: vpnStaticIp.Address, +// Target: targetGateway.ID(), +// }) +// if err != nil { +// return err +// } +// frUdp4500, err := compute.NewForwardingRule(ctx, "fr_udp4500", &compute.ForwardingRuleArgs{ +// Name: pulumi.String("full-test-fr4500"), +// IpProtocol: pulumi.String("UDP"), +// PortRange: pulumi.String("4500"), +// IpAddress: vpnStaticIp.Address, +// Target: targetGateway.ID(), +// }) +// if err != nil { +// return err +// } +// tunnel, err := compute.NewVPNTunnel(ctx, "tunnel", &compute.VPNTunnelArgs{ +// Name: pulumi.String("full-test-tunnel"), +// PeerIp: pulumi.String("15.0.0.120"), +// SharedSecret: pulumi.String("a secret message"), +// TargetVpnGateway: targetGateway.ID(), +// }, pulumi.DependsOn([]pulumi.Resource{ +// frEsp, +// frUdp500, +// frUdp4500, +// })) +// if err != nil { +// return err +// } +// _, err = networkmanagement.NewVpcFlowLogsConfig(ctx, "vpn-test", &networkmanagement.VpcFlowLogsConfigArgs{ +// VpcFlowLogsConfigId: pulumi.String("full-test-id"), +// Location: pulumi.String("global"), +// VpnTunnel: tunnel.Name.ApplyT(func(name string) (string, error) { +// return fmt.Sprintf("projects/%v/regions/us-central1/vpnTunnels/%v", project.Number, name), nil +// }).(pulumi.StringOutput), +// State: pulumi.String("ENABLED"), +// AggregationInterval: pulumi.String("INTERVAL_5_SEC"), +// Description: pulumi.String("VPC Flow Logs over a VPN Gateway."), +// FlowSampling: pulumi.Float64(0.5), +// Metadata: pulumi.String("INCLUDE_ALL_METADATA"), +// }) +// if err != nil { +// return err +// } +// _, err = compute.NewRoute(ctx, "route", &compute.RouteArgs{ +// Name: pulumi.String("full-test-route"), +// Network: network.Name, +// DestRange: pulumi.String("15.0.0.0/24"), +// Priority: pulumi.Int(1000), +// NextHopVpnTunnel: tunnel.ID(), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// VpcFlowLogsConfig can be imported using any of these accepted formats: +// +// * `projects/{{project}}/locations/{{location}}/vpcFlowLogsConfigs/{{vpc_flow_logs_config_id}}` +// +// * `{{project}}/{{location}}/{{vpc_flow_logs_config_id}}` +// +// * `{{location}}/{{vpc_flow_logs_config_id}}` +// +// When using the `pulumi import` command, VpcFlowLogsConfig can be imported using one of the formats above. For example: +// +// ```sh +// $ pulumi import gcp:networkmanagement/vpcFlowLogsConfig:VpcFlowLogsConfig default projects/{{project}}/locations/{{location}}/vpcFlowLogsConfigs/{{vpc_flow_logs_config_id}} +// ``` +// +// ```sh +// $ pulumi import gcp:networkmanagement/vpcFlowLogsConfig:VpcFlowLogsConfig default {{project}}/{{location}}/{{vpc_flow_logs_config_id}} +// ``` +// +// ```sh +// $ pulumi import gcp:networkmanagement/vpcFlowLogsConfig:VpcFlowLogsConfig default {{location}}/{{vpc_flow_logs_config_id}} +// ``` +type VpcFlowLogsConfig struct { + pulumi.CustomResourceState + + // Optional. The aggregation interval for the logs. Default value is + // INTERVAL_5_SEC. Possible values: AGGREGATION_INTERVAL_UNSPECIFIED INTERVAL_5_SEC INTERVAL_30_SEC INTERVAL_1_MIN INTERVAL_5_MIN INTERVAL_10_MIN INTERVAL_15_MIN" + AggregationInterval pulumi.StringOutput `pulumi:"aggregationInterval"` + // Output only. The time the config was created. + CreateTime pulumi.StringOutput `pulumi:"createTime"` + // Optional. The user-supplied description of the VPC Flow Logs configuration. Maximum + // of 512 characters. + Description pulumi.StringPtrOutput `pulumi:"description"` + // All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + EffectiveLabels pulumi.StringMapOutput `pulumi:"effectiveLabels"` + // Optional. Export filter used to define which VPC Flow Logs should be logged. + FilterExpr pulumi.StringPtrOutput `pulumi:"filterExpr"` + // Optional. The value of the field must be in (0, 1]. The sampling rate + // of VPC Flow Logs where 1.0 means all collected logs are reported. Setting the + // sampling rate to 0.0 is not allowed. If you want to disable VPC Flow Logs, use + // the state field instead. Default value is 1.0. + FlowSampling pulumi.Float64Output `pulumi:"flowSampling"` + // Traffic will be logged from the Interconnect Attachment. Format: projects/{project_id}/regions/{region}/interconnectAttachments/{name} + InterconnectAttachment pulumi.StringPtrOutput `pulumi:"interconnectAttachment"` + // Optional. Resource labels to represent user-provided metadata. + // + // **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + // Please refer to the field `effectiveLabels` for all of the labels present on the resource. + Labels pulumi.StringMapOutput `pulumi:"labels"` + // Resource ID segment making up resource `name`. It identifies the resource + // within its parent collection as described in https://google.aip.dev/122. See documentation + // for resource type `networkmanagement.googleapis.com/VpcFlowLogsConfig`. + Location pulumi.StringOutput `pulumi:"location"` + // Optional. Configures whether all, none or a subset of metadata fields + // should be added to the reported VPC flow logs. Default value is INCLUDE_ALL_METADATA. + // Possible values: METADATA_UNSPECIFIED INCLUDE_ALL_METADATA EXCLUDE_ALL_METADATA CUSTOM_METADATA + Metadata pulumi.StringOutput `pulumi:"metadata"` + // Optional. Custom metadata fields to include in the reported VPC flow + // logs. Can only be specified if \"metadata\" was set to CUSTOM_METADATA. + MetadataFields pulumi.StringArrayOutput `pulumi:"metadataFields"` + // Identifier. Unique name of the configuration using the form: `projects/{project_id}/locations/global/vpcFlowLogsConfigs/{vpc_flow_logs_config_id}` + Name pulumi.StringOutput `pulumi:"name"` + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project pulumi.StringOutput `pulumi:"project"` + // The combination of labels configured directly on the resource + // and default labels configured on the provider. + PulumiLabels pulumi.StringMapOutput `pulumi:"pulumiLabels"` + // Optional. The state of the VPC Flow Log configuration. Default value + // is ENABLED. When creating a new configuration, it must be enabled. Possible + State pulumi.StringOutput `pulumi:"state"` + // Output only. The time the config was updated. + UpdateTime pulumi.StringOutput `pulumi:"updateTime"` + // Required. ID of the `VpcFlowLogsConfig`. + // + // *** + VpcFlowLogsConfigId pulumi.StringOutput `pulumi:"vpcFlowLogsConfigId"` + // Traffic will be logged from the VPN Tunnel. Format: projects/{project_id}/regions/{region}/vpnTunnels/{name} + VpnTunnel pulumi.StringPtrOutput `pulumi:"vpnTunnel"` +} + +// NewVpcFlowLogsConfig registers a new resource with the given unique name, arguments, and options. +func NewVpcFlowLogsConfig(ctx *pulumi.Context, + name string, args *VpcFlowLogsConfigArgs, opts ...pulumi.ResourceOption) (*VpcFlowLogsConfig, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Location == nil { + return nil, errors.New("invalid value for required argument 'Location'") + } + if args.VpcFlowLogsConfigId == nil { + return nil, errors.New("invalid value for required argument 'VpcFlowLogsConfigId'") + } + secrets := pulumi.AdditionalSecretOutputs([]string{ + "effectiveLabels", + "pulumiLabels", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource VpcFlowLogsConfig + err := ctx.RegisterResource("gcp:networkmanagement/vpcFlowLogsConfig:VpcFlowLogsConfig", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetVpcFlowLogsConfig gets an existing VpcFlowLogsConfig resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetVpcFlowLogsConfig(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *VpcFlowLogsConfigState, opts ...pulumi.ResourceOption) (*VpcFlowLogsConfig, error) { + var resource VpcFlowLogsConfig + err := ctx.ReadResource("gcp:networkmanagement/vpcFlowLogsConfig:VpcFlowLogsConfig", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering VpcFlowLogsConfig resources. +type vpcFlowLogsConfigState struct { + // Optional. The aggregation interval for the logs. Default value is + // INTERVAL_5_SEC. Possible values: AGGREGATION_INTERVAL_UNSPECIFIED INTERVAL_5_SEC INTERVAL_30_SEC INTERVAL_1_MIN INTERVAL_5_MIN INTERVAL_10_MIN INTERVAL_15_MIN" + AggregationInterval *string `pulumi:"aggregationInterval"` + // Output only. The time the config was created. + CreateTime *string `pulumi:"createTime"` + // Optional. The user-supplied description of the VPC Flow Logs configuration. Maximum + // of 512 characters. + Description *string `pulumi:"description"` + // All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + EffectiveLabels map[string]string `pulumi:"effectiveLabels"` + // Optional. Export filter used to define which VPC Flow Logs should be logged. + FilterExpr *string `pulumi:"filterExpr"` + // Optional. The value of the field must be in (0, 1]. The sampling rate + // of VPC Flow Logs where 1.0 means all collected logs are reported. Setting the + // sampling rate to 0.0 is not allowed. If you want to disable VPC Flow Logs, use + // the state field instead. Default value is 1.0. + FlowSampling *float64 `pulumi:"flowSampling"` + // Traffic will be logged from the Interconnect Attachment. Format: projects/{project_id}/regions/{region}/interconnectAttachments/{name} + InterconnectAttachment *string `pulumi:"interconnectAttachment"` + // Optional. Resource labels to represent user-provided metadata. + // + // **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + // Please refer to the field `effectiveLabels` for all of the labels present on the resource. + Labels map[string]string `pulumi:"labels"` + // Resource ID segment making up resource `name`. It identifies the resource + // within its parent collection as described in https://google.aip.dev/122. See documentation + // for resource type `networkmanagement.googleapis.com/VpcFlowLogsConfig`. + Location *string `pulumi:"location"` + // Optional. Configures whether all, none or a subset of metadata fields + // should be added to the reported VPC flow logs. Default value is INCLUDE_ALL_METADATA. + // Possible values: METADATA_UNSPECIFIED INCLUDE_ALL_METADATA EXCLUDE_ALL_METADATA CUSTOM_METADATA + Metadata *string `pulumi:"metadata"` + // Optional. Custom metadata fields to include in the reported VPC flow + // logs. Can only be specified if \"metadata\" was set to CUSTOM_METADATA. + MetadataFields []string `pulumi:"metadataFields"` + // Identifier. Unique name of the configuration using the form: `projects/{project_id}/locations/global/vpcFlowLogsConfigs/{vpc_flow_logs_config_id}` + Name *string `pulumi:"name"` + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project *string `pulumi:"project"` + // The combination of labels configured directly on the resource + // and default labels configured on the provider. + PulumiLabels map[string]string `pulumi:"pulumiLabels"` + // Optional. The state of the VPC Flow Log configuration. Default value + // is ENABLED. When creating a new configuration, it must be enabled. Possible + State *string `pulumi:"state"` + // Output only. The time the config was updated. + UpdateTime *string `pulumi:"updateTime"` + // Required. ID of the `VpcFlowLogsConfig`. + // + // *** + VpcFlowLogsConfigId *string `pulumi:"vpcFlowLogsConfigId"` + // Traffic will be logged from the VPN Tunnel. Format: projects/{project_id}/regions/{region}/vpnTunnels/{name} + VpnTunnel *string `pulumi:"vpnTunnel"` +} + +type VpcFlowLogsConfigState struct { + // Optional. The aggregation interval for the logs. Default value is + // INTERVAL_5_SEC. Possible values: AGGREGATION_INTERVAL_UNSPECIFIED INTERVAL_5_SEC INTERVAL_30_SEC INTERVAL_1_MIN INTERVAL_5_MIN INTERVAL_10_MIN INTERVAL_15_MIN" + AggregationInterval pulumi.StringPtrInput + // Output only. The time the config was created. + CreateTime pulumi.StringPtrInput + // Optional. The user-supplied description of the VPC Flow Logs configuration. Maximum + // of 512 characters. + Description pulumi.StringPtrInput + // All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + EffectiveLabels pulumi.StringMapInput + // Optional. Export filter used to define which VPC Flow Logs should be logged. + FilterExpr pulumi.StringPtrInput + // Optional. The value of the field must be in (0, 1]. The sampling rate + // of VPC Flow Logs where 1.0 means all collected logs are reported. Setting the + // sampling rate to 0.0 is not allowed. If you want to disable VPC Flow Logs, use + // the state field instead. Default value is 1.0. + FlowSampling pulumi.Float64PtrInput + // Traffic will be logged from the Interconnect Attachment. Format: projects/{project_id}/regions/{region}/interconnectAttachments/{name} + InterconnectAttachment pulumi.StringPtrInput + // Optional. Resource labels to represent user-provided metadata. + // + // **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + // Please refer to the field `effectiveLabels` for all of the labels present on the resource. + Labels pulumi.StringMapInput + // Resource ID segment making up resource `name`. It identifies the resource + // within its parent collection as described in https://google.aip.dev/122. See documentation + // for resource type `networkmanagement.googleapis.com/VpcFlowLogsConfig`. + Location pulumi.StringPtrInput + // Optional. Configures whether all, none or a subset of metadata fields + // should be added to the reported VPC flow logs. Default value is INCLUDE_ALL_METADATA. + // Possible values: METADATA_UNSPECIFIED INCLUDE_ALL_METADATA EXCLUDE_ALL_METADATA CUSTOM_METADATA + Metadata pulumi.StringPtrInput + // Optional. Custom metadata fields to include in the reported VPC flow + // logs. Can only be specified if \"metadata\" was set to CUSTOM_METADATA. + MetadataFields pulumi.StringArrayInput + // Identifier. Unique name of the configuration using the form: `projects/{project_id}/locations/global/vpcFlowLogsConfigs/{vpc_flow_logs_config_id}` + Name pulumi.StringPtrInput + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project pulumi.StringPtrInput + // The combination of labels configured directly on the resource + // and default labels configured on the provider. + PulumiLabels pulumi.StringMapInput + // Optional. The state of the VPC Flow Log configuration. Default value + // is ENABLED. When creating a new configuration, it must be enabled. Possible + State pulumi.StringPtrInput + // Output only. The time the config was updated. + UpdateTime pulumi.StringPtrInput + // Required. ID of the `VpcFlowLogsConfig`. + // + // *** + VpcFlowLogsConfigId pulumi.StringPtrInput + // Traffic will be logged from the VPN Tunnel. Format: projects/{project_id}/regions/{region}/vpnTunnels/{name} + VpnTunnel pulumi.StringPtrInput +} + +func (VpcFlowLogsConfigState) ElementType() reflect.Type { + return reflect.TypeOf((*vpcFlowLogsConfigState)(nil)).Elem() +} + +type vpcFlowLogsConfigArgs struct { + // Optional. The aggregation interval for the logs. Default value is + // INTERVAL_5_SEC. Possible values: AGGREGATION_INTERVAL_UNSPECIFIED INTERVAL_5_SEC INTERVAL_30_SEC INTERVAL_1_MIN INTERVAL_5_MIN INTERVAL_10_MIN INTERVAL_15_MIN" + AggregationInterval *string `pulumi:"aggregationInterval"` + // Optional. The user-supplied description of the VPC Flow Logs configuration. Maximum + // of 512 characters. + Description *string `pulumi:"description"` + // Optional. Export filter used to define which VPC Flow Logs should be logged. + FilterExpr *string `pulumi:"filterExpr"` + // Optional. The value of the field must be in (0, 1]. The sampling rate + // of VPC Flow Logs where 1.0 means all collected logs are reported. Setting the + // sampling rate to 0.0 is not allowed. If you want to disable VPC Flow Logs, use + // the state field instead. Default value is 1.0. + FlowSampling *float64 `pulumi:"flowSampling"` + // Traffic will be logged from the Interconnect Attachment. Format: projects/{project_id}/regions/{region}/interconnectAttachments/{name} + InterconnectAttachment *string `pulumi:"interconnectAttachment"` + // Optional. Resource labels to represent user-provided metadata. + // + // **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + // Please refer to the field `effectiveLabels` for all of the labels present on the resource. + Labels map[string]string `pulumi:"labels"` + // Resource ID segment making up resource `name`. It identifies the resource + // within its parent collection as described in https://google.aip.dev/122. See documentation + // for resource type `networkmanagement.googleapis.com/VpcFlowLogsConfig`. + Location string `pulumi:"location"` + // Optional. Configures whether all, none or a subset of metadata fields + // should be added to the reported VPC flow logs. Default value is INCLUDE_ALL_METADATA. + // Possible values: METADATA_UNSPECIFIED INCLUDE_ALL_METADATA EXCLUDE_ALL_METADATA CUSTOM_METADATA + Metadata *string `pulumi:"metadata"` + // Optional. Custom metadata fields to include in the reported VPC flow + // logs. Can only be specified if \"metadata\" was set to CUSTOM_METADATA. + MetadataFields []string `pulumi:"metadataFields"` + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project *string `pulumi:"project"` + // Optional. The state of the VPC Flow Log configuration. Default value + // is ENABLED. When creating a new configuration, it must be enabled. Possible + State *string `pulumi:"state"` + // Required. ID of the `VpcFlowLogsConfig`. + // + // *** + VpcFlowLogsConfigId string `pulumi:"vpcFlowLogsConfigId"` + // Traffic will be logged from the VPN Tunnel. Format: projects/{project_id}/regions/{region}/vpnTunnels/{name} + VpnTunnel *string `pulumi:"vpnTunnel"` +} + +// The set of arguments for constructing a VpcFlowLogsConfig resource. +type VpcFlowLogsConfigArgs struct { + // Optional. The aggregation interval for the logs. Default value is + // INTERVAL_5_SEC. Possible values: AGGREGATION_INTERVAL_UNSPECIFIED INTERVAL_5_SEC INTERVAL_30_SEC INTERVAL_1_MIN INTERVAL_5_MIN INTERVAL_10_MIN INTERVAL_15_MIN" + AggregationInterval pulumi.StringPtrInput + // Optional. The user-supplied description of the VPC Flow Logs configuration. Maximum + // of 512 characters. + Description pulumi.StringPtrInput + // Optional. Export filter used to define which VPC Flow Logs should be logged. + FilterExpr pulumi.StringPtrInput + // Optional. The value of the field must be in (0, 1]. The sampling rate + // of VPC Flow Logs where 1.0 means all collected logs are reported. Setting the + // sampling rate to 0.0 is not allowed. If you want to disable VPC Flow Logs, use + // the state field instead. Default value is 1.0. + FlowSampling pulumi.Float64PtrInput + // Traffic will be logged from the Interconnect Attachment. Format: projects/{project_id}/regions/{region}/interconnectAttachments/{name} + InterconnectAttachment pulumi.StringPtrInput + // Optional. Resource labels to represent user-provided metadata. + // + // **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + // Please refer to the field `effectiveLabels` for all of the labels present on the resource. + Labels pulumi.StringMapInput + // Resource ID segment making up resource `name`. It identifies the resource + // within its parent collection as described in https://google.aip.dev/122. See documentation + // for resource type `networkmanagement.googleapis.com/VpcFlowLogsConfig`. + Location pulumi.StringInput + // Optional. Configures whether all, none or a subset of metadata fields + // should be added to the reported VPC flow logs. Default value is INCLUDE_ALL_METADATA. + // Possible values: METADATA_UNSPECIFIED INCLUDE_ALL_METADATA EXCLUDE_ALL_METADATA CUSTOM_METADATA + Metadata pulumi.StringPtrInput + // Optional. Custom metadata fields to include in the reported VPC flow + // logs. Can only be specified if \"metadata\" was set to CUSTOM_METADATA. + MetadataFields pulumi.StringArrayInput + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project pulumi.StringPtrInput + // Optional. The state of the VPC Flow Log configuration. Default value + // is ENABLED. When creating a new configuration, it must be enabled. Possible + State pulumi.StringPtrInput + // Required. ID of the `VpcFlowLogsConfig`. + // + // *** + VpcFlowLogsConfigId pulumi.StringInput + // Traffic will be logged from the VPN Tunnel. Format: projects/{project_id}/regions/{region}/vpnTunnels/{name} + VpnTunnel pulumi.StringPtrInput +} + +func (VpcFlowLogsConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*vpcFlowLogsConfigArgs)(nil)).Elem() +} + +type VpcFlowLogsConfigInput interface { + pulumi.Input + + ToVpcFlowLogsConfigOutput() VpcFlowLogsConfigOutput + ToVpcFlowLogsConfigOutputWithContext(ctx context.Context) VpcFlowLogsConfigOutput +} + +func (*VpcFlowLogsConfig) ElementType() reflect.Type { + return reflect.TypeOf((**VpcFlowLogsConfig)(nil)).Elem() +} + +func (i *VpcFlowLogsConfig) ToVpcFlowLogsConfigOutput() VpcFlowLogsConfigOutput { + return i.ToVpcFlowLogsConfigOutputWithContext(context.Background()) +} + +func (i *VpcFlowLogsConfig) ToVpcFlowLogsConfigOutputWithContext(ctx context.Context) VpcFlowLogsConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(VpcFlowLogsConfigOutput) +} + +// VpcFlowLogsConfigArrayInput is an input type that accepts VpcFlowLogsConfigArray and VpcFlowLogsConfigArrayOutput values. +// You can construct a concrete instance of `VpcFlowLogsConfigArrayInput` via: +// +// VpcFlowLogsConfigArray{ VpcFlowLogsConfigArgs{...} } +type VpcFlowLogsConfigArrayInput interface { + pulumi.Input + + ToVpcFlowLogsConfigArrayOutput() VpcFlowLogsConfigArrayOutput + ToVpcFlowLogsConfigArrayOutputWithContext(context.Context) VpcFlowLogsConfigArrayOutput +} + +type VpcFlowLogsConfigArray []VpcFlowLogsConfigInput + +func (VpcFlowLogsConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*VpcFlowLogsConfig)(nil)).Elem() +} + +func (i VpcFlowLogsConfigArray) ToVpcFlowLogsConfigArrayOutput() VpcFlowLogsConfigArrayOutput { + return i.ToVpcFlowLogsConfigArrayOutputWithContext(context.Background()) +} + +func (i VpcFlowLogsConfigArray) ToVpcFlowLogsConfigArrayOutputWithContext(ctx context.Context) VpcFlowLogsConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(VpcFlowLogsConfigArrayOutput) +} + +// VpcFlowLogsConfigMapInput is an input type that accepts VpcFlowLogsConfigMap and VpcFlowLogsConfigMapOutput values. +// You can construct a concrete instance of `VpcFlowLogsConfigMapInput` via: +// +// VpcFlowLogsConfigMap{ "key": VpcFlowLogsConfigArgs{...} } +type VpcFlowLogsConfigMapInput interface { + pulumi.Input + + ToVpcFlowLogsConfigMapOutput() VpcFlowLogsConfigMapOutput + ToVpcFlowLogsConfigMapOutputWithContext(context.Context) VpcFlowLogsConfigMapOutput +} + +type VpcFlowLogsConfigMap map[string]VpcFlowLogsConfigInput + +func (VpcFlowLogsConfigMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*VpcFlowLogsConfig)(nil)).Elem() +} + +func (i VpcFlowLogsConfigMap) ToVpcFlowLogsConfigMapOutput() VpcFlowLogsConfigMapOutput { + return i.ToVpcFlowLogsConfigMapOutputWithContext(context.Background()) +} + +func (i VpcFlowLogsConfigMap) ToVpcFlowLogsConfigMapOutputWithContext(ctx context.Context) VpcFlowLogsConfigMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(VpcFlowLogsConfigMapOutput) +} + +type VpcFlowLogsConfigOutput struct{ *pulumi.OutputState } + +func (VpcFlowLogsConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VpcFlowLogsConfig)(nil)).Elem() +} + +func (o VpcFlowLogsConfigOutput) ToVpcFlowLogsConfigOutput() VpcFlowLogsConfigOutput { + return o +} + +func (o VpcFlowLogsConfigOutput) ToVpcFlowLogsConfigOutputWithContext(ctx context.Context) VpcFlowLogsConfigOutput { + return o +} + +// Optional. The aggregation interval for the logs. Default value is +// INTERVAL_5_SEC. Possible values: AGGREGATION_INTERVAL_UNSPECIFIED INTERVAL_5_SEC INTERVAL_30_SEC INTERVAL_1_MIN INTERVAL_5_MIN INTERVAL_10_MIN INTERVAL_15_MIN" +func (o VpcFlowLogsConfigOutput) AggregationInterval() pulumi.StringOutput { + return o.ApplyT(func(v *VpcFlowLogsConfig) pulumi.StringOutput { return v.AggregationInterval }).(pulumi.StringOutput) +} + +// Output only. The time the config was created. +func (o VpcFlowLogsConfigOutput) CreateTime() pulumi.StringOutput { + return o.ApplyT(func(v *VpcFlowLogsConfig) pulumi.StringOutput { return v.CreateTime }).(pulumi.StringOutput) +} + +// Optional. The user-supplied description of the VPC Flow Logs configuration. Maximum +// of 512 characters. +func (o VpcFlowLogsConfigOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VpcFlowLogsConfig) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. +func (o VpcFlowLogsConfigOutput) EffectiveLabels() pulumi.StringMapOutput { + return o.ApplyT(func(v *VpcFlowLogsConfig) pulumi.StringMapOutput { return v.EffectiveLabels }).(pulumi.StringMapOutput) +} + +// Optional. Export filter used to define which VPC Flow Logs should be logged. +func (o VpcFlowLogsConfigOutput) FilterExpr() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VpcFlowLogsConfig) pulumi.StringPtrOutput { return v.FilterExpr }).(pulumi.StringPtrOutput) +} + +// Optional. The value of the field must be in (0, 1]. The sampling rate +// of VPC Flow Logs where 1.0 means all collected logs are reported. Setting the +// sampling rate to 0.0 is not allowed. If you want to disable VPC Flow Logs, use +// the state field instead. Default value is 1.0. +func (o VpcFlowLogsConfigOutput) FlowSampling() pulumi.Float64Output { + return o.ApplyT(func(v *VpcFlowLogsConfig) pulumi.Float64Output { return v.FlowSampling }).(pulumi.Float64Output) +} + +// Traffic will be logged from the Interconnect Attachment. Format: projects/{project_id}/regions/{region}/interconnectAttachments/{name} +func (o VpcFlowLogsConfigOutput) InterconnectAttachment() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VpcFlowLogsConfig) pulumi.StringPtrOutput { return v.InterconnectAttachment }).(pulumi.StringPtrOutput) +} + +// Optional. Resource labels to represent user-provided metadata. +// +// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. +// Please refer to the field `effectiveLabels` for all of the labels present on the resource. +func (o VpcFlowLogsConfigOutput) Labels() pulumi.StringMapOutput { + return o.ApplyT(func(v *VpcFlowLogsConfig) pulumi.StringMapOutput { return v.Labels }).(pulumi.StringMapOutput) +} + +// Resource ID segment making up resource `name`. It identifies the resource +// within its parent collection as described in https://google.aip.dev/122. See documentation +// for resource type `networkmanagement.googleapis.com/VpcFlowLogsConfig`. +func (o VpcFlowLogsConfigOutput) Location() pulumi.StringOutput { + return o.ApplyT(func(v *VpcFlowLogsConfig) pulumi.StringOutput { return v.Location }).(pulumi.StringOutput) +} + +// Optional. Configures whether all, none or a subset of metadata fields +// should be added to the reported VPC flow logs. Default value is INCLUDE_ALL_METADATA. +// Possible values: METADATA_UNSPECIFIED INCLUDE_ALL_METADATA EXCLUDE_ALL_METADATA CUSTOM_METADATA +func (o VpcFlowLogsConfigOutput) Metadata() pulumi.StringOutput { + return o.ApplyT(func(v *VpcFlowLogsConfig) pulumi.StringOutput { return v.Metadata }).(pulumi.StringOutput) +} + +// Optional. Custom metadata fields to include in the reported VPC flow +// logs. Can only be specified if \"metadata\" was set to CUSTOM_METADATA. +func (o VpcFlowLogsConfigOutput) MetadataFields() pulumi.StringArrayOutput { + return o.ApplyT(func(v *VpcFlowLogsConfig) pulumi.StringArrayOutput { return v.MetadataFields }).(pulumi.StringArrayOutput) +} + +// Identifier. Unique name of the configuration using the form: `projects/{project_id}/locations/global/vpcFlowLogsConfigs/{vpc_flow_logs_config_id}` +func (o VpcFlowLogsConfigOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *VpcFlowLogsConfig) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The ID of the project in which the resource belongs. +// If it is not provided, the provider project is used. +func (o VpcFlowLogsConfigOutput) Project() pulumi.StringOutput { + return o.ApplyT(func(v *VpcFlowLogsConfig) pulumi.StringOutput { return v.Project }).(pulumi.StringOutput) +} + +// The combination of labels configured directly on the resource +// and default labels configured on the provider. +func (o VpcFlowLogsConfigOutput) PulumiLabels() pulumi.StringMapOutput { + return o.ApplyT(func(v *VpcFlowLogsConfig) pulumi.StringMapOutput { return v.PulumiLabels }).(pulumi.StringMapOutput) +} + +// Optional. The state of the VPC Flow Log configuration. Default value +// is ENABLED. When creating a new configuration, it must be enabled. Possible +func (o VpcFlowLogsConfigOutput) State() pulumi.StringOutput { + return o.ApplyT(func(v *VpcFlowLogsConfig) pulumi.StringOutput { return v.State }).(pulumi.StringOutput) +} + +// Output only. The time the config was updated. +func (o VpcFlowLogsConfigOutput) UpdateTime() pulumi.StringOutput { + return o.ApplyT(func(v *VpcFlowLogsConfig) pulumi.StringOutput { return v.UpdateTime }).(pulumi.StringOutput) +} + +// Required. ID of the `VpcFlowLogsConfig`. +// +// *** +func (o VpcFlowLogsConfigOutput) VpcFlowLogsConfigId() pulumi.StringOutput { + return o.ApplyT(func(v *VpcFlowLogsConfig) pulumi.StringOutput { return v.VpcFlowLogsConfigId }).(pulumi.StringOutput) +} + +// Traffic will be logged from the VPN Tunnel. Format: projects/{project_id}/regions/{region}/vpnTunnels/{name} +func (o VpcFlowLogsConfigOutput) VpnTunnel() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VpcFlowLogsConfig) pulumi.StringPtrOutput { return v.VpnTunnel }).(pulumi.StringPtrOutput) +} + +type VpcFlowLogsConfigArrayOutput struct{ *pulumi.OutputState } + +func (VpcFlowLogsConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*VpcFlowLogsConfig)(nil)).Elem() +} + +func (o VpcFlowLogsConfigArrayOutput) ToVpcFlowLogsConfigArrayOutput() VpcFlowLogsConfigArrayOutput { + return o +} + +func (o VpcFlowLogsConfigArrayOutput) ToVpcFlowLogsConfigArrayOutputWithContext(ctx context.Context) VpcFlowLogsConfigArrayOutput { + return o +} + +func (o VpcFlowLogsConfigArrayOutput) Index(i pulumi.IntInput) VpcFlowLogsConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *VpcFlowLogsConfig { + return vs[0].([]*VpcFlowLogsConfig)[vs[1].(int)] + }).(VpcFlowLogsConfigOutput) +} + +type VpcFlowLogsConfigMapOutput struct{ *pulumi.OutputState } + +func (VpcFlowLogsConfigMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*VpcFlowLogsConfig)(nil)).Elem() +} + +func (o VpcFlowLogsConfigMapOutput) ToVpcFlowLogsConfigMapOutput() VpcFlowLogsConfigMapOutput { + return o +} + +func (o VpcFlowLogsConfigMapOutput) ToVpcFlowLogsConfigMapOutputWithContext(ctx context.Context) VpcFlowLogsConfigMapOutput { + return o +} + +func (o VpcFlowLogsConfigMapOutput) MapIndex(k pulumi.StringInput) VpcFlowLogsConfigOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *VpcFlowLogsConfig { + return vs[0].(map[string]*VpcFlowLogsConfig)[vs[1].(string)] + }).(VpcFlowLogsConfigOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*VpcFlowLogsConfigInput)(nil)).Elem(), &VpcFlowLogsConfig{}) + pulumi.RegisterInputType(reflect.TypeOf((*VpcFlowLogsConfigArrayInput)(nil)).Elem(), VpcFlowLogsConfigArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*VpcFlowLogsConfigMapInput)(nil)).Elem(), VpcFlowLogsConfigMap{}) + pulumi.RegisterOutputType(VpcFlowLogsConfigOutput{}) + pulumi.RegisterOutputType(VpcFlowLogsConfigArrayOutput{}) + pulumi.RegisterOutputType(VpcFlowLogsConfigMapOutput{}) +} diff --git a/sdk/go/gcp/osconfig/patchDeployment.go b/sdk/go/gcp/osconfig/patchDeployment.go index f6cde13d92..7b5614815b 100644 --- a/sdk/go/gcp/osconfig/patchDeployment.go +++ b/sdk/go/gcp/osconfig/patchDeployment.go @@ -360,20 +360,20 @@ import ( // // PatchDeployment can be imported using any of these accepted formats: // -// * `projects/{{project}}/patchDeployments/{{name}}` -// // * `{{project}}/{{name}}` // +// * `{{project}} {{name}}` +// // * `{{name}}` // // When using the `pulumi import` command, PatchDeployment can be imported using one of the formats above. For example: // // ```sh -// $ pulumi import gcp:osconfig/patchDeployment:PatchDeployment default projects/{{project}}/patchDeployments/{{name}} +// $ pulumi import gcp:osconfig/patchDeployment:PatchDeployment default {{project}}/{{name}} // ``` // // ```sh -// $ pulumi import gcp:osconfig/patchDeployment:PatchDeployment default {{project}}/{{name}} +// $ pulumi import gcp:osconfig/patchDeployment:PatchDeployment default "{{project}} {{name}}" // ``` // // ```sh diff --git a/sdk/go/gcp/provider.go b/sdk/go/gcp/provider.go index 3694812ec7..f7d2b1d5f8 100644 --- a/sdk/go/gcp/provider.go +++ b/sdk/go/gcp/provider.go @@ -80,6 +80,7 @@ type Provider struct { DataformCustomEndpoint pulumi.StringPtrOutput `pulumi:"dataformCustomEndpoint"` DataplexCustomEndpoint pulumi.StringPtrOutput `pulumi:"dataplexCustomEndpoint"` DataprocCustomEndpoint pulumi.StringPtrOutput `pulumi:"dataprocCustomEndpoint"` + DataprocGdcCustomEndpoint pulumi.StringPtrOutput `pulumi:"dataprocGdcCustomEndpoint"` DataprocMetastoreCustomEndpoint pulumi.StringPtrOutput `pulumi:"dataprocMetastoreCustomEndpoint"` DatastreamCustomEndpoint pulumi.StringPtrOutput `pulumi:"datastreamCustomEndpoint"` DeploymentManagerCustomEndpoint pulumi.StringPtrOutput `pulumi:"deploymentManagerCustomEndpoint"` @@ -111,6 +112,7 @@ type Provider struct { GooglePartnerName pulumi.StringPtrOutput `pulumi:"googlePartnerName"` HealthcareCustomEndpoint pulumi.StringPtrOutput `pulumi:"healthcareCustomEndpoint"` Iam2CustomEndpoint pulumi.StringPtrOutput `pulumi:"iam2CustomEndpoint"` + Iam3CustomEndpoint pulumi.StringPtrOutput `pulumi:"iam3CustomEndpoint"` IamBetaCustomEndpoint pulumi.StringPtrOutput `pulumi:"iamBetaCustomEndpoint"` IamCredentialsCustomEndpoint pulumi.StringPtrOutput `pulumi:"iamCredentialsCustomEndpoint"` IamCustomEndpoint pulumi.StringPtrOutput `pulumi:"iamCustomEndpoint"` @@ -293,6 +295,7 @@ type providerArgs struct { DataformCustomEndpoint *string `pulumi:"dataformCustomEndpoint"` DataplexCustomEndpoint *string `pulumi:"dataplexCustomEndpoint"` DataprocCustomEndpoint *string `pulumi:"dataprocCustomEndpoint"` + DataprocGdcCustomEndpoint *string `pulumi:"dataprocGdcCustomEndpoint"` DataprocMetastoreCustomEndpoint *string `pulumi:"dataprocMetastoreCustomEndpoint"` DatastreamCustomEndpoint *string `pulumi:"datastreamCustomEndpoint"` DefaultLabels map[string]string `pulumi:"defaultLabels"` @@ -326,6 +329,7 @@ type providerArgs struct { GooglePartnerName *string `pulumi:"googlePartnerName"` HealthcareCustomEndpoint *string `pulumi:"healthcareCustomEndpoint"` Iam2CustomEndpoint *string `pulumi:"iam2CustomEndpoint"` + Iam3CustomEndpoint *string `pulumi:"iam3CustomEndpoint"` IamBetaCustomEndpoint *string `pulumi:"iamBetaCustomEndpoint"` IamCredentialsCustomEndpoint *string `pulumi:"iamCredentialsCustomEndpoint"` IamCustomEndpoint *string `pulumi:"iamCustomEndpoint"` @@ -474,6 +478,7 @@ type ProviderArgs struct { DataformCustomEndpoint pulumi.StringPtrInput DataplexCustomEndpoint pulumi.StringPtrInput DataprocCustomEndpoint pulumi.StringPtrInput + DataprocGdcCustomEndpoint pulumi.StringPtrInput DataprocMetastoreCustomEndpoint pulumi.StringPtrInput DatastreamCustomEndpoint pulumi.StringPtrInput DefaultLabels pulumi.StringMapInput @@ -507,6 +512,7 @@ type ProviderArgs struct { GooglePartnerName pulumi.StringPtrInput HealthcareCustomEndpoint pulumi.StringPtrInput Iam2CustomEndpoint pulumi.StringPtrInput + Iam3CustomEndpoint pulumi.StringPtrInput IamBetaCustomEndpoint pulumi.StringPtrInput IamCredentialsCustomEndpoint pulumi.StringPtrInput IamCustomEndpoint pulumi.StringPtrInput @@ -874,6 +880,10 @@ func (o ProviderOutput) DataprocCustomEndpoint() pulumi.StringPtrOutput { return o.ApplyT(func(v *Provider) pulumi.StringPtrOutput { return v.DataprocCustomEndpoint }).(pulumi.StringPtrOutput) } +func (o ProviderOutput) DataprocGdcCustomEndpoint() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Provider) pulumi.StringPtrOutput { return v.DataprocGdcCustomEndpoint }).(pulumi.StringPtrOutput) +} + func (o ProviderOutput) DataprocMetastoreCustomEndpoint() pulumi.StringPtrOutput { return o.ApplyT(func(v *Provider) pulumi.StringPtrOutput { return v.DataprocMetastoreCustomEndpoint }).(pulumi.StringPtrOutput) } @@ -998,6 +1008,10 @@ func (o ProviderOutput) Iam2CustomEndpoint() pulumi.StringPtrOutput { return o.ApplyT(func(v *Provider) pulumi.StringPtrOutput { return v.Iam2CustomEndpoint }).(pulumi.StringPtrOutput) } +func (o ProviderOutput) Iam3CustomEndpoint() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Provider) pulumi.StringPtrOutput { return v.Iam3CustomEndpoint }).(pulumi.StringPtrOutput) +} + func (o ProviderOutput) IamBetaCustomEndpoint() pulumi.StringPtrOutput { return o.ApplyT(func(v *Provider) pulumi.StringPtrOutput { return v.IamBetaCustomEndpoint }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/gcp/redis/pulumiTypes.go b/sdk/go/gcp/redis/pulumiTypes.go index 24c4f83401..f2e544cf1f 100644 --- a/sdk/go/gcp/redis/pulumiTypes.go +++ b/sdk/go/gcp/redis/pulumiTypes.go @@ -1116,7 +1116,7 @@ func (o ClusterPscConnectionArrayOutput) Index(i pulumi.IntInput) ClusterPscConn } type ClusterStateInfo struct { - // A nested object resource + // A nested object resource. // Structure is documented below. UpdateInfo *ClusterStateInfoUpdateInfo `pulumi:"updateInfo"` } @@ -1133,7 +1133,7 @@ type ClusterStateInfoInput interface { } type ClusterStateInfoArgs struct { - // A nested object resource + // A nested object resource. // Structure is documented below. UpdateInfo ClusterStateInfoUpdateInfoPtrInput `pulumi:"updateInfo"` } @@ -1189,7 +1189,7 @@ func (o ClusterStateInfoOutput) ToClusterStateInfoOutputWithContext(ctx context. return o } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o ClusterStateInfoOutput) UpdateInfo() ClusterStateInfoUpdateInfoPtrOutput { return o.ApplyT(func(v ClusterStateInfo) *ClusterStateInfoUpdateInfo { return v.UpdateInfo }).(ClusterStateInfoUpdateInfoPtrOutput) diff --git a/sdk/go/gcp/securitycenter/notificationConfig.go b/sdk/go/gcp/securitycenter/notificationConfig.go index 0d96758d59..b7aa2e9b57 100644 --- a/sdk/go/gcp/securitycenter/notificationConfig.go +++ b/sdk/go/gcp/securitycenter/notificationConfig.go @@ -71,18 +71,12 @@ import ( // // NotificationConfig can be imported using any of these accepted formats: // -// * `organizations/{{organization}}/notificationConfigs/{{name}}` -// -// * `{{organization}}/{{name}}` +// * `{{name}}` // // When using the `pulumi import` command, NotificationConfig can be imported using one of the formats above. For example: // // ```sh -// $ pulumi import gcp:securitycenter/notificationConfig:NotificationConfig default organizations/{{organization}}/notificationConfigs/{{name}} -// ``` -// -// ```sh -// $ pulumi import gcp:securitycenter/notificationConfig:NotificationConfig default {{organization}}/{{name}} +// $ pulumi import gcp:securitycenter/notificationConfig:NotificationConfig default {{name}} // ``` type NotificationConfig struct { pulumi.CustomResourceState diff --git a/sdk/go/gcp/securitycenter/projectNotificationConfig.go b/sdk/go/gcp/securitycenter/projectNotificationConfig.go index edd910a85a..296d21501f 100644 --- a/sdk/go/gcp/securitycenter/projectNotificationConfig.go +++ b/sdk/go/gcp/securitycenter/projectNotificationConfig.go @@ -71,23 +71,11 @@ import ( // // ProjectNotificationConfig can be imported using any of these accepted formats: // -// * `projects/{{project}}/notificationConfigs/{{name}}` -// -// * `{{project}}/{{name}}` -// // * `{{name}}` // // When using the `pulumi import` command, ProjectNotificationConfig can be imported using one of the formats above. For example: // // ```sh -// $ pulumi import gcp:securitycenter/projectNotificationConfig:ProjectNotificationConfig default projects/{{project}}/notificationConfigs/{{name}} -// ``` -// -// ```sh -// $ pulumi import gcp:securitycenter/projectNotificationConfig:ProjectNotificationConfig default {{project}}/{{name}} -// ``` -// -// ```sh // $ pulumi import gcp:securitycenter/projectNotificationConfig:ProjectNotificationConfig default {{name}} // ``` type ProjectNotificationConfig struct { diff --git a/sdk/go/gcp/securitycenter/v2organizationNotificationConfig.go b/sdk/go/gcp/securitycenter/v2organizationNotificationConfig.go index 58f8088a1e..faa62f1d0b 100644 --- a/sdk/go/gcp/securitycenter/v2organizationNotificationConfig.go +++ b/sdk/go/gcp/securitycenter/v2organizationNotificationConfig.go @@ -72,18 +72,12 @@ import ( // // OrganizationNotificationConfig can be imported using any of these accepted formats: // -// * `organizations/{{organization}}/locations/{{location}}/notificationConfigs/{{name}}` -// -// * `{{organization}}/{{location}}/{{name}}` +// * `{{name}}` // // When using the `pulumi import` command, OrganizationNotificationConfig can be imported using one of the formats above. For example: // // ```sh -// $ pulumi import gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig default organizations/{{organization}}/locations/{{location}}/notificationConfigs/{{name}} -// ``` -// -// ```sh -// $ pulumi import gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig default {{organization}}/{{location}}/{{name}} +// $ pulumi import gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig default {{name}} // ``` type V2OrganizationNotificationConfig struct { pulumi.CustomResourceState diff --git a/sdk/go/gcp/spanner/getDatabase.go b/sdk/go/gcp/spanner/getDatabase.go new file mode 100644 index 0000000000..33f837e323 --- /dev/null +++ b/sdk/go/gcp/spanner/getDatabase.go @@ -0,0 +1,179 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package spanner + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Get a spanner database from Google Cloud by its name and instance name. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/spanner" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := spanner.LookupDatabase(ctx, &spanner.LookupDatabaseArgs{ +// Name: "foo", +// Instance: instance.Name, +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func LookupDatabase(ctx *pulumi.Context, args *LookupDatabaseArgs, opts ...pulumi.InvokeOption) (*LookupDatabaseResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupDatabaseResult + err := ctx.Invoke("gcp:spanner/getDatabase:getDatabase", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getDatabase. +type LookupDatabaseArgs struct { + // The name of the database's spanner instance. + // + // *** + Instance string `pulumi:"instance"` + // The name of the spanner database. + Name string `pulumi:"name"` + // The project in which the resource belongs. If it + // is not provided, the provider project is used. + Project *string `pulumi:"project"` +} + +// A collection of values returned by getDatabase. +type LookupDatabaseResult struct { + DatabaseDialect string `pulumi:"databaseDialect"` + Ddls []string `pulumi:"ddls"` + DeletionProtection bool `pulumi:"deletionProtection"` + EnableDropProtection bool `pulumi:"enableDropProtection"` + EncryptionConfigs []GetDatabaseEncryptionConfig `pulumi:"encryptionConfigs"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + Instance string `pulumi:"instance"` + Name string `pulumi:"name"` + Project *string `pulumi:"project"` + State string `pulumi:"state"` + VersionRetentionPeriod string `pulumi:"versionRetentionPeriod"` +} + +func LookupDatabaseOutput(ctx *pulumi.Context, args LookupDatabaseOutputArgs, opts ...pulumi.InvokeOption) LookupDatabaseResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupDatabaseResultOutput, error) { + args := v.(LookupDatabaseArgs) + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupDatabaseResult + secret, err := ctx.InvokePackageRaw("gcp:spanner/getDatabase:getDatabase", args, &rv, "", opts...) + if err != nil { + return LookupDatabaseResultOutput{}, err + } + + output := pulumi.ToOutput(rv).(LookupDatabaseResultOutput) + if secret { + return pulumi.ToSecret(output).(LookupDatabaseResultOutput), nil + } + return output, nil + }).(LookupDatabaseResultOutput) +} + +// A collection of arguments for invoking getDatabase. +type LookupDatabaseOutputArgs struct { + // The name of the database's spanner instance. + // + // *** + Instance pulumi.StringInput `pulumi:"instance"` + // The name of the spanner database. + Name pulumi.StringInput `pulumi:"name"` + // The project in which the resource belongs. If it + // is not provided, the provider project is used. + Project pulumi.StringPtrInput `pulumi:"project"` +} + +func (LookupDatabaseOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupDatabaseArgs)(nil)).Elem() +} + +// A collection of values returned by getDatabase. +type LookupDatabaseResultOutput struct{ *pulumi.OutputState } + +func (LookupDatabaseResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupDatabaseResult)(nil)).Elem() +} + +func (o LookupDatabaseResultOutput) ToLookupDatabaseResultOutput() LookupDatabaseResultOutput { + return o +} + +func (o LookupDatabaseResultOutput) ToLookupDatabaseResultOutputWithContext(ctx context.Context) LookupDatabaseResultOutput { + return o +} + +func (o LookupDatabaseResultOutput) DatabaseDialect() pulumi.StringOutput { + return o.ApplyT(func(v LookupDatabaseResult) string { return v.DatabaseDialect }).(pulumi.StringOutput) +} + +func (o LookupDatabaseResultOutput) Ddls() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupDatabaseResult) []string { return v.Ddls }).(pulumi.StringArrayOutput) +} + +func (o LookupDatabaseResultOutput) DeletionProtection() pulumi.BoolOutput { + return o.ApplyT(func(v LookupDatabaseResult) bool { return v.DeletionProtection }).(pulumi.BoolOutput) +} + +func (o LookupDatabaseResultOutput) EnableDropProtection() pulumi.BoolOutput { + return o.ApplyT(func(v LookupDatabaseResult) bool { return v.EnableDropProtection }).(pulumi.BoolOutput) +} + +func (o LookupDatabaseResultOutput) EncryptionConfigs() GetDatabaseEncryptionConfigArrayOutput { + return o.ApplyT(func(v LookupDatabaseResult) []GetDatabaseEncryptionConfig { return v.EncryptionConfigs }).(GetDatabaseEncryptionConfigArrayOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupDatabaseResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupDatabaseResult) string { return v.Id }).(pulumi.StringOutput) +} + +func (o LookupDatabaseResultOutput) Instance() pulumi.StringOutput { + return o.ApplyT(func(v LookupDatabaseResult) string { return v.Instance }).(pulumi.StringOutput) +} + +func (o LookupDatabaseResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupDatabaseResult) string { return v.Name }).(pulumi.StringOutput) +} + +func (o LookupDatabaseResultOutput) Project() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupDatabaseResult) *string { return v.Project }).(pulumi.StringPtrOutput) +} + +func (o LookupDatabaseResultOutput) State() pulumi.StringOutput { + return o.ApplyT(func(v LookupDatabaseResult) string { return v.State }).(pulumi.StringOutput) +} + +func (o LookupDatabaseResultOutput) VersionRetentionPeriod() pulumi.StringOutput { + return o.ApplyT(func(v LookupDatabaseResult) string { return v.VersionRetentionPeriod }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupDatabaseResultOutput{}) +} diff --git a/sdk/go/gcp/spanner/getInstance.go b/sdk/go/gcp/spanner/getInstance.go index ceb9a05b0e..2d73c8a852 100644 --- a/sdk/go/gcp/spanner/getInstance.go +++ b/sdk/go/gcp/spanner/getInstance.go @@ -63,12 +63,13 @@ type LookupInstanceArgs struct { // A collection of values returned by getInstance. type LookupInstanceResult struct { - AutoscalingConfigs []GetInstanceAutoscalingConfig `pulumi:"autoscalingConfigs"` - Config *string `pulumi:"config"` - DisplayName *string `pulumi:"displayName"` - Edition string `pulumi:"edition"` - EffectiveLabels map[string]string `pulumi:"effectiveLabels"` - ForceDestroy bool `pulumi:"forceDestroy"` + AutoscalingConfigs []GetInstanceAutoscalingConfig `pulumi:"autoscalingConfigs"` + Config *string `pulumi:"config"` + DefaultBackupScheduleType string `pulumi:"defaultBackupScheduleType"` + DisplayName *string `pulumi:"displayName"` + Edition string `pulumi:"edition"` + EffectiveLabels map[string]string `pulumi:"effectiveLabels"` + ForceDestroy bool `pulumi:"forceDestroy"` // The provider-assigned unique ID for this managed resource. Id string `pulumi:"id"` Labels map[string]string `pulumi:"labels"` @@ -139,6 +140,10 @@ func (o LookupInstanceResultOutput) Config() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupInstanceResult) *string { return v.Config }).(pulumi.StringPtrOutput) } +func (o LookupInstanceResultOutput) DefaultBackupScheduleType() pulumi.StringOutput { + return o.ApplyT(func(v LookupInstanceResult) string { return v.DefaultBackupScheduleType }).(pulumi.StringOutput) +} + func (o LookupInstanceResultOutput) DisplayName() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupInstanceResult) *string { return v.DisplayName }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/gcp/spanner/instance.go b/sdk/go/gcp/spanner/instance.go index 277c1fbf6b..a78134b38f 100644 --- a/sdk/go/gcp/spanner/instance.go +++ b/sdk/go/gcp/spanner/instance.go @@ -38,10 +38,11 @@ import ( // func main() { // pulumi.Run(func(ctx *pulumi.Context) error { // _, err := spanner.NewInstance(ctx, "example", &spanner.InstanceArgs{ -// Config: pulumi.String("regional-us-central1"), -// DisplayName: pulumi.String("Test Spanner Instance"), -// NumNodes: pulumi.Int(2), -// Edition: pulumi.String("STANDARD"), +// Config: pulumi.String("regional-us-central1"), +// DisplayName: pulumi.String("Test Spanner Instance"), +// NumNodes: pulumi.Int(2), +// Edition: pulumi.String("STANDARD"), +// DefaultBackupScheduleType: pulumi.String("AUTOMATIC"), // Labels: pulumi.StringMap{ // "foo": pulumi.String("bar"), // }, @@ -193,6 +194,11 @@ type Instance struct { // In order to obtain a valid list please consult the // [Configuration section of the docs](https://cloud.google.com/spanner/docs/instances). Config pulumi.StringOutput `pulumi:"config"` + // Controls the default backup behavior for new databases within the instance. + // Note that `AUTOMATIC` is not permitted for free instances, as backups and backup schedules are not allowed for free instances. + // if unset or NONE, no default backup schedule will be created for new databases within the instance. + // Possible values are: `NONE`, `AUTOMATIC`. + DefaultBackupScheduleType pulumi.StringOutput `pulumi:"defaultBackupScheduleType"` // The descriptive name for this instance as it appears in UIs. Must be // unique per project and between 4 and 30 characters in length. // @@ -283,6 +289,11 @@ type instanceState struct { // In order to obtain a valid list please consult the // [Configuration section of the docs](https://cloud.google.com/spanner/docs/instances). Config *string `pulumi:"config"` + // Controls the default backup behavior for new databases within the instance. + // Note that `AUTOMATIC` is not permitted for free instances, as backups and backup schedules are not allowed for free instances. + // if unset or NONE, no default backup schedule will be created for new databases within the instance. + // Possible values are: `NONE`, `AUTOMATIC`. + DefaultBackupScheduleType *string `pulumi:"defaultBackupScheduleType"` // The descriptive name for this instance as it appears in UIs. Must be // unique per project and between 4 and 30 characters in length. // @@ -333,6 +344,11 @@ type InstanceState struct { // In order to obtain a valid list please consult the // [Configuration section of the docs](https://cloud.google.com/spanner/docs/instances). Config pulumi.StringPtrInput + // Controls the default backup behavior for new databases within the instance. + // Note that `AUTOMATIC` is not permitted for free instances, as backups and backup schedules are not allowed for free instances. + // if unset or NONE, no default backup schedule will be created for new databases within the instance. + // Possible values are: `NONE`, `AUTOMATIC`. + DefaultBackupScheduleType pulumi.StringPtrInput // The descriptive name for this instance as it appears in UIs. Must be // unique per project and between 4 and 30 characters in length. // @@ -387,6 +403,11 @@ type instanceArgs struct { // In order to obtain a valid list please consult the // [Configuration section of the docs](https://cloud.google.com/spanner/docs/instances). Config string `pulumi:"config"` + // Controls the default backup behavior for new databases within the instance. + // Note that `AUTOMATIC` is not permitted for free instances, as backups and backup schedules are not allowed for free instances. + // if unset or NONE, no default backup schedule will be created for new databases within the instance. + // Possible values are: `NONE`, `AUTOMATIC`. + DefaultBackupScheduleType *string `pulumi:"defaultBackupScheduleType"` // The descriptive name for this instance as it appears in UIs. Must be // unique per project and between 4 and 30 characters in length. // @@ -431,6 +452,11 @@ type InstanceArgs struct { // In order to obtain a valid list please consult the // [Configuration section of the docs](https://cloud.google.com/spanner/docs/instances). Config pulumi.StringInput + // Controls the default backup behavior for new databases within the instance. + // Note that `AUTOMATIC` is not permitted for free instances, as backups and backup schedules are not allowed for free instances. + // if unset or NONE, no default backup schedule will be created for new databases within the instance. + // Possible values are: `NONE`, `AUTOMATIC`. + DefaultBackupScheduleType pulumi.StringPtrInput // The descriptive name for this instance as it appears in UIs. Must be // unique per project and between 4 and 30 characters in length. // @@ -566,6 +592,14 @@ func (o InstanceOutput) Config() pulumi.StringOutput { return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.Config }).(pulumi.StringOutput) } +// Controls the default backup behavior for new databases within the instance. +// Note that `AUTOMATIC` is not permitted for free instances, as backups and backup schedules are not allowed for free instances. +// if unset or NONE, no default backup schedule will be created for new databases within the instance. +// Possible values are: `NONE`, `AUTOMATIC`. +func (o InstanceOutput) DefaultBackupScheduleType() pulumi.StringOutput { + return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.DefaultBackupScheduleType }).(pulumi.StringOutput) +} + // The descriptive name for this instance as it appears in UIs. Must be // unique per project and between 4 and 30 characters in length. // diff --git a/sdk/go/gcp/spanner/pulumiTypes.go b/sdk/go/gcp/spanner/pulumiTypes.go index 5b3af8b777..bca70e4c59 100644 --- a/sdk/go/gcp/spanner/pulumiTypes.go +++ b/sdk/go/gcp/spanner/pulumiTypes.go @@ -1291,10 +1291,10 @@ func (o InstanceAutoscalingConfigPtrOutput) AutoscalingTargets() InstanceAutosca } type InstanceAutoscalingConfigAsymmetricAutoscalingOption struct { - // A nested object resource + // A nested object resource. // Structure is documented below. Overrides InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrides `pulumi:"overrides"` - // A nested object resource + // A nested object resource. // Structure is documented below. ReplicaSelection InstanceAutoscalingConfigAsymmetricAutoscalingOptionReplicaSelection `pulumi:"replicaSelection"` } @@ -1311,10 +1311,10 @@ type InstanceAutoscalingConfigAsymmetricAutoscalingOptionInput interface { } type InstanceAutoscalingConfigAsymmetricAutoscalingOptionArgs struct { - // A nested object resource + // A nested object resource. // Structure is documented below. Overrides InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesInput `pulumi:"overrides"` - // A nested object resource + // A nested object resource. // Structure is documented below. ReplicaSelection InstanceAutoscalingConfigAsymmetricAutoscalingOptionReplicaSelectionInput `pulumi:"replicaSelection"` } @@ -1370,7 +1370,7 @@ func (o InstanceAutoscalingConfigAsymmetricAutoscalingOptionOutput) ToInstanceAu return o } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o InstanceAutoscalingConfigAsymmetricAutoscalingOptionOutput) Overrides() InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesOutput { return o.ApplyT(func(v InstanceAutoscalingConfigAsymmetricAutoscalingOption) InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrides { @@ -1378,7 +1378,7 @@ func (o InstanceAutoscalingConfigAsymmetricAutoscalingOptionOutput) Overrides() }).(InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o InstanceAutoscalingConfigAsymmetricAutoscalingOptionOutput) ReplicaSelection() InstanceAutoscalingConfigAsymmetricAutoscalingOptionReplicaSelectionOutput { return o.ApplyT(func(v InstanceAutoscalingConfigAsymmetricAutoscalingOption) InstanceAutoscalingConfigAsymmetricAutoscalingOptionReplicaSelection { @@ -1407,7 +1407,7 @@ func (o InstanceAutoscalingConfigAsymmetricAutoscalingOptionArrayOutput) Index(i } type InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrides struct { - // A nested object resource + // A nested object resource. // Structure is documented below. AutoscalingLimits InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesAutoscalingLimits `pulumi:"autoscalingLimits"` } @@ -1424,7 +1424,7 @@ type InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesInput interfac } type InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesArgs struct { - // A nested object resource + // A nested object resource. // Structure is documented below. AutoscalingLimits InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesAutoscalingLimitsInput `pulumi:"autoscalingLimits"` } @@ -1455,7 +1455,7 @@ func (o InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesOutput) ToI return o } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesOutput) AutoscalingLimits() InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesAutoscalingLimitsOutput { return o.ApplyT(func(v InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrides) InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesAutoscalingLimits { @@ -2417,6 +2417,118 @@ func (o InstanceIAMMemberConditionPtrOutput) Title() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +type GetDatabaseEncryptionConfig struct { + // Fully qualified name of the KMS key to use to encrypt this database. This key must exist + // in the same location as the Spanner Database. + KmsKeyName string `pulumi:"kmsKeyName"` + // Fully qualified name of the KMS keys to use to encrypt this database. The keys must exist + // in the same locations as the Spanner Database. + KmsKeyNames []string `pulumi:"kmsKeyNames"` +} + +// GetDatabaseEncryptionConfigInput is an input type that accepts GetDatabaseEncryptionConfigArgs and GetDatabaseEncryptionConfigOutput values. +// You can construct a concrete instance of `GetDatabaseEncryptionConfigInput` via: +// +// GetDatabaseEncryptionConfigArgs{...} +type GetDatabaseEncryptionConfigInput interface { + pulumi.Input + + ToGetDatabaseEncryptionConfigOutput() GetDatabaseEncryptionConfigOutput + ToGetDatabaseEncryptionConfigOutputWithContext(context.Context) GetDatabaseEncryptionConfigOutput +} + +type GetDatabaseEncryptionConfigArgs struct { + // Fully qualified name of the KMS key to use to encrypt this database. This key must exist + // in the same location as the Spanner Database. + KmsKeyName pulumi.StringInput `pulumi:"kmsKeyName"` + // Fully qualified name of the KMS keys to use to encrypt this database. The keys must exist + // in the same locations as the Spanner Database. + KmsKeyNames pulumi.StringArrayInput `pulumi:"kmsKeyNames"` +} + +func (GetDatabaseEncryptionConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabaseEncryptionConfig)(nil)).Elem() +} + +func (i GetDatabaseEncryptionConfigArgs) ToGetDatabaseEncryptionConfigOutput() GetDatabaseEncryptionConfigOutput { + return i.ToGetDatabaseEncryptionConfigOutputWithContext(context.Background()) +} + +func (i GetDatabaseEncryptionConfigArgs) ToGetDatabaseEncryptionConfigOutputWithContext(ctx context.Context) GetDatabaseEncryptionConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabaseEncryptionConfigOutput) +} + +// GetDatabaseEncryptionConfigArrayInput is an input type that accepts GetDatabaseEncryptionConfigArray and GetDatabaseEncryptionConfigArrayOutput values. +// You can construct a concrete instance of `GetDatabaseEncryptionConfigArrayInput` via: +// +// GetDatabaseEncryptionConfigArray{ GetDatabaseEncryptionConfigArgs{...} } +type GetDatabaseEncryptionConfigArrayInput interface { + pulumi.Input + + ToGetDatabaseEncryptionConfigArrayOutput() GetDatabaseEncryptionConfigArrayOutput + ToGetDatabaseEncryptionConfigArrayOutputWithContext(context.Context) GetDatabaseEncryptionConfigArrayOutput +} + +type GetDatabaseEncryptionConfigArray []GetDatabaseEncryptionConfigInput + +func (GetDatabaseEncryptionConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDatabaseEncryptionConfig)(nil)).Elem() +} + +func (i GetDatabaseEncryptionConfigArray) ToGetDatabaseEncryptionConfigArrayOutput() GetDatabaseEncryptionConfigArrayOutput { + return i.ToGetDatabaseEncryptionConfigArrayOutputWithContext(context.Background()) +} + +func (i GetDatabaseEncryptionConfigArray) ToGetDatabaseEncryptionConfigArrayOutputWithContext(ctx context.Context) GetDatabaseEncryptionConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDatabaseEncryptionConfigArrayOutput) +} + +type GetDatabaseEncryptionConfigOutput struct{ *pulumi.OutputState } + +func (GetDatabaseEncryptionConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetDatabaseEncryptionConfig)(nil)).Elem() +} + +func (o GetDatabaseEncryptionConfigOutput) ToGetDatabaseEncryptionConfigOutput() GetDatabaseEncryptionConfigOutput { + return o +} + +func (o GetDatabaseEncryptionConfigOutput) ToGetDatabaseEncryptionConfigOutputWithContext(ctx context.Context) GetDatabaseEncryptionConfigOutput { + return o +} + +// Fully qualified name of the KMS key to use to encrypt this database. This key must exist +// in the same location as the Spanner Database. +func (o GetDatabaseEncryptionConfigOutput) KmsKeyName() pulumi.StringOutput { + return o.ApplyT(func(v GetDatabaseEncryptionConfig) string { return v.KmsKeyName }).(pulumi.StringOutput) +} + +// Fully qualified name of the KMS keys to use to encrypt this database. The keys must exist +// in the same locations as the Spanner Database. +func (o GetDatabaseEncryptionConfigOutput) KmsKeyNames() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetDatabaseEncryptionConfig) []string { return v.KmsKeyNames }).(pulumi.StringArrayOutput) +} + +type GetDatabaseEncryptionConfigArrayOutput struct{ *pulumi.OutputState } + +func (GetDatabaseEncryptionConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDatabaseEncryptionConfig)(nil)).Elem() +} + +func (o GetDatabaseEncryptionConfigArrayOutput) ToGetDatabaseEncryptionConfigArrayOutput() GetDatabaseEncryptionConfigArrayOutput { + return o +} + +func (o GetDatabaseEncryptionConfigArrayOutput) ToGetDatabaseEncryptionConfigArrayOutputWithContext(ctx context.Context) GetDatabaseEncryptionConfigArrayOutput { + return o +} + +func (o GetDatabaseEncryptionConfigArrayOutput) Index(i pulumi.IntInput) GetDatabaseEncryptionConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetDatabaseEncryptionConfig { + return vs[0].([]GetDatabaseEncryptionConfig)[vs[1].(int)] + }).(GetDatabaseEncryptionConfigOutput) +} + type GetInstanceAutoscalingConfig struct { // Asymmetric autoscaling options for specific replicas. AsymmetricAutoscalingOptions []GetInstanceAutoscalingConfigAsymmetricAutoscalingOption `pulumi:"asymmetricAutoscalingOptions"` @@ -2557,9 +2669,9 @@ func (o GetInstanceAutoscalingConfigArrayOutput) Index(i pulumi.IntInput) GetIns } type GetInstanceAutoscalingConfigAsymmetricAutoscalingOption struct { - // A nested object resource + // A nested object resource. Overrides []GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverride `pulumi:"overrides"` - // A nested object resource + // A nested object resource. ReplicaSelections []GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionReplicaSelection `pulumi:"replicaSelections"` } @@ -2575,9 +2687,9 @@ type GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionInput interface { } type GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionArgs struct { - // A nested object resource + // A nested object resource. Overrides GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrideArrayInput `pulumi:"overrides"` - // A nested object resource + // A nested object resource. ReplicaSelections GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionReplicaSelectionArrayInput `pulumi:"replicaSelections"` } @@ -2632,14 +2744,14 @@ func (o GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOutput) ToGetInst return o } -// A nested object resource +// A nested object resource. func (o GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOutput) Overrides() GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrideArrayOutput { return o.ApplyT(func(v GetInstanceAutoscalingConfigAsymmetricAutoscalingOption) []GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverride { return v.Overrides }).(GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrideArrayOutput) } -// A nested object resource +// A nested object resource. func (o GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOutput) ReplicaSelections() GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionReplicaSelectionArrayOutput { return o.ApplyT(func(v GetInstanceAutoscalingConfigAsymmetricAutoscalingOption) []GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionReplicaSelection { return v.ReplicaSelections @@ -2667,7 +2779,7 @@ func (o GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionArrayOutput) Inde } type GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverride struct { - // A nested object resource + // A nested object resource. AutoscalingLimits []GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrideAutoscalingLimit `pulumi:"autoscalingLimits"` } @@ -2683,7 +2795,7 @@ type GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrideInput interf } type GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrideArgs struct { - // A nested object resource + // A nested object resource. AutoscalingLimits GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrideAutoscalingLimitArrayInput `pulumi:"autoscalingLimits"` } @@ -2738,7 +2850,7 @@ func (o GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrideOutput) T return o } -// A nested object resource +// A nested object resource. func (o GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrideOutput) AutoscalingLimits() GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrideAutoscalingLimitArrayOutput { return o.ApplyT(func(v GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverride) []GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrideAutoscalingLimit { return v.AutoscalingLimits @@ -3263,6 +3375,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*InstanceIAMBindingConditionPtrInput)(nil)).Elem(), InstanceIAMBindingConditionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*InstanceIAMMemberConditionInput)(nil)).Elem(), InstanceIAMMemberConditionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*InstanceIAMMemberConditionPtrInput)(nil)).Elem(), InstanceIAMMemberConditionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetDatabaseEncryptionConfigInput)(nil)).Elem(), GetDatabaseEncryptionConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetDatabaseEncryptionConfigArrayInput)(nil)).Elem(), GetDatabaseEncryptionConfigArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetInstanceAutoscalingConfigInput)(nil)).Elem(), GetInstanceAutoscalingConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetInstanceAutoscalingConfigArrayInput)(nil)).Elem(), GetInstanceAutoscalingConfigArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionInput)(nil)).Elem(), GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionArgs{}) @@ -3308,6 +3422,8 @@ func init() { pulumi.RegisterOutputType(InstanceIAMBindingConditionPtrOutput{}) pulumi.RegisterOutputType(InstanceIAMMemberConditionOutput{}) pulumi.RegisterOutputType(InstanceIAMMemberConditionPtrOutput{}) + pulumi.RegisterOutputType(GetDatabaseEncryptionConfigOutput{}) + pulumi.RegisterOutputType(GetDatabaseEncryptionConfigArrayOutput{}) pulumi.RegisterOutputType(GetInstanceAutoscalingConfigOutput{}) pulumi.RegisterOutputType(GetInstanceAutoscalingConfigArrayOutput{}) pulumi.RegisterOutputType(GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOutput{}) diff --git a/sdk/go/gcp/sql/databaseInstance.go b/sdk/go/gcp/sql/databaseInstance.go index 3fc0feec48..a6582ddd85 100644 --- a/sdk/go/gcp/sql/databaseInstance.go +++ b/sdk/go/gcp/sql/databaseInstance.go @@ -215,6 +215,39 @@ import ( // // ``` // +// ## Switchover (SQL Server Only) +// +// Users can perform a switchover on any direct `cascadable` replica by following the steps below. +// +// ~>**WARNING:** Failure to follow these steps can lead to data loss (You will be warned during plan stage). To prevent data loss during a switchover, please verify your plan with the checklist below. +// +// # For a more in-depth walkthrough with example code, see the Switchover Guide +// +// ### Steps to Invoke Switchover +// +// Create a `cascadable` replica in a different region from the primary (`cascadableReplica` is set to true in `replicaConfiguration`) +// +// #### Invoking switchover in the replica resource: +// 1. Change instanceType from `READ_REPLICA_INSTANCE` to `CLOUD_SQL_INSTANCE` +// 2. Remove `masterInstanceName` +// 3. Remove `replicaConfiguration` +// 4. Add current primary's name to the replica's `replicaNames` list +// +// #### Updating the primary resource: +// 1. Change `instanceType` from `CLOUD_SQL_INSTANCE` to `READ_REPLICA_INSTANCE` +// 2. Set `masterInstanceName` to the original replica (which will be primary after switchover) +// 3. Set `replicaConfiguration` and set `cascadableReplica` to `true` +// 4. Remove original replica from `replicaNames` +// +// > **NOTE**: Do **not** delete the replicaNames field, even if it has no replicas remaining. Set replicaNames = [ ] to indicate it having no replicas. +// +// #### Plan and verify that: +// - `pulumi preview` outputs **"0 to add, 0 to destroy"** +// - `pulumi preview` does not say **"must be replaced"** for any resource +// - Every resource **"will be updated in-place"** +// - Only the 2 instances involved in switchover have planned changes +// - (Recommended) Use `deletionProtection` on instances as a safety measure +// // ## Import // // Database instances can be imported using one of any of these accepted formats: @@ -269,7 +302,7 @@ type DatabaseInstance struct { // Whether or not to allow the provider to destroy the instance. Unless this field is set to false // in state, a `destroy` or `update` command that deletes the instance will fail. Defaults to `true`. DeletionProtection pulumi.BoolPtrOutput `pulumi:"deletionProtection"` - // The dns name of the instance. + // The DNS name of the instance. See [Connect to an instance using Private Service Connect](https://cloud.google.com/sql/docs/mysql/configure-private-service-connect#view-summary-information-cloud-sql-instances-psc-enabled) for more details. DnsName pulumi.StringOutput `pulumi:"dnsName"` // The full path to the encryption key used for the CMEK disk encryption. Setting // up disk encryption currently requires manual steps outside of this provider. @@ -311,8 +344,10 @@ type DatabaseInstance struct { // *** Region pulumi.StringOutput `pulumi:"region"` // The configuration for replication. The - // configuration is detailed below. Valid only for MySQL instances. + // configuration is detailed below. ReplicaConfiguration DatabaseInstanceReplicaConfigurationOutput `pulumi:"replicaConfiguration"` + // List of replica names. Can be updated. + ReplicaNames pulumi.StringArrayOutput `pulumi:"replicaNames"` // The context needed to restore the database to a backup run. This field will // cause the provider to trigger the database to restore from the backup run indicated. The configuration is detailed below. // **NOTE:** Restoring from a backup is an imperative action and not recommended via this provider. Adding or modifying this @@ -398,7 +433,7 @@ type databaseInstanceState struct { // Whether or not to allow the provider to destroy the instance. Unless this field is set to false // in state, a `destroy` or `update` command that deletes the instance will fail. Defaults to `true`. DeletionProtection *bool `pulumi:"deletionProtection"` - // The dns name of the instance. + // The DNS name of the instance. See [Connect to an instance using Private Service Connect](https://cloud.google.com/sql/docs/mysql/configure-private-service-connect#view-summary-information-cloud-sql-instances-psc-enabled) for more details. DnsName *string `pulumi:"dnsName"` // The full path to the encryption key used for the CMEK disk encryption. Setting // up disk encryption currently requires manual steps outside of this provider. @@ -440,8 +475,10 @@ type databaseInstanceState struct { // *** Region *string `pulumi:"region"` // The configuration for replication. The - // configuration is detailed below. Valid only for MySQL instances. + // configuration is detailed below. ReplicaConfiguration *DatabaseInstanceReplicaConfiguration `pulumi:"replicaConfiguration"` + // List of replica names. Can be updated. + ReplicaNames []string `pulumi:"replicaNames"` // The context needed to restore the database to a backup run. This field will // cause the provider to trigger the database to restore from the backup run indicated. The configuration is detailed below. // **NOTE:** Restoring from a backup is an imperative action and not recommended via this provider. Adding or modifying this @@ -483,7 +520,7 @@ type DatabaseInstanceState struct { // Whether or not to allow the provider to destroy the instance. Unless this field is set to false // in state, a `destroy` or `update` command that deletes the instance will fail. Defaults to `true`. DeletionProtection pulumi.BoolPtrInput - // The dns name of the instance. + // The DNS name of the instance. See [Connect to an instance using Private Service Connect](https://cloud.google.com/sql/docs/mysql/configure-private-service-connect#view-summary-information-cloud-sql-instances-psc-enabled) for more details. DnsName pulumi.StringPtrInput // The full path to the encryption key used for the CMEK disk encryption. Setting // up disk encryption currently requires manual steps outside of this provider. @@ -525,8 +562,10 @@ type DatabaseInstanceState struct { // *** Region pulumi.StringPtrInput // The configuration for replication. The - // configuration is detailed below. Valid only for MySQL instances. + // configuration is detailed below. ReplicaConfiguration DatabaseInstanceReplicaConfigurationPtrInput + // List of replica names. Can be updated. + ReplicaNames pulumi.StringArrayInput // The context needed to restore the database to a backup run. This field will // cause the provider to trigger the database to restore from the backup run indicated. The configuration is detailed below. // **NOTE:** Restoring from a backup is an imperative action and not recommended via this provider. Adding or modifying this @@ -598,8 +637,10 @@ type databaseInstanceArgs struct { // *** Region *string `pulumi:"region"` // The configuration for replication. The - // configuration is detailed below. Valid only for MySQL instances. + // configuration is detailed below. ReplicaConfiguration *DatabaseInstanceReplicaConfiguration `pulumi:"replicaConfiguration"` + // List of replica names. Can be updated. + ReplicaNames []string `pulumi:"replicaNames"` // The context needed to restore the database to a backup run. This field will // cause the provider to trigger the database to restore from the backup run indicated. The configuration is detailed below. // **NOTE:** Restoring from a backup is an imperative action and not recommended via this provider. Adding or modifying this @@ -662,8 +703,10 @@ type DatabaseInstanceArgs struct { // *** Region pulumi.StringPtrInput // The configuration for replication. The - // configuration is detailed below. Valid only for MySQL instances. + // configuration is detailed below. ReplicaConfiguration DatabaseInstanceReplicaConfigurationPtrInput + // List of replica names. Can be updated. + ReplicaNames pulumi.StringArrayInput // The context needed to restore the database to a backup run. This field will // cause the provider to trigger the database to restore from the backup run indicated. The configuration is detailed below. // **NOTE:** Restoring from a backup is an imperative action and not recommended via this provider. Adding or modifying this @@ -800,7 +843,7 @@ func (o DatabaseInstanceOutput) DeletionProtection() pulumi.BoolPtrOutput { return o.ApplyT(func(v *DatabaseInstance) pulumi.BoolPtrOutput { return v.DeletionProtection }).(pulumi.BoolPtrOutput) } -// The dns name of the instance. +// The DNS name of the instance. See [Connect to an instance using Private Service Connect](https://cloud.google.com/sql/docs/mysql/configure-private-service-connect#view-summary-information-cloud-sql-instances-psc-enabled) for more details. func (o DatabaseInstanceOutput) DnsName() pulumi.StringOutput { return o.ApplyT(func(v *DatabaseInstance) pulumi.StringOutput { return v.DnsName }).(pulumi.StringOutput) } @@ -881,11 +924,16 @@ func (o DatabaseInstanceOutput) Region() pulumi.StringOutput { } // The configuration for replication. The -// configuration is detailed below. Valid only for MySQL instances. +// configuration is detailed below. func (o DatabaseInstanceOutput) ReplicaConfiguration() DatabaseInstanceReplicaConfigurationOutput { return o.ApplyT(func(v *DatabaseInstance) DatabaseInstanceReplicaConfigurationOutput { return v.ReplicaConfiguration }).(DatabaseInstanceReplicaConfigurationOutput) } +// List of replica names. Can be updated. +func (o DatabaseInstanceOutput) ReplicaNames() pulumi.StringArrayOutput { + return o.ApplyT(func(v *DatabaseInstance) pulumi.StringArrayOutput { return v.ReplicaNames }).(pulumi.StringArrayOutput) +} + // The context needed to restore the database to a backup run. This field will // cause the provider to trigger the database to restore from the backup run indicated. The configuration is detailed below. // **NOTE:** Restoring from a backup is an imperative action and not recommended via this provider. Adding or modifying this diff --git a/sdk/go/gcp/sql/getDatabaseInstance.go b/sdk/go/gcp/sql/getDatabaseInstance.go index 28d23df253..db29bdbaf5 100644 --- a/sdk/go/gcp/sql/getDatabaseInstance.go +++ b/sdk/go/gcp/sql/getDatabaseInstance.go @@ -79,6 +79,7 @@ type LookupDatabaseInstanceResult struct { PublicIpAddress string `pulumi:"publicIpAddress"` Region string `pulumi:"region"` ReplicaConfigurations []GetDatabaseInstanceReplicaConfiguration `pulumi:"replicaConfigurations"` + ReplicaNames []string `pulumi:"replicaNames"` RestoreBackupContexts []GetDatabaseInstanceRestoreBackupContext `pulumi:"restoreBackupContexts"` RootPassword string `pulumi:"rootPassword"` SelfLink string `pulumi:"selfLink"` @@ -216,6 +217,10 @@ func (o LookupDatabaseInstanceResultOutput) ReplicaConfigurations() GetDatabaseI }).(GetDatabaseInstanceReplicaConfigurationArrayOutput) } +func (o LookupDatabaseInstanceResultOutput) ReplicaNames() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupDatabaseInstanceResult) []string { return v.ReplicaNames }).(pulumi.StringArrayOutput) +} + func (o LookupDatabaseInstanceResultOutput) RestoreBackupContexts() GetDatabaseInstanceRestoreBackupContextArrayOutput { return o.ApplyT(func(v LookupDatabaseInstanceResult) []GetDatabaseInstanceRestoreBackupContext { return v.RestoreBackupContexts diff --git a/sdk/go/gcp/sql/pulumiTypes.go b/sdk/go/gcp/sql/pulumiTypes.go index db2fe33b92..09b4d00158 100644 --- a/sdk/go/gcp/sql/pulumiTypes.go +++ b/sdk/go/gcp/sql/pulumiTypes.go @@ -356,6 +356,10 @@ type DatabaseInstanceReplicaConfiguration struct { // PEM representation of the trusted CA's x509 // certificate. CaCertificate *string `pulumi:"caCertificate"` + // Specifies if the replica is a cascadable replica. If true, instance must be in different region from primary. + // + // > **NOTE:** Only supported for SQL Server database. + CascadableReplica *bool `pulumi:"cascadableReplica"` // PEM representation of the replica's x509 // certificate. ClientCertificate *string `pulumi:"clientCertificate"` @@ -404,6 +408,10 @@ type DatabaseInstanceReplicaConfigurationArgs struct { // PEM representation of the trusted CA's x509 // certificate. CaCertificate pulumi.StringPtrInput `pulumi:"caCertificate"` + // Specifies if the replica is a cascadable replica. If true, instance must be in different region from primary. + // + // > **NOTE:** Only supported for SQL Server database. + CascadableReplica pulumi.BoolPtrInput `pulumi:"cascadableReplica"` // PEM representation of the replica's x509 // certificate. ClientCertificate pulumi.StringPtrInput `pulumi:"clientCertificate"` @@ -520,6 +528,13 @@ func (o DatabaseInstanceReplicaConfigurationOutput) CaCertificate() pulumi.Strin return o.ApplyT(func(v DatabaseInstanceReplicaConfiguration) *string { return v.CaCertificate }).(pulumi.StringPtrOutput) } +// Specifies if the replica is a cascadable replica. If true, instance must be in different region from primary. +// +// > **NOTE:** Only supported for SQL Server database. +func (o DatabaseInstanceReplicaConfigurationOutput) CascadableReplica() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DatabaseInstanceReplicaConfiguration) *bool { return v.CascadableReplica }).(pulumi.BoolPtrOutput) +} + // PEM representation of the replica's x509 // certificate. func (o DatabaseInstanceReplicaConfigurationOutput) ClientCertificate() pulumi.StringPtrOutput { @@ -616,6 +631,18 @@ func (o DatabaseInstanceReplicaConfigurationPtrOutput) CaCertificate() pulumi.St }).(pulumi.StringPtrOutput) } +// Specifies if the replica is a cascadable replica. If true, instance must be in different region from primary. +// +// > **NOTE:** Only supported for SQL Server database. +func (o DatabaseInstanceReplicaConfigurationPtrOutput) CascadableReplica() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *DatabaseInstanceReplicaConfiguration) *bool { + if v == nil { + return nil + } + return v.CascadableReplica + }).(pulumi.BoolPtrOutput) +} + // PEM representation of the replica's x509 // certificate. func (o DatabaseInstanceReplicaConfigurationPtrOutput) ClientCertificate() pulumi.StringPtrOutput { @@ -5145,6 +5172,8 @@ func (o GetDatabaseInstanceIpAddressArrayOutput) Index(i pulumi.IntInput) GetDat type GetDatabaseInstanceReplicaConfiguration struct { // PEM representation of the trusted CA's x509 certificate. CaCertificate string `pulumi:"caCertificate"` + // Specifies if a SQL Server replica is a cascadable replica. A cascadable replica is a SQL Server cross region replica that supports replica(s) under it. + CascadableReplica bool `pulumi:"cascadableReplica"` // PEM representation of the replica's x509 certificate. ClientCertificate string `pulumi:"clientCertificate"` // PEM representation of the replica's private key. The corresponding public key in encoded in the client_certificate. @@ -5181,6 +5210,8 @@ type GetDatabaseInstanceReplicaConfigurationInput interface { type GetDatabaseInstanceReplicaConfigurationArgs struct { // PEM representation of the trusted CA's x509 certificate. CaCertificate pulumi.StringInput `pulumi:"caCertificate"` + // Specifies if a SQL Server replica is a cascadable replica. A cascadable replica is a SQL Server cross region replica that supports replica(s) under it. + CascadableReplica pulumi.BoolInput `pulumi:"cascadableReplica"` // PEM representation of the replica's x509 certificate. ClientCertificate pulumi.StringInput `pulumi:"clientCertificate"` // PEM representation of the replica's private key. The corresponding public key in encoded in the client_certificate. @@ -5259,6 +5290,11 @@ func (o GetDatabaseInstanceReplicaConfigurationOutput) CaCertificate() pulumi.St return o.ApplyT(func(v GetDatabaseInstanceReplicaConfiguration) string { return v.CaCertificate }).(pulumi.StringOutput) } +// Specifies if a SQL Server replica is a cascadable replica. A cascadable replica is a SQL Server cross region replica that supports replica(s) under it. +func (o GetDatabaseInstanceReplicaConfigurationOutput) CascadableReplica() pulumi.BoolOutput { + return o.ApplyT(func(v GetDatabaseInstanceReplicaConfiguration) bool { return v.CascadableReplica }).(pulumi.BoolOutput) +} + // PEM representation of the replica's x509 certificate. func (o GetDatabaseInstanceReplicaConfigurationOutput) ClientCertificate() pulumi.StringOutput { return o.ApplyT(func(v GetDatabaseInstanceReplicaConfiguration) string { return v.ClientCertificate }).(pulumi.StringOutput) @@ -7738,6 +7774,8 @@ type GetDatabaseInstancesInstance struct { Region string `pulumi:"region"` // The configuration for replication. ReplicaConfigurations []GetDatabaseInstancesInstanceReplicaConfiguration `pulumi:"replicaConfigurations"` + // The replicas of the instance. + ReplicaNames []string `pulumi:"replicaNames"` RestoreBackupContexts []GetDatabaseInstancesInstanceRestoreBackupContext `pulumi:"restoreBackupContexts"` // Initial root password. Required for MS SQL Server. RootPassword string `pulumi:"rootPassword"` @@ -7793,6 +7831,8 @@ type GetDatabaseInstancesInstanceArgs struct { Region pulumi.StringInput `pulumi:"region"` // The configuration for replication. ReplicaConfigurations GetDatabaseInstancesInstanceReplicaConfigurationArrayInput `pulumi:"replicaConfigurations"` + // The replicas of the instance. + ReplicaNames pulumi.StringArrayInput `pulumi:"replicaNames"` RestoreBackupContexts GetDatabaseInstancesInstanceRestoreBackupContextArrayInput `pulumi:"restoreBackupContexts"` // Initial root password. Required for MS SQL Server. RootPassword pulumi.StringInput `pulumi:"rootPassword"` @@ -7946,6 +7986,11 @@ func (o GetDatabaseInstancesInstanceOutput) ReplicaConfigurations() GetDatabaseI }).(GetDatabaseInstancesInstanceReplicaConfigurationArrayOutput) } +// The replicas of the instance. +func (o GetDatabaseInstancesInstanceOutput) ReplicaNames() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetDatabaseInstancesInstance) []string { return v.ReplicaNames }).(pulumi.StringArrayOutput) +} + func (o GetDatabaseInstancesInstanceOutput) RestoreBackupContexts() GetDatabaseInstancesInstanceRestoreBackupContextArrayOutput { return o.ApplyT(func(v GetDatabaseInstancesInstance) []GetDatabaseInstancesInstanceRestoreBackupContext { return v.RestoreBackupContexts @@ -8240,6 +8285,8 @@ func (o GetDatabaseInstancesInstanceIpAddressArrayOutput) Index(i pulumi.IntInpu type GetDatabaseInstancesInstanceReplicaConfiguration struct { // PEM representation of the trusted CA's x509 certificate. CaCertificate string `pulumi:"caCertificate"` + // Specifies if a SQL Server replica is a cascadable replica. A cascadable replica is a SQL Server cross region replica that supports replica(s) under it. + CascadableReplica bool `pulumi:"cascadableReplica"` // PEM representation of the replica's x509 certificate. ClientCertificate string `pulumi:"clientCertificate"` // PEM representation of the replica's private key. The corresponding public key in encoded in the client_certificate. @@ -8276,6 +8323,8 @@ type GetDatabaseInstancesInstanceReplicaConfigurationInput interface { type GetDatabaseInstancesInstanceReplicaConfigurationArgs struct { // PEM representation of the trusted CA's x509 certificate. CaCertificate pulumi.StringInput `pulumi:"caCertificate"` + // Specifies if a SQL Server replica is a cascadable replica. A cascadable replica is a SQL Server cross region replica that supports replica(s) under it. + CascadableReplica pulumi.BoolInput `pulumi:"cascadableReplica"` // PEM representation of the replica's x509 certificate. ClientCertificate pulumi.StringInput `pulumi:"clientCertificate"` // PEM representation of the replica's private key. The corresponding public key in encoded in the client_certificate. @@ -8354,6 +8403,11 @@ func (o GetDatabaseInstancesInstanceReplicaConfigurationOutput) CaCertificate() return o.ApplyT(func(v GetDatabaseInstancesInstanceReplicaConfiguration) string { return v.CaCertificate }).(pulumi.StringOutput) } +// Specifies if a SQL Server replica is a cascadable replica. A cascadable replica is a SQL Server cross region replica that supports replica(s) under it. +func (o GetDatabaseInstancesInstanceReplicaConfigurationOutput) CascadableReplica() pulumi.BoolOutput { + return o.ApplyT(func(v GetDatabaseInstancesInstanceReplicaConfiguration) bool { return v.CascadableReplica }).(pulumi.BoolOutput) +} + // PEM representation of the replica's x509 certificate. func (o GetDatabaseInstancesInstanceReplicaConfigurationOutput) ClientCertificate() pulumi.StringOutput { return o.ApplyT(func(v GetDatabaseInstancesInstanceReplicaConfiguration) string { return v.ClientCertificate }).(pulumi.StringOutput) diff --git a/sdk/go/gcp/storage/pulumiTypes.go b/sdk/go/gcp/storage/pulumiTypes.go index e2757469aa..27374e5b96 100644 --- a/sdk/go/gcp/storage/pulumiTypes.go +++ b/sdk/go/gcp/storage/pulumiTypes.go @@ -3419,7 +3419,7 @@ type InsightsReportConfigObjectMetadataReportOptions struct { // Options for where the inventory reports are stored. // Structure is documented below. StorageDestinationOptions InsightsReportConfigObjectMetadataReportOptionsStorageDestinationOptions `pulumi:"storageDestinationOptions"` - // A nested object resource + // A nested object resource. // Structure is documented below. StorageFilters *InsightsReportConfigObjectMetadataReportOptionsStorageFilters `pulumi:"storageFilters"` } @@ -3441,7 +3441,7 @@ type InsightsReportConfigObjectMetadataReportOptionsArgs struct { // Options for where the inventory reports are stored. // Structure is documented below. StorageDestinationOptions InsightsReportConfigObjectMetadataReportOptionsStorageDestinationOptionsInput `pulumi:"storageDestinationOptions"` - // A nested object resource + // A nested object resource. // Structure is documented below. StorageFilters InsightsReportConfigObjectMetadataReportOptionsStorageFiltersPtrInput `pulumi:"storageFilters"` } @@ -3536,7 +3536,7 @@ func (o InsightsReportConfigObjectMetadataReportOptionsOutput) StorageDestinatio }).(InsightsReportConfigObjectMetadataReportOptionsStorageDestinationOptionsOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o InsightsReportConfigObjectMetadataReportOptionsOutput) StorageFilters() InsightsReportConfigObjectMetadataReportOptionsStorageFiltersPtrOutput { return o.ApplyT(func(v InsightsReportConfigObjectMetadataReportOptions) *InsightsReportConfigObjectMetadataReportOptionsStorageFilters { @@ -3589,7 +3589,7 @@ func (o InsightsReportConfigObjectMetadataReportOptionsPtrOutput) StorageDestina }).(InsightsReportConfigObjectMetadataReportOptionsStorageDestinationOptionsPtrOutput) } -// A nested object resource +// A nested object resource. // Structure is documented below. func (o InsightsReportConfigObjectMetadataReportOptionsPtrOutput) StorageFilters() InsightsReportConfigObjectMetadataReportOptionsStorageFiltersPtrOutput { return o.ApplyT(func(v *InsightsReportConfigObjectMetadataReportOptions) *InsightsReportConfigObjectMetadataReportOptionsStorageFilters { diff --git a/sdk/go/gcp/tags/tagBinding.go b/sdk/go/gcp/tags/tagBinding.go index 9d102cf972..0d10100528 100644 --- a/sdk/go/gcp/tags/tagBinding.go +++ b/sdk/go/gcp/tags/tagBinding.go @@ -57,9 +57,7 @@ import ( // return err // } // value, err := tags.NewTagValue(ctx, "value", &tags.TagValueArgs{ -// Parent: key.Name.ApplyT(func(name string) (string, error) { -// return fmt.Sprintf("tagKeys/%v", name), nil -// }).(pulumi.StringOutput), +// Parent: key.ID(), // ShortName: pulumi.String("valuename"), // Description: pulumi.String("For valuename resources."), // }) @@ -70,9 +68,7 @@ import ( // Parent: project.Number.ApplyT(func(number string) (string, error) { // return fmt.Sprintf("//cloudresourcemanager.googleapis.com/projects/%v", number), nil // }).(pulumi.StringOutput), -// TagValue: value.Name.ApplyT(func(name string) (string, error) { -// return fmt.Sprintf("tagValues/%v", name), nil -// }).(pulumi.StringOutput), +// TagValue: value.ID(), // }) // if err != nil { // return err diff --git a/sdk/go/gcp/tags/tagValue.go b/sdk/go/gcp/tags/tagValue.go index e0434301e2..0bb603fa4a 100644 --- a/sdk/go/gcp/tags/tagValue.go +++ b/sdk/go/gcp/tags/tagValue.go @@ -29,8 +29,6 @@ import ( // // import ( // -// "fmt" -// // "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/tags" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // @@ -47,9 +45,7 @@ import ( // return err // } // _, err = tags.NewTagValue(ctx, "value", &tags.TagValueArgs{ -// Parent: key.Name.ApplyT(func(name string) (string, error) { -// return fmt.Sprintf("tagKeys/%v", name), nil -// }).(pulumi.StringOutput), +// Parent: key.ID(), // ShortName: pulumi.String("valuename"), // Description: pulumi.String("For valuename resources."), // }) diff --git a/sdk/go/gcp/transcoder/job.go b/sdk/go/gcp/transcoder/job.go index 142e8695ad..66c3345590 100644 --- a/sdk/go/gcp/transcoder/job.go +++ b/sdk/go/gcp/transcoder/job.go @@ -1005,11 +1005,23 @@ import ( // // Job can be imported using any of these accepted formats: // +// * `{{project}}/{{name}}` +// +// * `{{project}} {{name}}` +// // * `{{name}}` // // When using the `pulumi import` command, Job can be imported using one of the formats above. For example: // // ```sh +// $ pulumi import gcp:transcoder/job:Job default {{project}}/{{name}} +// ``` +// +// ```sh +// $ pulumi import gcp:transcoder/job:Job default "{{project}} {{name}}" +// ``` +// +// ```sh // $ pulumi import gcp:transcoder/job:Job default {{name}} // ``` type Job struct { diff --git a/sdk/go/gcp/vertex/aiEndpoint.go b/sdk/go/gcp/vertex/aiEndpoint.go index 96c06fd2cc..6fe67d0288 100644 --- a/sdk/go/gcp/vertex/aiEndpoint.go +++ b/sdk/go/gcp/vertex/aiEndpoint.go @@ -29,8 +29,10 @@ import ( // // import ( // +// "encoding/json" // "fmt" // +// "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/bigquery" // "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute" // "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/kms" // "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations" @@ -68,10 +70,27 @@ import ( // if err != nil { // return err // } +// bqDataset, err := bigquery.NewDataset(ctx, "bq_dataset", &bigquery.DatasetArgs{ +// DatasetId: pulumi.String("some_dataset"), +// FriendlyName: pulumi.String("logging dataset"), +// Description: pulumi.String("This is a dataset that requests are logged to"), +// Location: pulumi.String("US"), +// DeleteContentsOnDestroy: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } // project, err := organizations.LookupProject(ctx, &organizations.LookupProjectArgs{}, nil) // if err != nil { // return err // } +// tmpJSON0, err := json.Marshal(map[string]interface{}{ +// "12345": 100, +// }) +// if err != nil { +// return err +// } +// json0 := string(tmpJSON0) // _, err = vertex.NewAiEndpoint(ctx, "endpoint", &vertex.AiEndpointArgs{ // Name: pulumi.String("endpoint-name"), // DisplayName: pulumi.String("sample-endpoint"), @@ -87,6 +106,16 @@ import ( // EncryptionSpec: &vertex.AiEndpointEncryptionSpecArgs{ // KmsKeyName: pulumi.String("kms-name"), // }, +// PredictRequestResponseLoggingConfig: &vertex.AiEndpointPredictRequestResponseLoggingConfigArgs{ +// BigqueryDestination: &vertex.AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs{ +// OutputUri: bqDataset.DatasetId.ApplyT(func(datasetId string) (string, error) { +// return fmt.Sprintf("bq://%v.%v.request_response_logging", project.ProjectId, datasetId), nil +// }).(pulumi.StringOutput), +// }, +// Enabled: pulumi.Bool(true), +// SamplingRate: pulumi.Float64(0.1), +// }, +// TrafficSplit: pulumi.String(json0), // }, pulumi.DependsOn([]pulumi.Resource{ // vertexVpcConnection, // })) @@ -106,6 +135,88 @@ import ( // } // // ``` +// ### Vertex Ai Endpoint Private Service Connect +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations" +// "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/vertex" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// project, err := organizations.LookupProject(ctx, &organizations.LookupProjectArgs{}, nil) +// if err != nil { +// return err +// } +// _, err = vertex.NewAiEndpoint(ctx, "endpoint", &vertex.AiEndpointArgs{ +// Name: pulumi.String("endpoint-name_69391"), +// DisplayName: pulumi.String("sample-endpoint"), +// Description: pulumi.String("A sample vertex endpoint"), +// Location: pulumi.String("us-central1"), +// Region: pulumi.String("us-central1"), +// Labels: pulumi.StringMap{ +// "label-one": pulumi.String("value-one"), +// }, +// PrivateServiceConnectConfig: &vertex.AiEndpointPrivateServiceConnectConfigArgs{ +// EnablePrivateServiceConnect: pulumi.Bool(true), +// ProjectAllowlists: pulumi.StringArray{ +// pulumi.String(project.ProjectId), +// }, +// EnableSecurePrivateServiceConnect: pulumi.Bool(false), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Vertex Ai Endpoint Dedicated Endpoint +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations" +// "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/vertex" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := vertex.NewAiEndpoint(ctx, "endpoint", &vertex.AiEndpointArgs{ +// Name: pulumi.String("endpoint-name_8270"), +// DisplayName: pulumi.String("sample-endpoint"), +// Description: pulumi.String("A sample vertex endpoint"), +// Location: pulumi.String("us-central1"), +// Region: pulumi.String("us-central1"), +// Labels: pulumi.StringMap{ +// "label-one": pulumi.String("value-one"), +// }, +// DedicatedEndpointEnabled: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// _, err = organizations.LookupProject(ctx, &organizations.LookupProjectArgs{}, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` // // ## Import // @@ -136,6 +247,10 @@ type AiEndpoint struct { // (Output) // Output only. Timestamp when the DeployedModel was created. CreateTime pulumi.StringOutput `pulumi:"createTime"` + // Output only. DNS of the dedicated endpoint. Will only be populated if dedicatedEndpointEnabled is true. Format: `https://{endpointId}.{region}-{projectNumber}.prediction.vertexai.goog`. + DedicatedEndpointDns pulumi.StringOutput `pulumi:"dedicatedEndpointDns"` + // If true, the endpoint will be exposed through a dedicated DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS will be isolated from other users' traffic and will have better performance and reliability. Note: Once you enabled dedicated endpoint, you won't be able to send request to the shared DNS {region}-aiplatform.googleapis.com. The limitation will be removed soon. + DedicatedEndpointEnabled pulumi.BoolPtrOutput `pulumi:"dedicatedEndpointEnabled"` // Output only. The models deployed in this Endpoint. To add or remove DeployedModels use EndpointService.DeployModel and EndpointService.UndeployModel respectively. Models can also be deployed and undeployed using the [Cloud Console](https://console.cloud.google.com/vertex-ai/). // Structure is documented below. DeployedModels AiEndpointDeployedModelArrayOutput `pulumi:"deployedModels"` @@ -162,8 +277,14 @@ type AiEndpoint struct { ModelDeploymentMonitoringJob pulumi.StringOutput `pulumi:"modelDeploymentMonitoringJob"` // The resource name of the Endpoint. The name must be numeric with no leading zeros and can be at most 10 digits. Name pulumi.StringOutput `pulumi:"name"` - // The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. + // The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. Only one of the fields, `network` or `privateServiceConnectConfig`, can be set. Network pulumi.StringPtrOutput `pulumi:"network"` + // Configures the request-response logging for online prediction. + // Structure is documented below. + PredictRequestResponseLoggingConfig AiEndpointPredictRequestResponseLoggingConfigPtrOutput `pulumi:"predictRequestResponseLoggingConfig"` + // Configuration for private service connect. `network` and `privateServiceConnectConfig` are mutually exclusive. + // Structure is documented below. + PrivateServiceConnectConfig AiEndpointPrivateServiceConnectConfigPtrOutput `pulumi:"privateServiceConnectConfig"` // The ID of the project in which the resource belongs. // If it is not provided, the provider project is used. Project pulumi.StringOutput `pulumi:"project"` @@ -172,6 +293,14 @@ type AiEndpoint struct { PulumiLabels pulumi.StringMapOutput `pulumi:"pulumiLabels"` // The region for the resource Region pulumi.StringPtrOutput `pulumi:"region"` + // A map from a DeployedModel's id to the percentage of this Endpoint's traffic that should be forwarded to that DeployedModel. + // If a DeployedModel's id is not listed in this map, then it receives no traffic. + // The traffic percentage values must add up to 100, or map must be empty if the Endpoint is to not accept any traffic at a moment. + // > **Note:** The `trafficSplit` setting only applies after a model has been deployed to the endpoint. Re-applying a `vertex.AiEndpoint` + // resource without updating the `trafficSplit` post-deployment may lead to your deployed `trafficSplit` being lost; see + // the `deployModel` [example](https://cloud.google.com/vertex-ai/docs/general/deployment#deploy_a_model_to_an_endpoint) and + // [documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1beta1/projects.locations.endpoints/deployModel) for details. + TrafficSplit pulumi.StringPtrOutput `pulumi:"trafficSplit"` // Output only. Timestamp when this Endpoint was last updated. UpdateTime pulumi.StringOutput `pulumi:"updateTime"` } @@ -220,6 +349,10 @@ type aiEndpointState struct { // (Output) // Output only. Timestamp when the DeployedModel was created. CreateTime *string `pulumi:"createTime"` + // Output only. DNS of the dedicated endpoint. Will only be populated if dedicatedEndpointEnabled is true. Format: `https://{endpointId}.{region}-{projectNumber}.prediction.vertexai.goog`. + DedicatedEndpointDns *string `pulumi:"dedicatedEndpointDns"` + // If true, the endpoint will be exposed through a dedicated DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS will be isolated from other users' traffic and will have better performance and reliability. Note: Once you enabled dedicated endpoint, you won't be able to send request to the shared DNS {region}-aiplatform.googleapis.com. The limitation will be removed soon. + DedicatedEndpointEnabled *bool `pulumi:"dedicatedEndpointEnabled"` // Output only. The models deployed in this Endpoint. To add or remove DeployedModels use EndpointService.DeployModel and EndpointService.UndeployModel respectively. Models can also be deployed and undeployed using the [Cloud Console](https://console.cloud.google.com/vertex-ai/). // Structure is documented below. DeployedModels []AiEndpointDeployedModel `pulumi:"deployedModels"` @@ -246,8 +379,14 @@ type aiEndpointState struct { ModelDeploymentMonitoringJob *string `pulumi:"modelDeploymentMonitoringJob"` // The resource name of the Endpoint. The name must be numeric with no leading zeros and can be at most 10 digits. Name *string `pulumi:"name"` - // The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. + // The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. Only one of the fields, `network` or `privateServiceConnectConfig`, can be set. Network *string `pulumi:"network"` + // Configures the request-response logging for online prediction. + // Structure is documented below. + PredictRequestResponseLoggingConfig *AiEndpointPredictRequestResponseLoggingConfig `pulumi:"predictRequestResponseLoggingConfig"` + // Configuration for private service connect. `network` and `privateServiceConnectConfig` are mutually exclusive. + // Structure is documented below. + PrivateServiceConnectConfig *AiEndpointPrivateServiceConnectConfig `pulumi:"privateServiceConnectConfig"` // The ID of the project in which the resource belongs. // If it is not provided, the provider project is used. Project *string `pulumi:"project"` @@ -256,6 +395,14 @@ type aiEndpointState struct { PulumiLabels map[string]string `pulumi:"pulumiLabels"` // The region for the resource Region *string `pulumi:"region"` + // A map from a DeployedModel's id to the percentage of this Endpoint's traffic that should be forwarded to that DeployedModel. + // If a DeployedModel's id is not listed in this map, then it receives no traffic. + // The traffic percentage values must add up to 100, or map must be empty if the Endpoint is to not accept any traffic at a moment. + // > **Note:** The `trafficSplit` setting only applies after a model has been deployed to the endpoint. Re-applying a `vertex.AiEndpoint` + // resource without updating the `trafficSplit` post-deployment may lead to your deployed `trafficSplit` being lost; see + // the `deployModel` [example](https://cloud.google.com/vertex-ai/docs/general/deployment#deploy_a_model_to_an_endpoint) and + // [documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1beta1/projects.locations.endpoints/deployModel) for details. + TrafficSplit *string `pulumi:"trafficSplit"` // Output only. Timestamp when this Endpoint was last updated. UpdateTime *string `pulumi:"updateTime"` } @@ -264,6 +411,10 @@ type AiEndpointState struct { // (Output) // Output only. Timestamp when the DeployedModel was created. CreateTime pulumi.StringPtrInput + // Output only. DNS of the dedicated endpoint. Will only be populated if dedicatedEndpointEnabled is true. Format: `https://{endpointId}.{region}-{projectNumber}.prediction.vertexai.goog`. + DedicatedEndpointDns pulumi.StringPtrInput + // If true, the endpoint will be exposed through a dedicated DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS will be isolated from other users' traffic and will have better performance and reliability. Note: Once you enabled dedicated endpoint, you won't be able to send request to the shared DNS {region}-aiplatform.googleapis.com. The limitation will be removed soon. + DedicatedEndpointEnabled pulumi.BoolPtrInput // Output only. The models deployed in this Endpoint. To add or remove DeployedModels use EndpointService.DeployModel and EndpointService.UndeployModel respectively. Models can also be deployed and undeployed using the [Cloud Console](https://console.cloud.google.com/vertex-ai/). // Structure is documented below. DeployedModels AiEndpointDeployedModelArrayInput @@ -290,8 +441,14 @@ type AiEndpointState struct { ModelDeploymentMonitoringJob pulumi.StringPtrInput // The resource name of the Endpoint. The name must be numeric with no leading zeros and can be at most 10 digits. Name pulumi.StringPtrInput - // The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. + // The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. Only one of the fields, `network` or `privateServiceConnectConfig`, can be set. Network pulumi.StringPtrInput + // Configures the request-response logging for online prediction. + // Structure is documented below. + PredictRequestResponseLoggingConfig AiEndpointPredictRequestResponseLoggingConfigPtrInput + // Configuration for private service connect. `network` and `privateServiceConnectConfig` are mutually exclusive. + // Structure is documented below. + PrivateServiceConnectConfig AiEndpointPrivateServiceConnectConfigPtrInput // The ID of the project in which the resource belongs. // If it is not provided, the provider project is used. Project pulumi.StringPtrInput @@ -300,6 +457,14 @@ type AiEndpointState struct { PulumiLabels pulumi.StringMapInput // The region for the resource Region pulumi.StringPtrInput + // A map from a DeployedModel's id to the percentage of this Endpoint's traffic that should be forwarded to that DeployedModel. + // If a DeployedModel's id is not listed in this map, then it receives no traffic. + // The traffic percentage values must add up to 100, or map must be empty if the Endpoint is to not accept any traffic at a moment. + // > **Note:** The `trafficSplit` setting only applies after a model has been deployed to the endpoint. Re-applying a `vertex.AiEndpoint` + // resource without updating the `trafficSplit` post-deployment may lead to your deployed `trafficSplit` being lost; see + // the `deployModel` [example](https://cloud.google.com/vertex-ai/docs/general/deployment#deploy_a_model_to_an_endpoint) and + // [documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1beta1/projects.locations.endpoints/deployModel) for details. + TrafficSplit pulumi.StringPtrInput // Output only. Timestamp when this Endpoint was last updated. UpdateTime pulumi.StringPtrInput } @@ -309,6 +474,8 @@ func (AiEndpointState) ElementType() reflect.Type { } type aiEndpointArgs struct { + // If true, the endpoint will be exposed through a dedicated DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS will be isolated from other users' traffic and will have better performance and reliability. Note: Once you enabled dedicated endpoint, you won't be able to send request to the shared DNS {region}-aiplatform.googleapis.com. The limitation will be removed soon. + DedicatedEndpointEnabled *bool `pulumi:"dedicatedEndpointEnabled"` // The description of the Endpoint. Description *string `pulumi:"description"` // Required. The display name of the Endpoint. The name can be up to 128 characters long and can consist of any UTF-8 characters. @@ -326,17 +493,33 @@ type aiEndpointArgs struct { Location string `pulumi:"location"` // The resource name of the Endpoint. The name must be numeric with no leading zeros and can be at most 10 digits. Name *string `pulumi:"name"` - // The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. + // The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. Only one of the fields, `network` or `privateServiceConnectConfig`, can be set. Network *string `pulumi:"network"` + // Configures the request-response logging for online prediction. + // Structure is documented below. + PredictRequestResponseLoggingConfig *AiEndpointPredictRequestResponseLoggingConfig `pulumi:"predictRequestResponseLoggingConfig"` + // Configuration for private service connect. `network` and `privateServiceConnectConfig` are mutually exclusive. + // Structure is documented below. + PrivateServiceConnectConfig *AiEndpointPrivateServiceConnectConfig `pulumi:"privateServiceConnectConfig"` // The ID of the project in which the resource belongs. // If it is not provided, the provider project is used. Project *string `pulumi:"project"` // The region for the resource Region *string `pulumi:"region"` + // A map from a DeployedModel's id to the percentage of this Endpoint's traffic that should be forwarded to that DeployedModel. + // If a DeployedModel's id is not listed in this map, then it receives no traffic. + // The traffic percentage values must add up to 100, or map must be empty if the Endpoint is to not accept any traffic at a moment. + // > **Note:** The `trafficSplit` setting only applies after a model has been deployed to the endpoint. Re-applying a `vertex.AiEndpoint` + // resource without updating the `trafficSplit` post-deployment may lead to your deployed `trafficSplit` being lost; see + // the `deployModel` [example](https://cloud.google.com/vertex-ai/docs/general/deployment#deploy_a_model_to_an_endpoint) and + // [documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1beta1/projects.locations.endpoints/deployModel) for details. + TrafficSplit *string `pulumi:"trafficSplit"` } // The set of arguments for constructing a AiEndpoint resource. type AiEndpointArgs struct { + // If true, the endpoint will be exposed through a dedicated DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS will be isolated from other users' traffic and will have better performance and reliability. Note: Once you enabled dedicated endpoint, you won't be able to send request to the shared DNS {region}-aiplatform.googleapis.com. The limitation will be removed soon. + DedicatedEndpointEnabled pulumi.BoolPtrInput // The description of the Endpoint. Description pulumi.StringPtrInput // Required. The display name of the Endpoint. The name can be up to 128 characters long and can consist of any UTF-8 characters. @@ -354,13 +537,27 @@ type AiEndpointArgs struct { Location pulumi.StringInput // The resource name of the Endpoint. The name must be numeric with no leading zeros and can be at most 10 digits. Name pulumi.StringPtrInput - // The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. + // The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. Only one of the fields, `network` or `privateServiceConnectConfig`, can be set. Network pulumi.StringPtrInput + // Configures the request-response logging for online prediction. + // Structure is documented below. + PredictRequestResponseLoggingConfig AiEndpointPredictRequestResponseLoggingConfigPtrInput + // Configuration for private service connect. `network` and `privateServiceConnectConfig` are mutually exclusive. + // Structure is documented below. + PrivateServiceConnectConfig AiEndpointPrivateServiceConnectConfigPtrInput // The ID of the project in which the resource belongs. // If it is not provided, the provider project is used. Project pulumi.StringPtrInput // The region for the resource Region pulumi.StringPtrInput + // A map from a DeployedModel's id to the percentage of this Endpoint's traffic that should be forwarded to that DeployedModel. + // If a DeployedModel's id is not listed in this map, then it receives no traffic. + // The traffic percentage values must add up to 100, or map must be empty if the Endpoint is to not accept any traffic at a moment. + // > **Note:** The `trafficSplit` setting only applies after a model has been deployed to the endpoint. Re-applying a `vertex.AiEndpoint` + // resource without updating the `trafficSplit` post-deployment may lead to your deployed `trafficSplit` being lost; see + // the `deployModel` [example](https://cloud.google.com/vertex-ai/docs/general/deployment#deploy_a_model_to_an_endpoint) and + // [documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1beta1/projects.locations.endpoints/deployModel) for details. + TrafficSplit pulumi.StringPtrInput } func (AiEndpointArgs) ElementType() reflect.Type { @@ -456,6 +653,16 @@ func (o AiEndpointOutput) CreateTime() pulumi.StringOutput { return o.ApplyT(func(v *AiEndpoint) pulumi.StringOutput { return v.CreateTime }).(pulumi.StringOutput) } +// Output only. DNS of the dedicated endpoint. Will only be populated if dedicatedEndpointEnabled is true. Format: `https://{endpointId}.{region}-{projectNumber}.prediction.vertexai.goog`. +func (o AiEndpointOutput) DedicatedEndpointDns() pulumi.StringOutput { + return o.ApplyT(func(v *AiEndpoint) pulumi.StringOutput { return v.DedicatedEndpointDns }).(pulumi.StringOutput) +} + +// If true, the endpoint will be exposed through a dedicated DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS will be isolated from other users' traffic and will have better performance and reliability. Note: Once you enabled dedicated endpoint, you won't be able to send request to the shared DNS {region}-aiplatform.googleapis.com. The limitation will be removed soon. +func (o AiEndpointOutput) DedicatedEndpointEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AiEndpoint) pulumi.BoolPtrOutput { return v.DedicatedEndpointEnabled }).(pulumi.BoolPtrOutput) +} + // Output only. The models deployed in this Endpoint. To add or remove DeployedModels use EndpointService.DeployModel and EndpointService.UndeployModel respectively. Models can also be deployed and undeployed using the [Cloud Console](https://console.cloud.google.com/vertex-ai/). // Structure is documented below. func (o AiEndpointOutput) DeployedModels() AiEndpointDeployedModelArrayOutput { @@ -512,11 +719,27 @@ func (o AiEndpointOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *AiEndpoint) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } -// The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. +// The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. Only one of the fields, `network` or `privateServiceConnectConfig`, can be set. func (o AiEndpointOutput) Network() pulumi.StringPtrOutput { return o.ApplyT(func(v *AiEndpoint) pulumi.StringPtrOutput { return v.Network }).(pulumi.StringPtrOutput) } +// Configures the request-response logging for online prediction. +// Structure is documented below. +func (o AiEndpointOutput) PredictRequestResponseLoggingConfig() AiEndpointPredictRequestResponseLoggingConfigPtrOutput { + return o.ApplyT(func(v *AiEndpoint) AiEndpointPredictRequestResponseLoggingConfigPtrOutput { + return v.PredictRequestResponseLoggingConfig + }).(AiEndpointPredictRequestResponseLoggingConfigPtrOutput) +} + +// Configuration for private service connect. `network` and `privateServiceConnectConfig` are mutually exclusive. +// Structure is documented below. +func (o AiEndpointOutput) PrivateServiceConnectConfig() AiEndpointPrivateServiceConnectConfigPtrOutput { + return o.ApplyT(func(v *AiEndpoint) AiEndpointPrivateServiceConnectConfigPtrOutput { + return v.PrivateServiceConnectConfig + }).(AiEndpointPrivateServiceConnectConfigPtrOutput) +} + // The ID of the project in which the resource belongs. // If it is not provided, the provider project is used. func (o AiEndpointOutput) Project() pulumi.StringOutput { @@ -534,6 +757,17 @@ func (o AiEndpointOutput) Region() pulumi.StringPtrOutput { return o.ApplyT(func(v *AiEndpoint) pulumi.StringPtrOutput { return v.Region }).(pulumi.StringPtrOutput) } +// A map from a DeployedModel's id to the percentage of this Endpoint's traffic that should be forwarded to that DeployedModel. +// If a DeployedModel's id is not listed in this map, then it receives no traffic. +// The traffic percentage values must add up to 100, or map must be empty if the Endpoint is to not accept any traffic at a moment. +// > **Note:** The `trafficSplit` setting only applies after a model has been deployed to the endpoint. Re-applying a `vertex.AiEndpoint` +// resource without updating the `trafficSplit` post-deployment may lead to your deployed `trafficSplit` being lost; see +// the `deployModel` [example](https://cloud.google.com/vertex-ai/docs/general/deployment#deploy_a_model_to_an_endpoint) and +// [documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1beta1/projects.locations.endpoints/deployModel) for details. +func (o AiEndpointOutput) TrafficSplit() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AiEndpoint) pulumi.StringPtrOutput { return v.TrafficSplit }).(pulumi.StringPtrOutput) +} + // Output only. Timestamp when this Endpoint was last updated. func (o AiEndpointOutput) UpdateTime() pulumi.StringOutput { return o.ApplyT(func(v *AiEndpoint) pulumi.StringOutput { return v.UpdateTime }).(pulumi.StringOutput) diff --git a/sdk/go/gcp/vertex/aiFeatureOnlineStoreFeatureview.go b/sdk/go/gcp/vertex/aiFeatureOnlineStoreFeatureview.go index d97b013990..c5434baa3a 100644 --- a/sdk/go/gcp/vertex/aiFeatureOnlineStoreFeatureview.go +++ b/sdk/go/gcp/vertex/aiFeatureOnlineStoreFeatureview.go @@ -286,8 +286,8 @@ import ( // return err // } // project, err := organizations.NewProject(ctx, "project", &organizations.ProjectArgs{ -// ProjectId: pulumi.String("tf-test_69391"), -// Name: pulumi.String("tf-test_8270"), +// ProjectId: pulumi.String("tf-test_41150"), +// Name: pulumi.String("tf-test_89313"), // OrgId: pulumi.String("123456789"), // BillingAccount: pulumi.String("000000-0000000-0000000-000000"), // DeletionPolicy: pulumi.String("DELETE"), diff --git a/sdk/go/gcp/vertex/pulumiTypes.go b/sdk/go/gcp/vertex/pulumiTypes.go index 012c7e54b6..32e8301865 100644 --- a/sdk/go/gcp/vertex/pulumiTypes.go +++ b/sdk/go/gcp/vertex/pulumiTypes.go @@ -1976,6 +1976,499 @@ func (o AiEndpointIamMemberConditionPtrOutput) Title() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +type AiEndpointPredictRequestResponseLoggingConfig struct { + // BigQuery table for logging. If only given a project, a new dataset will be created with name `logging__` where will be made BigQuery-dataset-name compatible (e.g. most special characters will become underscores). If no table name is given, a new table will be created with name `requestResponseLogging` + // Structure is documented below. + BigqueryDestination *AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination `pulumi:"bigqueryDestination"` + // If logging is enabled or not. + Enabled *bool `pulumi:"enabled"` + // Percentage of requests to be logged, expressed as a fraction in range(0,1] + SamplingRate *float64 `pulumi:"samplingRate"` +} + +// AiEndpointPredictRequestResponseLoggingConfigInput is an input type that accepts AiEndpointPredictRequestResponseLoggingConfigArgs and AiEndpointPredictRequestResponseLoggingConfigOutput values. +// You can construct a concrete instance of `AiEndpointPredictRequestResponseLoggingConfigInput` via: +// +// AiEndpointPredictRequestResponseLoggingConfigArgs{...} +type AiEndpointPredictRequestResponseLoggingConfigInput interface { + pulumi.Input + + ToAiEndpointPredictRequestResponseLoggingConfigOutput() AiEndpointPredictRequestResponseLoggingConfigOutput + ToAiEndpointPredictRequestResponseLoggingConfigOutputWithContext(context.Context) AiEndpointPredictRequestResponseLoggingConfigOutput +} + +type AiEndpointPredictRequestResponseLoggingConfigArgs struct { + // BigQuery table for logging. If only given a project, a new dataset will be created with name `logging__` where will be made BigQuery-dataset-name compatible (e.g. most special characters will become underscores). If no table name is given, a new table will be created with name `requestResponseLogging` + // Structure is documented below. + BigqueryDestination AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrInput `pulumi:"bigqueryDestination"` + // If logging is enabled or not. + Enabled pulumi.BoolPtrInput `pulumi:"enabled"` + // Percentage of requests to be logged, expressed as a fraction in range(0,1] + SamplingRate pulumi.Float64PtrInput `pulumi:"samplingRate"` +} + +func (AiEndpointPredictRequestResponseLoggingConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AiEndpointPredictRequestResponseLoggingConfig)(nil)).Elem() +} + +func (i AiEndpointPredictRequestResponseLoggingConfigArgs) ToAiEndpointPredictRequestResponseLoggingConfigOutput() AiEndpointPredictRequestResponseLoggingConfigOutput { + return i.ToAiEndpointPredictRequestResponseLoggingConfigOutputWithContext(context.Background()) +} + +func (i AiEndpointPredictRequestResponseLoggingConfigArgs) ToAiEndpointPredictRequestResponseLoggingConfigOutputWithContext(ctx context.Context) AiEndpointPredictRequestResponseLoggingConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(AiEndpointPredictRequestResponseLoggingConfigOutput) +} + +func (i AiEndpointPredictRequestResponseLoggingConfigArgs) ToAiEndpointPredictRequestResponseLoggingConfigPtrOutput() AiEndpointPredictRequestResponseLoggingConfigPtrOutput { + return i.ToAiEndpointPredictRequestResponseLoggingConfigPtrOutputWithContext(context.Background()) +} + +func (i AiEndpointPredictRequestResponseLoggingConfigArgs) ToAiEndpointPredictRequestResponseLoggingConfigPtrOutputWithContext(ctx context.Context) AiEndpointPredictRequestResponseLoggingConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AiEndpointPredictRequestResponseLoggingConfigOutput).ToAiEndpointPredictRequestResponseLoggingConfigPtrOutputWithContext(ctx) +} + +// AiEndpointPredictRequestResponseLoggingConfigPtrInput is an input type that accepts AiEndpointPredictRequestResponseLoggingConfigArgs, AiEndpointPredictRequestResponseLoggingConfigPtr and AiEndpointPredictRequestResponseLoggingConfigPtrOutput values. +// You can construct a concrete instance of `AiEndpointPredictRequestResponseLoggingConfigPtrInput` via: +// +// AiEndpointPredictRequestResponseLoggingConfigArgs{...} +// +// or: +// +// nil +type AiEndpointPredictRequestResponseLoggingConfigPtrInput interface { + pulumi.Input + + ToAiEndpointPredictRequestResponseLoggingConfigPtrOutput() AiEndpointPredictRequestResponseLoggingConfigPtrOutput + ToAiEndpointPredictRequestResponseLoggingConfigPtrOutputWithContext(context.Context) AiEndpointPredictRequestResponseLoggingConfigPtrOutput +} + +type aiEndpointPredictRequestResponseLoggingConfigPtrType AiEndpointPredictRequestResponseLoggingConfigArgs + +func AiEndpointPredictRequestResponseLoggingConfigPtr(v *AiEndpointPredictRequestResponseLoggingConfigArgs) AiEndpointPredictRequestResponseLoggingConfigPtrInput { + return (*aiEndpointPredictRequestResponseLoggingConfigPtrType)(v) +} + +func (*aiEndpointPredictRequestResponseLoggingConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AiEndpointPredictRequestResponseLoggingConfig)(nil)).Elem() +} + +func (i *aiEndpointPredictRequestResponseLoggingConfigPtrType) ToAiEndpointPredictRequestResponseLoggingConfigPtrOutput() AiEndpointPredictRequestResponseLoggingConfigPtrOutput { + return i.ToAiEndpointPredictRequestResponseLoggingConfigPtrOutputWithContext(context.Background()) +} + +func (i *aiEndpointPredictRequestResponseLoggingConfigPtrType) ToAiEndpointPredictRequestResponseLoggingConfigPtrOutputWithContext(ctx context.Context) AiEndpointPredictRequestResponseLoggingConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AiEndpointPredictRequestResponseLoggingConfigPtrOutput) +} + +type AiEndpointPredictRequestResponseLoggingConfigOutput struct{ *pulumi.OutputState } + +func (AiEndpointPredictRequestResponseLoggingConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AiEndpointPredictRequestResponseLoggingConfig)(nil)).Elem() +} + +func (o AiEndpointPredictRequestResponseLoggingConfigOutput) ToAiEndpointPredictRequestResponseLoggingConfigOutput() AiEndpointPredictRequestResponseLoggingConfigOutput { + return o +} + +func (o AiEndpointPredictRequestResponseLoggingConfigOutput) ToAiEndpointPredictRequestResponseLoggingConfigOutputWithContext(ctx context.Context) AiEndpointPredictRequestResponseLoggingConfigOutput { + return o +} + +func (o AiEndpointPredictRequestResponseLoggingConfigOutput) ToAiEndpointPredictRequestResponseLoggingConfigPtrOutput() AiEndpointPredictRequestResponseLoggingConfigPtrOutput { + return o.ToAiEndpointPredictRequestResponseLoggingConfigPtrOutputWithContext(context.Background()) +} + +func (o AiEndpointPredictRequestResponseLoggingConfigOutput) ToAiEndpointPredictRequestResponseLoggingConfigPtrOutputWithContext(ctx context.Context) AiEndpointPredictRequestResponseLoggingConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AiEndpointPredictRequestResponseLoggingConfig) *AiEndpointPredictRequestResponseLoggingConfig { + return &v + }).(AiEndpointPredictRequestResponseLoggingConfigPtrOutput) +} + +// BigQuery table for logging. If only given a project, a new dataset will be created with name `logging__` where will be made BigQuery-dataset-name compatible (e.g. most special characters will become underscores). If no table name is given, a new table will be created with name `requestResponseLogging` +// Structure is documented below. +func (o AiEndpointPredictRequestResponseLoggingConfigOutput) BigqueryDestination() AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutput { + return o.ApplyT(func(v AiEndpointPredictRequestResponseLoggingConfig) *AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination { + return v.BigqueryDestination + }).(AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutput) +} + +// If logging is enabled or not. +func (o AiEndpointPredictRequestResponseLoggingConfigOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v AiEndpointPredictRequestResponseLoggingConfig) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +} + +// Percentage of requests to be logged, expressed as a fraction in range(0,1] +func (o AiEndpointPredictRequestResponseLoggingConfigOutput) SamplingRate() pulumi.Float64PtrOutput { + return o.ApplyT(func(v AiEndpointPredictRequestResponseLoggingConfig) *float64 { return v.SamplingRate }).(pulumi.Float64PtrOutput) +} + +type AiEndpointPredictRequestResponseLoggingConfigPtrOutput struct{ *pulumi.OutputState } + +func (AiEndpointPredictRequestResponseLoggingConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AiEndpointPredictRequestResponseLoggingConfig)(nil)).Elem() +} + +func (o AiEndpointPredictRequestResponseLoggingConfigPtrOutput) ToAiEndpointPredictRequestResponseLoggingConfigPtrOutput() AiEndpointPredictRequestResponseLoggingConfigPtrOutput { + return o +} + +func (o AiEndpointPredictRequestResponseLoggingConfigPtrOutput) ToAiEndpointPredictRequestResponseLoggingConfigPtrOutputWithContext(ctx context.Context) AiEndpointPredictRequestResponseLoggingConfigPtrOutput { + return o +} + +func (o AiEndpointPredictRequestResponseLoggingConfigPtrOutput) Elem() AiEndpointPredictRequestResponseLoggingConfigOutput { + return o.ApplyT(func(v *AiEndpointPredictRequestResponseLoggingConfig) AiEndpointPredictRequestResponseLoggingConfig { + if v != nil { + return *v + } + var ret AiEndpointPredictRequestResponseLoggingConfig + return ret + }).(AiEndpointPredictRequestResponseLoggingConfigOutput) +} + +// BigQuery table for logging. If only given a project, a new dataset will be created with name `logging__` where will be made BigQuery-dataset-name compatible (e.g. most special characters will become underscores). If no table name is given, a new table will be created with name `requestResponseLogging` +// Structure is documented below. +func (o AiEndpointPredictRequestResponseLoggingConfigPtrOutput) BigqueryDestination() AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutput { + return o.ApplyT(func(v *AiEndpointPredictRequestResponseLoggingConfig) *AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination { + if v == nil { + return nil + } + return v.BigqueryDestination + }).(AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutput) +} + +// If logging is enabled or not. +func (o AiEndpointPredictRequestResponseLoggingConfigPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AiEndpointPredictRequestResponseLoggingConfig) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// Percentage of requests to be logged, expressed as a fraction in range(0,1] +func (o AiEndpointPredictRequestResponseLoggingConfigPtrOutput) SamplingRate() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *AiEndpointPredictRequestResponseLoggingConfig) *float64 { + if v == nil { + return nil + } + return v.SamplingRate + }).(pulumi.Float64PtrOutput) +} + +type AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination struct { + // BigQuery URI to a project or table, up to 2000 characters long. When only the project is specified, the Dataset and Table is created. When the full table reference is specified, the Dataset must exist and table must not exist. Accepted forms: - BigQuery path. For example: `bq://projectId` or `bq://projectId.bqDatasetId` or `bq://projectId.bqDatasetId.bqTableId`. + OutputUri *string `pulumi:"outputUri"` +} + +// AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationInput is an input type that accepts AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs and AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationOutput values. +// You can construct a concrete instance of `AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationInput` via: +// +// AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs{...} +type AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationInput interface { + pulumi.Input + + ToAiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationOutput() AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationOutput + ToAiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationOutputWithContext(context.Context) AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationOutput +} + +type AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs struct { + // BigQuery URI to a project or table, up to 2000 characters long. When only the project is specified, the Dataset and Table is created. When the full table reference is specified, the Dataset must exist and table must not exist. Accepted forms: - BigQuery path. For example: `bq://projectId` or `bq://projectId.bqDatasetId` or `bq://projectId.bqDatasetId.bqTableId`. + OutputUri pulumi.StringPtrInput `pulumi:"outputUri"` +} + +func (AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination)(nil)).Elem() +} + +func (i AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs) ToAiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationOutput() AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationOutput { + return i.ToAiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationOutputWithContext(context.Background()) +} + +func (i AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs) ToAiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationOutputWithContext(ctx context.Context) AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationOutput { + return pulumi.ToOutputWithContext(ctx, i).(AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationOutput) +} + +func (i AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs) ToAiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutput() AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutput { + return i.ToAiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutputWithContext(context.Background()) +} + +func (i AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs) ToAiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutputWithContext(ctx context.Context) AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationOutput).ToAiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutputWithContext(ctx) +} + +// AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrInput is an input type that accepts AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs, AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtr and AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutput values. +// You can construct a concrete instance of `AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrInput` via: +// +// AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs{...} +// +// or: +// +// nil +type AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrInput interface { + pulumi.Input + + ToAiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutput() AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutput + ToAiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutputWithContext(context.Context) AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutput +} + +type aiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrType AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs + +func AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtr(v *AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs) AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrInput { + return (*aiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrType)(v) +} + +func (*aiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination)(nil)).Elem() +} + +func (i *aiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrType) ToAiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutput() AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutput { + return i.ToAiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutputWithContext(context.Background()) +} + +func (i *aiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrType) ToAiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutputWithContext(ctx context.Context) AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutput) +} + +type AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationOutput struct{ *pulumi.OutputState } + +func (AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination)(nil)).Elem() +} + +func (o AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationOutput) ToAiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationOutput() AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationOutput { + return o +} + +func (o AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationOutput) ToAiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationOutputWithContext(ctx context.Context) AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationOutput { + return o +} + +func (o AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationOutput) ToAiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutput() AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutput { + return o.ToAiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutputWithContext(context.Background()) +} + +func (o AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationOutput) ToAiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutputWithContext(ctx context.Context) AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination) *AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination { + return &v + }).(AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutput) +} + +// BigQuery URI to a project or table, up to 2000 characters long. When only the project is specified, the Dataset and Table is created. When the full table reference is specified, the Dataset must exist and table must not exist. Accepted forms: - BigQuery path. For example: `bq://projectId` or `bq://projectId.bqDatasetId` or `bq://projectId.bqDatasetId.bqTableId`. +func (o AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationOutput) OutputUri() pulumi.StringPtrOutput { + return o.ApplyT(func(v AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination) *string { return v.OutputUri }).(pulumi.StringPtrOutput) +} + +type AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutput struct{ *pulumi.OutputState } + +func (AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination)(nil)).Elem() +} + +func (o AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutput) ToAiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutput() AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutput { + return o +} + +func (o AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutput) ToAiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutputWithContext(ctx context.Context) AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutput { + return o +} + +func (o AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutput) Elem() AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationOutput { + return o.ApplyT(func(v *AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination) AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination { + if v != nil { + return *v + } + var ret AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination + return ret + }).(AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationOutput) +} + +// BigQuery URI to a project or table, up to 2000 characters long. When only the project is specified, the Dataset and Table is created. When the full table reference is specified, the Dataset must exist and table must not exist. Accepted forms: - BigQuery path. For example: `bq://projectId` or `bq://projectId.bqDatasetId` or `bq://projectId.bqDatasetId.bqTableId`. +func (o AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutput) OutputUri() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination) *string { + if v == nil { + return nil + } + return v.OutputUri + }).(pulumi.StringPtrOutput) +} + +type AiEndpointPrivateServiceConnectConfig struct { + // Required. If true, expose the IndexEndpoint via private service connect. + EnablePrivateServiceConnect bool `pulumi:"enablePrivateServiceConnect"` + // If set to true, enable secure private service connect with IAM authorization. Otherwise, private service connect will be done without authorization. Note latency will be slightly increased if authorization is enabled. + EnableSecurePrivateServiceConnect *bool `pulumi:"enableSecurePrivateServiceConnect"` + // A list of Projects from which the forwarding rule will target the service attachment. + ProjectAllowlists []string `pulumi:"projectAllowlists"` +} + +// AiEndpointPrivateServiceConnectConfigInput is an input type that accepts AiEndpointPrivateServiceConnectConfigArgs and AiEndpointPrivateServiceConnectConfigOutput values. +// You can construct a concrete instance of `AiEndpointPrivateServiceConnectConfigInput` via: +// +// AiEndpointPrivateServiceConnectConfigArgs{...} +type AiEndpointPrivateServiceConnectConfigInput interface { + pulumi.Input + + ToAiEndpointPrivateServiceConnectConfigOutput() AiEndpointPrivateServiceConnectConfigOutput + ToAiEndpointPrivateServiceConnectConfigOutputWithContext(context.Context) AiEndpointPrivateServiceConnectConfigOutput +} + +type AiEndpointPrivateServiceConnectConfigArgs struct { + // Required. If true, expose the IndexEndpoint via private service connect. + EnablePrivateServiceConnect pulumi.BoolInput `pulumi:"enablePrivateServiceConnect"` + // If set to true, enable secure private service connect with IAM authorization. Otherwise, private service connect will be done without authorization. Note latency will be slightly increased if authorization is enabled. + EnableSecurePrivateServiceConnect pulumi.BoolPtrInput `pulumi:"enableSecurePrivateServiceConnect"` + // A list of Projects from which the forwarding rule will target the service attachment. + ProjectAllowlists pulumi.StringArrayInput `pulumi:"projectAllowlists"` +} + +func (AiEndpointPrivateServiceConnectConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AiEndpointPrivateServiceConnectConfig)(nil)).Elem() +} + +func (i AiEndpointPrivateServiceConnectConfigArgs) ToAiEndpointPrivateServiceConnectConfigOutput() AiEndpointPrivateServiceConnectConfigOutput { + return i.ToAiEndpointPrivateServiceConnectConfigOutputWithContext(context.Background()) +} + +func (i AiEndpointPrivateServiceConnectConfigArgs) ToAiEndpointPrivateServiceConnectConfigOutputWithContext(ctx context.Context) AiEndpointPrivateServiceConnectConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(AiEndpointPrivateServiceConnectConfigOutput) +} + +func (i AiEndpointPrivateServiceConnectConfigArgs) ToAiEndpointPrivateServiceConnectConfigPtrOutput() AiEndpointPrivateServiceConnectConfigPtrOutput { + return i.ToAiEndpointPrivateServiceConnectConfigPtrOutputWithContext(context.Background()) +} + +func (i AiEndpointPrivateServiceConnectConfigArgs) ToAiEndpointPrivateServiceConnectConfigPtrOutputWithContext(ctx context.Context) AiEndpointPrivateServiceConnectConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AiEndpointPrivateServiceConnectConfigOutput).ToAiEndpointPrivateServiceConnectConfigPtrOutputWithContext(ctx) +} + +// AiEndpointPrivateServiceConnectConfigPtrInput is an input type that accepts AiEndpointPrivateServiceConnectConfigArgs, AiEndpointPrivateServiceConnectConfigPtr and AiEndpointPrivateServiceConnectConfigPtrOutput values. +// You can construct a concrete instance of `AiEndpointPrivateServiceConnectConfigPtrInput` via: +// +// AiEndpointPrivateServiceConnectConfigArgs{...} +// +// or: +// +// nil +type AiEndpointPrivateServiceConnectConfigPtrInput interface { + pulumi.Input + + ToAiEndpointPrivateServiceConnectConfigPtrOutput() AiEndpointPrivateServiceConnectConfigPtrOutput + ToAiEndpointPrivateServiceConnectConfigPtrOutputWithContext(context.Context) AiEndpointPrivateServiceConnectConfigPtrOutput +} + +type aiEndpointPrivateServiceConnectConfigPtrType AiEndpointPrivateServiceConnectConfigArgs + +func AiEndpointPrivateServiceConnectConfigPtr(v *AiEndpointPrivateServiceConnectConfigArgs) AiEndpointPrivateServiceConnectConfigPtrInput { + return (*aiEndpointPrivateServiceConnectConfigPtrType)(v) +} + +func (*aiEndpointPrivateServiceConnectConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AiEndpointPrivateServiceConnectConfig)(nil)).Elem() +} + +func (i *aiEndpointPrivateServiceConnectConfigPtrType) ToAiEndpointPrivateServiceConnectConfigPtrOutput() AiEndpointPrivateServiceConnectConfigPtrOutput { + return i.ToAiEndpointPrivateServiceConnectConfigPtrOutputWithContext(context.Background()) +} + +func (i *aiEndpointPrivateServiceConnectConfigPtrType) ToAiEndpointPrivateServiceConnectConfigPtrOutputWithContext(ctx context.Context) AiEndpointPrivateServiceConnectConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AiEndpointPrivateServiceConnectConfigPtrOutput) +} + +type AiEndpointPrivateServiceConnectConfigOutput struct{ *pulumi.OutputState } + +func (AiEndpointPrivateServiceConnectConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AiEndpointPrivateServiceConnectConfig)(nil)).Elem() +} + +func (o AiEndpointPrivateServiceConnectConfigOutput) ToAiEndpointPrivateServiceConnectConfigOutput() AiEndpointPrivateServiceConnectConfigOutput { + return o +} + +func (o AiEndpointPrivateServiceConnectConfigOutput) ToAiEndpointPrivateServiceConnectConfigOutputWithContext(ctx context.Context) AiEndpointPrivateServiceConnectConfigOutput { + return o +} + +func (o AiEndpointPrivateServiceConnectConfigOutput) ToAiEndpointPrivateServiceConnectConfigPtrOutput() AiEndpointPrivateServiceConnectConfigPtrOutput { + return o.ToAiEndpointPrivateServiceConnectConfigPtrOutputWithContext(context.Background()) +} + +func (o AiEndpointPrivateServiceConnectConfigOutput) ToAiEndpointPrivateServiceConnectConfigPtrOutputWithContext(ctx context.Context) AiEndpointPrivateServiceConnectConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AiEndpointPrivateServiceConnectConfig) *AiEndpointPrivateServiceConnectConfig { + return &v + }).(AiEndpointPrivateServiceConnectConfigPtrOutput) +} + +// Required. If true, expose the IndexEndpoint via private service connect. +func (o AiEndpointPrivateServiceConnectConfigOutput) EnablePrivateServiceConnect() pulumi.BoolOutput { + return o.ApplyT(func(v AiEndpointPrivateServiceConnectConfig) bool { return v.EnablePrivateServiceConnect }).(pulumi.BoolOutput) +} + +// If set to true, enable secure private service connect with IAM authorization. Otherwise, private service connect will be done without authorization. Note latency will be slightly increased if authorization is enabled. +func (o AiEndpointPrivateServiceConnectConfigOutput) EnableSecurePrivateServiceConnect() pulumi.BoolPtrOutput { + return o.ApplyT(func(v AiEndpointPrivateServiceConnectConfig) *bool { return v.EnableSecurePrivateServiceConnect }).(pulumi.BoolPtrOutput) +} + +// A list of Projects from which the forwarding rule will target the service attachment. +func (o AiEndpointPrivateServiceConnectConfigOutput) ProjectAllowlists() pulumi.StringArrayOutput { + return o.ApplyT(func(v AiEndpointPrivateServiceConnectConfig) []string { return v.ProjectAllowlists }).(pulumi.StringArrayOutput) +} + +type AiEndpointPrivateServiceConnectConfigPtrOutput struct{ *pulumi.OutputState } + +func (AiEndpointPrivateServiceConnectConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AiEndpointPrivateServiceConnectConfig)(nil)).Elem() +} + +func (o AiEndpointPrivateServiceConnectConfigPtrOutput) ToAiEndpointPrivateServiceConnectConfigPtrOutput() AiEndpointPrivateServiceConnectConfigPtrOutput { + return o +} + +func (o AiEndpointPrivateServiceConnectConfigPtrOutput) ToAiEndpointPrivateServiceConnectConfigPtrOutputWithContext(ctx context.Context) AiEndpointPrivateServiceConnectConfigPtrOutput { + return o +} + +func (o AiEndpointPrivateServiceConnectConfigPtrOutput) Elem() AiEndpointPrivateServiceConnectConfigOutput { + return o.ApplyT(func(v *AiEndpointPrivateServiceConnectConfig) AiEndpointPrivateServiceConnectConfig { + if v != nil { + return *v + } + var ret AiEndpointPrivateServiceConnectConfig + return ret + }).(AiEndpointPrivateServiceConnectConfigOutput) +} + +// Required. If true, expose the IndexEndpoint via private service connect. +func (o AiEndpointPrivateServiceConnectConfigPtrOutput) EnablePrivateServiceConnect() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AiEndpointPrivateServiceConnectConfig) *bool { + if v == nil { + return nil + } + return &v.EnablePrivateServiceConnect + }).(pulumi.BoolPtrOutput) +} + +// If set to true, enable secure private service connect with IAM authorization. Otherwise, private service connect will be done without authorization. Note latency will be slightly increased if authorization is enabled. +func (o AiEndpointPrivateServiceConnectConfigPtrOutput) EnableSecurePrivateServiceConnect() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AiEndpointPrivateServiceConnectConfig) *bool { + if v == nil { + return nil + } + return v.EnableSecurePrivateServiceConnect + }).(pulumi.BoolPtrOutput) +} + +// A list of Projects from which the forwarding rule will target the service attachment. +func (o AiEndpointPrivateServiceConnectConfigPtrOutput) ProjectAllowlists() pulumi.StringArrayOutput { + return o.ApplyT(func(v *AiEndpointPrivateServiceConnectConfig) []string { + if v == nil { + return nil + } + return v.ProjectAllowlists + }).(pulumi.StringArrayOutput) +} + type AiFeatureGroupBigQuery struct { // The BigQuery source URI that points to either a BigQuery Table or View. // Structure is documented below. @@ -9898,6 +10391,12 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*AiEndpointIamBindingConditionPtrInput)(nil)).Elem(), AiEndpointIamBindingConditionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AiEndpointIamMemberConditionInput)(nil)).Elem(), AiEndpointIamMemberConditionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AiEndpointIamMemberConditionPtrInput)(nil)).Elem(), AiEndpointIamMemberConditionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AiEndpointPredictRequestResponseLoggingConfigInput)(nil)).Elem(), AiEndpointPredictRequestResponseLoggingConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AiEndpointPredictRequestResponseLoggingConfigPtrInput)(nil)).Elem(), AiEndpointPredictRequestResponseLoggingConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationInput)(nil)).Elem(), AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrInput)(nil)).Elem(), AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AiEndpointPrivateServiceConnectConfigInput)(nil)).Elem(), AiEndpointPrivateServiceConnectConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AiEndpointPrivateServiceConnectConfigPtrInput)(nil)).Elem(), AiEndpointPrivateServiceConnectConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AiFeatureGroupBigQueryInput)(nil)).Elem(), AiFeatureGroupBigQueryArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AiFeatureGroupBigQueryPtrInput)(nil)).Elem(), AiFeatureGroupBigQueryArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AiFeatureGroupBigQueryBigQuerySourceInput)(nil)).Elem(), AiFeatureGroupBigQueryBigQuerySourceArgs{}) @@ -10028,6 +10527,12 @@ func init() { pulumi.RegisterOutputType(AiEndpointIamBindingConditionPtrOutput{}) pulumi.RegisterOutputType(AiEndpointIamMemberConditionOutput{}) pulumi.RegisterOutputType(AiEndpointIamMemberConditionPtrOutput{}) + pulumi.RegisterOutputType(AiEndpointPredictRequestResponseLoggingConfigOutput{}) + pulumi.RegisterOutputType(AiEndpointPredictRequestResponseLoggingConfigPtrOutput{}) + pulumi.RegisterOutputType(AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationOutput{}) + pulumi.RegisterOutputType(AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationPtrOutput{}) + pulumi.RegisterOutputType(AiEndpointPrivateServiceConnectConfigOutput{}) + pulumi.RegisterOutputType(AiEndpointPrivateServiceConnectConfigPtrOutput{}) pulumi.RegisterOutputType(AiFeatureGroupBigQueryOutput{}) pulumi.RegisterOutputType(AiFeatureGroupBigQueryPtrOutput{}) pulumi.RegisterOutputType(AiFeatureGroupBigQueryBigQuerySourceOutput{}) diff --git a/sdk/go/gcp/workbench/instance.go b/sdk/go/gcp/workbench/instance.go index 0390863411..14e00e1ec0 100644 --- a/sdk/go/gcp/workbench/instance.go +++ b/sdk/go/gcp/workbench/instance.go @@ -330,7 +330,9 @@ type Instance struct { InstanceId pulumi.StringPtrOutput `pulumi:"instanceId"` // 'Optional. Input only. The owner of this instance after creation. Format: // `alias@example.com` Currently supports one owner only. If not specified, all of - // the service account users of your VM instance''s service account can use the instance.' + // the service account users of your VM instance''s service account can use the instance. + // If specified, sets the access mode to `Single user`. For more details, see + // https://cloud.google.com/vertex-ai/docs/workbench/instances/manage-access-jupyterlab' InstanceOwners pulumi.StringArrayOutput `pulumi:"instanceOwners"` // Optional. Labels to apply to this instance. These can be later modified // by the UpdateInstance method. @@ -425,7 +427,9 @@ type instanceState struct { InstanceId *string `pulumi:"instanceId"` // 'Optional. Input only. The owner of this instance after creation. Format: // `alias@example.com` Currently supports one owner only. If not specified, all of - // the service account users of your VM instance''s service account can use the instance.' + // the service account users of your VM instance''s service account can use the instance. + // If specified, sets the access mode to `Single user`. For more details, see + // https://cloud.google.com/vertex-ai/docs/workbench/instances/manage-access-jupyterlab' InstanceOwners []string `pulumi:"instanceOwners"` // Optional. Labels to apply to this instance. These can be later modified // by the UpdateInstance method. @@ -483,7 +487,9 @@ type InstanceState struct { InstanceId pulumi.StringPtrInput // 'Optional. Input only. The owner of this instance after creation. Format: // `alias@example.com` Currently supports one owner only. If not specified, all of - // the service account users of your VM instance''s service account can use the instance.' + // the service account users of your VM instance''s service account can use the instance. + // If specified, sets the access mode to `Single user`. For more details, see + // https://cloud.google.com/vertex-ai/docs/workbench/instances/manage-access-jupyterlab' InstanceOwners pulumi.StringArrayInput // Optional. Labels to apply to this instance. These can be later modified // by the UpdateInstance method. @@ -532,7 +538,9 @@ type instanceArgs struct { InstanceId *string `pulumi:"instanceId"` // 'Optional. Input only. The owner of this instance after creation. Format: // `alias@example.com` Currently supports one owner only. If not specified, all of - // the service account users of your VM instance''s service account can use the instance.' + // the service account users of your VM instance''s service account can use the instance. + // If specified, sets the access mode to `Single user`. For more details, see + // https://cloud.google.com/vertex-ai/docs/workbench/instances/manage-access-jupyterlab' InstanceOwners []string `pulumi:"instanceOwners"` // Optional. Labels to apply to this instance. These can be later modified // by the UpdateInstance method. @@ -564,7 +572,9 @@ type InstanceArgs struct { InstanceId pulumi.StringPtrInput // 'Optional. Input only. The owner of this instance after creation. Format: // `alias@example.com` Currently supports one owner only. If not specified, all of - // the service account users of your VM instance''s service account can use the instance.' + // the service account users of your VM instance''s service account can use the instance. + // If specified, sets the access mode to `Single user`. For more details, see + // https://cloud.google.com/vertex-ai/docs/workbench/instances/manage-access-jupyterlab' InstanceOwners pulumi.StringArrayInput // Optional. Labels to apply to this instance. These can be later modified // by the UpdateInstance method. @@ -721,7 +731,9 @@ func (o InstanceOutput) InstanceId() pulumi.StringPtrOutput { // 'Optional. Input only. The owner of this instance after creation. Format: // `alias@example.com` Currently supports one owner only. If not specified, all of -// the service account users of your VM instance”s service account can use the instance.' +// the service account users of your VM instance”s service account can use the instance. +// If specified, sets the access mode to `Single user`. For more details, see +// https://cloud.google.com/vertex-ai/docs/workbench/instances/manage-access-jupyterlab' func (o InstanceOutput) InstanceOwners() pulumi.StringArrayOutput { return o.ApplyT(func(v *Instance) pulumi.StringArrayOutput { return v.InstanceOwners }).(pulumi.StringArrayOutput) } diff --git a/sdk/go/gcp/workflows/workflow.go b/sdk/go/gcp/workflows/workflow.go index a8cd42619e..d1113fd648 100644 --- a/sdk/go/gcp/workflows/workflow.go +++ b/sdk/go/gcp/workflows/workflow.go @@ -55,6 +55,7 @@ import ( // UserEnvVars: pulumi.StringMap{ // "url": pulumi.String("https://timeapi.io/api/Time/current/zone?timeZone=Europe/Amsterdam"), // }, +// DeletionProtection: pulumi.Bool(false), // SourceContents: pulumi.String(`# This is a sample workflow. You can replace it with your source code. // // # @@ -110,7 +111,8 @@ type Workflow struct { CreateTime pulumi.StringOutput `pulumi:"createTime"` // The KMS key used to encrypt workflow and execution data. // Format: projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey} - CryptoKeyName pulumi.StringPtrOutput `pulumi:"cryptoKeyName"` + CryptoKeyName pulumi.StringPtrOutput `pulumi:"cryptoKeyName"` + DeletionProtection pulumi.BoolPtrOutput `pulumi:"deletionProtection"` // Description of the workflow provided by the user. Must be at most 1000 unicode characters long. Description pulumi.StringOutput `pulumi:"description"` // All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. @@ -197,7 +199,8 @@ type workflowState struct { CreateTime *string `pulumi:"createTime"` // The KMS key used to encrypt workflow and execution data. // Format: projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey} - CryptoKeyName *string `pulumi:"cryptoKeyName"` + CryptoKeyName *string `pulumi:"cryptoKeyName"` + DeletionProtection *bool `pulumi:"deletionProtection"` // Description of the workflow provided by the user. Must be at most 1000 unicode characters long. Description *string `pulumi:"description"` // All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. @@ -250,7 +253,8 @@ type WorkflowState struct { CreateTime pulumi.StringPtrInput // The KMS key used to encrypt workflow and execution data. // Format: projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey} - CryptoKeyName pulumi.StringPtrInput + CryptoKeyName pulumi.StringPtrInput + DeletionProtection pulumi.BoolPtrInput // Description of the workflow provided by the user. Must be at most 1000 unicode characters long. Description pulumi.StringPtrInput // All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. @@ -305,7 +309,8 @@ type workflowArgs struct { CallLogLevel *string `pulumi:"callLogLevel"` // The KMS key used to encrypt workflow and execution data. // Format: projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey} - CryptoKeyName *string `pulumi:"cryptoKeyName"` + CryptoKeyName *string `pulumi:"cryptoKeyName"` + DeletionProtection *bool `pulumi:"deletionProtection"` // Description of the workflow provided by the user. Must be at most 1000 unicode characters long. Description *string `pulumi:"description"` // A set of key/value label pairs to assign to this Workflow. @@ -346,7 +351,8 @@ type WorkflowArgs struct { CallLogLevel pulumi.StringPtrInput // The KMS key used to encrypt workflow and execution data. // Format: projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey} - CryptoKeyName pulumi.StringPtrInput + CryptoKeyName pulumi.StringPtrInput + DeletionProtection pulumi.BoolPtrInput // Description of the workflow provided by the user. Must be at most 1000 unicode characters long. Description pulumi.StringPtrInput // A set of key/value label pairs to assign to this Workflow. @@ -484,6 +490,10 @@ func (o WorkflowOutput) CryptoKeyName() pulumi.StringPtrOutput { return o.ApplyT(func(v *Workflow) pulumi.StringPtrOutput { return v.CryptoKeyName }).(pulumi.StringPtrOutput) } +func (o WorkflowOutput) DeletionProtection() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Workflow) pulumi.BoolPtrOutput { return v.DeletionProtection }).(pulumi.BoolPtrOutput) +} + // Description of the workflow provided by the user. Must be at most 1000 unicode characters long. func (o WorkflowOutput) Description() pulumi.StringOutput { return o.ApplyT(func(v *Workflow) pulumi.StringOutput { return v.Description }).(pulumi.StringOutput) diff --git a/sdk/go/gcp/workstations/workstationConfig.go b/sdk/go/gcp/workstations/workstationConfig.go index 3cea185cb2..2030cd0d98 100644 --- a/sdk/go/gcp/workstations/workstationConfig.go +++ b/sdk/go/gcp/workstations/workstationConfig.go @@ -21,8 +21,6 @@ import ( // // import ( // -// "fmt" -// // "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute" // "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/tags" // "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/workstations" @@ -39,9 +37,7 @@ import ( // return err // } // tagValue1, err := tags.NewTagValue(ctx, "tag_value1", &tags.TagValueArgs{ -// Parent: tagKey1.Name.ApplyT(func(name string) (string, error) { -// return fmt.Sprintf("tagKeys/%v", name), nil -// }).(pulumi.StringOutput), +// Parent: tagKey1.ID(), // ShortName: pulumi.String("valuename"), // }) // if err != nil { @@ -101,11 +97,11 @@ import ( // BootDiskSizeGb: pulumi.Int(35), // DisablePublicIpAddresses: pulumi.Bool(true), // DisableSsh: pulumi.Bool(false), -// VmTags: pulumi.All(tagKey1.Name,tagValue1.Name).ApplyT(func(_args []interface{}) (map[string]string, error) { -// tagKey1Name := _args[0].(string) -// tagValue1Name := _args[1].(string) +// VmTags: pulumi.All(tagKey1.ID(),tagValue1.ID()).ApplyT(func(_args []interface{}) (map[string]string, error) { +// tagKey1Id := _args[0].(string) +// tagValue1Id := _args[1].(string) // return map[string]string{ -// fmt.Sprintf("tagKeys/%v", tagKey1Name): fmt.Sprintf("tagValues/%v", tagValue1Name), +// tagKey1Id: tagValue1Id, // }, nil // }).(pulumi.Map[string]stringOutput), // }, diff --git a/sdk/java/src/main/java/com/pulumi/gcp/Config.java b/sdk/java/src/main/java/com/pulumi/gcp/Config.java index f059fad1bc..5d21ed9ba1 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/Config.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/Config.java @@ -207,6 +207,9 @@ public Optional dataplexCustomEndpoint() { public Optional dataprocCustomEndpoint() { return Codegen.stringProp("dataprocCustomEndpoint").config(config).get(); } + public Optional dataprocGdcCustomEndpoint() { + return Codegen.stringProp("dataprocGdcCustomEndpoint").config(config).get(); + } public Optional dataprocMetastoreCustomEndpoint() { return Codegen.stringProp("dataprocMetastoreCustomEndpoint").config(config).get(); } @@ -306,6 +309,9 @@ public Optional healthcareCustomEndpoint() { public Optional iam2CustomEndpoint() { return Codegen.stringProp("iam2CustomEndpoint").config(config).get(); } + public Optional iam3CustomEndpoint() { + return Codegen.stringProp("iam3CustomEndpoint").config(config).get(); + } public Optional iamBetaCustomEndpoint() { return Codegen.stringProp("iamBetaCustomEndpoint").config(config).get(); } diff --git a/sdk/java/src/main/java/com/pulumi/gcp/Provider.java b/sdk/java/src/main/java/com/pulumi/gcp/Provider.java index 95b6a24333..0d14e1fc55 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/Provider.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/Provider.java @@ -395,6 +395,12 @@ public Output> dataplexCustomEndpoint() { public Output> dataprocCustomEndpoint() { return Codegen.optional(this.dataprocCustomEndpoint); } + @Export(name="dataprocGdcCustomEndpoint", refs={String.class}, tree="[0]") + private Output dataprocGdcCustomEndpoint; + + public Output> dataprocGdcCustomEndpoint() { + return Codegen.optional(this.dataprocGdcCustomEndpoint); + } @Export(name="dataprocMetastoreCustomEndpoint", refs={String.class}, tree="[0]") private Output dataprocMetastoreCustomEndpoint; @@ -581,6 +587,12 @@ public Output> healthcareCustomEndpoint() { public Output> iam2CustomEndpoint() { return Codegen.optional(this.iam2CustomEndpoint); } + @Export(name="iam3CustomEndpoint", refs={String.class}, tree="[0]") + private Output iam3CustomEndpoint; + + public Output> iam3CustomEndpoint() { + return Codegen.optional(this.iam3CustomEndpoint); + } @Export(name="iamBetaCustomEndpoint", refs={String.class}, tree="[0]") private Output iamBetaCustomEndpoint; diff --git a/sdk/java/src/main/java/com/pulumi/gcp/ProviderArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/ProviderArgs.java index c58e2af0a8..7ccf90e62a 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/ProviderArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/ProviderArgs.java @@ -468,6 +468,13 @@ public Optional> dataprocCustomEndpoint() { return Optional.ofNullable(this.dataprocCustomEndpoint); } + @Import(name="dataprocGdcCustomEndpoint") + private @Nullable Output dataprocGdcCustomEndpoint; + + public Optional> dataprocGdcCustomEndpoint() { + return Optional.ofNullable(this.dataprocGdcCustomEndpoint); + } + @Import(name="dataprocMetastoreCustomEndpoint") private @Nullable Output dataprocMetastoreCustomEndpoint; @@ -699,6 +706,13 @@ public Optional> iam2CustomEndpoint() { return Optional.ofNullable(this.iam2CustomEndpoint); } + @Import(name="iam3CustomEndpoint") + private @Nullable Output iam3CustomEndpoint; + + public Optional> iam3CustomEndpoint() { + return Optional.ofNullable(this.iam3CustomEndpoint); + } + @Import(name="iamBetaCustomEndpoint") private @Nullable Output iamBetaCustomEndpoint; @@ -1326,6 +1340,7 @@ private ProviderArgs(ProviderArgs $) { this.dataformCustomEndpoint = $.dataformCustomEndpoint; this.dataplexCustomEndpoint = $.dataplexCustomEndpoint; this.dataprocCustomEndpoint = $.dataprocCustomEndpoint; + this.dataprocGdcCustomEndpoint = $.dataprocGdcCustomEndpoint; this.dataprocMetastoreCustomEndpoint = $.dataprocMetastoreCustomEndpoint; this.datastreamCustomEndpoint = $.datastreamCustomEndpoint; this.defaultLabels = $.defaultLabels; @@ -1359,6 +1374,7 @@ private ProviderArgs(ProviderArgs $) { this.googlePartnerName = $.googlePartnerName; this.healthcareCustomEndpoint = $.healthcareCustomEndpoint; this.iam2CustomEndpoint = $.iam2CustomEndpoint; + this.iam3CustomEndpoint = $.iam3CustomEndpoint; this.iamBetaCustomEndpoint = $.iamBetaCustomEndpoint; this.iamCredentialsCustomEndpoint = $.iamCredentialsCustomEndpoint; this.iamCustomEndpoint = $.iamCustomEndpoint; @@ -2035,6 +2051,15 @@ public Builder dataprocCustomEndpoint(String dataprocCustomEndpoint) { return dataprocCustomEndpoint(Output.of(dataprocCustomEndpoint)); } + public Builder dataprocGdcCustomEndpoint(@Nullable Output dataprocGdcCustomEndpoint) { + $.dataprocGdcCustomEndpoint = dataprocGdcCustomEndpoint; + return this; + } + + public Builder dataprocGdcCustomEndpoint(String dataprocGdcCustomEndpoint) { + return dataprocGdcCustomEndpoint(Output.of(dataprocGdcCustomEndpoint)); + } + public Builder dataprocMetastoreCustomEndpoint(@Nullable Output dataprocMetastoreCustomEndpoint) { $.dataprocMetastoreCustomEndpoint = dataprocMetastoreCustomEndpoint; return this; @@ -2332,6 +2357,15 @@ public Builder iam2CustomEndpoint(String iam2CustomEndpoint) { return iam2CustomEndpoint(Output.of(iam2CustomEndpoint)); } + public Builder iam3CustomEndpoint(@Nullable Output iam3CustomEndpoint) { + $.iam3CustomEndpoint = iam3CustomEndpoint; + return this; + } + + public Builder iam3CustomEndpoint(String iam3CustomEndpoint) { + return iam3CustomEndpoint(Output.of(iam3CustomEndpoint)); + } + public Builder iamBetaCustomEndpoint(@Nullable Output iamBetaCustomEndpoint) { $.iamBetaCustomEndpoint = iamBetaCustomEndpoint; return this; diff --git a/sdk/java/src/main/java/com/pulumi/gcp/activedirectory/Domain.java b/sdk/java/src/main/java/com/pulumi/gcp/activedirectory/Domain.java index eb00e6cbfb..3c5b3d2f30 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/activedirectory/Domain.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/activedirectory/Domain.java @@ -70,11 +70,23 @@ * * Domain can be imported using any of these accepted formats: * + * * `{{project}}/{{name}}` + * + * * `{{project}} {{name}}` + * * * `{{name}}` * * When using the `pulumi import` command, Domain can be imported using one of the formats above. For example: * * ```sh + * $ pulumi import gcp:activedirectory/domain:Domain default {{project}}/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:activedirectory/domain:Domain default "{{project}} {{name}}" + * ``` + * + * ```sh * $ pulumi import gcp:activedirectory/domain:Domain default {{name}} * ``` * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/Api.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/Api.java new file mode 100644 index 0000000000..ee475ccbbd --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/Api.java @@ -0,0 +1,213 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.apigee; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.gcp.Utilities; +import com.pulumi.gcp.apigee.ApiArgs; +import com.pulumi.gcp.apigee.inputs.ApiState; +import com.pulumi.gcp.apigee.outputs.ApiMetaData; +import java.lang.String; +import java.util.List; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * To get more information about API proxies see, see: + * + * * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.apis) + * * How-to Guides + * * [API proxies](https://cloud.google.com/apigee/docs/resources) + * + * ## Import + * + * An API proxy can be imported using any of these accepted formats: + * + * * `{{org_id}}/apis/{{name}}` + * + * * `{{org_id}}/{{name}}` + * + * When using the `pulumi import` command, API proxy can be imported using one of the formats above. For example: + * + * ```sh + * $ pulumi import gcp:apigee/api:Api default {{org_id}}/apis/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:apigee/api:Api default {{org_id}}/{{name}} + * ``` + * + */ +@ResourceType(type="gcp:apigee/api:Api") +public class Api extends com.pulumi.resources.CustomResource { + /** + * Path to the config zip bundle. + * + * *** + * + */ + @Export(name="configBundle", refs={String.class}, tree="[0]") + private Output configBundle; + + /** + * @return Path to the config zip bundle. + * + * *** + * + */ + public Output configBundle() { + return this.configBundle; + } + @Export(name="detectMd5hash", refs={String.class}, tree="[0]") + private Output detectMd5hash; + + public Output> detectMd5hash() { + return Codegen.optional(this.detectMd5hash); + } + /** + * The id of the most recently created revision for this API proxy. + * + */ + @Export(name="latestRevisionId", refs={String.class}, tree="[0]") + private Output latestRevisionId; + + /** + * @return The id of the most recently created revision for this API proxy. + * + */ + public Output latestRevisionId() { + return this.latestRevisionId; + } + /** + * (Computed) Base 64 MD5 hash of the uploaded data. It is speculative as remote does not return hash of the bundle. Remote changes are detected using returned last_modified timestamp. + * + */ + @Export(name="md5hash", refs={String.class}, tree="[0]") + private Output md5hash; + + /** + * @return (Computed) Base 64 MD5 hash of the uploaded data. It is speculative as remote does not return hash of the bundle. Remote changes are detected using returned last_modified timestamp. + * + */ + public Output md5hash() { + return this.md5hash; + } + /** + * Metadata describing the API proxy. + * Structure is documented below. + * + */ + @Export(name="metaDatas", refs={List.class,ApiMetaData.class}, tree="[0,1]") + private Output> metaDatas; + + /** + * @return Metadata describing the API proxy. + * Structure is documented below. + * + */ + public Output> metaDatas() { + return this.metaDatas; + } + /** + * The ID of the API proxy. + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return The ID of the API proxy. + * + */ + public Output name() { + return this.name; + } + /** + * The Apigee Organization name associated with the Apigee instance. + * + */ + @Export(name="orgId", refs={String.class}, tree="[0]") + private Output orgId; + + /** + * @return The Apigee Organization name associated with the Apigee instance. + * + */ + public Output orgId() { + return this.orgId; + } + /** + * A list of revisions of this API proxy. + * + */ + @Export(name="revisions", refs={List.class,String.class}, tree="[0,1]") + private Output> revisions; + + /** + * @return A list of revisions of this API proxy. + * + */ + public Output> revisions() { + return this.revisions; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public Api(java.lang.String name) { + this(name, ApiArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public Api(java.lang.String name, ApiArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public Api(java.lang.String name, ApiArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:apigee/api:Api", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private Api(java.lang.String name, Output id, @Nullable ApiState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:apigee/api:Api", name, state, makeResourceOptions(options, id), false); + } + + private static ApiArgs makeArgs(ApiArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ApiArgs.Empty : args; + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static Api get(java.lang.String name, Output id, @Nullable ApiState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new Api(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/ApiArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/ApiArgs.java new file mode 100644 index 0000000000..3dc8ba8038 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/ApiArgs.java @@ -0,0 +1,189 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.apigee; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ApiArgs extends com.pulumi.resources.ResourceArgs { + + public static final ApiArgs Empty = new ApiArgs(); + + /** + * Path to the config zip bundle. + * + * *** + * + */ + @Import(name="configBundle", required=true) + private Output configBundle; + + /** + * @return Path to the config zip bundle. + * + * *** + * + */ + public Output configBundle() { + return this.configBundle; + } + + @Import(name="detectMd5hash") + private @Nullable Output detectMd5hash; + + public Optional> detectMd5hash() { + return Optional.ofNullable(this.detectMd5hash); + } + + /** + * The ID of the API proxy. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return The ID of the API proxy. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The Apigee Organization name associated with the Apigee instance. + * + */ + @Import(name="orgId", required=true) + private Output orgId; + + /** + * @return The Apigee Organization name associated with the Apigee instance. + * + */ + public Output orgId() { + return this.orgId; + } + + private ApiArgs() {} + + private ApiArgs(ApiArgs $) { + this.configBundle = $.configBundle; + this.detectMd5hash = $.detectMd5hash; + this.name = $.name; + this.orgId = $.orgId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ApiArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ApiArgs $; + + public Builder() { + $ = new ApiArgs(); + } + + public Builder(ApiArgs defaults) { + $ = new ApiArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param configBundle Path to the config zip bundle. + * + * *** + * + * @return builder + * + */ + public Builder configBundle(Output configBundle) { + $.configBundle = configBundle; + return this; + } + + /** + * @param configBundle Path to the config zip bundle. + * + * *** + * + * @return builder + * + */ + public Builder configBundle(String configBundle) { + return configBundle(Output.of(configBundle)); + } + + public Builder detectMd5hash(@Nullable Output detectMd5hash) { + $.detectMd5hash = detectMd5hash; + return this; + } + + public Builder detectMd5hash(String detectMd5hash) { + return detectMd5hash(Output.of(detectMd5hash)); + } + + /** + * @param name The ID of the API proxy. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name The ID of the API proxy. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param orgId The Apigee Organization name associated with the Apigee instance. + * + * @return builder + * + */ + public Builder orgId(Output orgId) { + $.orgId = orgId; + return this; + } + + /** + * @param orgId The Apigee Organization name associated with the Apigee instance. + * + * @return builder + * + */ + public Builder orgId(String orgId) { + return orgId(Output.of(orgId)); + } + + public ApiArgs build() { + if ($.configBundle == null) { + throw new MissingRequiredPropertyException("ApiArgs", "configBundle"); + } + if ($.orgId == null) { + throw new MissingRequiredPropertyException("ApiArgs", "orgId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/ApiMetaDataArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/ApiMetaDataArgs.java new file mode 100644 index 0000000000..d4b9035228 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/ApiMetaDataArgs.java @@ -0,0 +1,157 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.apigee.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ApiMetaDataArgs extends com.pulumi.resources.ResourceArgs { + + public static final ApiMetaDataArgs Empty = new ApiMetaDataArgs(); + + /** + * Time at which the API proxy was created, in milliseconds since epoch. + * + */ + @Import(name="createdAt") + private @Nullable Output createdAt; + + /** + * @return Time at which the API proxy was created, in milliseconds since epoch. + * + */ + public Optional> createdAt() { + return Optional.ofNullable(this.createdAt); + } + + /** + * Time at which the API proxy was most recently modified, in milliseconds since epoch. + * + */ + @Import(name="lastModifiedAt") + private @Nullable Output lastModifiedAt; + + /** + * @return Time at which the API proxy was most recently modified, in milliseconds since epoch. + * + */ + public Optional> lastModifiedAt() { + return Optional.ofNullable(this.lastModifiedAt); + } + + /** + * The type of entity described + * + */ + @Import(name="subType") + private @Nullable Output subType; + + /** + * @return The type of entity described + * + */ + public Optional> subType() { + return Optional.ofNullable(this.subType); + } + + private ApiMetaDataArgs() {} + + private ApiMetaDataArgs(ApiMetaDataArgs $) { + this.createdAt = $.createdAt; + this.lastModifiedAt = $.lastModifiedAt; + this.subType = $.subType; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ApiMetaDataArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ApiMetaDataArgs $; + + public Builder() { + $ = new ApiMetaDataArgs(); + } + + public Builder(ApiMetaDataArgs defaults) { + $ = new ApiMetaDataArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param createdAt Time at which the API proxy was created, in milliseconds since epoch. + * + * @return builder + * + */ + public Builder createdAt(@Nullable Output createdAt) { + $.createdAt = createdAt; + return this; + } + + /** + * @param createdAt Time at which the API proxy was created, in milliseconds since epoch. + * + * @return builder + * + */ + public Builder createdAt(String createdAt) { + return createdAt(Output.of(createdAt)); + } + + /** + * @param lastModifiedAt Time at which the API proxy was most recently modified, in milliseconds since epoch. + * + * @return builder + * + */ + public Builder lastModifiedAt(@Nullable Output lastModifiedAt) { + $.lastModifiedAt = lastModifiedAt; + return this; + } + + /** + * @param lastModifiedAt Time at which the API proxy was most recently modified, in milliseconds since epoch. + * + * @return builder + * + */ + public Builder lastModifiedAt(String lastModifiedAt) { + return lastModifiedAt(Output.of(lastModifiedAt)); + } + + /** + * @param subType The type of entity described + * + * @return builder + * + */ + public Builder subType(@Nullable Output subType) { + $.subType = subType; + return this; + } + + /** + * @param subType The type of entity described + * + * @return builder + * + */ + public Builder subType(String subType) { + return subType(Output.of(subType)); + } + + public ApiMetaDataArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/ApiState.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/ApiState.java new file mode 100644 index 0000000000..b2451e1fc6 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/ApiState.java @@ -0,0 +1,357 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.apigee.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.apigee.inputs.ApiMetaDataArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ApiState extends com.pulumi.resources.ResourceArgs { + + public static final ApiState Empty = new ApiState(); + + /** + * Path to the config zip bundle. + * + * *** + * + */ + @Import(name="configBundle") + private @Nullable Output configBundle; + + /** + * @return Path to the config zip bundle. + * + * *** + * + */ + public Optional> configBundle() { + return Optional.ofNullable(this.configBundle); + } + + @Import(name="detectMd5hash") + private @Nullable Output detectMd5hash; + + public Optional> detectMd5hash() { + return Optional.ofNullable(this.detectMd5hash); + } + + /** + * The id of the most recently created revision for this API proxy. + * + */ + @Import(name="latestRevisionId") + private @Nullable Output latestRevisionId; + + /** + * @return The id of the most recently created revision for this API proxy. + * + */ + public Optional> latestRevisionId() { + return Optional.ofNullable(this.latestRevisionId); + } + + /** + * (Computed) Base 64 MD5 hash of the uploaded data. It is speculative as remote does not return hash of the bundle. Remote changes are detected using returned last_modified timestamp. + * + */ + @Import(name="md5hash") + private @Nullable Output md5hash; + + /** + * @return (Computed) Base 64 MD5 hash of the uploaded data. It is speculative as remote does not return hash of the bundle. Remote changes are detected using returned last_modified timestamp. + * + */ + public Optional> md5hash() { + return Optional.ofNullable(this.md5hash); + } + + /** + * Metadata describing the API proxy. + * Structure is documented below. + * + */ + @Import(name="metaDatas") + private @Nullable Output> metaDatas; + + /** + * @return Metadata describing the API proxy. + * Structure is documented below. + * + */ + public Optional>> metaDatas() { + return Optional.ofNullable(this.metaDatas); + } + + /** + * The ID of the API proxy. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return The ID of the API proxy. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The Apigee Organization name associated with the Apigee instance. + * + */ + @Import(name="orgId") + private @Nullable Output orgId; + + /** + * @return The Apigee Organization name associated with the Apigee instance. + * + */ + public Optional> orgId() { + return Optional.ofNullable(this.orgId); + } + + /** + * A list of revisions of this API proxy. + * + */ + @Import(name="revisions") + private @Nullable Output> revisions; + + /** + * @return A list of revisions of this API proxy. + * + */ + public Optional>> revisions() { + return Optional.ofNullable(this.revisions); + } + + private ApiState() {} + + private ApiState(ApiState $) { + this.configBundle = $.configBundle; + this.detectMd5hash = $.detectMd5hash; + this.latestRevisionId = $.latestRevisionId; + this.md5hash = $.md5hash; + this.metaDatas = $.metaDatas; + this.name = $.name; + this.orgId = $.orgId; + this.revisions = $.revisions; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ApiState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ApiState $; + + public Builder() { + $ = new ApiState(); + } + + public Builder(ApiState defaults) { + $ = new ApiState(Objects.requireNonNull(defaults)); + } + + /** + * @param configBundle Path to the config zip bundle. + * + * *** + * + * @return builder + * + */ + public Builder configBundle(@Nullable Output configBundle) { + $.configBundle = configBundle; + return this; + } + + /** + * @param configBundle Path to the config zip bundle. + * + * *** + * + * @return builder + * + */ + public Builder configBundle(String configBundle) { + return configBundle(Output.of(configBundle)); + } + + public Builder detectMd5hash(@Nullable Output detectMd5hash) { + $.detectMd5hash = detectMd5hash; + return this; + } + + public Builder detectMd5hash(String detectMd5hash) { + return detectMd5hash(Output.of(detectMd5hash)); + } + + /** + * @param latestRevisionId The id of the most recently created revision for this API proxy. + * + * @return builder + * + */ + public Builder latestRevisionId(@Nullable Output latestRevisionId) { + $.latestRevisionId = latestRevisionId; + return this; + } + + /** + * @param latestRevisionId The id of the most recently created revision for this API proxy. + * + * @return builder + * + */ + public Builder latestRevisionId(String latestRevisionId) { + return latestRevisionId(Output.of(latestRevisionId)); + } + + /** + * @param md5hash (Computed) Base 64 MD5 hash of the uploaded data. It is speculative as remote does not return hash of the bundle. Remote changes are detected using returned last_modified timestamp. + * + * @return builder + * + */ + public Builder md5hash(@Nullable Output md5hash) { + $.md5hash = md5hash; + return this; + } + + /** + * @param md5hash (Computed) Base 64 MD5 hash of the uploaded data. It is speculative as remote does not return hash of the bundle. Remote changes are detected using returned last_modified timestamp. + * + * @return builder + * + */ + public Builder md5hash(String md5hash) { + return md5hash(Output.of(md5hash)); + } + + /** + * @param metaDatas Metadata describing the API proxy. + * Structure is documented below. + * + * @return builder + * + */ + public Builder metaDatas(@Nullable Output> metaDatas) { + $.metaDatas = metaDatas; + return this; + } + + /** + * @param metaDatas Metadata describing the API proxy. + * Structure is documented below. + * + * @return builder + * + */ + public Builder metaDatas(List metaDatas) { + return metaDatas(Output.of(metaDatas)); + } + + /** + * @param metaDatas Metadata describing the API proxy. + * Structure is documented below. + * + * @return builder + * + */ + public Builder metaDatas(ApiMetaDataArgs... metaDatas) { + return metaDatas(List.of(metaDatas)); + } + + /** + * @param name The ID of the API proxy. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name The ID of the API proxy. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param orgId The Apigee Organization name associated with the Apigee instance. + * + * @return builder + * + */ + public Builder orgId(@Nullable Output orgId) { + $.orgId = orgId; + return this; + } + + /** + * @param orgId The Apigee Organization name associated with the Apigee instance. + * + * @return builder + * + */ + public Builder orgId(String orgId) { + return orgId(Output.of(orgId)); + } + + /** + * @param revisions A list of revisions of this API proxy. + * + * @return builder + * + */ + public Builder revisions(@Nullable Output> revisions) { + $.revisions = revisions; + return this; + } + + /** + * @param revisions A list of revisions of this API proxy. + * + * @return builder + * + */ + public Builder revisions(List revisions) { + return revisions(Output.of(revisions)); + } + + /** + * @param revisions A list of revisions of this API proxy. + * + * @return builder + * + */ + public Builder revisions(String... revisions) { + return revisions(List.of(revisions)); + } + + public ApiState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/outputs/ApiMetaData.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/outputs/ApiMetaData.java new file mode 100644 index 0000000000..ff1aaa0a72 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/outputs/ApiMetaData.java @@ -0,0 +1,99 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.apigee.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ApiMetaData { + /** + * @return Time at which the API proxy was created, in milliseconds since epoch. + * + */ + private @Nullable String createdAt; + /** + * @return Time at which the API proxy was most recently modified, in milliseconds since epoch. + * + */ + private @Nullable String lastModifiedAt; + /** + * @return The type of entity described + * + */ + private @Nullable String subType; + + private ApiMetaData() {} + /** + * @return Time at which the API proxy was created, in milliseconds since epoch. + * + */ + public Optional createdAt() { + return Optional.ofNullable(this.createdAt); + } + /** + * @return Time at which the API proxy was most recently modified, in milliseconds since epoch. + * + */ + public Optional lastModifiedAt() { + return Optional.ofNullable(this.lastModifiedAt); + } + /** + * @return The type of entity described + * + */ + public Optional subType() { + return Optional.ofNullable(this.subType); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ApiMetaData defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String createdAt; + private @Nullable String lastModifiedAt; + private @Nullable String subType; + public Builder() {} + public Builder(ApiMetaData defaults) { + Objects.requireNonNull(defaults); + this.createdAt = defaults.createdAt; + this.lastModifiedAt = defaults.lastModifiedAt; + this.subType = defaults.subType; + } + + @CustomType.Setter + public Builder createdAt(@Nullable String createdAt) { + + this.createdAt = createdAt; + return this; + } + @CustomType.Setter + public Builder lastModifiedAt(@Nullable String lastModifiedAt) { + + this.lastModifiedAt = lastModifiedAt; + return this; + } + @CustomType.Setter + public Builder subType(@Nullable String subType) { + + this.subType = subType; + return this; + } + public ApiMetaData build() { + final var _resultValue = new ApiMetaData(); + _resultValue.createdAt = createdAt; + _resultValue.lastModifiedAt = lastModifiedAt; + _resultValue.subType = subType; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/applicationintegration/AuthConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/applicationintegration/AuthConfig.java index 1ae4d341a1..948282877b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/applicationintegration/AuthConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/applicationintegration/AuthConfig.java @@ -88,11 +88,23 @@ * * AuthConfig can be imported using any of these accepted formats: * + * * `{{project}}/{{name}}` + * + * * `{{project}} {{name}}` + * * * `{{name}}` * * When using the `pulumi import` command, AuthConfig can be imported using one of the formats above. For example: * * ```sh + * $ pulumi import gcp:applicationintegration/authConfig:AuthConfig default {{project}}/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:applicationintegration/authConfig:AuthConfig default "{{project}} {{name}}" + * ``` + * + * ```sh * $ pulumi import gcp:applicationintegration/authConfig:AuthConfig default {{name}} * ``` * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/BackupPlan.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/BackupPlan.java new file mode 100644 index 0000000000..5dc9233552 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/BackupPlan.java @@ -0,0 +1,315 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.backupdisasterrecovery; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.gcp.Utilities; +import com.pulumi.gcp.backupdisasterrecovery.BackupPlanArgs; +import com.pulumi.gcp.backupdisasterrecovery.inputs.BackupPlanState; +import com.pulumi.gcp.backupdisasterrecovery.outputs.BackupPlanBackupRule; +import java.lang.String; +import java.util.List; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * ## Example Usage + * + * ### Backup Dr Backup Plan Simple + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.gcp.backupdisasterrecovery.BackupVault;
+ * import com.pulumi.gcp.backupdisasterrecovery.BackupVaultArgs;
+ * import com.pulumi.gcp.backupdisasterrecovery.BackupPlan;
+ * import com.pulumi.gcp.backupdisasterrecovery.BackupPlanArgs;
+ * import com.pulumi.gcp.backupdisasterrecovery.inputs.BackupPlanBackupRuleArgs;
+ * import com.pulumi.gcp.backupdisasterrecovery.inputs.BackupPlanBackupRuleStandardScheduleArgs;
+ * import com.pulumi.gcp.backupdisasterrecovery.inputs.BackupPlanBackupRuleStandardScheduleBackupWindowArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var myBackupVault = new BackupVault("myBackupVault", BackupVaultArgs.builder()
+ *             .location("us-central1")
+ *             .backupVaultId("bv-bp-test")
+ *             .backupMinimumEnforcedRetentionDuration("100000s")
+ *             .build());
+ * 
+ *         var my_backup_plan_1 = new BackupPlan("my-backup-plan-1", BackupPlanArgs.builder()
+ *             .location("us-central1")
+ *             .backupPlanId("backup-plan-simple-test")
+ *             .resourceType("compute.googleapis.com/Instance")
+ *             .backupVault(myBackupVault.id())
+ *             .backupRules(BackupPlanBackupRuleArgs.builder()
+ *                 .ruleId("rule-1")
+ *                 .backupRetentionDays(5)
+ *                 .standardSchedule(BackupPlanBackupRuleStandardScheduleArgs.builder()
+ *                     .recurrenceType("HOURLY")
+ *                     .hourlyFrequency(6)
+ *                     .timeZone("UTC")
+ *                     .backupWindow(BackupPlanBackupRuleStandardScheduleBackupWindowArgs.builder()
+ *                         .startHourOfDay(0)
+ *                         .endHourOfDay(24)
+ *                         .build())
+ *                     .build())
+ *                 .build())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * BackupPlan can be imported using any of these accepted formats: + * + * * `projects/{{project}}/locations/{{location}}/backupPlans/{{backup_plan_id}}` + * + * * `{{project}}/{{location}}/{{backup_plan_id}}` + * + * * `{{location}}/{{backup_plan_id}}` + * + * When using the `pulumi import` command, BackupPlan can be imported using one of the formats above. For example: + * + * ```sh + * $ pulumi import gcp:backupdisasterrecovery/backupPlan:BackupPlan default projects/{{project}}/locations/{{location}}/backupPlans/{{backup_plan_id}} + * ``` + * + * ```sh + * $ pulumi import gcp:backupdisasterrecovery/backupPlan:BackupPlan default {{project}}/{{location}}/{{backup_plan_id}} + * ``` + * + * ```sh + * $ pulumi import gcp:backupdisasterrecovery/backupPlan:BackupPlan default {{location}}/{{backup_plan_id}} + * ``` + * + */ +@ResourceType(type="gcp:backupdisasterrecovery/backupPlan:BackupPlan") +public class BackupPlan extends com.pulumi.resources.CustomResource { + /** + * The ID of the backup plan + * + */ + @Export(name="backupPlanId", refs={String.class}, tree="[0]") + private Output backupPlanId; + + /** + * @return The ID of the backup plan + * + */ + public Output backupPlanId() { + return this.backupPlanId; + } + /** + * The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message. + * Structure is documented below. + * + */ + @Export(name="backupRules", refs={List.class,BackupPlanBackupRule.class}, tree="[0,1]") + private Output> backupRules; + + /** + * @return The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message. + * Structure is documented below. + * + */ + public Output> backupRules() { + return this.backupRules; + } + /** + * Backup vault where the backups gets stored using this Backup plan. + * + */ + @Export(name="backupVault", refs={String.class}, tree="[0]") + private Output backupVault; + + /** + * @return Backup vault where the backups gets stored using this Backup plan. + * + */ + public Output backupVault() { + return this.backupVault; + } + /** + * The Google Cloud Platform Service Account to be used by the BackupVault for taking backups. + * + */ + @Export(name="backupVaultServiceAccount", refs={String.class}, tree="[0]") + private Output backupVaultServiceAccount; + + /** + * @return The Google Cloud Platform Service Account to be used by the BackupVault for taking backups. + * + */ + public Output backupVaultServiceAccount() { + return this.backupVaultServiceAccount; + } + /** + * When the `BackupPlan` was created. + * + */ + @Export(name="createTime", refs={String.class}, tree="[0]") + private Output createTime; + + /** + * @return When the `BackupPlan` was created. + * + */ + public Output createTime() { + return this.createTime; + } + /** + * The description allows for additional details about 'BackupPlan' and its use cases to be provided. + * + */ + @Export(name="description", refs={String.class}, tree="[0]") + private Output description; + + /** + * @return The description allows for additional details about 'BackupPlan' and its use cases to be provided. + * + */ + public Output> description() { + return Codegen.optional(this.description); + } + /** + * The location for the backup plan + * + */ + @Export(name="location", refs={String.class}, tree="[0]") + private Output location; + + /** + * @return The location for the backup plan + * + */ + public Output location() { + return this.location; + } + /** + * The name of backup plan resource created + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return The name of backup plan resource created + * + */ + public Output name() { + return this.name; + } + @Export(name="project", refs={String.class}, tree="[0]") + private Output project; + + public Output project() { + return this.project; + } + /** + * The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket". + * + */ + @Export(name="resourceType", refs={String.class}, tree="[0]") + private Output resourceType; + + /** + * @return The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket". + * + */ + public Output resourceType() { + return this.resourceType; + } + /** + * When the `BackupPlan` was last updated. + * + */ + @Export(name="updateTime", refs={String.class}, tree="[0]") + private Output updateTime; + + /** + * @return When the `BackupPlan` was last updated. + * + */ + public Output updateTime() { + return this.updateTime; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public BackupPlan(java.lang.String name) { + this(name, BackupPlanArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public BackupPlan(java.lang.String name, BackupPlanArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public BackupPlan(java.lang.String name, BackupPlanArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:backupdisasterrecovery/backupPlan:BackupPlan", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private BackupPlan(java.lang.String name, Output id, @Nullable BackupPlanState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:backupdisasterrecovery/backupPlan:BackupPlan", name, state, makeResourceOptions(options, id), false); + } + + private static BackupPlanArgs makeArgs(BackupPlanArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BackupPlanArgs.Empty : args; + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static BackupPlan get(java.lang.String name, Output id, @Nullable BackupPlanState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new BackupPlan(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/BackupPlanArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/BackupPlanArgs.java new file mode 100644 index 0000000000..e51ee160ac --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/BackupPlanArgs.java @@ -0,0 +1,318 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.backupdisasterrecovery; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.gcp.backupdisasterrecovery.inputs.BackupPlanBackupRuleArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class BackupPlanArgs extends com.pulumi.resources.ResourceArgs { + + public static final BackupPlanArgs Empty = new BackupPlanArgs(); + + /** + * The ID of the backup plan + * + */ + @Import(name="backupPlanId", required=true) + private Output backupPlanId; + + /** + * @return The ID of the backup plan + * + */ + public Output backupPlanId() { + return this.backupPlanId; + } + + /** + * The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message. + * Structure is documented below. + * + */ + @Import(name="backupRules", required=true) + private Output> backupRules; + + /** + * @return The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message. + * Structure is documented below. + * + */ + public Output> backupRules() { + return this.backupRules; + } + + /** + * Backup vault where the backups gets stored using this Backup plan. + * + */ + @Import(name="backupVault", required=true) + private Output backupVault; + + /** + * @return Backup vault where the backups gets stored using this Backup plan. + * + */ + public Output backupVault() { + return this.backupVault; + } + + /** + * The description allows for additional details about 'BackupPlan' and its use cases to be provided. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return The description allows for additional details about 'BackupPlan' and its use cases to be provided. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * The location for the backup plan + * + */ + @Import(name="location", required=true) + private Output location; + + /** + * @return The location for the backup plan + * + */ + public Output location() { + return this.location; + } + + @Import(name="project") + private @Nullable Output project; + + public Optional> project() { + return Optional.ofNullable(this.project); + } + + /** + * The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket". + * + */ + @Import(name="resourceType", required=true) + private Output resourceType; + + /** + * @return The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket". + * + */ + public Output resourceType() { + return this.resourceType; + } + + private BackupPlanArgs() {} + + private BackupPlanArgs(BackupPlanArgs $) { + this.backupPlanId = $.backupPlanId; + this.backupRules = $.backupRules; + this.backupVault = $.backupVault; + this.description = $.description; + this.location = $.location; + this.project = $.project; + this.resourceType = $.resourceType; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(BackupPlanArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private BackupPlanArgs $; + + public Builder() { + $ = new BackupPlanArgs(); + } + + public Builder(BackupPlanArgs defaults) { + $ = new BackupPlanArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param backupPlanId The ID of the backup plan + * + * @return builder + * + */ + public Builder backupPlanId(Output backupPlanId) { + $.backupPlanId = backupPlanId; + return this; + } + + /** + * @param backupPlanId The ID of the backup plan + * + * @return builder + * + */ + public Builder backupPlanId(String backupPlanId) { + return backupPlanId(Output.of(backupPlanId)); + } + + /** + * @param backupRules The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message. + * Structure is documented below. + * + * @return builder + * + */ + public Builder backupRules(Output> backupRules) { + $.backupRules = backupRules; + return this; + } + + /** + * @param backupRules The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message. + * Structure is documented below. + * + * @return builder + * + */ + public Builder backupRules(List backupRules) { + return backupRules(Output.of(backupRules)); + } + + /** + * @param backupRules The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message. + * Structure is documented below. + * + * @return builder + * + */ + public Builder backupRules(BackupPlanBackupRuleArgs... backupRules) { + return backupRules(List.of(backupRules)); + } + + /** + * @param backupVault Backup vault where the backups gets stored using this Backup plan. + * + * @return builder + * + */ + public Builder backupVault(Output backupVault) { + $.backupVault = backupVault; + return this; + } + + /** + * @param backupVault Backup vault where the backups gets stored using this Backup plan. + * + * @return builder + * + */ + public Builder backupVault(String backupVault) { + return backupVault(Output.of(backupVault)); + } + + /** + * @param description The description allows for additional details about 'BackupPlan' and its use cases to be provided. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description The description allows for additional details about 'BackupPlan' and its use cases to be provided. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param location The location for the backup plan + * + * @return builder + * + */ + public Builder location(Output location) { + $.location = location; + return this; + } + + /** + * @param location The location for the backup plan + * + * @return builder + * + */ + public Builder location(String location) { + return location(Output.of(location)); + } + + public Builder project(@Nullable Output project) { + $.project = project; + return this; + } + + public Builder project(String project) { + return project(Output.of(project)); + } + + /** + * @param resourceType The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket". + * + * @return builder + * + */ + public Builder resourceType(Output resourceType) { + $.resourceType = resourceType; + return this; + } + + /** + * @param resourceType The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket". + * + * @return builder + * + */ + public Builder resourceType(String resourceType) { + return resourceType(Output.of(resourceType)); + } + + public BackupPlanArgs build() { + if ($.backupPlanId == null) { + throw new MissingRequiredPropertyException("BackupPlanArgs", "backupPlanId"); + } + if ($.backupRules == null) { + throw new MissingRequiredPropertyException("BackupPlanArgs", "backupRules"); + } + if ($.backupVault == null) { + throw new MissingRequiredPropertyException("BackupPlanArgs", "backupVault"); + } + if ($.location == null) { + throw new MissingRequiredPropertyException("BackupPlanArgs", "location"); + } + if ($.resourceType == null) { + throw new MissingRequiredPropertyException("BackupPlanArgs", "resourceType"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/BackupPlanAssociation.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/BackupPlanAssociation.java new file mode 100644 index 0000000000..3d15cb1627 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/BackupPlanAssociation.java @@ -0,0 +1,390 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.backupdisasterrecovery; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.gcp.Utilities; +import com.pulumi.gcp.backupdisasterrecovery.BackupPlanAssociationArgs; +import com.pulumi.gcp.backupdisasterrecovery.inputs.BackupPlanAssociationState; +import com.pulumi.gcp.backupdisasterrecovery.outputs.BackupPlanAssociationRulesConfigInfo; +import java.lang.String; +import java.util.List; +import javax.annotation.Nullable; + +/** + * ## Example Usage + * + * ### Backup Dr Bpa + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.gcp.serviceaccount.Account;
+ * import com.pulumi.gcp.serviceaccount.AccountArgs;
+ * import com.pulumi.gcp.compute.Instance;
+ * import com.pulumi.gcp.compute.InstanceArgs;
+ * import com.pulumi.gcp.compute.inputs.InstanceNetworkInterfaceArgs;
+ * import com.pulumi.gcp.compute.inputs.InstanceBootDiskArgs;
+ * import com.pulumi.gcp.compute.inputs.InstanceBootDiskInitializeParamsArgs;
+ * import com.pulumi.gcp.compute.inputs.InstanceScratchDiskArgs;
+ * import com.pulumi.gcp.compute.inputs.InstanceServiceAccountArgs;
+ * import com.pulumi.gcp.backupdisasterrecovery.BackupVault;
+ * import com.pulumi.gcp.backupdisasterrecovery.BackupVaultArgs;
+ * import com.pulumi.gcp.backupdisasterrecovery.BackupPlan;
+ * import com.pulumi.gcp.backupdisasterrecovery.BackupPlanArgs;
+ * import com.pulumi.gcp.backupdisasterrecovery.inputs.BackupPlanBackupRuleArgs;
+ * import com.pulumi.gcp.backupdisasterrecovery.inputs.BackupPlanBackupRuleStandardScheduleArgs;
+ * import com.pulumi.gcp.backupdisasterrecovery.inputs.BackupPlanBackupRuleStandardScheduleBackupWindowArgs;
+ * import com.pulumi.gcp.backupdisasterrecovery.BackupPlanAssociation;
+ * import com.pulumi.gcp.backupdisasterrecovery.BackupPlanAssociationArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var mySA = new Account("mySA", AccountArgs.builder()
+ *             .accountId("my-custom")
+ *             .displayName("Custom SA for VM Instance")
+ *             .build());
+ * 
+ *         var myinstance = new Instance("myinstance", InstanceArgs.builder()
+ *             .networkInterfaces(InstanceNetworkInterfaceArgs.builder()
+ *                 .accessConfigs()
+ *                 .network("default")
+ *                 .build())
+ *             .name("test-instance")
+ *             .machineType("n2-standard-2")
+ *             .zone("us-central1-a")
+ *             .bootDisk(InstanceBootDiskArgs.builder()
+ *                 .initializeParams(InstanceBootDiskInitializeParamsArgs.builder()
+ *                     .image("debian-cloud/debian-11")
+ *                     .labels(Map.of("my_label", "value"))
+ *                     .build())
+ *                 .build())
+ *             .scratchDisks(InstanceScratchDiskArgs.builder()
+ *                 .interface_("NVME")
+ *                 .build())
+ *             .serviceAccount(InstanceServiceAccountArgs.builder()
+ *                 .email(mySA.email())
+ *                 .scopes("cloud-platform")
+ *                 .build())
+ *             .build());
+ * 
+ *         var bv1 = new BackupVault("bv1", BackupVaultArgs.builder()
+ *             .location("us-central1")
+ *             .backupVaultId("bv-bpa")
+ *             .backupMinimumEnforcedRetentionDuration("100000s")
+ *             .forceDelete("true")
+ *             .build());
+ * 
+ *         var bp1 = new BackupPlan("bp1", BackupPlanArgs.builder()
+ *             .location("us-central1")
+ *             .backupPlanId("bp-bpa-test")
+ *             .resourceType("compute.googleapis.com/Instance")
+ *             .backupVault(bv1.id())
+ *             .backupRules(BackupPlanBackupRuleArgs.builder()
+ *                 .ruleId("rule-1")
+ *                 .backupRetentionDays(2)
+ *                 .standardSchedule(BackupPlanBackupRuleStandardScheduleArgs.builder()
+ *                     .recurrenceType("HOURLY")
+ *                     .hourlyFrequency(6)
+ *                     .timeZone("UTC")
+ *                     .backupWindow(BackupPlanBackupRuleStandardScheduleBackupWindowArgs.builder()
+ *                         .startHourOfDay(12)
+ *                         .endHourOfDay(18)
+ *                         .build())
+ *                     .build())
+ *                 .build())
+ *             .build());
+ * 
+ *         var my_backup_plan_association = new BackupPlanAssociation("my-backup-plan-association", BackupPlanAssociationArgs.builder()
+ *             .location("us-central1")
+ *             .resourceType("compute.googleapis.com/Instance")
+ *             .backupPlanAssociationId("my-bpa")
+ *             .resource(myinstance.id())
+ *             .backupPlan(bp1.name())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * BackupPlanAssociation can be imported using any of these accepted formats: + * + * * `projects/{{project}}/locations/{{location}}/backupPlanAssociations/{{backup_plan_association_id}}` + * + * * `{{project}}/{{location}}/{{backup_plan_association_id}}` + * + * * `{{location}}/{{backup_plan_association_id}}` + * + * When using the `pulumi import` command, BackupPlanAssociation can be imported using one of the formats above. For example: + * + * ```sh + * $ pulumi import gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation default projects/{{project}}/locations/{{location}}/backupPlanAssociations/{{backup_plan_association_id}} + * ``` + * + * ```sh + * $ pulumi import gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation default {{project}}/{{location}}/{{backup_plan_association_id}} + * ``` + * + * ```sh + * $ pulumi import gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation default {{location}}/{{backup_plan_association_id}} + * ``` + * + */ +@ResourceType(type="gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation") +public class BackupPlanAssociation extends com.pulumi.resources.CustomResource { + /** + * The BP with which resource needs to be created + * + */ + @Export(name="backupPlan", refs={String.class}, tree="[0]") + private Output backupPlan; + + /** + * @return The BP with which resource needs to be created + * + */ + public Output backupPlan() { + return this.backupPlan; + } + /** + * The id of backupplan association + * + * *** + * + */ + @Export(name="backupPlanAssociationId", refs={String.class}, tree="[0]") + private Output backupPlanAssociationId; + + /** + * @return The id of backupplan association + * + * *** + * + */ + public Output backupPlanAssociationId() { + return this.backupPlanAssociationId; + } + /** + * The time when the instance was created + * + */ + @Export(name="createTime", refs={String.class}, tree="[0]") + private Output createTime; + + /** + * @return The time when the instance was created + * + */ + public Output createTime() { + return this.createTime; + } + /** + * Resource name of data source which will be used as storage location for backups taken + * + */ + @Export(name="dataSource", refs={String.class}, tree="[0]") + private Output dataSource; + + /** + * @return Resource name of data source which will be used as storage location for backups taken + * + */ + public Output dataSource() { + return this.dataSource; + } + /** + * The point in time when the last successful backup was captured from the source + * + */ + @Export(name="lastSuccessfulBackupConsistencyTime", refs={String.class}, tree="[0]") + private Output lastSuccessfulBackupConsistencyTime; + + /** + * @return The point in time when the last successful backup was captured from the source + * + */ + public Output lastSuccessfulBackupConsistencyTime() { + return this.lastSuccessfulBackupConsistencyTime; + } + /** + * The location for the backupplan association + * + */ + @Export(name="location", refs={String.class}, tree="[0]") + private Output location; + + /** + * @return The location for the backupplan association + * + */ + public Output location() { + return this.location; + } + /** + * The name of backup plan association resource created + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return The name of backup plan association resource created + * + */ + public Output name() { + return this.name; + } + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + @Export(name="project", refs={String.class}, tree="[0]") + private Output project; + + /** + * @return The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + public Output project() { + return this.project; + } + /** + * The resource for which BPA needs to be created + * + */ + @Export(name="resource", refs={String.class}, tree="[0]") + private Output resource; + + /** + * @return The resource for which BPA needs to be created + * + */ + public Output resource() { + return this.resource; + } + /** + * The resource type of workload on which backupplan is applied + * + */ + @Export(name="resourceType", refs={String.class}, tree="[0]") + private Output resourceType; + + /** + * @return The resource type of workload on which backupplan is applied + * + */ + public Output resourceType() { + return this.resourceType; + } + /** + * Message for rules config info + * Structure is documented below. + * + */ + @Export(name="rulesConfigInfos", refs={List.class,BackupPlanAssociationRulesConfigInfo.class}, tree="[0,1]") + private Output> rulesConfigInfos; + + /** + * @return Message for rules config info + * Structure is documented below. + * + */ + public Output> rulesConfigInfos() { + return this.rulesConfigInfos; + } + /** + * The time when the instance was updated. + * + */ + @Export(name="updateTime", refs={String.class}, tree="[0]") + private Output updateTime; + + /** + * @return The time when the instance was updated. + * + */ + public Output updateTime() { + return this.updateTime; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public BackupPlanAssociation(java.lang.String name) { + this(name, BackupPlanAssociationArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public BackupPlanAssociation(java.lang.String name, BackupPlanAssociationArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public BackupPlanAssociation(java.lang.String name, BackupPlanAssociationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private BackupPlanAssociation(java.lang.String name, Output id, @Nullable BackupPlanAssociationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation", name, state, makeResourceOptions(options, id), false); + } + + private static BackupPlanAssociationArgs makeArgs(BackupPlanAssociationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BackupPlanAssociationArgs.Empty : args; + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static BackupPlanAssociation get(java.lang.String name, Output id, @Nullable BackupPlanAssociationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new BackupPlanAssociation(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/BackupPlanAssociationArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/BackupPlanAssociationArgs.java new file mode 100644 index 0000000000..5d30dd9374 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/BackupPlanAssociationArgs.java @@ -0,0 +1,296 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.backupdisasterrecovery; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class BackupPlanAssociationArgs extends com.pulumi.resources.ResourceArgs { + + public static final BackupPlanAssociationArgs Empty = new BackupPlanAssociationArgs(); + + /** + * The BP with which resource needs to be created + * + */ + @Import(name="backupPlan", required=true) + private Output backupPlan; + + /** + * @return The BP with which resource needs to be created + * + */ + public Output backupPlan() { + return this.backupPlan; + } + + /** + * The id of backupplan association + * + * *** + * + */ + @Import(name="backupPlanAssociationId", required=true) + private Output backupPlanAssociationId; + + /** + * @return The id of backupplan association + * + * *** + * + */ + public Output backupPlanAssociationId() { + return this.backupPlanAssociationId; + } + + /** + * The location for the backupplan association + * + */ + @Import(name="location", required=true) + private Output location; + + /** + * @return The location for the backupplan association + * + */ + public Output location() { + return this.location; + } + + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + @Import(name="project") + private @Nullable Output project; + + /** + * @return The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + public Optional> project() { + return Optional.ofNullable(this.project); + } + + /** + * The resource for which BPA needs to be created + * + */ + @Import(name="resource", required=true) + private Output resource; + + /** + * @return The resource for which BPA needs to be created + * + */ + public Output resource() { + return this.resource; + } + + /** + * The resource type of workload on which backupplan is applied + * + */ + @Import(name="resourceType", required=true) + private Output resourceType; + + /** + * @return The resource type of workload on which backupplan is applied + * + */ + public Output resourceType() { + return this.resourceType; + } + + private BackupPlanAssociationArgs() {} + + private BackupPlanAssociationArgs(BackupPlanAssociationArgs $) { + this.backupPlan = $.backupPlan; + this.backupPlanAssociationId = $.backupPlanAssociationId; + this.location = $.location; + this.project = $.project; + this.resource = $.resource; + this.resourceType = $.resourceType; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(BackupPlanAssociationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private BackupPlanAssociationArgs $; + + public Builder() { + $ = new BackupPlanAssociationArgs(); + } + + public Builder(BackupPlanAssociationArgs defaults) { + $ = new BackupPlanAssociationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param backupPlan The BP with which resource needs to be created + * + * @return builder + * + */ + public Builder backupPlan(Output backupPlan) { + $.backupPlan = backupPlan; + return this; + } + + /** + * @param backupPlan The BP with which resource needs to be created + * + * @return builder + * + */ + public Builder backupPlan(String backupPlan) { + return backupPlan(Output.of(backupPlan)); + } + + /** + * @param backupPlanAssociationId The id of backupplan association + * + * *** + * + * @return builder + * + */ + public Builder backupPlanAssociationId(Output backupPlanAssociationId) { + $.backupPlanAssociationId = backupPlanAssociationId; + return this; + } + + /** + * @param backupPlanAssociationId The id of backupplan association + * + * *** + * + * @return builder + * + */ + public Builder backupPlanAssociationId(String backupPlanAssociationId) { + return backupPlanAssociationId(Output.of(backupPlanAssociationId)); + } + + /** + * @param location The location for the backupplan association + * + * @return builder + * + */ + public Builder location(Output location) { + $.location = location; + return this; + } + + /** + * @param location The location for the backupplan association + * + * @return builder + * + */ + public Builder location(String location) { + return location(Output.of(location)); + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + * @return builder + * + */ + public Builder project(@Nullable Output project) { + $.project = project; + return this; + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + * @return builder + * + */ + public Builder project(String project) { + return project(Output.of(project)); + } + + /** + * @param resource The resource for which BPA needs to be created + * + * @return builder + * + */ + public Builder resource(Output resource) { + $.resource = resource; + return this; + } + + /** + * @param resource The resource for which BPA needs to be created + * + * @return builder + * + */ + public Builder resource(String resource) { + return resource(Output.of(resource)); + } + + /** + * @param resourceType The resource type of workload on which backupplan is applied + * + * @return builder + * + */ + public Builder resourceType(Output resourceType) { + $.resourceType = resourceType; + return this; + } + + /** + * @param resourceType The resource type of workload on which backupplan is applied + * + * @return builder + * + */ + public Builder resourceType(String resourceType) { + return resourceType(Output.of(resourceType)); + } + + public BackupPlanAssociationArgs build() { + if ($.backupPlan == null) { + throw new MissingRequiredPropertyException("BackupPlanAssociationArgs", "backupPlan"); + } + if ($.backupPlanAssociationId == null) { + throw new MissingRequiredPropertyException("BackupPlanAssociationArgs", "backupPlanAssociationId"); + } + if ($.location == null) { + throw new MissingRequiredPropertyException("BackupPlanAssociationArgs", "location"); + } + if ($.resource == null) { + throw new MissingRequiredPropertyException("BackupPlanAssociationArgs", "resource"); + } + if ($.resourceType == null) { + throw new MissingRequiredPropertyException("BackupPlanAssociationArgs", "resourceType"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/BackupVault.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/BackupVault.java index 8af433039f..518a48f28e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/BackupVault.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/BackupVault.java @@ -59,7 +59,8 @@ * Map.entry("annotations2", "baz1") * )) * .forceUpdate("true") - * .forceDelete("true") + * .ignoreInactiveDatasources("true") + * .ignoreBackupPlanReferences("true") * .allowMissing("true") * .build()); * @@ -267,19 +268,29 @@ public Output etag() { return this.etag; } /** + * (Optional, Deprecated) * If set, the following restrictions against deletion of the backup vault instance can be overridden: * * deletion of a backup vault instance containing no backups, but still containing empty datasources. * * deletion of a backup vault instance that is being referenced by an active backup plan. * + * > **Warning:** `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. + * + * @deprecated + * `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. + * */ + @Deprecated /* `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. */ @Export(name="forceDelete", refs={Boolean.class}, tree="[0]") private Output forceDelete; /** - * @return If set, the following restrictions against deletion of the backup vault instance can be overridden: + * @return (Optional, Deprecated) + * If set, the following restrictions against deletion of the backup vault instance can be overridden: * * deletion of a backup vault instance containing no backups, but still containing empty datasources. * * deletion of a backup vault instance that is being referenced by an active backup plan. * + * > **Warning:** `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. + * */ public Output> forceDelete() { return Codegen.optional(this.forceDelete); @@ -304,6 +315,38 @@ public Output> forceDelete() { public Output> forceUpdate() { return Codegen.optional(this.forceUpdate); } + /** + * If set, the following restrictions against deletion of the backup vault instance can be overridden: + * * deletion of a backup vault instance that is being referenced by an active backup plan. + * + */ + @Export(name="ignoreBackupPlanReferences", refs={Boolean.class}, tree="[0]") + private Output ignoreBackupPlanReferences; + + /** + * @return If set, the following restrictions against deletion of the backup vault instance can be overridden: + * * deletion of a backup vault instance that is being referenced by an active backup plan. + * + */ + public Output> ignoreBackupPlanReferences() { + return Codegen.optional(this.ignoreBackupPlanReferences); + } + /** + * If set, the following restrictions against deletion of the backup vault instance can be overridden: + * * deletion of a backup vault instance containing no backups, but still containing empty datasources. + * + */ + @Export(name="ignoreInactiveDatasources", refs={Boolean.class}, tree="[0]") + private Output ignoreInactiveDatasources; + + /** + * @return If set, the following restrictions against deletion of the backup vault instance can be overridden: + * * deletion of a backup vault instance containing no backups, but still containing empty datasources. + * + */ + public Output> ignoreInactiveDatasources() { + return Codegen.optional(this.ignoreInactiveDatasources); + } /** * Optional. Resource labels to represent user provided metadata. * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/BackupVaultArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/BackupVaultArgs.java index 9fd22f2f86..b24f1649a3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/BackupVaultArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/BackupVaultArgs.java @@ -119,20 +119,34 @@ public Optional> effectiveTime() { } /** + * (Optional, Deprecated) * If set, the following restrictions against deletion of the backup vault instance can be overridden: * * deletion of a backup vault instance containing no backups, but still containing empty datasources. * * deletion of a backup vault instance that is being referenced by an active backup plan. * + * > **Warning:** `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. + * + * @deprecated + * `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. + * */ + @Deprecated /* `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. */ @Import(name="forceDelete") private @Nullable Output forceDelete; /** - * @return If set, the following restrictions against deletion of the backup vault instance can be overridden: + * @return (Optional, Deprecated) + * If set, the following restrictions against deletion of the backup vault instance can be overridden: * * deletion of a backup vault instance containing no backups, but still containing empty datasources. * * deletion of a backup vault instance that is being referenced by an active backup plan. * + * > **Warning:** `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. + * + * @deprecated + * `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. + * */ + @Deprecated /* `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. */ public Optional> forceDelete() { return Optional.ofNullable(this.forceDelete); } @@ -158,6 +172,40 @@ public Optional> forceUpdate() { return Optional.ofNullable(this.forceUpdate); } + /** + * If set, the following restrictions against deletion of the backup vault instance can be overridden: + * * deletion of a backup vault instance that is being referenced by an active backup plan. + * + */ + @Import(name="ignoreBackupPlanReferences") + private @Nullable Output ignoreBackupPlanReferences; + + /** + * @return If set, the following restrictions against deletion of the backup vault instance can be overridden: + * * deletion of a backup vault instance that is being referenced by an active backup plan. + * + */ + public Optional> ignoreBackupPlanReferences() { + return Optional.ofNullable(this.ignoreBackupPlanReferences); + } + + /** + * If set, the following restrictions against deletion of the backup vault instance can be overridden: + * * deletion of a backup vault instance containing no backups, but still containing empty datasources. + * + */ + @Import(name="ignoreInactiveDatasources") + private @Nullable Output ignoreInactiveDatasources; + + /** + * @return If set, the following restrictions against deletion of the backup vault instance can be overridden: + * * deletion of a backup vault instance containing no backups, but still containing empty datasources. + * + */ + public Optional> ignoreInactiveDatasources() { + return Optional.ofNullable(this.ignoreInactiveDatasources); + } + /** * Optional. Resource labels to represent user provided metadata. * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. @@ -220,6 +268,8 @@ private BackupVaultArgs(BackupVaultArgs $) { this.effectiveTime = $.effectiveTime; this.forceDelete = $.forceDelete; this.forceUpdate = $.forceUpdate; + this.ignoreBackupPlanReferences = $.ignoreBackupPlanReferences; + this.ignoreInactiveDatasources = $.ignoreInactiveDatasources; this.labels = $.labels; this.location = $.location; this.project = $.project; @@ -380,26 +430,40 @@ public Builder effectiveTime(String effectiveTime) { } /** - * @param forceDelete If set, the following restrictions against deletion of the backup vault instance can be overridden: + * @param forceDelete (Optional, Deprecated) + * If set, the following restrictions against deletion of the backup vault instance can be overridden: * * deletion of a backup vault instance containing no backups, but still containing empty datasources. * * deletion of a backup vault instance that is being referenced by an active backup plan. * + * > **Warning:** `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. + * * @return builder * + * @deprecated + * `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. + * */ + @Deprecated /* `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. */ public Builder forceDelete(@Nullable Output forceDelete) { $.forceDelete = forceDelete; return this; } /** - * @param forceDelete If set, the following restrictions against deletion of the backup vault instance can be overridden: + * @param forceDelete (Optional, Deprecated) + * If set, the following restrictions against deletion of the backup vault instance can be overridden: * * deletion of a backup vault instance containing no backups, but still containing empty datasources. * * deletion of a backup vault instance that is being referenced by an active backup plan. * + * > **Warning:** `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. + * * @return builder * + * @deprecated + * `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. + * */ + @Deprecated /* `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. */ public Builder forceDelete(Boolean forceDelete) { return forceDelete(Output.of(forceDelete)); } @@ -431,6 +495,52 @@ public Builder forceUpdate(Boolean forceUpdate) { return forceUpdate(Output.of(forceUpdate)); } + /** + * @param ignoreBackupPlanReferences If set, the following restrictions against deletion of the backup vault instance can be overridden: + * * deletion of a backup vault instance that is being referenced by an active backup plan. + * + * @return builder + * + */ + public Builder ignoreBackupPlanReferences(@Nullable Output ignoreBackupPlanReferences) { + $.ignoreBackupPlanReferences = ignoreBackupPlanReferences; + return this; + } + + /** + * @param ignoreBackupPlanReferences If set, the following restrictions against deletion of the backup vault instance can be overridden: + * * deletion of a backup vault instance that is being referenced by an active backup plan. + * + * @return builder + * + */ + public Builder ignoreBackupPlanReferences(Boolean ignoreBackupPlanReferences) { + return ignoreBackupPlanReferences(Output.of(ignoreBackupPlanReferences)); + } + + /** + * @param ignoreInactiveDatasources If set, the following restrictions against deletion of the backup vault instance can be overridden: + * * deletion of a backup vault instance containing no backups, but still containing empty datasources. + * + * @return builder + * + */ + public Builder ignoreInactiveDatasources(@Nullable Output ignoreInactiveDatasources) { + $.ignoreInactiveDatasources = ignoreInactiveDatasources; + return this; + } + + /** + * @param ignoreInactiveDatasources If set, the following restrictions against deletion of the backup vault instance can be overridden: + * * deletion of a backup vault instance containing no backups, but still containing empty datasources. + * + * @return builder + * + */ + public Builder ignoreInactiveDatasources(Boolean ignoreInactiveDatasources) { + return ignoreInactiveDatasources(Output.of(ignoreInactiveDatasources)); + } + /** * @param labels Optional. Resource labels to represent user provided metadata. * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/BackupdisasterrecoveryFunctions.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/BackupdisasterrecoveryFunctions.java index 442ba78f77..7ed31b11e0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/BackupdisasterrecoveryFunctions.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/BackupdisasterrecoveryFunctions.java @@ -8,12 +8,194 @@ import com.pulumi.deployment.Deployment; import com.pulumi.deployment.InvokeOptions; import com.pulumi.gcp.Utilities; +import com.pulumi.gcp.backupdisasterrecovery.inputs.GetBackupPlanArgs; +import com.pulumi.gcp.backupdisasterrecovery.inputs.GetBackupPlanAssociationArgs; +import com.pulumi.gcp.backupdisasterrecovery.inputs.GetBackupPlanAssociationPlainArgs; +import com.pulumi.gcp.backupdisasterrecovery.inputs.GetBackupPlanPlainArgs; import com.pulumi.gcp.backupdisasterrecovery.inputs.GetManagementServerArgs; import com.pulumi.gcp.backupdisasterrecovery.inputs.GetManagementServerPlainArgs; +import com.pulumi.gcp.backupdisasterrecovery.outputs.GetBackupPlanAssociationResult; +import com.pulumi.gcp.backupdisasterrecovery.outputs.GetBackupPlanResult; import com.pulumi.gcp.backupdisasterrecovery.outputs.GetManagementServerResult; import java.util.concurrent.CompletableFuture; public final class BackupdisasterrecoveryFunctions { + public static Output getBackupPlan(GetBackupPlanArgs args) { + return getBackupPlan(args, InvokeOptions.Empty); + } + public static CompletableFuture getBackupPlanPlain(GetBackupPlanPlainArgs args) { + return getBackupPlanPlain(args, InvokeOptions.Empty); + } + public static Output getBackupPlan(GetBackupPlanArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("gcp:backupdisasterrecovery/getBackupPlan:getBackupPlan", TypeShape.of(GetBackupPlanResult.class), args, Utilities.withVersion(options)); + } + public static CompletableFuture getBackupPlanPlain(GetBackupPlanPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("gcp:backupdisasterrecovery/getBackupPlan:getBackupPlan", TypeShape.of(GetBackupPlanResult.class), args, Utilities.withVersion(options)); + } + /** + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.gcp.backupdisasterrecovery.BackupdisasterrecoveryFunctions;
+     * import com.pulumi.gcp.backupdisasterrecovery.inputs.GetBackupPlanAssociationArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var my-backupplan-association = BackupdisasterrecoveryFunctions.getBackupPlanAssociation(GetBackupPlanAssociationArgs.builder()
+     *             .location("us-central1")
+     *             .backupPlanAssociationId("bpa-id")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getBackupPlanAssociation(GetBackupPlanAssociationArgs args) { + return getBackupPlanAssociation(args, InvokeOptions.Empty); + } + /** + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.gcp.backupdisasterrecovery.BackupdisasterrecoveryFunctions;
+     * import com.pulumi.gcp.backupdisasterrecovery.inputs.GetBackupPlanAssociationArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var my-backupplan-association = BackupdisasterrecoveryFunctions.getBackupPlanAssociation(GetBackupPlanAssociationArgs.builder()
+     *             .location("us-central1")
+     *             .backupPlanAssociationId("bpa-id")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getBackupPlanAssociationPlain(GetBackupPlanAssociationPlainArgs args) { + return getBackupPlanAssociationPlain(args, InvokeOptions.Empty); + } + /** + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.gcp.backupdisasterrecovery.BackupdisasterrecoveryFunctions;
+     * import com.pulumi.gcp.backupdisasterrecovery.inputs.GetBackupPlanAssociationArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var my-backupplan-association = BackupdisasterrecoveryFunctions.getBackupPlanAssociation(GetBackupPlanAssociationArgs.builder()
+     *             .location("us-central1")
+     *             .backupPlanAssociationId("bpa-id")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getBackupPlanAssociation(GetBackupPlanAssociationArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("gcp:backupdisasterrecovery/getBackupPlanAssociation:getBackupPlanAssociation", TypeShape.of(GetBackupPlanAssociationResult.class), args, Utilities.withVersion(options)); + } + /** + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.gcp.backupdisasterrecovery.BackupdisasterrecoveryFunctions;
+     * import com.pulumi.gcp.backupdisasterrecovery.inputs.GetBackupPlanAssociationArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var my-backupplan-association = BackupdisasterrecoveryFunctions.getBackupPlanAssociation(GetBackupPlanAssociationArgs.builder()
+     *             .location("us-central1")
+     *             .backupPlanAssociationId("bpa-id")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getBackupPlanAssociationPlain(GetBackupPlanAssociationPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("gcp:backupdisasterrecovery/getBackupPlanAssociation:getBackupPlanAssociation", TypeShape.of(GetBackupPlanAssociationResult.class), args, Utilities.withVersion(options)); + } /** * ## Example Usage * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupPlanAssociationRulesConfigInfoArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupPlanAssociationRulesConfigInfoArgs.java new file mode 100644 index 0000000000..6ff475c4cc --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupPlanAssociationRulesConfigInfoArgs.java @@ -0,0 +1,187 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.backupdisasterrecovery.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.backupdisasterrecovery.inputs.BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class BackupPlanAssociationRulesConfigInfoArgs extends com.pulumi.resources.ResourceArgs { + + public static final BackupPlanAssociationRulesConfigInfoArgs Empty = new BackupPlanAssociationRulesConfigInfoArgs(); + + /** + * (Output) + * google.rpc.Status object to store the last backup error + * Structure is documented below. + * + */ + @Import(name="lastBackupErrors") + private @Nullable Output> lastBackupErrors; + + /** + * @return (Output) + * google.rpc.Status object to store the last backup error + * Structure is documented below. + * + */ + public Optional>> lastBackupErrors() { + return Optional.ofNullable(this.lastBackupErrors); + } + + /** + * (Output) + * State of last backup taken. + * + */ + @Import(name="lastBackupState") + private @Nullable Output lastBackupState; + + /** + * @return (Output) + * State of last backup taken. + * + */ + public Optional> lastBackupState() { + return Optional.ofNullable(this.lastBackupState); + } + + /** + * (Output) + * Backup Rule id fetched from backup plan. + * + */ + @Import(name="ruleId") + private @Nullable Output ruleId; + + /** + * @return (Output) + * Backup Rule id fetched from backup plan. + * + */ + public Optional> ruleId() { + return Optional.ofNullable(this.ruleId); + } + + private BackupPlanAssociationRulesConfigInfoArgs() {} + + private BackupPlanAssociationRulesConfigInfoArgs(BackupPlanAssociationRulesConfigInfoArgs $) { + this.lastBackupErrors = $.lastBackupErrors; + this.lastBackupState = $.lastBackupState; + this.ruleId = $.ruleId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(BackupPlanAssociationRulesConfigInfoArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private BackupPlanAssociationRulesConfigInfoArgs $; + + public Builder() { + $ = new BackupPlanAssociationRulesConfigInfoArgs(); + } + + public Builder(BackupPlanAssociationRulesConfigInfoArgs defaults) { + $ = new BackupPlanAssociationRulesConfigInfoArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param lastBackupErrors (Output) + * google.rpc.Status object to store the last backup error + * Structure is documented below. + * + * @return builder + * + */ + public Builder lastBackupErrors(@Nullable Output> lastBackupErrors) { + $.lastBackupErrors = lastBackupErrors; + return this; + } + + /** + * @param lastBackupErrors (Output) + * google.rpc.Status object to store the last backup error + * Structure is documented below. + * + * @return builder + * + */ + public Builder lastBackupErrors(List lastBackupErrors) { + return lastBackupErrors(Output.of(lastBackupErrors)); + } + + /** + * @param lastBackupErrors (Output) + * google.rpc.Status object to store the last backup error + * Structure is documented below. + * + * @return builder + * + */ + public Builder lastBackupErrors(BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs... lastBackupErrors) { + return lastBackupErrors(List.of(lastBackupErrors)); + } + + /** + * @param lastBackupState (Output) + * State of last backup taken. + * + * @return builder + * + */ + public Builder lastBackupState(@Nullable Output lastBackupState) { + $.lastBackupState = lastBackupState; + return this; + } + + /** + * @param lastBackupState (Output) + * State of last backup taken. + * + * @return builder + * + */ + public Builder lastBackupState(String lastBackupState) { + return lastBackupState(Output.of(lastBackupState)); + } + + /** + * @param ruleId (Output) + * Backup Rule id fetched from backup plan. + * + * @return builder + * + */ + public Builder ruleId(@Nullable Output ruleId) { + $.ruleId = ruleId; + return this; + } + + /** + * @param ruleId (Output) + * Backup Rule id fetched from backup plan. + * + * @return builder + * + */ + public Builder ruleId(String ruleId) { + return ruleId(Output.of(ruleId)); + } + + public BackupPlanAssociationRulesConfigInfoArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs.java new file mode 100644 index 0000000000..df0e4c9750 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs.java @@ -0,0 +1,129 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.backupdisasterrecovery.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Double; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs extends com.pulumi.resources.ResourceArgs { + + public static final BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs Empty = new BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs(); + + /** + * (Output) + * The status code, which should be an enum value of [google.rpc.Code] + * + */ + @Import(name="code") + private @Nullable Output code; + + /** + * @return (Output) + * The status code, which should be an enum value of [google.rpc.Code] + * + */ + public Optional> code() { + return Optional.ofNullable(this.code); + } + + /** + * (Output) + * A developer-facing error message, which should be in English. + * + */ + @Import(name="message") + private @Nullable Output message; + + /** + * @return (Output) + * A developer-facing error message, which should be in English. + * + */ + public Optional> message() { + return Optional.ofNullable(this.message); + } + + private BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs() {} + + private BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs(BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs $) { + this.code = $.code; + this.message = $.message; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs $; + + public Builder() { + $ = new BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs(); + } + + public Builder(BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs defaults) { + $ = new BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param code (Output) + * The status code, which should be an enum value of [google.rpc.Code] + * + * @return builder + * + */ + public Builder code(@Nullable Output code) { + $.code = code; + return this; + } + + /** + * @param code (Output) + * The status code, which should be an enum value of [google.rpc.Code] + * + * @return builder + * + */ + public Builder code(Double code) { + return code(Output.of(code)); + } + + /** + * @param message (Output) + * A developer-facing error message, which should be in English. + * + * @return builder + * + */ + public Builder message(@Nullable Output message) { + $.message = message; + return this; + } + + /** + * @param message (Output) + * A developer-facing error message, which should be in English. + * + * @return builder + * + */ + public Builder message(String message) { + return message(Output.of(message)); + } + + public BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupPlanAssociationState.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupPlanAssociationState.java new file mode 100644 index 0000000000..578ecdd6fb --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupPlanAssociationState.java @@ -0,0 +1,519 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.backupdisasterrecovery.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.backupdisasterrecovery.inputs.BackupPlanAssociationRulesConfigInfoArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class BackupPlanAssociationState extends com.pulumi.resources.ResourceArgs { + + public static final BackupPlanAssociationState Empty = new BackupPlanAssociationState(); + + /** + * The BP with which resource needs to be created + * + */ + @Import(name="backupPlan") + private @Nullable Output backupPlan; + + /** + * @return The BP with which resource needs to be created + * + */ + public Optional> backupPlan() { + return Optional.ofNullable(this.backupPlan); + } + + /** + * The id of backupplan association + * + * *** + * + */ + @Import(name="backupPlanAssociationId") + private @Nullable Output backupPlanAssociationId; + + /** + * @return The id of backupplan association + * + * *** + * + */ + public Optional> backupPlanAssociationId() { + return Optional.ofNullable(this.backupPlanAssociationId); + } + + /** + * The time when the instance was created + * + */ + @Import(name="createTime") + private @Nullable Output createTime; + + /** + * @return The time when the instance was created + * + */ + public Optional> createTime() { + return Optional.ofNullable(this.createTime); + } + + /** + * Resource name of data source which will be used as storage location for backups taken + * + */ + @Import(name="dataSource") + private @Nullable Output dataSource; + + /** + * @return Resource name of data source which will be used as storage location for backups taken + * + */ + public Optional> dataSource() { + return Optional.ofNullable(this.dataSource); + } + + /** + * The point in time when the last successful backup was captured from the source + * + */ + @Import(name="lastSuccessfulBackupConsistencyTime") + private @Nullable Output lastSuccessfulBackupConsistencyTime; + + /** + * @return The point in time when the last successful backup was captured from the source + * + */ + public Optional> lastSuccessfulBackupConsistencyTime() { + return Optional.ofNullable(this.lastSuccessfulBackupConsistencyTime); + } + + /** + * The location for the backupplan association + * + */ + @Import(name="location") + private @Nullable Output location; + + /** + * @return The location for the backupplan association + * + */ + public Optional> location() { + return Optional.ofNullable(this.location); + } + + /** + * The name of backup plan association resource created + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return The name of backup plan association resource created + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + @Import(name="project") + private @Nullable Output project; + + /** + * @return The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + public Optional> project() { + return Optional.ofNullable(this.project); + } + + /** + * The resource for which BPA needs to be created + * + */ + @Import(name="resource") + private @Nullable Output resource; + + /** + * @return The resource for which BPA needs to be created + * + */ + public Optional> resource() { + return Optional.ofNullable(this.resource); + } + + /** + * The resource type of workload on which backupplan is applied + * + */ + @Import(name="resourceType") + private @Nullable Output resourceType; + + /** + * @return The resource type of workload on which backupplan is applied + * + */ + public Optional> resourceType() { + return Optional.ofNullable(this.resourceType); + } + + /** + * Message for rules config info + * Structure is documented below. + * + */ + @Import(name="rulesConfigInfos") + private @Nullable Output> rulesConfigInfos; + + /** + * @return Message for rules config info + * Structure is documented below. + * + */ + public Optional>> rulesConfigInfos() { + return Optional.ofNullable(this.rulesConfigInfos); + } + + /** + * The time when the instance was updated. + * + */ + @Import(name="updateTime") + private @Nullable Output updateTime; + + /** + * @return The time when the instance was updated. + * + */ + public Optional> updateTime() { + return Optional.ofNullable(this.updateTime); + } + + private BackupPlanAssociationState() {} + + private BackupPlanAssociationState(BackupPlanAssociationState $) { + this.backupPlan = $.backupPlan; + this.backupPlanAssociationId = $.backupPlanAssociationId; + this.createTime = $.createTime; + this.dataSource = $.dataSource; + this.lastSuccessfulBackupConsistencyTime = $.lastSuccessfulBackupConsistencyTime; + this.location = $.location; + this.name = $.name; + this.project = $.project; + this.resource = $.resource; + this.resourceType = $.resourceType; + this.rulesConfigInfos = $.rulesConfigInfos; + this.updateTime = $.updateTime; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(BackupPlanAssociationState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private BackupPlanAssociationState $; + + public Builder() { + $ = new BackupPlanAssociationState(); + } + + public Builder(BackupPlanAssociationState defaults) { + $ = new BackupPlanAssociationState(Objects.requireNonNull(defaults)); + } + + /** + * @param backupPlan The BP with which resource needs to be created + * + * @return builder + * + */ + public Builder backupPlan(@Nullable Output backupPlan) { + $.backupPlan = backupPlan; + return this; + } + + /** + * @param backupPlan The BP with which resource needs to be created + * + * @return builder + * + */ + public Builder backupPlan(String backupPlan) { + return backupPlan(Output.of(backupPlan)); + } + + /** + * @param backupPlanAssociationId The id of backupplan association + * + * *** + * + * @return builder + * + */ + public Builder backupPlanAssociationId(@Nullable Output backupPlanAssociationId) { + $.backupPlanAssociationId = backupPlanAssociationId; + return this; + } + + /** + * @param backupPlanAssociationId The id of backupplan association + * + * *** + * + * @return builder + * + */ + public Builder backupPlanAssociationId(String backupPlanAssociationId) { + return backupPlanAssociationId(Output.of(backupPlanAssociationId)); + } + + /** + * @param createTime The time when the instance was created + * + * @return builder + * + */ + public Builder createTime(@Nullable Output createTime) { + $.createTime = createTime; + return this; + } + + /** + * @param createTime The time when the instance was created + * + * @return builder + * + */ + public Builder createTime(String createTime) { + return createTime(Output.of(createTime)); + } + + /** + * @param dataSource Resource name of data source which will be used as storage location for backups taken + * + * @return builder + * + */ + public Builder dataSource(@Nullable Output dataSource) { + $.dataSource = dataSource; + return this; + } + + /** + * @param dataSource Resource name of data source which will be used as storage location for backups taken + * + * @return builder + * + */ + public Builder dataSource(String dataSource) { + return dataSource(Output.of(dataSource)); + } + + /** + * @param lastSuccessfulBackupConsistencyTime The point in time when the last successful backup was captured from the source + * + * @return builder + * + */ + public Builder lastSuccessfulBackupConsistencyTime(@Nullable Output lastSuccessfulBackupConsistencyTime) { + $.lastSuccessfulBackupConsistencyTime = lastSuccessfulBackupConsistencyTime; + return this; + } + + /** + * @param lastSuccessfulBackupConsistencyTime The point in time when the last successful backup was captured from the source + * + * @return builder + * + */ + public Builder lastSuccessfulBackupConsistencyTime(String lastSuccessfulBackupConsistencyTime) { + return lastSuccessfulBackupConsistencyTime(Output.of(lastSuccessfulBackupConsistencyTime)); + } + + /** + * @param location The location for the backupplan association + * + * @return builder + * + */ + public Builder location(@Nullable Output location) { + $.location = location; + return this; + } + + /** + * @param location The location for the backupplan association + * + * @return builder + * + */ + public Builder location(String location) { + return location(Output.of(location)); + } + + /** + * @param name The name of backup plan association resource created + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name The name of backup plan association resource created + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + * @return builder + * + */ + public Builder project(@Nullable Output project) { + $.project = project; + return this; + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + * @return builder + * + */ + public Builder project(String project) { + return project(Output.of(project)); + } + + /** + * @param resource The resource for which BPA needs to be created + * + * @return builder + * + */ + public Builder resource(@Nullable Output resource) { + $.resource = resource; + return this; + } + + /** + * @param resource The resource for which BPA needs to be created + * + * @return builder + * + */ + public Builder resource(String resource) { + return resource(Output.of(resource)); + } + + /** + * @param resourceType The resource type of workload on which backupplan is applied + * + * @return builder + * + */ + public Builder resourceType(@Nullable Output resourceType) { + $.resourceType = resourceType; + return this; + } + + /** + * @param resourceType The resource type of workload on which backupplan is applied + * + * @return builder + * + */ + public Builder resourceType(String resourceType) { + return resourceType(Output.of(resourceType)); + } + + /** + * @param rulesConfigInfos Message for rules config info + * Structure is documented below. + * + * @return builder + * + */ + public Builder rulesConfigInfos(@Nullable Output> rulesConfigInfos) { + $.rulesConfigInfos = rulesConfigInfos; + return this; + } + + /** + * @param rulesConfigInfos Message for rules config info + * Structure is documented below. + * + * @return builder + * + */ + public Builder rulesConfigInfos(List rulesConfigInfos) { + return rulesConfigInfos(Output.of(rulesConfigInfos)); + } + + /** + * @param rulesConfigInfos Message for rules config info + * Structure is documented below. + * + * @return builder + * + */ + public Builder rulesConfigInfos(BackupPlanAssociationRulesConfigInfoArgs... rulesConfigInfos) { + return rulesConfigInfos(List.of(rulesConfigInfos)); + } + + /** + * @param updateTime The time when the instance was updated. + * + * @return builder + * + */ + public Builder updateTime(@Nullable Output updateTime) { + $.updateTime = updateTime; + return this; + } + + /** + * @param updateTime The time when the instance was updated. + * + * @return builder + * + */ + public Builder updateTime(String updateTime) { + return updateTime(Output.of(updateTime)); + } + + public BackupPlanAssociationState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupPlanBackupRuleArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupPlanBackupRuleArgs.java new file mode 100644 index 0000000000..3e34dc3c33 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupPlanBackupRuleArgs.java @@ -0,0 +1,171 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.backupdisasterrecovery.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.gcp.backupdisasterrecovery.inputs.BackupPlanBackupRuleStandardScheduleArgs; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; + + +public final class BackupPlanBackupRuleArgs extends com.pulumi.resources.ResourceArgs { + + public static final BackupPlanBackupRuleArgs Empty = new BackupPlanBackupRuleArgs(); + + /** + * Configures the duration for which backup data will be kept. The value should be greater than or equal to minimum enforced retention of the backup vault. + * + */ + @Import(name="backupRetentionDays", required=true) + private Output backupRetentionDays; + + /** + * @return Configures the duration for which backup data will be kept. The value should be greater than or equal to minimum enforced retention of the backup vault. + * + */ + public Output backupRetentionDays() { + return this.backupRetentionDays; + } + + /** + * The unique ID of this `BackupRule`. The `rule_id` is unique per `BackupPlan`. + * + */ + @Import(name="ruleId", required=true) + private Output ruleId; + + /** + * @return The unique ID of this `BackupRule`. The `rule_id` is unique per `BackupPlan`. + * + */ + public Output ruleId() { + return this.ruleId; + } + + /** + * StandardSchedule defines a schedule that runs within the confines of a defined window of days. + * Structure is documented below. + * + */ + @Import(name="standardSchedule", required=true) + private Output standardSchedule; + + /** + * @return StandardSchedule defines a schedule that runs within the confines of a defined window of days. + * Structure is documented below. + * + */ + public Output standardSchedule() { + return this.standardSchedule; + } + + private BackupPlanBackupRuleArgs() {} + + private BackupPlanBackupRuleArgs(BackupPlanBackupRuleArgs $) { + this.backupRetentionDays = $.backupRetentionDays; + this.ruleId = $.ruleId; + this.standardSchedule = $.standardSchedule; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(BackupPlanBackupRuleArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private BackupPlanBackupRuleArgs $; + + public Builder() { + $ = new BackupPlanBackupRuleArgs(); + } + + public Builder(BackupPlanBackupRuleArgs defaults) { + $ = new BackupPlanBackupRuleArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param backupRetentionDays Configures the duration for which backup data will be kept. The value should be greater than or equal to minimum enforced retention of the backup vault. + * + * @return builder + * + */ + public Builder backupRetentionDays(Output backupRetentionDays) { + $.backupRetentionDays = backupRetentionDays; + return this; + } + + /** + * @param backupRetentionDays Configures the duration for which backup data will be kept. The value should be greater than or equal to minimum enforced retention of the backup vault. + * + * @return builder + * + */ + public Builder backupRetentionDays(Integer backupRetentionDays) { + return backupRetentionDays(Output.of(backupRetentionDays)); + } + + /** + * @param ruleId The unique ID of this `BackupRule`. The `rule_id` is unique per `BackupPlan`. + * + * @return builder + * + */ + public Builder ruleId(Output ruleId) { + $.ruleId = ruleId; + return this; + } + + /** + * @param ruleId The unique ID of this `BackupRule`. The `rule_id` is unique per `BackupPlan`. + * + * @return builder + * + */ + public Builder ruleId(String ruleId) { + return ruleId(Output.of(ruleId)); + } + + /** + * @param standardSchedule StandardSchedule defines a schedule that runs within the confines of a defined window of days. + * Structure is documented below. + * + * @return builder + * + */ + public Builder standardSchedule(Output standardSchedule) { + $.standardSchedule = standardSchedule; + return this; + } + + /** + * @param standardSchedule StandardSchedule defines a schedule that runs within the confines of a defined window of days. + * Structure is documented below. + * + * @return builder + * + */ + public Builder standardSchedule(BackupPlanBackupRuleStandardScheduleArgs standardSchedule) { + return standardSchedule(Output.of(standardSchedule)); + } + + public BackupPlanBackupRuleArgs build() { + if ($.backupRetentionDays == null) { + throw new MissingRequiredPropertyException("BackupPlanBackupRuleArgs", "backupRetentionDays"); + } + if ($.ruleId == null) { + throw new MissingRequiredPropertyException("BackupPlanBackupRuleArgs", "ruleId"); + } + if ($.standardSchedule == null) { + throw new MissingRequiredPropertyException("BackupPlanBackupRuleArgs", "standardSchedule"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupPlanBackupRuleStandardScheduleArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupPlanBackupRuleStandardScheduleArgs.java new file mode 100644 index 0000000000..2440c0201e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupPlanBackupRuleStandardScheduleArgs.java @@ -0,0 +1,413 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.backupdisasterrecovery.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.gcp.backupdisasterrecovery.inputs.BackupPlanBackupRuleStandardScheduleBackupWindowArgs; +import com.pulumi.gcp.backupdisasterrecovery.inputs.BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs; +import java.lang.Integer; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class BackupPlanBackupRuleStandardScheduleArgs extends com.pulumi.resources.ResourceArgs { + + public static final BackupPlanBackupRuleStandardScheduleArgs Empty = new BackupPlanBackupRuleStandardScheduleArgs(); + + /** + * A BackupWindow defines the window of the day during which backup jobs will run. Jobs are queued at the beginning of the window and will be marked as + * `NOT_RUN` if they do not start by the end of the window. + * Structure is documented below. + * + */ + @Import(name="backupWindow") + private @Nullable Output backupWindow; + + /** + * @return A BackupWindow defines the window of the day during which backup jobs will run. Jobs are queued at the beginning of the window and will be marked as + * `NOT_RUN` if they do not start by the end of the window. + * Structure is documented below. + * + */ + public Optional> backupWindow() { + return Optional.ofNullable(this.backupWindow); + } + + /** + * Specifies days of months like 1, 5, or 14 on which jobs will run. + * + */ + @Import(name="daysOfMonths") + private @Nullable Output> daysOfMonths; + + /** + * @return Specifies days of months like 1, 5, or 14 on which jobs will run. + * + */ + public Optional>> daysOfMonths() { + return Optional.ofNullable(this.daysOfMonths); + } + + /** + * Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for `recurrence_type`, `WEEKLY` and is not applicable otherwise. + * Each value may be one of: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`. + * + */ + @Import(name="daysOfWeeks") + private @Nullable Output> daysOfWeeks; + + /** + * @return Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for `recurrence_type`, `WEEKLY` and is not applicable otherwise. + * Each value may be one of: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`. + * + */ + public Optional>> daysOfWeeks() { + return Optional.ofNullable(this.daysOfWeeks); + } + + /** + * Specifies frequency for hourly backups. An hourly frequency of 2 means jobs will run every 2 hours from start time till end time defined. + * This is required for `recurrence_type`, `HOURLY` and is not applicable otherwise. + * + */ + @Import(name="hourlyFrequency") + private @Nullable Output hourlyFrequency; + + /** + * @return Specifies frequency for hourly backups. An hourly frequency of 2 means jobs will run every 2 hours from start time till end time defined. + * This is required for `recurrence_type`, `HOURLY` and is not applicable otherwise. + * + */ + public Optional> hourlyFrequency() { + return Optional.ofNullable(this.hourlyFrequency); + } + + /** + * Specifies values of months + * Each value may be one of: `MONTH_UNSPECIFIED`, `JANUARY`, `FEBRUARY`, `MARCH`, `APRIL`, `MAY`, `JUNE`, `JULY`, `AUGUST`, `SEPTEMBER`, `OCTOBER`, `NOVEMBER`, `DECEMBER`. + * + */ + @Import(name="months") + private @Nullable Output> months; + + /** + * @return Specifies values of months + * Each value may be one of: `MONTH_UNSPECIFIED`, `JANUARY`, `FEBRUARY`, `MARCH`, `APRIL`, `MAY`, `JUNE`, `JULY`, `AUGUST`, `SEPTEMBER`, `OCTOBER`, `NOVEMBER`, `DECEMBER`. + * + */ + public Optional>> months() { + return Optional.ofNullable(this.months); + } + + /** + * RecurrenceType enumerates the applicable periodicity for the schedule. + * Possible values are: `HOURLY`, `DAILY`, `WEEKLY`, `MONTHLY`, `YEARLY`. + * + */ + @Import(name="recurrenceType", required=true) + private Output recurrenceType; + + /** + * @return RecurrenceType enumerates the applicable periodicity for the schedule. + * Possible values are: `HOURLY`, `DAILY`, `WEEKLY`, `MONTHLY`, `YEARLY`. + * + */ + public Output recurrenceType() { + return this.recurrenceType; + } + + /** + * The time zone to be used when interpreting the schedule. + * + */ + @Import(name="timeZone", required=true) + private Output timeZone; + + /** + * @return The time zone to be used when interpreting the schedule. + * + */ + public Output timeZone() { + return this.timeZone; + } + + /** + * Specifies a week day of the month like FIRST SUNDAY or LAST MONDAY, on which jobs will run. + * Structure is documented below. + * + */ + @Import(name="weekDayOfMonth") + private @Nullable Output weekDayOfMonth; + + /** + * @return Specifies a week day of the month like FIRST SUNDAY or LAST MONDAY, on which jobs will run. + * Structure is documented below. + * + */ + public Optional> weekDayOfMonth() { + return Optional.ofNullable(this.weekDayOfMonth); + } + + private BackupPlanBackupRuleStandardScheduleArgs() {} + + private BackupPlanBackupRuleStandardScheduleArgs(BackupPlanBackupRuleStandardScheduleArgs $) { + this.backupWindow = $.backupWindow; + this.daysOfMonths = $.daysOfMonths; + this.daysOfWeeks = $.daysOfWeeks; + this.hourlyFrequency = $.hourlyFrequency; + this.months = $.months; + this.recurrenceType = $.recurrenceType; + this.timeZone = $.timeZone; + this.weekDayOfMonth = $.weekDayOfMonth; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(BackupPlanBackupRuleStandardScheduleArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private BackupPlanBackupRuleStandardScheduleArgs $; + + public Builder() { + $ = new BackupPlanBackupRuleStandardScheduleArgs(); + } + + public Builder(BackupPlanBackupRuleStandardScheduleArgs defaults) { + $ = new BackupPlanBackupRuleStandardScheduleArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param backupWindow A BackupWindow defines the window of the day during which backup jobs will run. Jobs are queued at the beginning of the window and will be marked as + * `NOT_RUN` if they do not start by the end of the window. + * Structure is documented below. + * + * @return builder + * + */ + public Builder backupWindow(@Nullable Output backupWindow) { + $.backupWindow = backupWindow; + return this; + } + + /** + * @param backupWindow A BackupWindow defines the window of the day during which backup jobs will run. Jobs are queued at the beginning of the window and will be marked as + * `NOT_RUN` if they do not start by the end of the window. + * Structure is documented below. + * + * @return builder + * + */ + public Builder backupWindow(BackupPlanBackupRuleStandardScheduleBackupWindowArgs backupWindow) { + return backupWindow(Output.of(backupWindow)); + } + + /** + * @param daysOfMonths Specifies days of months like 1, 5, or 14 on which jobs will run. + * + * @return builder + * + */ + public Builder daysOfMonths(@Nullable Output> daysOfMonths) { + $.daysOfMonths = daysOfMonths; + return this; + } + + /** + * @param daysOfMonths Specifies days of months like 1, 5, or 14 on which jobs will run. + * + * @return builder + * + */ + public Builder daysOfMonths(List daysOfMonths) { + return daysOfMonths(Output.of(daysOfMonths)); + } + + /** + * @param daysOfMonths Specifies days of months like 1, 5, or 14 on which jobs will run. + * + * @return builder + * + */ + public Builder daysOfMonths(Integer... daysOfMonths) { + return daysOfMonths(List.of(daysOfMonths)); + } + + /** + * @param daysOfWeeks Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for `recurrence_type`, `WEEKLY` and is not applicable otherwise. + * Each value may be one of: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`. + * + * @return builder + * + */ + public Builder daysOfWeeks(@Nullable Output> daysOfWeeks) { + $.daysOfWeeks = daysOfWeeks; + return this; + } + + /** + * @param daysOfWeeks Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for `recurrence_type`, `WEEKLY` and is not applicable otherwise. + * Each value may be one of: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`. + * + * @return builder + * + */ + public Builder daysOfWeeks(List daysOfWeeks) { + return daysOfWeeks(Output.of(daysOfWeeks)); + } + + /** + * @param daysOfWeeks Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for `recurrence_type`, `WEEKLY` and is not applicable otherwise. + * Each value may be one of: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`. + * + * @return builder + * + */ + public Builder daysOfWeeks(String... daysOfWeeks) { + return daysOfWeeks(List.of(daysOfWeeks)); + } + + /** + * @param hourlyFrequency Specifies frequency for hourly backups. An hourly frequency of 2 means jobs will run every 2 hours from start time till end time defined. + * This is required for `recurrence_type`, `HOURLY` and is not applicable otherwise. + * + * @return builder + * + */ + public Builder hourlyFrequency(@Nullable Output hourlyFrequency) { + $.hourlyFrequency = hourlyFrequency; + return this; + } + + /** + * @param hourlyFrequency Specifies frequency for hourly backups. An hourly frequency of 2 means jobs will run every 2 hours from start time till end time defined. + * This is required for `recurrence_type`, `HOURLY` and is not applicable otherwise. + * + * @return builder + * + */ + public Builder hourlyFrequency(Integer hourlyFrequency) { + return hourlyFrequency(Output.of(hourlyFrequency)); + } + + /** + * @param months Specifies values of months + * Each value may be one of: `MONTH_UNSPECIFIED`, `JANUARY`, `FEBRUARY`, `MARCH`, `APRIL`, `MAY`, `JUNE`, `JULY`, `AUGUST`, `SEPTEMBER`, `OCTOBER`, `NOVEMBER`, `DECEMBER`. + * + * @return builder + * + */ + public Builder months(@Nullable Output> months) { + $.months = months; + return this; + } + + /** + * @param months Specifies values of months + * Each value may be one of: `MONTH_UNSPECIFIED`, `JANUARY`, `FEBRUARY`, `MARCH`, `APRIL`, `MAY`, `JUNE`, `JULY`, `AUGUST`, `SEPTEMBER`, `OCTOBER`, `NOVEMBER`, `DECEMBER`. + * + * @return builder + * + */ + public Builder months(List months) { + return months(Output.of(months)); + } + + /** + * @param months Specifies values of months + * Each value may be one of: `MONTH_UNSPECIFIED`, `JANUARY`, `FEBRUARY`, `MARCH`, `APRIL`, `MAY`, `JUNE`, `JULY`, `AUGUST`, `SEPTEMBER`, `OCTOBER`, `NOVEMBER`, `DECEMBER`. + * + * @return builder + * + */ + public Builder months(String... months) { + return months(List.of(months)); + } + + /** + * @param recurrenceType RecurrenceType enumerates the applicable periodicity for the schedule. + * Possible values are: `HOURLY`, `DAILY`, `WEEKLY`, `MONTHLY`, `YEARLY`. + * + * @return builder + * + */ + public Builder recurrenceType(Output recurrenceType) { + $.recurrenceType = recurrenceType; + return this; + } + + /** + * @param recurrenceType RecurrenceType enumerates the applicable periodicity for the schedule. + * Possible values are: `HOURLY`, `DAILY`, `WEEKLY`, `MONTHLY`, `YEARLY`. + * + * @return builder + * + */ + public Builder recurrenceType(String recurrenceType) { + return recurrenceType(Output.of(recurrenceType)); + } + + /** + * @param timeZone The time zone to be used when interpreting the schedule. + * + * @return builder + * + */ + public Builder timeZone(Output timeZone) { + $.timeZone = timeZone; + return this; + } + + /** + * @param timeZone The time zone to be used when interpreting the schedule. + * + * @return builder + * + */ + public Builder timeZone(String timeZone) { + return timeZone(Output.of(timeZone)); + } + + /** + * @param weekDayOfMonth Specifies a week day of the month like FIRST SUNDAY or LAST MONDAY, on which jobs will run. + * Structure is documented below. + * + * @return builder + * + */ + public Builder weekDayOfMonth(@Nullable Output weekDayOfMonth) { + $.weekDayOfMonth = weekDayOfMonth; + return this; + } + + /** + * @param weekDayOfMonth Specifies a week day of the month like FIRST SUNDAY or LAST MONDAY, on which jobs will run. + * Structure is documented below. + * + * @return builder + * + */ + public Builder weekDayOfMonth(BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs weekDayOfMonth) { + return weekDayOfMonth(Output.of(weekDayOfMonth)); + } + + public BackupPlanBackupRuleStandardScheduleArgs build() { + if ($.recurrenceType == null) { + throw new MissingRequiredPropertyException("BackupPlanBackupRuleStandardScheduleArgs", "recurrenceType"); + } + if ($.timeZone == null) { + throw new MissingRequiredPropertyException("BackupPlanBackupRuleStandardScheduleArgs", "timeZone"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupPlanBackupRuleStandardScheduleBackupWindowArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupPlanBackupRuleStandardScheduleBackupWindowArgs.java new file mode 100644 index 0000000000..9854cdc638 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupPlanBackupRuleStandardScheduleBackupWindowArgs.java @@ -0,0 +1,136 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.backupdisasterrecovery.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class BackupPlanBackupRuleStandardScheduleBackupWindowArgs extends com.pulumi.resources.ResourceArgs { + + public static final BackupPlanBackupRuleStandardScheduleBackupWindowArgs Empty = new BackupPlanBackupRuleStandardScheduleBackupWindowArgs(); + + /** + * The hour of the day (1-24) when the window ends, for example, if the value of end hour of the day is 10, that means the backup window end time is 10:00. + * The end hour of the day should be greater than the start + * + * *** + * + */ + @Import(name="endHourOfDay") + private @Nullable Output endHourOfDay; + + /** + * @return The hour of the day (1-24) when the window ends, for example, if the value of end hour of the day is 10, that means the backup window end time is 10:00. + * The end hour of the day should be greater than the start + * + * *** + * + */ + public Optional> endHourOfDay() { + return Optional.ofNullable(this.endHourOfDay); + } + + /** + * The hour of the day (0-23) when the window starts, for example, if the value of the start hour of the day is 6, that means the backup window starts at 6:00. + * + */ + @Import(name="startHourOfDay", required=true) + private Output startHourOfDay; + + /** + * @return The hour of the day (0-23) when the window starts, for example, if the value of the start hour of the day is 6, that means the backup window starts at 6:00. + * + */ + public Output startHourOfDay() { + return this.startHourOfDay; + } + + private BackupPlanBackupRuleStandardScheduleBackupWindowArgs() {} + + private BackupPlanBackupRuleStandardScheduleBackupWindowArgs(BackupPlanBackupRuleStandardScheduleBackupWindowArgs $) { + this.endHourOfDay = $.endHourOfDay; + this.startHourOfDay = $.startHourOfDay; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(BackupPlanBackupRuleStandardScheduleBackupWindowArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private BackupPlanBackupRuleStandardScheduleBackupWindowArgs $; + + public Builder() { + $ = new BackupPlanBackupRuleStandardScheduleBackupWindowArgs(); + } + + public Builder(BackupPlanBackupRuleStandardScheduleBackupWindowArgs defaults) { + $ = new BackupPlanBackupRuleStandardScheduleBackupWindowArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param endHourOfDay The hour of the day (1-24) when the window ends, for example, if the value of end hour of the day is 10, that means the backup window end time is 10:00. + * The end hour of the day should be greater than the start + * + * *** + * + * @return builder + * + */ + public Builder endHourOfDay(@Nullable Output endHourOfDay) { + $.endHourOfDay = endHourOfDay; + return this; + } + + /** + * @param endHourOfDay The hour of the day (1-24) when the window ends, for example, if the value of end hour of the day is 10, that means the backup window end time is 10:00. + * The end hour of the day should be greater than the start + * + * *** + * + * @return builder + * + */ + public Builder endHourOfDay(Integer endHourOfDay) { + return endHourOfDay(Output.of(endHourOfDay)); + } + + /** + * @param startHourOfDay The hour of the day (0-23) when the window starts, for example, if the value of the start hour of the day is 6, that means the backup window starts at 6:00. + * + * @return builder + * + */ + public Builder startHourOfDay(Output startHourOfDay) { + $.startHourOfDay = startHourOfDay; + return this; + } + + /** + * @param startHourOfDay The hour of the day (0-23) when the window starts, for example, if the value of the start hour of the day is 6, that means the backup window starts at 6:00. + * + * @return builder + * + */ + public Builder startHourOfDay(Integer startHourOfDay) { + return startHourOfDay(Output.of(startHourOfDay)); + } + + public BackupPlanBackupRuleStandardScheduleBackupWindowArgs build() { + if ($.startHourOfDay == null) { + throw new MissingRequiredPropertyException("BackupPlanBackupRuleStandardScheduleBackupWindowArgs", "startHourOfDay"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs.java new file mode 100644 index 0000000000..cc67082c1a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs.java @@ -0,0 +1,133 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.backupdisasterrecovery.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs extends com.pulumi.resources.ResourceArgs { + + public static final BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs Empty = new BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs(); + + /** + * Specifies the day of the week. + * Possible values are: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`. + * + */ + @Import(name="dayOfWeek", required=true) + private Output dayOfWeek; + + /** + * @return Specifies the day of the week. + * Possible values are: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`. + * + */ + public Output dayOfWeek() { + return this.dayOfWeek; + } + + /** + * WeekOfMonth enumerates possible weeks in the month, e.g. the first, third, or last week of the month. + * Possible values are: `WEEK_OF_MONTH_UNSPECIFIED`, `FIRST`, `SECOND`, `THIRD`, `FOURTH`, `LAST`. + * + */ + @Import(name="weekOfMonth", required=true) + private Output weekOfMonth; + + /** + * @return WeekOfMonth enumerates possible weeks in the month, e.g. the first, third, or last week of the month. + * Possible values are: `WEEK_OF_MONTH_UNSPECIFIED`, `FIRST`, `SECOND`, `THIRD`, `FOURTH`, `LAST`. + * + */ + public Output weekOfMonth() { + return this.weekOfMonth; + } + + private BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs() {} + + private BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs(BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs $) { + this.dayOfWeek = $.dayOfWeek; + this.weekOfMonth = $.weekOfMonth; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs $; + + public Builder() { + $ = new BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs(); + } + + public Builder(BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs defaults) { + $ = new BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param dayOfWeek Specifies the day of the week. + * Possible values are: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`. + * + * @return builder + * + */ + public Builder dayOfWeek(Output dayOfWeek) { + $.dayOfWeek = dayOfWeek; + return this; + } + + /** + * @param dayOfWeek Specifies the day of the week. + * Possible values are: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`. + * + * @return builder + * + */ + public Builder dayOfWeek(String dayOfWeek) { + return dayOfWeek(Output.of(dayOfWeek)); + } + + /** + * @param weekOfMonth WeekOfMonth enumerates possible weeks in the month, e.g. the first, third, or last week of the month. + * Possible values are: `WEEK_OF_MONTH_UNSPECIFIED`, `FIRST`, `SECOND`, `THIRD`, `FOURTH`, `LAST`. + * + * @return builder + * + */ + public Builder weekOfMonth(Output weekOfMonth) { + $.weekOfMonth = weekOfMonth; + return this; + } + + /** + * @param weekOfMonth WeekOfMonth enumerates possible weeks in the month, e.g. the first, third, or last week of the month. + * Possible values are: `WEEK_OF_MONTH_UNSPECIFIED`, `FIRST`, `SECOND`, `THIRD`, `FOURTH`, `LAST`. + * + * @return builder + * + */ + public Builder weekOfMonth(String weekOfMonth) { + return weekOfMonth(Output.of(weekOfMonth)); + } + + public BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs build() { + if ($.dayOfWeek == null) { + throw new MissingRequiredPropertyException("BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs", "dayOfWeek"); + } + if ($.weekOfMonth == null) { + throw new MissingRequiredPropertyException("BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs", "weekOfMonth"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupPlanState.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupPlanState.java new file mode 100644 index 0000000000..e21f6e145e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupPlanState.java @@ -0,0 +1,450 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.backupdisasterrecovery.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.backupdisasterrecovery.inputs.BackupPlanBackupRuleArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class BackupPlanState extends com.pulumi.resources.ResourceArgs { + + public static final BackupPlanState Empty = new BackupPlanState(); + + /** + * The ID of the backup plan + * + */ + @Import(name="backupPlanId") + private @Nullable Output backupPlanId; + + /** + * @return The ID of the backup plan + * + */ + public Optional> backupPlanId() { + return Optional.ofNullable(this.backupPlanId); + } + + /** + * The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message. + * Structure is documented below. + * + */ + @Import(name="backupRules") + private @Nullable Output> backupRules; + + /** + * @return The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message. + * Structure is documented below. + * + */ + public Optional>> backupRules() { + return Optional.ofNullable(this.backupRules); + } + + /** + * Backup vault where the backups gets stored using this Backup plan. + * + */ + @Import(name="backupVault") + private @Nullable Output backupVault; + + /** + * @return Backup vault where the backups gets stored using this Backup plan. + * + */ + public Optional> backupVault() { + return Optional.ofNullable(this.backupVault); + } + + /** + * The Google Cloud Platform Service Account to be used by the BackupVault for taking backups. + * + */ + @Import(name="backupVaultServiceAccount") + private @Nullable Output backupVaultServiceAccount; + + /** + * @return The Google Cloud Platform Service Account to be used by the BackupVault for taking backups. + * + */ + public Optional> backupVaultServiceAccount() { + return Optional.ofNullable(this.backupVaultServiceAccount); + } + + /** + * When the `BackupPlan` was created. + * + */ + @Import(name="createTime") + private @Nullable Output createTime; + + /** + * @return When the `BackupPlan` was created. + * + */ + public Optional> createTime() { + return Optional.ofNullable(this.createTime); + } + + /** + * The description allows for additional details about 'BackupPlan' and its use cases to be provided. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return The description allows for additional details about 'BackupPlan' and its use cases to be provided. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * The location for the backup plan + * + */ + @Import(name="location") + private @Nullable Output location; + + /** + * @return The location for the backup plan + * + */ + public Optional> location() { + return Optional.ofNullable(this.location); + } + + /** + * The name of backup plan resource created + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return The name of backup plan resource created + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + @Import(name="project") + private @Nullable Output project; + + public Optional> project() { + return Optional.ofNullable(this.project); + } + + /** + * The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket". + * + */ + @Import(name="resourceType") + private @Nullable Output resourceType; + + /** + * @return The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket". + * + */ + public Optional> resourceType() { + return Optional.ofNullable(this.resourceType); + } + + /** + * When the `BackupPlan` was last updated. + * + */ + @Import(name="updateTime") + private @Nullable Output updateTime; + + /** + * @return When the `BackupPlan` was last updated. + * + */ + public Optional> updateTime() { + return Optional.ofNullable(this.updateTime); + } + + private BackupPlanState() {} + + private BackupPlanState(BackupPlanState $) { + this.backupPlanId = $.backupPlanId; + this.backupRules = $.backupRules; + this.backupVault = $.backupVault; + this.backupVaultServiceAccount = $.backupVaultServiceAccount; + this.createTime = $.createTime; + this.description = $.description; + this.location = $.location; + this.name = $.name; + this.project = $.project; + this.resourceType = $.resourceType; + this.updateTime = $.updateTime; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(BackupPlanState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private BackupPlanState $; + + public Builder() { + $ = new BackupPlanState(); + } + + public Builder(BackupPlanState defaults) { + $ = new BackupPlanState(Objects.requireNonNull(defaults)); + } + + /** + * @param backupPlanId The ID of the backup plan + * + * @return builder + * + */ + public Builder backupPlanId(@Nullable Output backupPlanId) { + $.backupPlanId = backupPlanId; + return this; + } + + /** + * @param backupPlanId The ID of the backup plan + * + * @return builder + * + */ + public Builder backupPlanId(String backupPlanId) { + return backupPlanId(Output.of(backupPlanId)); + } + + /** + * @param backupRules The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message. + * Structure is documented below. + * + * @return builder + * + */ + public Builder backupRules(@Nullable Output> backupRules) { + $.backupRules = backupRules; + return this; + } + + /** + * @param backupRules The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message. + * Structure is documented below. + * + * @return builder + * + */ + public Builder backupRules(List backupRules) { + return backupRules(Output.of(backupRules)); + } + + /** + * @param backupRules The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message. + * Structure is documented below. + * + * @return builder + * + */ + public Builder backupRules(BackupPlanBackupRuleArgs... backupRules) { + return backupRules(List.of(backupRules)); + } + + /** + * @param backupVault Backup vault where the backups gets stored using this Backup plan. + * + * @return builder + * + */ + public Builder backupVault(@Nullable Output backupVault) { + $.backupVault = backupVault; + return this; + } + + /** + * @param backupVault Backup vault where the backups gets stored using this Backup plan. + * + * @return builder + * + */ + public Builder backupVault(String backupVault) { + return backupVault(Output.of(backupVault)); + } + + /** + * @param backupVaultServiceAccount The Google Cloud Platform Service Account to be used by the BackupVault for taking backups. + * + * @return builder + * + */ + public Builder backupVaultServiceAccount(@Nullable Output backupVaultServiceAccount) { + $.backupVaultServiceAccount = backupVaultServiceAccount; + return this; + } + + /** + * @param backupVaultServiceAccount The Google Cloud Platform Service Account to be used by the BackupVault for taking backups. + * + * @return builder + * + */ + public Builder backupVaultServiceAccount(String backupVaultServiceAccount) { + return backupVaultServiceAccount(Output.of(backupVaultServiceAccount)); + } + + /** + * @param createTime When the `BackupPlan` was created. + * + * @return builder + * + */ + public Builder createTime(@Nullable Output createTime) { + $.createTime = createTime; + return this; + } + + /** + * @param createTime When the `BackupPlan` was created. + * + * @return builder + * + */ + public Builder createTime(String createTime) { + return createTime(Output.of(createTime)); + } + + /** + * @param description The description allows for additional details about 'BackupPlan' and its use cases to be provided. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description The description allows for additional details about 'BackupPlan' and its use cases to be provided. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param location The location for the backup plan + * + * @return builder + * + */ + public Builder location(@Nullable Output location) { + $.location = location; + return this; + } + + /** + * @param location The location for the backup plan + * + * @return builder + * + */ + public Builder location(String location) { + return location(Output.of(location)); + } + + /** + * @param name The name of backup plan resource created + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name The name of backup plan resource created + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + public Builder project(@Nullable Output project) { + $.project = project; + return this; + } + + public Builder project(String project) { + return project(Output.of(project)); + } + + /** + * @param resourceType The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket". + * + * @return builder + * + */ + public Builder resourceType(@Nullable Output resourceType) { + $.resourceType = resourceType; + return this; + } + + /** + * @param resourceType The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket". + * + * @return builder + * + */ + public Builder resourceType(String resourceType) { + return resourceType(Output.of(resourceType)); + } + + /** + * @param updateTime When the `BackupPlan` was last updated. + * + * @return builder + * + */ + public Builder updateTime(@Nullable Output updateTime) { + $.updateTime = updateTime; + return this; + } + + /** + * @param updateTime When the `BackupPlan` was last updated. + * + * @return builder + * + */ + public Builder updateTime(String updateTime) { + return updateTime(Output.of(updateTime)); + } + + public BackupPlanState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupVaultState.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupVaultState.java index f1eeb4304f..16f2f3d2d4 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupVaultState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/BackupVaultState.java @@ -200,20 +200,34 @@ public Optional> etag() { } /** + * (Optional, Deprecated) * If set, the following restrictions against deletion of the backup vault instance can be overridden: * * deletion of a backup vault instance containing no backups, but still containing empty datasources. * * deletion of a backup vault instance that is being referenced by an active backup plan. * + * > **Warning:** `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. + * + * @deprecated + * `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. + * */ + @Deprecated /* `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. */ @Import(name="forceDelete") private @Nullable Output forceDelete; /** - * @return If set, the following restrictions against deletion of the backup vault instance can be overridden: + * @return (Optional, Deprecated) + * If set, the following restrictions against deletion of the backup vault instance can be overridden: * * deletion of a backup vault instance containing no backups, but still containing empty datasources. * * deletion of a backup vault instance that is being referenced by an active backup plan. * + * > **Warning:** `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. + * + * @deprecated + * `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. + * */ + @Deprecated /* `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. */ public Optional> forceDelete() { return Optional.ofNullable(this.forceDelete); } @@ -239,6 +253,40 @@ public Optional> forceUpdate() { return Optional.ofNullable(this.forceUpdate); } + /** + * If set, the following restrictions against deletion of the backup vault instance can be overridden: + * * deletion of a backup vault instance that is being referenced by an active backup plan. + * + */ + @Import(name="ignoreBackupPlanReferences") + private @Nullable Output ignoreBackupPlanReferences; + + /** + * @return If set, the following restrictions against deletion of the backup vault instance can be overridden: + * * deletion of a backup vault instance that is being referenced by an active backup plan. + * + */ + public Optional> ignoreBackupPlanReferences() { + return Optional.ofNullable(this.ignoreBackupPlanReferences); + } + + /** + * If set, the following restrictions against deletion of the backup vault instance can be overridden: + * * deletion of a backup vault instance containing no backups, but still containing empty datasources. + * + */ + @Import(name="ignoreInactiveDatasources") + private @Nullable Output ignoreInactiveDatasources; + + /** + * @return If set, the following restrictions against deletion of the backup vault instance can be overridden: + * * deletion of a backup vault instance containing no backups, but still containing empty datasources. + * + */ + public Optional> ignoreInactiveDatasources() { + return Optional.ofNullable(this.ignoreInactiveDatasources); + } + /** * Optional. Resource labels to represent user provided metadata. * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. @@ -426,6 +474,8 @@ private BackupVaultState(BackupVaultState $) { this.etag = $.etag; this.forceDelete = $.forceDelete; this.forceUpdate = $.forceUpdate; + this.ignoreBackupPlanReferences = $.ignoreBackupPlanReferences; + this.ignoreInactiveDatasources = $.ignoreInactiveDatasources; this.labels = $.labels; this.location = $.location; this.name = $.name; @@ -707,26 +757,40 @@ public Builder etag(String etag) { } /** - * @param forceDelete If set, the following restrictions against deletion of the backup vault instance can be overridden: + * @param forceDelete (Optional, Deprecated) + * If set, the following restrictions against deletion of the backup vault instance can be overridden: * * deletion of a backup vault instance containing no backups, but still containing empty datasources. * * deletion of a backup vault instance that is being referenced by an active backup plan. * + * > **Warning:** `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. + * * @return builder * + * @deprecated + * `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. + * */ + @Deprecated /* `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. */ public Builder forceDelete(@Nullable Output forceDelete) { $.forceDelete = forceDelete; return this; } /** - * @param forceDelete If set, the following restrictions against deletion of the backup vault instance can be overridden: + * @param forceDelete (Optional, Deprecated) + * If set, the following restrictions against deletion of the backup vault instance can be overridden: * * deletion of a backup vault instance containing no backups, but still containing empty datasources. * * deletion of a backup vault instance that is being referenced by an active backup plan. * + * > **Warning:** `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. + * * @return builder * + * @deprecated + * `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. + * */ + @Deprecated /* `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. */ public Builder forceDelete(Boolean forceDelete) { return forceDelete(Output.of(forceDelete)); } @@ -758,6 +822,52 @@ public Builder forceUpdate(Boolean forceUpdate) { return forceUpdate(Output.of(forceUpdate)); } + /** + * @param ignoreBackupPlanReferences If set, the following restrictions against deletion of the backup vault instance can be overridden: + * * deletion of a backup vault instance that is being referenced by an active backup plan. + * + * @return builder + * + */ + public Builder ignoreBackupPlanReferences(@Nullable Output ignoreBackupPlanReferences) { + $.ignoreBackupPlanReferences = ignoreBackupPlanReferences; + return this; + } + + /** + * @param ignoreBackupPlanReferences If set, the following restrictions against deletion of the backup vault instance can be overridden: + * * deletion of a backup vault instance that is being referenced by an active backup plan. + * + * @return builder + * + */ + public Builder ignoreBackupPlanReferences(Boolean ignoreBackupPlanReferences) { + return ignoreBackupPlanReferences(Output.of(ignoreBackupPlanReferences)); + } + + /** + * @param ignoreInactiveDatasources If set, the following restrictions against deletion of the backup vault instance can be overridden: + * * deletion of a backup vault instance containing no backups, but still containing empty datasources. + * + * @return builder + * + */ + public Builder ignoreInactiveDatasources(@Nullable Output ignoreInactiveDatasources) { + $.ignoreInactiveDatasources = ignoreInactiveDatasources; + return this; + } + + /** + * @param ignoreInactiveDatasources If set, the following restrictions against deletion of the backup vault instance can be overridden: + * * deletion of a backup vault instance containing no backups, but still containing empty datasources. + * + * @return builder + * + */ + public Builder ignoreInactiveDatasources(Boolean ignoreInactiveDatasources) { + return ignoreInactiveDatasources(Output.of(ignoreInactiveDatasources)); + } + /** * @param labels Optional. Resource labels to represent user provided metadata. * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/GetBackupPlanArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/GetBackupPlanArgs.java new file mode 100644 index 0000000000..ad6318c650 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/GetBackupPlanArgs.java @@ -0,0 +1,104 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.backupdisasterrecovery.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GetBackupPlanArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetBackupPlanArgs Empty = new GetBackupPlanArgs(); + + @Import(name="backupPlanId", required=true) + private Output backupPlanId; + + public Output backupPlanId() { + return this.backupPlanId; + } + + @Import(name="location", required=true) + private Output location; + + public Output location() { + return this.location; + } + + @Import(name="project") + private @Nullable Output project; + + public Optional> project() { + return Optional.ofNullable(this.project); + } + + private GetBackupPlanArgs() {} + + private GetBackupPlanArgs(GetBackupPlanArgs $) { + this.backupPlanId = $.backupPlanId; + this.location = $.location; + this.project = $.project; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetBackupPlanArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetBackupPlanArgs $; + + public Builder() { + $ = new GetBackupPlanArgs(); + } + + public Builder(GetBackupPlanArgs defaults) { + $ = new GetBackupPlanArgs(Objects.requireNonNull(defaults)); + } + + public Builder backupPlanId(Output backupPlanId) { + $.backupPlanId = backupPlanId; + return this; + } + + public Builder backupPlanId(String backupPlanId) { + return backupPlanId(Output.of(backupPlanId)); + } + + public Builder location(Output location) { + $.location = location; + return this; + } + + public Builder location(String location) { + return location(Output.of(location)); + } + + public Builder project(@Nullable Output project) { + $.project = project; + return this; + } + + public Builder project(String project) { + return project(Output.of(project)); + } + + public GetBackupPlanArgs build() { + if ($.backupPlanId == null) { + throw new MissingRequiredPropertyException("GetBackupPlanArgs", "backupPlanId"); + } + if ($.location == null) { + throw new MissingRequiredPropertyException("GetBackupPlanArgs", "location"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/GetBackupPlanAssociationArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/GetBackupPlanAssociationArgs.java new file mode 100644 index 0000000000..8c39fb6d97 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/GetBackupPlanAssociationArgs.java @@ -0,0 +1,152 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.backupdisasterrecovery.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GetBackupPlanAssociationArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetBackupPlanAssociationArgs Empty = new GetBackupPlanAssociationArgs(); + + /** + * The id of Backupplan association resource. + * + * *** + * + */ + @Import(name="backupPlanAssociationId", required=true) + private Output backupPlanAssociationId; + + /** + * @return The id of Backupplan association resource. + * + * *** + * + */ + public Output backupPlanAssociationId() { + return this.backupPlanAssociationId; + } + + /** + * The location in which the Backupplan association resource belongs. + * + */ + @Import(name="location", required=true) + private Output location; + + /** + * @return The location in which the Backupplan association resource belongs. + * + */ + public Output location() { + return this.location; + } + + @Import(name="project") + private @Nullable Output project; + + public Optional> project() { + return Optional.ofNullable(this.project); + } + + private GetBackupPlanAssociationArgs() {} + + private GetBackupPlanAssociationArgs(GetBackupPlanAssociationArgs $) { + this.backupPlanAssociationId = $.backupPlanAssociationId; + this.location = $.location; + this.project = $.project; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetBackupPlanAssociationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetBackupPlanAssociationArgs $; + + public Builder() { + $ = new GetBackupPlanAssociationArgs(); + } + + public Builder(GetBackupPlanAssociationArgs defaults) { + $ = new GetBackupPlanAssociationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param backupPlanAssociationId The id of Backupplan association resource. + * + * *** + * + * @return builder + * + */ + public Builder backupPlanAssociationId(Output backupPlanAssociationId) { + $.backupPlanAssociationId = backupPlanAssociationId; + return this; + } + + /** + * @param backupPlanAssociationId The id of Backupplan association resource. + * + * *** + * + * @return builder + * + */ + public Builder backupPlanAssociationId(String backupPlanAssociationId) { + return backupPlanAssociationId(Output.of(backupPlanAssociationId)); + } + + /** + * @param location The location in which the Backupplan association resource belongs. + * + * @return builder + * + */ + public Builder location(Output location) { + $.location = location; + return this; + } + + /** + * @param location The location in which the Backupplan association resource belongs. + * + * @return builder + * + */ + public Builder location(String location) { + return location(Output.of(location)); + } + + public Builder project(@Nullable Output project) { + $.project = project; + return this; + } + + public Builder project(String project) { + return project(Output.of(project)); + } + + public GetBackupPlanAssociationArgs build() { + if ($.backupPlanAssociationId == null) { + throw new MissingRequiredPropertyException("GetBackupPlanAssociationArgs", "backupPlanAssociationId"); + } + if ($.location == null) { + throw new MissingRequiredPropertyException("GetBackupPlanAssociationArgs", "location"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/GetBackupPlanAssociationPlainArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/GetBackupPlanAssociationPlainArgs.java new file mode 100644 index 0000000000..6108c1bd05 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/GetBackupPlanAssociationPlainArgs.java @@ -0,0 +1,125 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.backupdisasterrecovery.inputs; + +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GetBackupPlanAssociationPlainArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetBackupPlanAssociationPlainArgs Empty = new GetBackupPlanAssociationPlainArgs(); + + /** + * The id of Backupplan association resource. + * + * *** + * + */ + @Import(name="backupPlanAssociationId", required=true) + private String backupPlanAssociationId; + + /** + * @return The id of Backupplan association resource. + * + * *** + * + */ + public String backupPlanAssociationId() { + return this.backupPlanAssociationId; + } + + /** + * The location in which the Backupplan association resource belongs. + * + */ + @Import(name="location", required=true) + private String location; + + /** + * @return The location in which the Backupplan association resource belongs. + * + */ + public String location() { + return this.location; + } + + @Import(name="project") + private @Nullable String project; + + public Optional project() { + return Optional.ofNullable(this.project); + } + + private GetBackupPlanAssociationPlainArgs() {} + + private GetBackupPlanAssociationPlainArgs(GetBackupPlanAssociationPlainArgs $) { + this.backupPlanAssociationId = $.backupPlanAssociationId; + this.location = $.location; + this.project = $.project; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetBackupPlanAssociationPlainArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetBackupPlanAssociationPlainArgs $; + + public Builder() { + $ = new GetBackupPlanAssociationPlainArgs(); + } + + public Builder(GetBackupPlanAssociationPlainArgs defaults) { + $ = new GetBackupPlanAssociationPlainArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param backupPlanAssociationId The id of Backupplan association resource. + * + * *** + * + * @return builder + * + */ + public Builder backupPlanAssociationId(String backupPlanAssociationId) { + $.backupPlanAssociationId = backupPlanAssociationId; + return this; + } + + /** + * @param location The location in which the Backupplan association resource belongs. + * + * @return builder + * + */ + public Builder location(String location) { + $.location = location; + return this; + } + + public Builder project(@Nullable String project) { + $.project = project; + return this; + } + + public GetBackupPlanAssociationPlainArgs build() { + if ($.backupPlanAssociationId == null) { + throw new MissingRequiredPropertyException("GetBackupPlanAssociationPlainArgs", "backupPlanAssociationId"); + } + if ($.location == null) { + throw new MissingRequiredPropertyException("GetBackupPlanAssociationPlainArgs", "location"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/GetBackupPlanPlainArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/GetBackupPlanPlainArgs.java new file mode 100644 index 0000000000..78367cb7c2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/inputs/GetBackupPlanPlainArgs.java @@ -0,0 +1,91 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.backupdisasterrecovery.inputs; + +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GetBackupPlanPlainArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetBackupPlanPlainArgs Empty = new GetBackupPlanPlainArgs(); + + @Import(name="backupPlanId", required=true) + private String backupPlanId; + + public String backupPlanId() { + return this.backupPlanId; + } + + @Import(name="location", required=true) + private String location; + + public String location() { + return this.location; + } + + @Import(name="project") + private @Nullable String project; + + public Optional project() { + return Optional.ofNullable(this.project); + } + + private GetBackupPlanPlainArgs() {} + + private GetBackupPlanPlainArgs(GetBackupPlanPlainArgs $) { + this.backupPlanId = $.backupPlanId; + this.location = $.location; + this.project = $.project; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetBackupPlanPlainArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetBackupPlanPlainArgs $; + + public Builder() { + $ = new GetBackupPlanPlainArgs(); + } + + public Builder(GetBackupPlanPlainArgs defaults) { + $ = new GetBackupPlanPlainArgs(Objects.requireNonNull(defaults)); + } + + public Builder backupPlanId(String backupPlanId) { + $.backupPlanId = backupPlanId; + return this; + } + + public Builder location(String location) { + $.location = location; + return this; + } + + public Builder project(@Nullable String project) { + $.project = project; + return this; + } + + public GetBackupPlanPlainArgs build() { + if ($.backupPlanId == null) { + throw new MissingRequiredPropertyException("GetBackupPlanPlainArgs", "backupPlanId"); + } + if ($.location == null) { + throw new MissingRequiredPropertyException("GetBackupPlanPlainArgs", "location"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/BackupPlanAssociationRulesConfigInfo.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/BackupPlanAssociationRulesConfigInfo.java new file mode 100644 index 0000000000..6fe0a2474d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/BackupPlanAssociationRulesConfigInfo.java @@ -0,0 +1,112 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.backupdisasterrecovery.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.backupdisasterrecovery.outputs.BackupPlanAssociationRulesConfigInfoLastBackupError; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class BackupPlanAssociationRulesConfigInfo { + /** + * @return (Output) + * google.rpc.Status object to store the last backup error + * Structure is documented below. + * + */ + private @Nullable List lastBackupErrors; + /** + * @return (Output) + * State of last backup taken. + * + */ + private @Nullable String lastBackupState; + /** + * @return (Output) + * Backup Rule id fetched from backup plan. + * + */ + private @Nullable String ruleId; + + private BackupPlanAssociationRulesConfigInfo() {} + /** + * @return (Output) + * google.rpc.Status object to store the last backup error + * Structure is documented below. + * + */ + public List lastBackupErrors() { + return this.lastBackupErrors == null ? List.of() : this.lastBackupErrors; + } + /** + * @return (Output) + * State of last backup taken. + * + */ + public Optional lastBackupState() { + return Optional.ofNullable(this.lastBackupState); + } + /** + * @return (Output) + * Backup Rule id fetched from backup plan. + * + */ + public Optional ruleId() { + return Optional.ofNullable(this.ruleId); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(BackupPlanAssociationRulesConfigInfo defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List lastBackupErrors; + private @Nullable String lastBackupState; + private @Nullable String ruleId; + public Builder() {} + public Builder(BackupPlanAssociationRulesConfigInfo defaults) { + Objects.requireNonNull(defaults); + this.lastBackupErrors = defaults.lastBackupErrors; + this.lastBackupState = defaults.lastBackupState; + this.ruleId = defaults.ruleId; + } + + @CustomType.Setter + public Builder lastBackupErrors(@Nullable List lastBackupErrors) { + + this.lastBackupErrors = lastBackupErrors; + return this; + } + public Builder lastBackupErrors(BackupPlanAssociationRulesConfigInfoLastBackupError... lastBackupErrors) { + return lastBackupErrors(List.of(lastBackupErrors)); + } + @CustomType.Setter + public Builder lastBackupState(@Nullable String lastBackupState) { + + this.lastBackupState = lastBackupState; + return this; + } + @CustomType.Setter + public Builder ruleId(@Nullable String ruleId) { + + this.ruleId = ruleId; + return this; + } + public BackupPlanAssociationRulesConfigInfo build() { + final var _resultValue = new BackupPlanAssociationRulesConfigInfo(); + _resultValue.lastBackupErrors = lastBackupErrors; + _resultValue.lastBackupState = lastBackupState; + _resultValue.ruleId = ruleId; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/BackupPlanAssociationRulesConfigInfoLastBackupError.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/BackupPlanAssociationRulesConfigInfoLastBackupError.java new file mode 100644 index 0000000000..8bbd279fb5 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/BackupPlanAssociationRulesConfigInfoLastBackupError.java @@ -0,0 +1,83 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.backupdisasterrecovery.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Double; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class BackupPlanAssociationRulesConfigInfoLastBackupError { + /** + * @return (Output) + * The status code, which should be an enum value of [google.rpc.Code] + * + */ + private @Nullable Double code; + /** + * @return (Output) + * A developer-facing error message, which should be in English. + * + */ + private @Nullable String message; + + private BackupPlanAssociationRulesConfigInfoLastBackupError() {} + /** + * @return (Output) + * The status code, which should be an enum value of [google.rpc.Code] + * + */ + public Optional code() { + return Optional.ofNullable(this.code); + } + /** + * @return (Output) + * A developer-facing error message, which should be in English. + * + */ + public Optional message() { + return Optional.ofNullable(this.message); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(BackupPlanAssociationRulesConfigInfoLastBackupError defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Double code; + private @Nullable String message; + public Builder() {} + public Builder(BackupPlanAssociationRulesConfigInfoLastBackupError defaults) { + Objects.requireNonNull(defaults); + this.code = defaults.code; + this.message = defaults.message; + } + + @CustomType.Setter + public Builder code(@Nullable Double code) { + + this.code = code; + return this; + } + @CustomType.Setter + public Builder message(@Nullable String message) { + + this.message = message; + return this; + } + public BackupPlanAssociationRulesConfigInfoLastBackupError build() { + final var _resultValue = new BackupPlanAssociationRulesConfigInfoLastBackupError(); + _resultValue.code = code; + _resultValue.message = message; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/BackupPlanBackupRule.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/BackupPlanBackupRule.java new file mode 100644 index 0000000000..f4c3c698e2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/BackupPlanBackupRule.java @@ -0,0 +1,108 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.backupdisasterrecovery.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.gcp.backupdisasterrecovery.outputs.BackupPlanBackupRuleStandardSchedule; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class BackupPlanBackupRule { + /** + * @return Configures the duration for which backup data will be kept. The value should be greater than or equal to minimum enforced retention of the backup vault. + * + */ + private Integer backupRetentionDays; + /** + * @return The unique ID of this `BackupRule`. The `rule_id` is unique per `BackupPlan`. + * + */ + private String ruleId; + /** + * @return StandardSchedule defines a schedule that runs within the confines of a defined window of days. + * Structure is documented below. + * + */ + private BackupPlanBackupRuleStandardSchedule standardSchedule; + + private BackupPlanBackupRule() {} + /** + * @return Configures the duration for which backup data will be kept. The value should be greater than or equal to minimum enforced retention of the backup vault. + * + */ + public Integer backupRetentionDays() { + return this.backupRetentionDays; + } + /** + * @return The unique ID of this `BackupRule`. The `rule_id` is unique per `BackupPlan`. + * + */ + public String ruleId() { + return this.ruleId; + } + /** + * @return StandardSchedule defines a schedule that runs within the confines of a defined window of days. + * Structure is documented below. + * + */ + public BackupPlanBackupRuleStandardSchedule standardSchedule() { + return this.standardSchedule; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(BackupPlanBackupRule defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private Integer backupRetentionDays; + private String ruleId; + private BackupPlanBackupRuleStandardSchedule standardSchedule; + public Builder() {} + public Builder(BackupPlanBackupRule defaults) { + Objects.requireNonNull(defaults); + this.backupRetentionDays = defaults.backupRetentionDays; + this.ruleId = defaults.ruleId; + this.standardSchedule = defaults.standardSchedule; + } + + @CustomType.Setter + public Builder backupRetentionDays(Integer backupRetentionDays) { + if (backupRetentionDays == null) { + throw new MissingRequiredPropertyException("BackupPlanBackupRule", "backupRetentionDays"); + } + this.backupRetentionDays = backupRetentionDays; + return this; + } + @CustomType.Setter + public Builder ruleId(String ruleId) { + if (ruleId == null) { + throw new MissingRequiredPropertyException("BackupPlanBackupRule", "ruleId"); + } + this.ruleId = ruleId; + return this; + } + @CustomType.Setter + public Builder standardSchedule(BackupPlanBackupRuleStandardSchedule standardSchedule) { + if (standardSchedule == null) { + throw new MissingRequiredPropertyException("BackupPlanBackupRule", "standardSchedule"); + } + this.standardSchedule = standardSchedule; + return this; + } + public BackupPlanBackupRule build() { + final var _resultValue = new BackupPlanBackupRule(); + _resultValue.backupRetentionDays = backupRetentionDays; + _resultValue.ruleId = ruleId; + _resultValue.standardSchedule = standardSchedule; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/BackupPlanBackupRuleStandardSchedule.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/BackupPlanBackupRuleStandardSchedule.java new file mode 100644 index 0000000000..760c5e0eab --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/BackupPlanBackupRuleStandardSchedule.java @@ -0,0 +1,236 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.backupdisasterrecovery.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.gcp.backupdisasterrecovery.outputs.BackupPlanBackupRuleStandardScheduleBackupWindow; +import com.pulumi.gcp.backupdisasterrecovery.outputs.BackupPlanBackupRuleStandardScheduleWeekDayOfMonth; +import java.lang.Integer; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class BackupPlanBackupRuleStandardSchedule { + /** + * @return A BackupWindow defines the window of the day during which backup jobs will run. Jobs are queued at the beginning of the window and will be marked as + * `NOT_RUN` if they do not start by the end of the window. + * Structure is documented below. + * + */ + private @Nullable BackupPlanBackupRuleStandardScheduleBackupWindow backupWindow; + /** + * @return Specifies days of months like 1, 5, or 14 on which jobs will run. + * + */ + private @Nullable List daysOfMonths; + /** + * @return Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for `recurrence_type`, `WEEKLY` and is not applicable otherwise. + * Each value may be one of: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`. + * + */ + private @Nullable List daysOfWeeks; + /** + * @return Specifies frequency for hourly backups. An hourly frequency of 2 means jobs will run every 2 hours from start time till end time defined. + * This is required for `recurrence_type`, `HOURLY` and is not applicable otherwise. + * + */ + private @Nullable Integer hourlyFrequency; + /** + * @return Specifies values of months + * Each value may be one of: `MONTH_UNSPECIFIED`, `JANUARY`, `FEBRUARY`, `MARCH`, `APRIL`, `MAY`, `JUNE`, `JULY`, `AUGUST`, `SEPTEMBER`, `OCTOBER`, `NOVEMBER`, `DECEMBER`. + * + */ + private @Nullable List months; + /** + * @return RecurrenceType enumerates the applicable periodicity for the schedule. + * Possible values are: `HOURLY`, `DAILY`, `WEEKLY`, `MONTHLY`, `YEARLY`. + * + */ + private String recurrenceType; + /** + * @return The time zone to be used when interpreting the schedule. + * + */ + private String timeZone; + /** + * @return Specifies a week day of the month like FIRST SUNDAY or LAST MONDAY, on which jobs will run. + * Structure is documented below. + * + */ + private @Nullable BackupPlanBackupRuleStandardScheduleWeekDayOfMonth weekDayOfMonth; + + private BackupPlanBackupRuleStandardSchedule() {} + /** + * @return A BackupWindow defines the window of the day during which backup jobs will run. Jobs are queued at the beginning of the window and will be marked as + * `NOT_RUN` if they do not start by the end of the window. + * Structure is documented below. + * + */ + public Optional backupWindow() { + return Optional.ofNullable(this.backupWindow); + } + /** + * @return Specifies days of months like 1, 5, or 14 on which jobs will run. + * + */ + public List daysOfMonths() { + return this.daysOfMonths == null ? List.of() : this.daysOfMonths; + } + /** + * @return Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for `recurrence_type`, `WEEKLY` and is not applicable otherwise. + * Each value may be one of: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`. + * + */ + public List daysOfWeeks() { + return this.daysOfWeeks == null ? List.of() : this.daysOfWeeks; + } + /** + * @return Specifies frequency for hourly backups. An hourly frequency of 2 means jobs will run every 2 hours from start time till end time defined. + * This is required for `recurrence_type`, `HOURLY` and is not applicable otherwise. + * + */ + public Optional hourlyFrequency() { + return Optional.ofNullable(this.hourlyFrequency); + } + /** + * @return Specifies values of months + * Each value may be one of: `MONTH_UNSPECIFIED`, `JANUARY`, `FEBRUARY`, `MARCH`, `APRIL`, `MAY`, `JUNE`, `JULY`, `AUGUST`, `SEPTEMBER`, `OCTOBER`, `NOVEMBER`, `DECEMBER`. + * + */ + public List months() { + return this.months == null ? List.of() : this.months; + } + /** + * @return RecurrenceType enumerates the applicable periodicity for the schedule. + * Possible values are: `HOURLY`, `DAILY`, `WEEKLY`, `MONTHLY`, `YEARLY`. + * + */ + public String recurrenceType() { + return this.recurrenceType; + } + /** + * @return The time zone to be used when interpreting the schedule. + * + */ + public String timeZone() { + return this.timeZone; + } + /** + * @return Specifies a week day of the month like FIRST SUNDAY or LAST MONDAY, on which jobs will run. + * Structure is documented below. + * + */ + public Optional weekDayOfMonth() { + return Optional.ofNullable(this.weekDayOfMonth); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(BackupPlanBackupRuleStandardSchedule defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable BackupPlanBackupRuleStandardScheduleBackupWindow backupWindow; + private @Nullable List daysOfMonths; + private @Nullable List daysOfWeeks; + private @Nullable Integer hourlyFrequency; + private @Nullable List months; + private String recurrenceType; + private String timeZone; + private @Nullable BackupPlanBackupRuleStandardScheduleWeekDayOfMonth weekDayOfMonth; + public Builder() {} + public Builder(BackupPlanBackupRuleStandardSchedule defaults) { + Objects.requireNonNull(defaults); + this.backupWindow = defaults.backupWindow; + this.daysOfMonths = defaults.daysOfMonths; + this.daysOfWeeks = defaults.daysOfWeeks; + this.hourlyFrequency = defaults.hourlyFrequency; + this.months = defaults.months; + this.recurrenceType = defaults.recurrenceType; + this.timeZone = defaults.timeZone; + this.weekDayOfMonth = defaults.weekDayOfMonth; + } + + @CustomType.Setter + public Builder backupWindow(@Nullable BackupPlanBackupRuleStandardScheduleBackupWindow backupWindow) { + + this.backupWindow = backupWindow; + return this; + } + @CustomType.Setter + public Builder daysOfMonths(@Nullable List daysOfMonths) { + + this.daysOfMonths = daysOfMonths; + return this; + } + public Builder daysOfMonths(Integer... daysOfMonths) { + return daysOfMonths(List.of(daysOfMonths)); + } + @CustomType.Setter + public Builder daysOfWeeks(@Nullable List daysOfWeeks) { + + this.daysOfWeeks = daysOfWeeks; + return this; + } + public Builder daysOfWeeks(String... daysOfWeeks) { + return daysOfWeeks(List.of(daysOfWeeks)); + } + @CustomType.Setter + public Builder hourlyFrequency(@Nullable Integer hourlyFrequency) { + + this.hourlyFrequency = hourlyFrequency; + return this; + } + @CustomType.Setter + public Builder months(@Nullable List months) { + + this.months = months; + return this; + } + public Builder months(String... months) { + return months(List.of(months)); + } + @CustomType.Setter + public Builder recurrenceType(String recurrenceType) { + if (recurrenceType == null) { + throw new MissingRequiredPropertyException("BackupPlanBackupRuleStandardSchedule", "recurrenceType"); + } + this.recurrenceType = recurrenceType; + return this; + } + @CustomType.Setter + public Builder timeZone(String timeZone) { + if (timeZone == null) { + throw new MissingRequiredPropertyException("BackupPlanBackupRuleStandardSchedule", "timeZone"); + } + this.timeZone = timeZone; + return this; + } + @CustomType.Setter + public Builder weekDayOfMonth(@Nullable BackupPlanBackupRuleStandardScheduleWeekDayOfMonth weekDayOfMonth) { + + this.weekDayOfMonth = weekDayOfMonth; + return this; + } + public BackupPlanBackupRuleStandardSchedule build() { + final var _resultValue = new BackupPlanBackupRuleStandardSchedule(); + _resultValue.backupWindow = backupWindow; + _resultValue.daysOfMonths = daysOfMonths; + _resultValue.daysOfWeeks = daysOfWeeks; + _resultValue.hourlyFrequency = hourlyFrequency; + _resultValue.months = months; + _resultValue.recurrenceType = recurrenceType; + _resultValue.timeZone = timeZone; + _resultValue.weekDayOfMonth = weekDayOfMonth; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/BackupPlanBackupRuleStandardScheduleBackupWindow.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/BackupPlanBackupRuleStandardScheduleBackupWindow.java new file mode 100644 index 0000000000..381336bd1b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/BackupPlanBackupRuleStandardScheduleBackupWindow.java @@ -0,0 +1,87 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.backupdisasterrecovery.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class BackupPlanBackupRuleStandardScheduleBackupWindow { + /** + * @return The hour of the day (1-24) when the window ends, for example, if the value of end hour of the day is 10, that means the backup window end time is 10:00. + * The end hour of the day should be greater than the start + * + * *** + * + */ + private @Nullable Integer endHourOfDay; + /** + * @return The hour of the day (0-23) when the window starts, for example, if the value of the start hour of the day is 6, that means the backup window starts at 6:00. + * + */ + private Integer startHourOfDay; + + private BackupPlanBackupRuleStandardScheduleBackupWindow() {} + /** + * @return The hour of the day (1-24) when the window ends, for example, if the value of end hour of the day is 10, that means the backup window end time is 10:00. + * The end hour of the day should be greater than the start + * + * *** + * + */ + public Optional endHourOfDay() { + return Optional.ofNullable(this.endHourOfDay); + } + /** + * @return The hour of the day (0-23) when the window starts, for example, if the value of the start hour of the day is 6, that means the backup window starts at 6:00. + * + */ + public Integer startHourOfDay() { + return this.startHourOfDay; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(BackupPlanBackupRuleStandardScheduleBackupWindow defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Integer endHourOfDay; + private Integer startHourOfDay; + public Builder() {} + public Builder(BackupPlanBackupRuleStandardScheduleBackupWindow defaults) { + Objects.requireNonNull(defaults); + this.endHourOfDay = defaults.endHourOfDay; + this.startHourOfDay = defaults.startHourOfDay; + } + + @CustomType.Setter + public Builder endHourOfDay(@Nullable Integer endHourOfDay) { + + this.endHourOfDay = endHourOfDay; + return this; + } + @CustomType.Setter + public Builder startHourOfDay(Integer startHourOfDay) { + if (startHourOfDay == null) { + throw new MissingRequiredPropertyException("BackupPlanBackupRuleStandardScheduleBackupWindow", "startHourOfDay"); + } + this.startHourOfDay = startHourOfDay; + return this; + } + public BackupPlanBackupRuleStandardScheduleBackupWindow build() { + final var _resultValue = new BackupPlanBackupRuleStandardScheduleBackupWindow(); + _resultValue.endHourOfDay = endHourOfDay; + _resultValue.startHourOfDay = startHourOfDay; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/BackupPlanBackupRuleStandardScheduleWeekDayOfMonth.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/BackupPlanBackupRuleStandardScheduleWeekDayOfMonth.java new file mode 100644 index 0000000000..ba0f5f5a13 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/BackupPlanBackupRuleStandardScheduleWeekDayOfMonth.java @@ -0,0 +1,85 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.backupdisasterrecovery.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class BackupPlanBackupRuleStandardScheduleWeekDayOfMonth { + /** + * @return Specifies the day of the week. + * Possible values are: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`. + * + */ + private String dayOfWeek; + /** + * @return WeekOfMonth enumerates possible weeks in the month, e.g. the first, third, or last week of the month. + * Possible values are: `WEEK_OF_MONTH_UNSPECIFIED`, `FIRST`, `SECOND`, `THIRD`, `FOURTH`, `LAST`. + * + */ + private String weekOfMonth; + + private BackupPlanBackupRuleStandardScheduleWeekDayOfMonth() {} + /** + * @return Specifies the day of the week. + * Possible values are: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`. + * + */ + public String dayOfWeek() { + return this.dayOfWeek; + } + /** + * @return WeekOfMonth enumerates possible weeks in the month, e.g. the first, third, or last week of the month. + * Possible values are: `WEEK_OF_MONTH_UNSPECIFIED`, `FIRST`, `SECOND`, `THIRD`, `FOURTH`, `LAST`. + * + */ + public String weekOfMonth() { + return this.weekOfMonth; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(BackupPlanBackupRuleStandardScheduleWeekDayOfMonth defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String dayOfWeek; + private String weekOfMonth; + public Builder() {} + public Builder(BackupPlanBackupRuleStandardScheduleWeekDayOfMonth defaults) { + Objects.requireNonNull(defaults); + this.dayOfWeek = defaults.dayOfWeek; + this.weekOfMonth = defaults.weekOfMonth; + } + + @CustomType.Setter + public Builder dayOfWeek(String dayOfWeek) { + if (dayOfWeek == null) { + throw new MissingRequiredPropertyException("BackupPlanBackupRuleStandardScheduleWeekDayOfMonth", "dayOfWeek"); + } + this.dayOfWeek = dayOfWeek; + return this; + } + @CustomType.Setter + public Builder weekOfMonth(String weekOfMonth) { + if (weekOfMonth == null) { + throw new MissingRequiredPropertyException("BackupPlanBackupRuleStandardScheduleWeekDayOfMonth", "weekOfMonth"); + } + this.weekOfMonth = weekOfMonth; + return this; + } + public BackupPlanBackupRuleStandardScheduleWeekDayOfMonth build() { + final var _resultValue = new BackupPlanBackupRuleStandardScheduleWeekDayOfMonth(); + _resultValue.dayOfWeek = dayOfWeek; + _resultValue.weekOfMonth = weekOfMonth; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/GetBackupPlanAssociationResult.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/GetBackupPlanAssociationResult.java new file mode 100644 index 0000000000..d65e881bc7 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/GetBackupPlanAssociationResult.java @@ -0,0 +1,243 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.backupdisasterrecovery.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.gcp.backupdisasterrecovery.outputs.GetBackupPlanAssociationRulesConfigInfo; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class GetBackupPlanAssociationResult { + private String backupPlan; + private String backupPlanAssociationId; + private String createTime; + private String dataSource; + /** + * @return The provider-assigned unique ID for this managed resource. + * + */ + private String id; + private String lastSuccessfulBackupConsistencyTime; + private String location; + private String name; + private @Nullable String project; + private String resource; + private String resourceType; + private List rulesConfigInfos; + private String updateTime; + + private GetBackupPlanAssociationResult() {} + public String backupPlan() { + return this.backupPlan; + } + public String backupPlanAssociationId() { + return this.backupPlanAssociationId; + } + public String createTime() { + return this.createTime; + } + public String dataSource() { + return this.dataSource; + } + /** + * @return The provider-assigned unique ID for this managed resource. + * + */ + public String id() { + return this.id; + } + public String lastSuccessfulBackupConsistencyTime() { + return this.lastSuccessfulBackupConsistencyTime; + } + public String location() { + return this.location; + } + public String name() { + return this.name; + } + public Optional project() { + return Optional.ofNullable(this.project); + } + public String resource() { + return this.resource; + } + public String resourceType() { + return this.resourceType; + } + public List rulesConfigInfos() { + return this.rulesConfigInfos; + } + public String updateTime() { + return this.updateTime; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetBackupPlanAssociationResult defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String backupPlan; + private String backupPlanAssociationId; + private String createTime; + private String dataSource; + private String id; + private String lastSuccessfulBackupConsistencyTime; + private String location; + private String name; + private @Nullable String project; + private String resource; + private String resourceType; + private List rulesConfigInfos; + private String updateTime; + public Builder() {} + public Builder(GetBackupPlanAssociationResult defaults) { + Objects.requireNonNull(defaults); + this.backupPlan = defaults.backupPlan; + this.backupPlanAssociationId = defaults.backupPlanAssociationId; + this.createTime = defaults.createTime; + this.dataSource = defaults.dataSource; + this.id = defaults.id; + this.lastSuccessfulBackupConsistencyTime = defaults.lastSuccessfulBackupConsistencyTime; + this.location = defaults.location; + this.name = defaults.name; + this.project = defaults.project; + this.resource = defaults.resource; + this.resourceType = defaults.resourceType; + this.rulesConfigInfos = defaults.rulesConfigInfos; + this.updateTime = defaults.updateTime; + } + + @CustomType.Setter + public Builder backupPlan(String backupPlan) { + if (backupPlan == null) { + throw new MissingRequiredPropertyException("GetBackupPlanAssociationResult", "backupPlan"); + } + this.backupPlan = backupPlan; + return this; + } + @CustomType.Setter + public Builder backupPlanAssociationId(String backupPlanAssociationId) { + if (backupPlanAssociationId == null) { + throw new MissingRequiredPropertyException("GetBackupPlanAssociationResult", "backupPlanAssociationId"); + } + this.backupPlanAssociationId = backupPlanAssociationId; + return this; + } + @CustomType.Setter + public Builder createTime(String createTime) { + if (createTime == null) { + throw new MissingRequiredPropertyException("GetBackupPlanAssociationResult", "createTime"); + } + this.createTime = createTime; + return this; + } + @CustomType.Setter + public Builder dataSource(String dataSource) { + if (dataSource == null) { + throw new MissingRequiredPropertyException("GetBackupPlanAssociationResult", "dataSource"); + } + this.dataSource = dataSource; + return this; + } + @CustomType.Setter + public Builder id(String id) { + if (id == null) { + throw new MissingRequiredPropertyException("GetBackupPlanAssociationResult", "id"); + } + this.id = id; + return this; + } + @CustomType.Setter + public Builder lastSuccessfulBackupConsistencyTime(String lastSuccessfulBackupConsistencyTime) { + if (lastSuccessfulBackupConsistencyTime == null) { + throw new MissingRequiredPropertyException("GetBackupPlanAssociationResult", "lastSuccessfulBackupConsistencyTime"); + } + this.lastSuccessfulBackupConsistencyTime = lastSuccessfulBackupConsistencyTime; + return this; + } + @CustomType.Setter + public Builder location(String location) { + if (location == null) { + throw new MissingRequiredPropertyException("GetBackupPlanAssociationResult", "location"); + } + this.location = location; + return this; + } + @CustomType.Setter + public Builder name(String name) { + if (name == null) { + throw new MissingRequiredPropertyException("GetBackupPlanAssociationResult", "name"); + } + this.name = name; + return this; + } + @CustomType.Setter + public Builder project(@Nullable String project) { + + this.project = project; + return this; + } + @CustomType.Setter + public Builder resource(String resource) { + if (resource == null) { + throw new MissingRequiredPropertyException("GetBackupPlanAssociationResult", "resource"); + } + this.resource = resource; + return this; + } + @CustomType.Setter + public Builder resourceType(String resourceType) { + if (resourceType == null) { + throw new MissingRequiredPropertyException("GetBackupPlanAssociationResult", "resourceType"); + } + this.resourceType = resourceType; + return this; + } + @CustomType.Setter + public Builder rulesConfigInfos(List rulesConfigInfos) { + if (rulesConfigInfos == null) { + throw new MissingRequiredPropertyException("GetBackupPlanAssociationResult", "rulesConfigInfos"); + } + this.rulesConfigInfos = rulesConfigInfos; + return this; + } + public Builder rulesConfigInfos(GetBackupPlanAssociationRulesConfigInfo... rulesConfigInfos) { + return rulesConfigInfos(List.of(rulesConfigInfos)); + } + @CustomType.Setter + public Builder updateTime(String updateTime) { + if (updateTime == null) { + throw new MissingRequiredPropertyException("GetBackupPlanAssociationResult", "updateTime"); + } + this.updateTime = updateTime; + return this; + } + public GetBackupPlanAssociationResult build() { + final var _resultValue = new GetBackupPlanAssociationResult(); + _resultValue.backupPlan = backupPlan; + _resultValue.backupPlanAssociationId = backupPlanAssociationId; + _resultValue.createTime = createTime; + _resultValue.dataSource = dataSource; + _resultValue.id = id; + _resultValue.lastSuccessfulBackupConsistencyTime = lastSuccessfulBackupConsistencyTime; + _resultValue.location = location; + _resultValue.name = name; + _resultValue.project = project; + _resultValue.resource = resource; + _resultValue.resourceType = resourceType; + _resultValue.rulesConfigInfos = rulesConfigInfos; + _resultValue.updateTime = updateTime; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/GetBackupPlanAssociationRulesConfigInfo.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/GetBackupPlanAssociationRulesConfigInfo.java new file mode 100644 index 0000000000..118e787ca7 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/GetBackupPlanAssociationRulesConfigInfo.java @@ -0,0 +1,109 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.backupdisasterrecovery.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.gcp.backupdisasterrecovery.outputs.GetBackupPlanAssociationRulesConfigInfoLastBackupError; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +@CustomType +public final class GetBackupPlanAssociationRulesConfigInfo { + /** + * @return google.rpc.Status object to store the last backup error + * + */ + private List lastBackupErrors; + /** + * @return State of last backup taken. + * + */ + private String lastBackupState; + /** + * @return Backup Rule id fetched from backup plan. + * + */ + private String ruleId; + + private GetBackupPlanAssociationRulesConfigInfo() {} + /** + * @return google.rpc.Status object to store the last backup error + * + */ + public List lastBackupErrors() { + return this.lastBackupErrors; + } + /** + * @return State of last backup taken. + * + */ + public String lastBackupState() { + return this.lastBackupState; + } + /** + * @return Backup Rule id fetched from backup plan. + * + */ + public String ruleId() { + return this.ruleId; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetBackupPlanAssociationRulesConfigInfo defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private List lastBackupErrors; + private String lastBackupState; + private String ruleId; + public Builder() {} + public Builder(GetBackupPlanAssociationRulesConfigInfo defaults) { + Objects.requireNonNull(defaults); + this.lastBackupErrors = defaults.lastBackupErrors; + this.lastBackupState = defaults.lastBackupState; + this.ruleId = defaults.ruleId; + } + + @CustomType.Setter + public Builder lastBackupErrors(List lastBackupErrors) { + if (lastBackupErrors == null) { + throw new MissingRequiredPropertyException("GetBackupPlanAssociationRulesConfigInfo", "lastBackupErrors"); + } + this.lastBackupErrors = lastBackupErrors; + return this; + } + public Builder lastBackupErrors(GetBackupPlanAssociationRulesConfigInfoLastBackupError... lastBackupErrors) { + return lastBackupErrors(List.of(lastBackupErrors)); + } + @CustomType.Setter + public Builder lastBackupState(String lastBackupState) { + if (lastBackupState == null) { + throw new MissingRequiredPropertyException("GetBackupPlanAssociationRulesConfigInfo", "lastBackupState"); + } + this.lastBackupState = lastBackupState; + return this; + } + @CustomType.Setter + public Builder ruleId(String ruleId) { + if (ruleId == null) { + throw new MissingRequiredPropertyException("GetBackupPlanAssociationRulesConfigInfo", "ruleId"); + } + this.ruleId = ruleId; + return this; + } + public GetBackupPlanAssociationRulesConfigInfo build() { + final var _resultValue = new GetBackupPlanAssociationRulesConfigInfo(); + _resultValue.lastBackupErrors = lastBackupErrors; + _resultValue.lastBackupState = lastBackupState; + _resultValue.ruleId = ruleId; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/GetBackupPlanAssociationRulesConfigInfoLastBackupError.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/GetBackupPlanAssociationRulesConfigInfoLastBackupError.java new file mode 100644 index 0000000000..413b21a81d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/GetBackupPlanAssociationRulesConfigInfoLastBackupError.java @@ -0,0 +1,82 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.backupdisasterrecovery.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Double; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GetBackupPlanAssociationRulesConfigInfoLastBackupError { + /** + * @return The status code, which should be an enum value of [google.rpc.Code] + * + */ + private Double code; + /** + * @return A developer-facing error message, which should be in English. + * + */ + private String message; + + private GetBackupPlanAssociationRulesConfigInfoLastBackupError() {} + /** + * @return The status code, which should be an enum value of [google.rpc.Code] + * + */ + public Double code() { + return this.code; + } + /** + * @return A developer-facing error message, which should be in English. + * + */ + public String message() { + return this.message; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetBackupPlanAssociationRulesConfigInfoLastBackupError defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private Double code; + private String message; + public Builder() {} + public Builder(GetBackupPlanAssociationRulesConfigInfoLastBackupError defaults) { + Objects.requireNonNull(defaults); + this.code = defaults.code; + this.message = defaults.message; + } + + @CustomType.Setter + public Builder code(Double code) { + if (code == null) { + throw new MissingRequiredPropertyException("GetBackupPlanAssociationRulesConfigInfoLastBackupError", "code"); + } + this.code = code; + return this; + } + @CustomType.Setter + public Builder message(String message) { + if (message == null) { + throw new MissingRequiredPropertyException("GetBackupPlanAssociationRulesConfigInfoLastBackupError", "message"); + } + this.message = message; + return this; + } + public GetBackupPlanAssociationRulesConfigInfoLastBackupError build() { + final var _resultValue = new GetBackupPlanAssociationRulesConfigInfoLastBackupError(); + _resultValue.code = code; + _resultValue.message = message; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/GetBackupPlanBackupRule.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/GetBackupPlanBackupRule.java new file mode 100644 index 0000000000..0322ac28c0 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/GetBackupPlanBackupRule.java @@ -0,0 +1,110 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.backupdisasterrecovery.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.gcp.backupdisasterrecovery.outputs.GetBackupPlanBackupRuleStandardSchedule; +import java.lang.Integer; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +@CustomType +public final class GetBackupPlanBackupRule { + /** + * @return Configures the duration for which backup data will be kept. The value should be greater than or equal to minimum enforced retention of the backup vault. + * + */ + private Integer backupRetentionDays; + /** + * @return The unique ID of this 'BackupRule'. The 'rule_id' is unique per 'BackupPlan'. + * + */ + private String ruleId; + /** + * @return StandardSchedule defines a schedule that runs within the confines of a defined window of days. + * + */ + private List standardSchedules; + + private GetBackupPlanBackupRule() {} + /** + * @return Configures the duration for which backup data will be kept. The value should be greater than or equal to minimum enforced retention of the backup vault. + * + */ + public Integer backupRetentionDays() { + return this.backupRetentionDays; + } + /** + * @return The unique ID of this 'BackupRule'. The 'rule_id' is unique per 'BackupPlan'. + * + */ + public String ruleId() { + return this.ruleId; + } + /** + * @return StandardSchedule defines a schedule that runs within the confines of a defined window of days. + * + */ + public List standardSchedules() { + return this.standardSchedules; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetBackupPlanBackupRule defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private Integer backupRetentionDays; + private String ruleId; + private List standardSchedules; + public Builder() {} + public Builder(GetBackupPlanBackupRule defaults) { + Objects.requireNonNull(defaults); + this.backupRetentionDays = defaults.backupRetentionDays; + this.ruleId = defaults.ruleId; + this.standardSchedules = defaults.standardSchedules; + } + + @CustomType.Setter + public Builder backupRetentionDays(Integer backupRetentionDays) { + if (backupRetentionDays == null) { + throw new MissingRequiredPropertyException("GetBackupPlanBackupRule", "backupRetentionDays"); + } + this.backupRetentionDays = backupRetentionDays; + return this; + } + @CustomType.Setter + public Builder ruleId(String ruleId) { + if (ruleId == null) { + throw new MissingRequiredPropertyException("GetBackupPlanBackupRule", "ruleId"); + } + this.ruleId = ruleId; + return this; + } + @CustomType.Setter + public Builder standardSchedules(List standardSchedules) { + if (standardSchedules == null) { + throw new MissingRequiredPropertyException("GetBackupPlanBackupRule", "standardSchedules"); + } + this.standardSchedules = standardSchedules; + return this; + } + public Builder standardSchedules(GetBackupPlanBackupRuleStandardSchedule... standardSchedules) { + return standardSchedules(List.of(standardSchedules)); + } + public GetBackupPlanBackupRule build() { + final var _resultValue = new GetBackupPlanBackupRule(); + _resultValue.backupRetentionDays = backupRetentionDays; + _resultValue.ruleId = ruleId; + _resultValue.standardSchedules = standardSchedules; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/GetBackupPlanBackupRuleStandardSchedule.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/GetBackupPlanBackupRuleStandardSchedule.java new file mode 100644 index 0000000000..26ed26d17b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/GetBackupPlanBackupRuleStandardSchedule.java @@ -0,0 +1,242 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.backupdisasterrecovery.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.gcp.backupdisasterrecovery.outputs.GetBackupPlanBackupRuleStandardScheduleBackupWindow; +import com.pulumi.gcp.backupdisasterrecovery.outputs.GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonth; +import java.lang.Integer; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +@CustomType +public final class GetBackupPlanBackupRuleStandardSchedule { + /** + * @return A BackupWindow defines the window of the day during which backup jobs will run. Jobs are queued at the beginning of the window and will be marked as + * 'NOT_RUN' if they do not start by the end of the window. + * + */ + private List backupWindows; + /** + * @return Specifies days of months like 1, 5, or 14 on which jobs will run. + * + */ + private List daysOfMonths; + /** + * @return Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for 'recurrence_type', 'WEEKLY' and is not applicable otherwise. Possible values: ["DAY_OF_WEEK_UNSPECIFIED", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY"] + * + */ + private List daysOfWeeks; + /** + * @return Specifies frequency for hourly backups. An hourly frequency of 2 means jobs will run every 2 hours from start time till end time defined. + * This is required for 'recurrence_type', 'HOURLY' and is not applicable otherwise. + * + */ + private Integer hourlyFrequency; + /** + * @return Specifies values of months Possible values: ["MONTH_UNSPECIFIED", "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER"] + * + */ + private List months; + /** + * @return RecurrenceType enumerates the applicable periodicity for the schedule. Possible values: ["HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY"] + * + */ + private String recurrenceType; + /** + * @return The time zone to be used when interpreting the schedule. + * + */ + private String timeZone; + /** + * @return Specifies a week day of the month like FIRST SUNDAY or LAST MONDAY, on which jobs will run. + * + */ + private List weekDayOfMonths; + + private GetBackupPlanBackupRuleStandardSchedule() {} + /** + * @return A BackupWindow defines the window of the day during which backup jobs will run. Jobs are queued at the beginning of the window and will be marked as + * 'NOT_RUN' if they do not start by the end of the window. + * + */ + public List backupWindows() { + return this.backupWindows; + } + /** + * @return Specifies days of months like 1, 5, or 14 on which jobs will run. + * + */ + public List daysOfMonths() { + return this.daysOfMonths; + } + /** + * @return Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for 'recurrence_type', 'WEEKLY' and is not applicable otherwise. Possible values: ["DAY_OF_WEEK_UNSPECIFIED", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY"] + * + */ + public List daysOfWeeks() { + return this.daysOfWeeks; + } + /** + * @return Specifies frequency for hourly backups. An hourly frequency of 2 means jobs will run every 2 hours from start time till end time defined. + * This is required for 'recurrence_type', 'HOURLY' and is not applicable otherwise. + * + */ + public Integer hourlyFrequency() { + return this.hourlyFrequency; + } + /** + * @return Specifies values of months Possible values: ["MONTH_UNSPECIFIED", "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER"] + * + */ + public List months() { + return this.months; + } + /** + * @return RecurrenceType enumerates the applicable periodicity for the schedule. Possible values: ["HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY"] + * + */ + public String recurrenceType() { + return this.recurrenceType; + } + /** + * @return The time zone to be used when interpreting the schedule. + * + */ + public String timeZone() { + return this.timeZone; + } + /** + * @return Specifies a week day of the month like FIRST SUNDAY or LAST MONDAY, on which jobs will run. + * + */ + public List weekDayOfMonths() { + return this.weekDayOfMonths; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetBackupPlanBackupRuleStandardSchedule defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private List backupWindows; + private List daysOfMonths; + private List daysOfWeeks; + private Integer hourlyFrequency; + private List months; + private String recurrenceType; + private String timeZone; + private List weekDayOfMonths; + public Builder() {} + public Builder(GetBackupPlanBackupRuleStandardSchedule defaults) { + Objects.requireNonNull(defaults); + this.backupWindows = defaults.backupWindows; + this.daysOfMonths = defaults.daysOfMonths; + this.daysOfWeeks = defaults.daysOfWeeks; + this.hourlyFrequency = defaults.hourlyFrequency; + this.months = defaults.months; + this.recurrenceType = defaults.recurrenceType; + this.timeZone = defaults.timeZone; + this.weekDayOfMonths = defaults.weekDayOfMonths; + } + + @CustomType.Setter + public Builder backupWindows(List backupWindows) { + if (backupWindows == null) { + throw new MissingRequiredPropertyException("GetBackupPlanBackupRuleStandardSchedule", "backupWindows"); + } + this.backupWindows = backupWindows; + return this; + } + public Builder backupWindows(GetBackupPlanBackupRuleStandardScheduleBackupWindow... backupWindows) { + return backupWindows(List.of(backupWindows)); + } + @CustomType.Setter + public Builder daysOfMonths(List daysOfMonths) { + if (daysOfMonths == null) { + throw new MissingRequiredPropertyException("GetBackupPlanBackupRuleStandardSchedule", "daysOfMonths"); + } + this.daysOfMonths = daysOfMonths; + return this; + } + public Builder daysOfMonths(Integer... daysOfMonths) { + return daysOfMonths(List.of(daysOfMonths)); + } + @CustomType.Setter + public Builder daysOfWeeks(List daysOfWeeks) { + if (daysOfWeeks == null) { + throw new MissingRequiredPropertyException("GetBackupPlanBackupRuleStandardSchedule", "daysOfWeeks"); + } + this.daysOfWeeks = daysOfWeeks; + return this; + } + public Builder daysOfWeeks(String... daysOfWeeks) { + return daysOfWeeks(List.of(daysOfWeeks)); + } + @CustomType.Setter + public Builder hourlyFrequency(Integer hourlyFrequency) { + if (hourlyFrequency == null) { + throw new MissingRequiredPropertyException("GetBackupPlanBackupRuleStandardSchedule", "hourlyFrequency"); + } + this.hourlyFrequency = hourlyFrequency; + return this; + } + @CustomType.Setter + public Builder months(List months) { + if (months == null) { + throw new MissingRequiredPropertyException("GetBackupPlanBackupRuleStandardSchedule", "months"); + } + this.months = months; + return this; + } + public Builder months(String... months) { + return months(List.of(months)); + } + @CustomType.Setter + public Builder recurrenceType(String recurrenceType) { + if (recurrenceType == null) { + throw new MissingRequiredPropertyException("GetBackupPlanBackupRuleStandardSchedule", "recurrenceType"); + } + this.recurrenceType = recurrenceType; + return this; + } + @CustomType.Setter + public Builder timeZone(String timeZone) { + if (timeZone == null) { + throw new MissingRequiredPropertyException("GetBackupPlanBackupRuleStandardSchedule", "timeZone"); + } + this.timeZone = timeZone; + return this; + } + @CustomType.Setter + public Builder weekDayOfMonths(List weekDayOfMonths) { + if (weekDayOfMonths == null) { + throw new MissingRequiredPropertyException("GetBackupPlanBackupRuleStandardSchedule", "weekDayOfMonths"); + } + this.weekDayOfMonths = weekDayOfMonths; + return this; + } + public Builder weekDayOfMonths(GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonth... weekDayOfMonths) { + return weekDayOfMonths(List.of(weekDayOfMonths)); + } + public GetBackupPlanBackupRuleStandardSchedule build() { + final var _resultValue = new GetBackupPlanBackupRuleStandardSchedule(); + _resultValue.backupWindows = backupWindows; + _resultValue.daysOfMonths = daysOfMonths; + _resultValue.daysOfWeeks = daysOfWeeks; + _resultValue.hourlyFrequency = hourlyFrequency; + _resultValue.months = months; + _resultValue.recurrenceType = recurrenceType; + _resultValue.timeZone = timeZone; + _resultValue.weekDayOfMonths = weekDayOfMonths; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/GetBackupPlanBackupRuleStandardScheduleBackupWindow.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/GetBackupPlanBackupRuleStandardScheduleBackupWindow.java new file mode 100644 index 0000000000..50046471e3 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/GetBackupPlanBackupRuleStandardScheduleBackupWindow.java @@ -0,0 +1,83 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.backupdisasterrecovery.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.util.Objects; + +@CustomType +public final class GetBackupPlanBackupRuleStandardScheduleBackupWindow { + /** + * @return The hour of the day (1-24) when the window ends, for example, if the value of end hour of the day is 10, that means the backup window end time is 10:00. + * The end hour of the day should be greater than the start + * + */ + private Integer endHourOfDay; + /** + * @return The hour of the day (0-23) when the window starts, for example, if the value of the start hour of the day is 6, that means the backup window starts at 6:00. + * + */ + private Integer startHourOfDay; + + private GetBackupPlanBackupRuleStandardScheduleBackupWindow() {} + /** + * @return The hour of the day (1-24) when the window ends, for example, if the value of end hour of the day is 10, that means the backup window end time is 10:00. + * The end hour of the day should be greater than the start + * + */ + public Integer endHourOfDay() { + return this.endHourOfDay; + } + /** + * @return The hour of the day (0-23) when the window starts, for example, if the value of the start hour of the day is 6, that means the backup window starts at 6:00. + * + */ + public Integer startHourOfDay() { + return this.startHourOfDay; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetBackupPlanBackupRuleStandardScheduleBackupWindow defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private Integer endHourOfDay; + private Integer startHourOfDay; + public Builder() {} + public Builder(GetBackupPlanBackupRuleStandardScheduleBackupWindow defaults) { + Objects.requireNonNull(defaults); + this.endHourOfDay = defaults.endHourOfDay; + this.startHourOfDay = defaults.startHourOfDay; + } + + @CustomType.Setter + public Builder endHourOfDay(Integer endHourOfDay) { + if (endHourOfDay == null) { + throw new MissingRequiredPropertyException("GetBackupPlanBackupRuleStandardScheduleBackupWindow", "endHourOfDay"); + } + this.endHourOfDay = endHourOfDay; + return this; + } + @CustomType.Setter + public Builder startHourOfDay(Integer startHourOfDay) { + if (startHourOfDay == null) { + throw new MissingRequiredPropertyException("GetBackupPlanBackupRuleStandardScheduleBackupWindow", "startHourOfDay"); + } + this.startHourOfDay = startHourOfDay; + return this; + } + public GetBackupPlanBackupRuleStandardScheduleBackupWindow build() { + final var _resultValue = new GetBackupPlanBackupRuleStandardScheduleBackupWindow(); + _resultValue.endHourOfDay = endHourOfDay; + _resultValue.startHourOfDay = startHourOfDay; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonth.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonth.java new file mode 100644 index 0000000000..9d01afc011 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonth.java @@ -0,0 +1,81 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.backupdisasterrecovery.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonth { + /** + * @return Specifies the day of the week. Possible values: ["DAY_OF_WEEK_UNSPECIFIED", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"] + * + */ + private String dayOfWeek; + /** + * @return WeekOfMonth enumerates possible weeks in the month, e.g. the first, third, or last week of the month. Possible values: ["WEEK_OF_MONTH_UNSPECIFIED", "FIRST", "SECOND", "THIRD", "FOURTH", "LAST"] + * + */ + private String weekOfMonth; + + private GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonth() {} + /** + * @return Specifies the day of the week. Possible values: ["DAY_OF_WEEK_UNSPECIFIED", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"] + * + */ + public String dayOfWeek() { + return this.dayOfWeek; + } + /** + * @return WeekOfMonth enumerates possible weeks in the month, e.g. the first, third, or last week of the month. Possible values: ["WEEK_OF_MONTH_UNSPECIFIED", "FIRST", "SECOND", "THIRD", "FOURTH", "LAST"] + * + */ + public String weekOfMonth() { + return this.weekOfMonth; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonth defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String dayOfWeek; + private String weekOfMonth; + public Builder() {} + public Builder(GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonth defaults) { + Objects.requireNonNull(defaults); + this.dayOfWeek = defaults.dayOfWeek; + this.weekOfMonth = defaults.weekOfMonth; + } + + @CustomType.Setter + public Builder dayOfWeek(String dayOfWeek) { + if (dayOfWeek == null) { + throw new MissingRequiredPropertyException("GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonth", "dayOfWeek"); + } + this.dayOfWeek = dayOfWeek; + return this; + } + @CustomType.Setter + public Builder weekOfMonth(String weekOfMonth) { + if (weekOfMonth == null) { + throw new MissingRequiredPropertyException("GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonth", "weekOfMonth"); + } + this.weekOfMonth = weekOfMonth; + return this; + } + public GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonth build() { + final var _resultValue = new GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonth(); + _resultValue.dayOfWeek = dayOfWeek; + _resultValue.weekOfMonth = weekOfMonth; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/GetBackupPlanResult.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/GetBackupPlanResult.java new file mode 100644 index 0000000000..f82f0d52e9 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/outputs/GetBackupPlanResult.java @@ -0,0 +1,228 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.backupdisasterrecovery.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.gcp.backupdisasterrecovery.outputs.GetBackupPlanBackupRule; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class GetBackupPlanResult { + private String backupPlanId; + private List backupRules; + private String backupVault; + private String backupVaultServiceAccount; + private String createTime; + private String description; + /** + * @return The provider-assigned unique ID for this managed resource. + * + */ + private String id; + private String location; + private String name; + private @Nullable String project; + private String resourceType; + private String updateTime; + + private GetBackupPlanResult() {} + public String backupPlanId() { + return this.backupPlanId; + } + public List backupRules() { + return this.backupRules; + } + public String backupVault() { + return this.backupVault; + } + public String backupVaultServiceAccount() { + return this.backupVaultServiceAccount; + } + public String createTime() { + return this.createTime; + } + public String description() { + return this.description; + } + /** + * @return The provider-assigned unique ID for this managed resource. + * + */ + public String id() { + return this.id; + } + public String location() { + return this.location; + } + public String name() { + return this.name; + } + public Optional project() { + return Optional.ofNullable(this.project); + } + public String resourceType() { + return this.resourceType; + } + public String updateTime() { + return this.updateTime; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetBackupPlanResult defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String backupPlanId; + private List backupRules; + private String backupVault; + private String backupVaultServiceAccount; + private String createTime; + private String description; + private String id; + private String location; + private String name; + private @Nullable String project; + private String resourceType; + private String updateTime; + public Builder() {} + public Builder(GetBackupPlanResult defaults) { + Objects.requireNonNull(defaults); + this.backupPlanId = defaults.backupPlanId; + this.backupRules = defaults.backupRules; + this.backupVault = defaults.backupVault; + this.backupVaultServiceAccount = defaults.backupVaultServiceAccount; + this.createTime = defaults.createTime; + this.description = defaults.description; + this.id = defaults.id; + this.location = defaults.location; + this.name = defaults.name; + this.project = defaults.project; + this.resourceType = defaults.resourceType; + this.updateTime = defaults.updateTime; + } + + @CustomType.Setter + public Builder backupPlanId(String backupPlanId) { + if (backupPlanId == null) { + throw new MissingRequiredPropertyException("GetBackupPlanResult", "backupPlanId"); + } + this.backupPlanId = backupPlanId; + return this; + } + @CustomType.Setter + public Builder backupRules(List backupRules) { + if (backupRules == null) { + throw new MissingRequiredPropertyException("GetBackupPlanResult", "backupRules"); + } + this.backupRules = backupRules; + return this; + } + public Builder backupRules(GetBackupPlanBackupRule... backupRules) { + return backupRules(List.of(backupRules)); + } + @CustomType.Setter + public Builder backupVault(String backupVault) { + if (backupVault == null) { + throw new MissingRequiredPropertyException("GetBackupPlanResult", "backupVault"); + } + this.backupVault = backupVault; + return this; + } + @CustomType.Setter + public Builder backupVaultServiceAccount(String backupVaultServiceAccount) { + if (backupVaultServiceAccount == null) { + throw new MissingRequiredPropertyException("GetBackupPlanResult", "backupVaultServiceAccount"); + } + this.backupVaultServiceAccount = backupVaultServiceAccount; + return this; + } + @CustomType.Setter + public Builder createTime(String createTime) { + if (createTime == null) { + throw new MissingRequiredPropertyException("GetBackupPlanResult", "createTime"); + } + this.createTime = createTime; + return this; + } + @CustomType.Setter + public Builder description(String description) { + if (description == null) { + throw new MissingRequiredPropertyException("GetBackupPlanResult", "description"); + } + this.description = description; + return this; + } + @CustomType.Setter + public Builder id(String id) { + if (id == null) { + throw new MissingRequiredPropertyException("GetBackupPlanResult", "id"); + } + this.id = id; + return this; + } + @CustomType.Setter + public Builder location(String location) { + if (location == null) { + throw new MissingRequiredPropertyException("GetBackupPlanResult", "location"); + } + this.location = location; + return this; + } + @CustomType.Setter + public Builder name(String name) { + if (name == null) { + throw new MissingRequiredPropertyException("GetBackupPlanResult", "name"); + } + this.name = name; + return this; + } + @CustomType.Setter + public Builder project(@Nullable String project) { + + this.project = project; + return this; + } + @CustomType.Setter + public Builder resourceType(String resourceType) { + if (resourceType == null) { + throw new MissingRequiredPropertyException("GetBackupPlanResult", "resourceType"); + } + this.resourceType = resourceType; + return this; + } + @CustomType.Setter + public Builder updateTime(String updateTime) { + if (updateTime == null) { + throw new MissingRequiredPropertyException("GetBackupPlanResult", "updateTime"); + } + this.updateTime = updateTime; + return this; + } + public GetBackupPlanResult build() { + final var _resultValue = new GetBackupPlanResult(); + _resultValue.backupPlanId = backupPlanId; + _resultValue.backupRules = backupRules; + _resultValue.backupVault = backupVault; + _resultValue.backupVaultServiceAccount = backupVaultServiceAccount; + _resultValue.createTime = createTime; + _resultValue.description = description; + _resultValue.id = id; + _resultValue.location = location; + _resultValue.name = name; + _resultValue.project = project; + _resultValue.resourceType = resourceType; + _resultValue.updateTime = updateTime; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/DataTransferConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/DataTransferConfig.java index 0e5669b2d5..96fe37e6e1 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/DataTransferConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/DataTransferConfig.java @@ -250,11 +250,23 @@ * * Config can be imported using any of these accepted formats: * + * * `{{project}}/{{name}}` + * + * * `{{project}} {{name}}` + * * * `{{name}}` * * When using the `pulumi import` command, Config can be imported using one of the formats above. For example: * * ```sh + * $ pulumi import gcp:bigquery/dataTransferConfig:DataTransferConfig default {{project}}/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:bigquery/dataTransferConfig:DataTransferConfig default "{{project}} {{name}}" + * ``` + * + * ```sh * $ pulumi import gcp:bigquery/dataTransferConfig:DataTransferConfig default {{name}} * ``` * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/Job.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/Job.java index b59652a4fa..e839711436 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/Job.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/Job.java @@ -511,7 +511,6 @@ * .name("cloudrun-job") * .location("us-central1") * .deletionProtection(false) - * .launchStage("BETA") * .template(JobTemplateArgs.builder() * .template(JobTemplateTemplateArgs.builder() * .containers(JobTemplateTemplateContainerArgs.builder() diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/Service.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/Service.java index bd0b7d7104..9ea0efe6b9 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/Service.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/Service.java @@ -621,7 +621,6 @@ * .name("cloudrun-service") * .location("us-central1") * .deletionProtection(false) - * .launchStage("BETA") * .ingress("INGRESS_TRAFFIC_ALL") * .template(ServiceTemplateArgs.builder() * .containers( diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/inputs/JobTemplateTemplateVolumeGcsArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/inputs/JobTemplateTemplateVolumeGcsArgs.java index 10d203246d..c3c2edaa33 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/inputs/JobTemplateTemplateVolumeGcsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/inputs/JobTemplateTemplateVolumeGcsArgs.java @@ -8,6 +8,7 @@ import com.pulumi.exceptions.MissingRequiredPropertyException; import java.lang.Boolean; import java.lang.String; +import java.util.List; import java.util.Objects; import java.util.Optional; import javax.annotation.Nullable; @@ -32,6 +33,23 @@ public Output bucket() { return this.bucket; } + /** + * A list of flags to pass to the gcsfuse command for configuring this volume. + * Flags should be passed without leading dashes. + * + */ + @Import(name="mountOptions") + private @Nullable Output> mountOptions; + + /** + * @return A list of flags to pass to the gcsfuse command for configuring this volume. + * Flags should be passed without leading dashes. + * + */ + public Optional>> mountOptions() { + return Optional.ofNullable(this.mountOptions); + } + /** * If true, mount this volume as read-only in all mounts. If false, mount this volume as read-write. * @@ -51,6 +69,7 @@ private JobTemplateTemplateVolumeGcsArgs() {} private JobTemplateTemplateVolumeGcsArgs(JobTemplateTemplateVolumeGcsArgs $) { this.bucket = $.bucket; + this.mountOptions = $.mountOptions; this.readOnly = $.readOnly; } @@ -93,6 +112,40 @@ public Builder bucket(String bucket) { return bucket(Output.of(bucket)); } + /** + * @param mountOptions A list of flags to pass to the gcsfuse command for configuring this volume. + * Flags should be passed without leading dashes. + * + * @return builder + * + */ + public Builder mountOptions(@Nullable Output> mountOptions) { + $.mountOptions = mountOptions; + return this; + } + + /** + * @param mountOptions A list of flags to pass to the gcsfuse command for configuring this volume. + * Flags should be passed without leading dashes. + * + * @return builder + * + */ + public Builder mountOptions(List mountOptions) { + return mountOptions(Output.of(mountOptions)); + } + + /** + * @param mountOptions A list of flags to pass to the gcsfuse command for configuring this volume. + * Flags should be passed without leading dashes. + * + * @return builder + * + */ + public Builder mountOptions(String... mountOptions) { + return mountOptions(List.of(mountOptions)); + } + /** * @param readOnly If true, mount this volume as read-only in all mounts. If false, mount this volume as read-write. * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/inputs/ServiceTemplateVolumeGcsArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/inputs/ServiceTemplateVolumeGcsArgs.java index 8480ca52c1..aea43dd9f1 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/inputs/ServiceTemplateVolumeGcsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/inputs/ServiceTemplateVolumeGcsArgs.java @@ -8,6 +8,7 @@ import com.pulumi.exceptions.MissingRequiredPropertyException; import java.lang.Boolean; import java.lang.String; +import java.util.List; import java.util.Objects; import java.util.Optional; import javax.annotation.Nullable; @@ -32,6 +33,23 @@ public Output bucket() { return this.bucket; } + /** + * A list of flags to pass to the gcsfuse command for configuring this volume. + * Flags should be passed without leading dashes. + * + */ + @Import(name="mountOptions") + private @Nullable Output> mountOptions; + + /** + * @return A list of flags to pass to the gcsfuse command for configuring this volume. + * Flags should be passed without leading dashes. + * + */ + public Optional>> mountOptions() { + return Optional.ofNullable(this.mountOptions); + } + /** * If true, mount the GCS bucket as read-only * @@ -51,6 +69,7 @@ private ServiceTemplateVolumeGcsArgs() {} private ServiceTemplateVolumeGcsArgs(ServiceTemplateVolumeGcsArgs $) { this.bucket = $.bucket; + this.mountOptions = $.mountOptions; this.readOnly = $.readOnly; } @@ -93,6 +112,40 @@ public Builder bucket(String bucket) { return bucket(Output.of(bucket)); } + /** + * @param mountOptions A list of flags to pass to the gcsfuse command for configuring this volume. + * Flags should be passed without leading dashes. + * + * @return builder + * + */ + public Builder mountOptions(@Nullable Output> mountOptions) { + $.mountOptions = mountOptions; + return this; + } + + /** + * @param mountOptions A list of flags to pass to the gcsfuse command for configuring this volume. + * Flags should be passed without leading dashes. + * + * @return builder + * + */ + public Builder mountOptions(List mountOptions) { + return mountOptions(Output.of(mountOptions)); + } + + /** + * @param mountOptions A list of flags to pass to the gcsfuse command for configuring this volume. + * Flags should be passed without leading dashes. + * + * @return builder + * + */ + public Builder mountOptions(String... mountOptions) { + return mountOptions(List.of(mountOptions)); + } + /** * @param readOnly If true, mount the GCS bucket as read-only * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/outputs/GetJobTemplateTemplateVolumeGc.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/outputs/GetJobTemplateTemplateVolumeGc.java index 90a6902324..17a2e5701f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/outputs/GetJobTemplateTemplateVolumeGc.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/outputs/GetJobTemplateTemplateVolumeGc.java @@ -7,6 +7,7 @@ import com.pulumi.exceptions.MissingRequiredPropertyException; import java.lang.Boolean; import java.lang.String; +import java.util.List; import java.util.Objects; @CustomType @@ -16,6 +17,12 @@ public final class GetJobTemplateTemplateVolumeGc { * */ private String bucket; + /** + * @return A list of flags to pass to the gcsfuse command for configuring this volume. + * Flags should be passed without leading dashes. + * + */ + private List mountOptions; /** * @return If true, mount this volume as read-only in all mounts. If false, mount this volume as read-write. * @@ -30,6 +37,14 @@ private GetJobTemplateTemplateVolumeGc() {} public String bucket() { return this.bucket; } + /** + * @return A list of flags to pass to the gcsfuse command for configuring this volume. + * Flags should be passed without leading dashes. + * + */ + public List mountOptions() { + return this.mountOptions; + } /** * @return If true, mount this volume as read-only in all mounts. If false, mount this volume as read-write. * @@ -48,11 +63,13 @@ public static Builder builder(GetJobTemplateTemplateVolumeGc defaults) { @CustomType.Builder public static final class Builder { private String bucket; + private List mountOptions; private Boolean readOnly; public Builder() {} public Builder(GetJobTemplateTemplateVolumeGc defaults) { Objects.requireNonNull(defaults); this.bucket = defaults.bucket; + this.mountOptions = defaults.mountOptions; this.readOnly = defaults.readOnly; } @@ -65,6 +82,17 @@ public Builder bucket(String bucket) { return this; } @CustomType.Setter + public Builder mountOptions(List mountOptions) { + if (mountOptions == null) { + throw new MissingRequiredPropertyException("GetJobTemplateTemplateVolumeGc", "mountOptions"); + } + this.mountOptions = mountOptions; + return this; + } + public Builder mountOptions(String... mountOptions) { + return mountOptions(List.of(mountOptions)); + } + @CustomType.Setter public Builder readOnly(Boolean readOnly) { if (readOnly == null) { throw new MissingRequiredPropertyException("GetJobTemplateTemplateVolumeGc", "readOnly"); @@ -75,6 +103,7 @@ public Builder readOnly(Boolean readOnly) { public GetJobTemplateTemplateVolumeGc build() { final var _resultValue = new GetJobTemplateTemplateVolumeGc(); _resultValue.bucket = bucket; + _resultValue.mountOptions = mountOptions; _resultValue.readOnly = readOnly; return _resultValue; } diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/outputs/GetServiceTemplateVolumeGc.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/outputs/GetServiceTemplateVolumeGc.java index 0363e6c9f9..721a96f872 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/outputs/GetServiceTemplateVolumeGc.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/outputs/GetServiceTemplateVolumeGc.java @@ -7,6 +7,7 @@ import com.pulumi.exceptions.MissingRequiredPropertyException; import java.lang.Boolean; import java.lang.String; +import java.util.List; import java.util.Objects; @CustomType @@ -16,6 +17,12 @@ public final class GetServiceTemplateVolumeGc { * */ private String bucket; + /** + * @return A list of flags to pass to the gcsfuse command for configuring this volume. + * Flags should be passed without leading dashes. + * + */ + private List mountOptions; /** * @return If true, mount the GCS bucket as read-only * @@ -30,6 +37,14 @@ private GetServiceTemplateVolumeGc() {} public String bucket() { return this.bucket; } + /** + * @return A list of flags to pass to the gcsfuse command for configuring this volume. + * Flags should be passed without leading dashes. + * + */ + public List mountOptions() { + return this.mountOptions; + } /** * @return If true, mount the GCS bucket as read-only * @@ -48,11 +63,13 @@ public static Builder builder(GetServiceTemplateVolumeGc defaults) { @CustomType.Builder public static final class Builder { private String bucket; + private List mountOptions; private Boolean readOnly; public Builder() {} public Builder(GetServiceTemplateVolumeGc defaults) { Objects.requireNonNull(defaults); this.bucket = defaults.bucket; + this.mountOptions = defaults.mountOptions; this.readOnly = defaults.readOnly; } @@ -65,6 +82,17 @@ public Builder bucket(String bucket) { return this; } @CustomType.Setter + public Builder mountOptions(List mountOptions) { + if (mountOptions == null) { + throw new MissingRequiredPropertyException("GetServiceTemplateVolumeGc", "mountOptions"); + } + this.mountOptions = mountOptions; + return this; + } + public Builder mountOptions(String... mountOptions) { + return mountOptions(List.of(mountOptions)); + } + @CustomType.Setter public Builder readOnly(Boolean readOnly) { if (readOnly == null) { throw new MissingRequiredPropertyException("GetServiceTemplateVolumeGc", "readOnly"); @@ -75,6 +103,7 @@ public Builder readOnly(Boolean readOnly) { public GetServiceTemplateVolumeGc build() { final var _resultValue = new GetServiceTemplateVolumeGc(); _resultValue.bucket = bucket; + _resultValue.mountOptions = mountOptions; _resultValue.readOnly = readOnly; return _resultValue; } diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/outputs/JobTemplateTemplateVolumeGcs.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/outputs/JobTemplateTemplateVolumeGcs.java index b3552c22f7..6e0badd574 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/outputs/JobTemplateTemplateVolumeGcs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/outputs/JobTemplateTemplateVolumeGcs.java @@ -7,6 +7,7 @@ import com.pulumi.exceptions.MissingRequiredPropertyException; import java.lang.Boolean; import java.lang.String; +import java.util.List; import java.util.Objects; import java.util.Optional; import javax.annotation.Nullable; @@ -18,6 +19,12 @@ public final class JobTemplateTemplateVolumeGcs { * */ private String bucket; + /** + * @return A list of flags to pass to the gcsfuse command for configuring this volume. + * Flags should be passed without leading dashes. + * + */ + private @Nullable List mountOptions; /** * @return If true, mount this volume as read-only in all mounts. If false, mount this volume as read-write. * @@ -32,6 +39,14 @@ private JobTemplateTemplateVolumeGcs() {} public String bucket() { return this.bucket; } + /** + * @return A list of flags to pass to the gcsfuse command for configuring this volume. + * Flags should be passed without leading dashes. + * + */ + public List mountOptions() { + return this.mountOptions == null ? List.of() : this.mountOptions; + } /** * @return If true, mount this volume as read-only in all mounts. If false, mount this volume as read-write. * @@ -50,11 +65,13 @@ public static Builder builder(JobTemplateTemplateVolumeGcs defaults) { @CustomType.Builder public static final class Builder { private String bucket; + private @Nullable List mountOptions; private @Nullable Boolean readOnly; public Builder() {} public Builder(JobTemplateTemplateVolumeGcs defaults) { Objects.requireNonNull(defaults); this.bucket = defaults.bucket; + this.mountOptions = defaults.mountOptions; this.readOnly = defaults.readOnly; } @@ -67,6 +84,15 @@ public Builder bucket(String bucket) { return this; } @CustomType.Setter + public Builder mountOptions(@Nullable List mountOptions) { + + this.mountOptions = mountOptions; + return this; + } + public Builder mountOptions(String... mountOptions) { + return mountOptions(List.of(mountOptions)); + } + @CustomType.Setter public Builder readOnly(@Nullable Boolean readOnly) { this.readOnly = readOnly; @@ -75,6 +101,7 @@ public Builder readOnly(@Nullable Boolean readOnly) { public JobTemplateTemplateVolumeGcs build() { final var _resultValue = new JobTemplateTemplateVolumeGcs(); _resultValue.bucket = bucket; + _resultValue.mountOptions = mountOptions; _resultValue.readOnly = readOnly; return _resultValue; } diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/outputs/ServiceTemplateVolumeGcs.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/outputs/ServiceTemplateVolumeGcs.java index 6f4c10789a..d1a0fb23c7 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/outputs/ServiceTemplateVolumeGcs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/outputs/ServiceTemplateVolumeGcs.java @@ -7,6 +7,7 @@ import com.pulumi.exceptions.MissingRequiredPropertyException; import java.lang.Boolean; import java.lang.String; +import java.util.List; import java.util.Objects; import java.util.Optional; import javax.annotation.Nullable; @@ -18,6 +19,12 @@ public final class ServiceTemplateVolumeGcs { * */ private String bucket; + /** + * @return A list of flags to pass to the gcsfuse command for configuring this volume. + * Flags should be passed without leading dashes. + * + */ + private @Nullable List mountOptions; /** * @return If true, mount the GCS bucket as read-only * @@ -32,6 +39,14 @@ private ServiceTemplateVolumeGcs() {} public String bucket() { return this.bucket; } + /** + * @return A list of flags to pass to the gcsfuse command for configuring this volume. + * Flags should be passed without leading dashes. + * + */ + public List mountOptions() { + return this.mountOptions == null ? List.of() : this.mountOptions; + } /** * @return If true, mount the GCS bucket as read-only * @@ -50,11 +65,13 @@ public static Builder builder(ServiceTemplateVolumeGcs defaults) { @CustomType.Builder public static final class Builder { private String bucket; + private @Nullable List mountOptions; private @Nullable Boolean readOnly; public Builder() {} public Builder(ServiceTemplateVolumeGcs defaults) { Objects.requireNonNull(defaults); this.bucket = defaults.bucket; + this.mountOptions = defaults.mountOptions; this.readOnly = defaults.readOnly; } @@ -67,6 +84,15 @@ public Builder bucket(String bucket) { return this; } @CustomType.Setter + public Builder mountOptions(@Nullable List mountOptions) { + + this.mountOptions = mountOptions; + return this; + } + public Builder mountOptions(String... mountOptions) { + return mountOptions(List.of(mountOptions)); + } + @CustomType.Setter public Builder readOnly(@Nullable Boolean readOnly) { this.readOnly = readOnly; @@ -75,6 +101,7 @@ public Builder readOnly(@Nullable Boolean readOnly) { public ServiceTemplateVolumeGcs build() { final var _resultValue = new ServiceTemplateVolumeGcs(); _resultValue.bucket = bucket; + _resultValue.mountOptions = mountOptions; _resultValue.readOnly = readOnly; return _resultValue; } diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/Disk.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/Disk.java index 08e95db065..fa50bb5fe3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/Disk.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/Disk.java @@ -242,7 +242,7 @@ public Output accessMode() { return this.accessMode; } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -250,7 +250,7 @@ public Output accessMode() { private Output asyncPrimaryDisk; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/DiskArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/DiskArgs.java index d7cc4fbf52..e9cc7c483c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/DiskArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/DiskArgs.java @@ -48,7 +48,7 @@ public Optional> accessMode() { } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -56,7 +56,7 @@ public Optional> accessMode() { private @Nullable Output asyncPrimaryDisk; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -655,7 +655,7 @@ public Builder accessMode(String accessMode) { } /** - * @param asyncPrimaryDisk A nested object resource + * @param asyncPrimaryDisk A nested object resource. * Structure is documented below. * * @return builder @@ -667,7 +667,7 @@ public Builder asyncPrimaryDisk(@Nullable Output async } /** - * @param asyncPrimaryDisk A nested object resource + * @param asyncPrimaryDisk A nested object resource. * Structure is documented below. * * @return builder diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/FirewallPolicyRule.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/FirewallPolicyRule.java index 59a7ae4b40..f5537fd4f1 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/FirewallPolicyRule.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/FirewallPolicyRule.java @@ -19,11 +19,10 @@ import javax.annotation.Nullable; /** - * The Compute FirewallPolicyRule resource - * * ## Example Usage * - * ### Basic_fir_sec_rule + * ### Firewall Policy Rule + * * <!--Start PulumiCodeChooser --> *
  * {@code
@@ -55,7 +54,7 @@
  * 
  *     public static void stack(Context ctx) }{{@code
  *         var basicGlobalNetworksecurityAddressGroup = new AddressGroup("basicGlobalNetworksecurityAddressGroup", AddressGroupArgs.builder()
- *             .name("policy")
+ *             .name("address")
  *             .parent("organizations/123456789")
  *             .description("Sample global networksecurity_address_group")
  *             .location("global")
@@ -65,7 +64,7 @@
  *             .build());
  * 
  *         var folder = new Folder("folder", FolderArgs.builder()
- *             .displayName("policy")
+ *             .displayName("folder")
  *             .parent("organizations/123456789")
  *             .deletionProtection(false)
  *             .build());
@@ -76,7 +75,7 @@
  *             .description("Resource created for Terraform acceptance testing")
  *             .build());
  * 
- *         var primary = new FirewallPolicyRule("primary", FirewallPolicyRuleArgs.builder()
+ *         var policyRule = new FirewallPolicyRule("policyRule", FirewallPolicyRuleArgs.builder()
  *             .firewallPolicy(default_.name())
  *             .description("Resource created for Terraform acceptance testing")
  *             .priority(9000)
@@ -145,6 +144,20 @@ public class FirewallPolicyRule extends com.pulumi.resources.CustomResource {
     public Output action() {
         return this.action;
     }
+    /**
+     * Creation timestamp in RFC3339 text format.
+     * 
+     */
+    @Export(name="creationTimestamp", refs={String.class}, tree="[0]")
+    private Output creationTimestamp;
+
+    /**
+     * @return Creation timestamp in RFC3339 text format.
+     * 
+     */
+    public Output creationTimestamp() {
+        return this.creationTimestamp;
+    }
     /**
      * An optional description for this resource.
      * 
@@ -160,14 +173,16 @@ public Output> description() {
         return Codegen.optional(this.description);
     }
     /**
-     * The direction in which this rule applies. Possible values: INGRESS, EGRESS
+     * The direction in which this rule applies.
+     * Possible values are: `INGRESS`, `EGRESS`.
      * 
      */
     @Export(name="direction", refs={String.class}, tree="[0]")
     private Output direction;
 
     /**
-     * @return The direction in which this rule applies. Possible values: INGRESS, EGRESS
+     * @return The direction in which this rule applies.
+     * Possible values are: `INGRESS`, `EGRESS`.
      * 
      */
     public Output direction() {
@@ -237,6 +252,7 @@ public Output kind() {
     }
     /**
      * A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
+     * Structure is documented below.
      * 
      */
     @Export(name="match", refs={FirewallPolicyRuleMatch.class}, tree="[0]")
@@ -244,20 +260,25 @@ public Output kind() {
 
     /**
      * @return A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
+     * Structure is documented below.
      * 
      */
     public Output match() {
         return this.match;
     }
     /**
-     * An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority.
+     * An integer indicating the priority of a rule in the list.
+     * The priority must be a positive value between 0 and 2147483647.
+     * Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority.
      * 
      */
     @Export(name="priority", refs={Integer.class}, tree="[0]")
     private Output priority;
 
     /**
-     * @return An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority.
+     * @return An integer indicating the priority of a rule in the list.
+     * The priority must be a positive value between 0 and 2147483647.
+     * Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority.
      * 
      */
     public Output priority() {
@@ -278,18 +299,18 @@ public Output ruleTupleCount() {
         return this.ruleTupleCount;
     }
     /**
-     * A fully-qualified URL of a SecurityProfileGroup resource. Example:
-     * https://networksecurity.googleapis.com/v1/organizations/{organizationId}/locations/global/securityProfileGroups/my-security-profile-group.
-     * It must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions.
+     * A fully-qualified URL of a SecurityProfile resource instance. Example:
+     * https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
+     * Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions.
      * 
      */
     @Export(name="securityProfileGroup", refs={String.class}, tree="[0]")
     private Output securityProfileGroup;
 
     /**
-     * @return A fully-qualified URL of a SecurityProfileGroup resource. Example:
-     * https://networksecurity.googleapis.com/v1/organizations/{organizationId}/locations/global/securityProfileGroups/my-security-profile-group.
-     * It must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions.
+     * @return A fully-qualified URL of a SecurityProfile resource instance. Example:
+     * https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
+     * Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions.
      * 
      */
     public Output> securityProfileGroup() {
@@ -326,7 +347,7 @@ public Output>> targetServiceAccounts() {
         return Codegen.optional(this.targetServiceAccounts);
     }
     /**
-     * Boolean flag indicating if the traffic should be TLS decrypted. It can be set only if action =
+     * Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action =
      * 'apply_security_profile_group' and cannot be set for other actions.
      * 
      */
@@ -334,7 +355,7 @@ public Output>> targetServiceAccounts() {
     private Output tlsInspect;
 
     /**
-     * @return Boolean flag indicating if the traffic should be TLS decrypted. It can be set only if action =
+     * @return Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action =
      * 'apply_security_profile_group' and cannot be set for other actions.
      * 
      */
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/FirewallPolicyRuleArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/FirewallPolicyRuleArgs.java
index 97fe97a553..e80b73b735 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/compute/FirewallPolicyRuleArgs.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/FirewallPolicyRuleArgs.java
@@ -51,14 +51,16 @@ public Optional> description() {
     }
 
     /**
-     * The direction in which this rule applies. Possible values: INGRESS, EGRESS
+     * The direction in which this rule applies.
+     * Possible values are: `INGRESS`, `EGRESS`.
      * 
      */
     @Import(name="direction", required=true)
     private Output direction;
 
     /**
-     * @return The direction in which this rule applies. Possible values: INGRESS, EGRESS
+     * @return The direction in which this rule applies.
+     * Possible values are: `INGRESS`, `EGRESS`.
      * 
      */
     public Output direction() {
@@ -118,6 +120,7 @@ public Output firewallPolicy() {
 
     /**
      * A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
+     * Structure is documented below.
      * 
      */
     @Import(name="match", required=true)
@@ -125,6 +128,7 @@ public Output firewallPolicy() {
 
     /**
      * @return A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
+     * Structure is documented below.
      * 
      */
     public Output match() {
@@ -132,14 +136,18 @@ public Output match() {
     }
 
     /**
-     * An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority.
+     * An integer indicating the priority of a rule in the list.
+     * The priority must be a positive value between 0 and 2147483647.
+     * Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority.
      * 
      */
     @Import(name="priority", required=true)
     private Output priority;
 
     /**
-     * @return An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority.
+     * @return An integer indicating the priority of a rule in the list.
+     * The priority must be a positive value between 0 and 2147483647.
+     * Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority.
      * 
      */
     public Output priority() {
@@ -147,18 +155,18 @@ public Output priority() {
     }
 
     /**
-     * A fully-qualified URL of a SecurityProfileGroup resource. Example:
-     * https://networksecurity.googleapis.com/v1/organizations/{organizationId}/locations/global/securityProfileGroups/my-security-profile-group.
-     * It must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions.
+     * A fully-qualified URL of a SecurityProfile resource instance. Example:
+     * https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
+     * Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions.
      * 
      */
     @Import(name="securityProfileGroup")
     private @Nullable Output securityProfileGroup;
 
     /**
-     * @return A fully-qualified URL of a SecurityProfileGroup resource. Example:
-     * https://networksecurity.googleapis.com/v1/organizations/{organizationId}/locations/global/securityProfileGroups/my-security-profile-group.
-     * It must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions.
+     * @return A fully-qualified URL of a SecurityProfile resource instance. Example:
+     * https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
+     * Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions.
      * 
      */
     public Optional> securityProfileGroup() {
@@ -198,7 +206,7 @@ public Optional>> targetServiceAccounts() {
     }
 
     /**
-     * Boolean flag indicating if the traffic should be TLS decrypted. It can be set only if action =
+     * Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action =
      * 'apply_security_profile_group' and cannot be set for other actions.
      * 
      */
@@ -206,7 +214,7 @@ public Optional>> targetServiceAccounts() {
     private @Nullable Output tlsInspect;
 
     /**
-     * @return Boolean flag indicating if the traffic should be TLS decrypted. It can be set only if action =
+     * @return Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action =
      * 'apply_security_profile_group' and cannot be set for other actions.
      * 
      */
@@ -292,7 +300,8 @@ public Builder description(String description) {
         }
 
         /**
-         * @param direction The direction in which this rule applies. Possible values: INGRESS, EGRESS
+         * @param direction The direction in which this rule applies.
+         * Possible values are: `INGRESS`, `EGRESS`.
          * 
          * @return builder
          * 
@@ -303,7 +312,8 @@ public Builder direction(Output direction) {
         }
 
         /**
-         * @param direction The direction in which this rule applies. Possible values: INGRESS, EGRESS
+         * @param direction The direction in which this rule applies.
+         * Possible values are: `INGRESS`, `EGRESS`.
          * 
          * @return builder
          * 
@@ -383,6 +393,7 @@ public Builder firewallPolicy(String firewallPolicy) {
 
         /**
          * @param match A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
+         * Structure is documented below.
          * 
          * @return builder
          * 
@@ -394,6 +405,7 @@ public Builder match(Output match) {
 
         /**
          * @param match A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
+         * Structure is documented below.
          * 
          * @return builder
          * 
@@ -403,7 +415,9 @@ public Builder match(FirewallPolicyRuleMatchArgs match) {
         }
 
         /**
-         * @param priority An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority.
+         * @param priority An integer indicating the priority of a rule in the list.
+         * The priority must be a positive value between 0 and 2147483647.
+         * Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority.
          * 
          * @return builder
          * 
@@ -414,7 +428,9 @@ public Builder priority(Output priority) {
         }
 
         /**
-         * @param priority An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority.
+         * @param priority An integer indicating the priority of a rule in the list.
+         * The priority must be a positive value between 0 and 2147483647.
+         * Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority.
          * 
          * @return builder
          * 
@@ -424,9 +440,9 @@ public Builder priority(Integer priority) {
         }
 
         /**
-         * @param securityProfileGroup A fully-qualified URL of a SecurityProfileGroup resource. Example:
-         * https://networksecurity.googleapis.com/v1/organizations/{organizationId}/locations/global/securityProfileGroups/my-security-profile-group.
-         * It must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions.
+         * @param securityProfileGroup A fully-qualified URL of a SecurityProfile resource instance. Example:
+         * https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
+         * Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions.
          * 
          * @return builder
          * 
@@ -437,9 +453,9 @@ public Builder securityProfileGroup(@Nullable Output securityProfileGrou
         }
 
         /**
-         * @param securityProfileGroup A fully-qualified URL of a SecurityProfileGroup resource. Example:
-         * https://networksecurity.googleapis.com/v1/organizations/{organizationId}/locations/global/securityProfileGroups/my-security-profile-group.
-         * It must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions.
+         * @param securityProfileGroup A fully-qualified URL of a SecurityProfile resource instance. Example:
+         * https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
+         * Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions.
          * 
          * @return builder
          * 
@@ -514,7 +530,7 @@ public Builder targetServiceAccounts(String... targetServiceAccounts) {
         }
 
         /**
-         * @param tlsInspect Boolean flag indicating if the traffic should be TLS decrypted. It can be set only if action =
+         * @param tlsInspect Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action =
          * 'apply_security_profile_group' and cannot be set for other actions.
          * 
          * @return builder
@@ -526,7 +542,7 @@ public Builder tlsInspect(@Nullable Output tlsInspect) {
         }
 
         /**
-         * @param tlsInspect Boolean flag indicating if the traffic should be TLS decrypted. It can be set only if action =
+         * @param tlsInspect Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action =
          * 'apply_security_profile_group' and cannot be set for other actions.
          * 
          * @return builder
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/HealthCheck.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/HealthCheck.java
index 9b202ea176..6bd01ee96c 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/compute/HealthCheck.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/HealthCheck.java
@@ -819,7 +819,7 @@ public Output> description() {
         return Codegen.optional(this.description);
     }
     /**
-     * A nested object resource
+     * A nested object resource.
      * Structure is documented below.
      * 
      */
@@ -827,7 +827,7 @@ public Output> description() {
     private Output grpcHealthCheck;
 
     /**
-     * @return A nested object resource
+     * @return A nested object resource.
      * Structure is documented below.
      * 
      */
@@ -851,7 +851,7 @@ public Output> healthyThreshold() {
         return Codegen.optional(this.healthyThreshold);
     }
     /**
-     * A nested object resource
+     * A nested object resource.
      * Structure is documented below.
      * 
      */
@@ -859,7 +859,7 @@ public Output> healthyThreshold() {
     private Output http2HealthCheck;
 
     /**
-     * @return A nested object resource
+     * @return A nested object resource.
      * Structure is documented below.
      * 
      */
@@ -867,7 +867,7 @@ public Output> http2HealthCheck() {
         return Codegen.optional(this.http2HealthCheck);
     }
     /**
-     * A nested object resource
+     * A nested object resource.
      * Structure is documented below.
      * 
      */
@@ -875,7 +875,7 @@ public Output> http2HealthCheck() {
     private Output httpHealthCheck;
 
     /**
-     * @return A nested object resource
+     * @return A nested object resource.
      * Structure is documented below.
      * 
      */
@@ -883,7 +883,7 @@ public Output> httpHealthCheck() {
         return Codegen.optional(this.httpHealthCheck);
     }
     /**
-     * A nested object resource
+     * A nested object resource.
      * Structure is documented below.
      * 
      */
@@ -891,7 +891,7 @@ public Output> httpHealthCheck() {
     private Output httpsHealthCheck;
 
     /**
-     * @return A nested object resource
+     * @return A nested object resource.
      * Structure is documented below.
      * 
      */
@@ -1011,7 +1011,7 @@ public Output>> sourceRegions() {
         return Codegen.optional(this.sourceRegions);
     }
     /**
-     * A nested object resource
+     * A nested object resource.
      * Structure is documented below.
      * 
      */
@@ -1019,7 +1019,7 @@ public Output>> sourceRegions() {
     private Output sslHealthCheck;
 
     /**
-     * @return A nested object resource
+     * @return A nested object resource.
      * Structure is documented below.
      * 
      */
@@ -1027,7 +1027,7 @@ public Output> sslHealthCheck() {
         return Codegen.optional(this.sslHealthCheck);
     }
     /**
-     * A nested object resource
+     * A nested object resource.
      * Structure is documented below.
      * 
      */
@@ -1035,7 +1035,7 @@ public Output> sslHealthCheck() {
     private Output tcpHealthCheck;
 
     /**
-     * @return A nested object resource
+     * @return A nested object resource.
      * Structure is documented below.
      * 
      */
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/HealthCheckArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/HealthCheckArgs.java
index 4a0eb821a7..35d5546e31 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/compute/HealthCheckArgs.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/HealthCheckArgs.java
@@ -59,7 +59,7 @@ public Optional> description() {
     }
 
     /**
-     * A nested object resource
+     * A nested object resource.
      * Structure is documented below.
      * 
      */
@@ -67,7 +67,7 @@ public Optional> description() {
     private @Nullable Output grpcHealthCheck;
 
     /**
-     * @return A nested object resource
+     * @return A nested object resource.
      * Structure is documented below.
      * 
      */
@@ -93,7 +93,7 @@ public Optional> healthyThreshold() {
     }
 
     /**
-     * A nested object resource
+     * A nested object resource.
      * Structure is documented below.
      * 
      */
@@ -101,7 +101,7 @@ public Optional> healthyThreshold() {
     private @Nullable Output http2HealthCheck;
 
     /**
-     * @return A nested object resource
+     * @return A nested object resource.
      * Structure is documented below.
      * 
      */
@@ -110,7 +110,7 @@ public Optional> http2HealthCheck() {
     }
 
     /**
-     * A nested object resource
+     * A nested object resource.
      * Structure is documented below.
      * 
      */
@@ -118,7 +118,7 @@ public Optional> http2HealthCheck() {
     private @Nullable Output httpHealthCheck;
 
     /**
-     * @return A nested object resource
+     * @return A nested object resource.
      * Structure is documented below.
      * 
      */
@@ -127,7 +127,7 @@ public Optional> httpHealthCheck() {
     }
 
     /**
-     * A nested object resource
+     * A nested object resource.
      * Structure is documented below.
      * 
      */
@@ -135,7 +135,7 @@ public Optional> httpHealthCheck() {
     private @Nullable Output httpsHealthCheck;
 
     /**
-     * @return A nested object resource
+     * @return A nested object resource.
      * Structure is documented below.
      * 
      */
@@ -246,7 +246,7 @@ public Optional>> sourceRegions() {
     }
 
     /**
-     * A nested object resource
+     * A nested object resource.
      * Structure is documented below.
      * 
      */
@@ -254,7 +254,7 @@ public Optional>> sourceRegions() {
     private @Nullable Output sslHealthCheck;
 
     /**
-     * @return A nested object resource
+     * @return A nested object resource.
      * Structure is documented below.
      * 
      */
@@ -263,7 +263,7 @@ public Optional> sslHealthCheck() {
     }
 
     /**
-     * A nested object resource
+     * A nested object resource.
      * Structure is documented below.
      * 
      */
@@ -271,7 +271,7 @@ public Optional> sslHealthCheck() {
     private @Nullable Output tcpHealthCheck;
 
     /**
-     * @return A nested object resource
+     * @return A nested object resource.
      * Structure is documented below.
      * 
      */
@@ -400,7 +400,7 @@ public Builder description(String description) {
         }
 
         /**
-         * @param grpcHealthCheck A nested object resource
+         * @param grpcHealthCheck A nested object resource.
          * Structure is documented below.
          * 
          * @return builder
@@ -412,7 +412,7 @@ public Builder grpcHealthCheck(@Nullable Output
         }
 
         /**
-         * @param grpcHealthCheck A nested object resource
+         * @param grpcHealthCheck A nested object resource.
          * Structure is documented below.
          * 
          * @return builder
@@ -446,7 +446,7 @@ public Builder healthyThreshold(Integer healthyThreshold) {
         }
 
         /**
-         * @param http2HealthCheck A nested object resource
+         * @param http2HealthCheck A nested object resource.
          * Structure is documented below.
          * 
          * @return builder
@@ -458,7 +458,7 @@ public Builder http2HealthCheck(@Nullable Output
         }
 
         /**
-         * @param httpHealthCheck A nested object resource
+         * @param httpHealthCheck A nested object resource.
          * Structure is documented below.
          * 
          * @return builder
@@ -492,7 +492,7 @@ public Builder httpHealthCheck(HealthCheckHttpHealthCheckArgs httpHealthCheck) {
         }
 
         /**
-         * @param httpsHealthCheck A nested object resource
+         * @param httpsHealthCheck A nested object resource.
          * Structure is documented below.
          * 
          * @return builder
@@ -504,7 +504,7 @@ public Builder httpsHealthCheck(@Nullable Output ss
         }
 
         /**
-         * @param sslHealthCheck A nested object resource
+         * @param sslHealthCheck A nested object resource.
          * Structure is documented below.
          * 
          * @return builder
@@ -685,7 +685,7 @@ public Builder sslHealthCheck(HealthCheckSslHealthCheckArgs sslHealthCheck) {
         }
 
         /**
-         * @param tcpHealthCheck A nested object resource
+         * @param tcpHealthCheck A nested object resource.
          * Structure is documented below.
          * 
          * @return builder
@@ -697,7 +697,7 @@ public Builder tcpHealthCheck(@Nullable Output tc
         }
 
         /**
-         * @param tcpHealthCheck A nested object resource
+         * @param tcpHealthCheck A nested object resource.
          * Structure is documented below.
          * 
          * @return builder
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkFirewallPolicyRule.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkFirewallPolicyRule.java
index 8eab87fd0c..75815e1aec 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkFirewallPolicyRule.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkFirewallPolicyRule.java
@@ -94,7 +94,7 @@
  * 
  *         var basicValue = new TagValue("basicValue", TagValueArgs.builder()
  *             .description("For valuename resources.")
- *             .parent(basicKey.name().applyValue(name -> String.format("tagKeys/%s", name)))
+ *             .parent(basicKey.id())
  *             .shortName("tagvalue")
  *             .build());
  * 
@@ -114,7 +114,7 @@
  *                 .srcRegionCodes("US")
  *                 .srcThreatIntelligences("iplist-known-malicious-ips")
  *                 .srcSecureTags(NetworkFirewallPolicyRuleMatchSrcSecureTagArgs.builder()
- *                     .name(basicValue.name().applyValue(name -> String.format("tagValues/%s", name)))
+ *                     .name(basicValue.id())
  *                     .build())
  *                 .layer4Configs(NetworkFirewallPolicyRuleMatchLayer4ConfigArgs.builder()
  *                     .ipProtocol("all")
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkFirewallPolicyWithRules.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkFirewallPolicyWithRules.java
index f4e45c851d..81292e4c5f 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkFirewallPolicyWithRules.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkFirewallPolicyWithRules.java
@@ -64,7 +64,7 @@
  * 
  *         var addressGroup1 = new AddressGroup("addressGroup1", AddressGroupArgs.builder()
  *             .name("tf-address-group")
- *             .parent(String.format("projects/%s", project.applyValue(getProjectResult -> getProjectResult.name())))
+ *             .parent(project.applyValue(getProjectResult -> getProjectResult.id()))
  *             .description("Global address group")
  *             .location("global")
  *             .items("208.80.154.224/32")
@@ -74,7 +74,7 @@
  * 
  *         var secureTagKey1 = new TagKey("secureTagKey1", TagKeyArgs.builder()
  *             .description("Tag key")
- *             .parent(String.format("projects/%s", project.applyValue(getProjectResult -> getProjectResult.name())))
+ *             .parent(project.applyValue(getProjectResult -> getProjectResult.id()))
  *             .purpose("GCE_FIREWALL")
  *             .shortName("tf-tag-key")
  *             .purposeData(Map.of("network", String.format("%s/default", project.applyValue(getProjectResult -> getProjectResult.name()))))
@@ -82,7 +82,7 @@
  * 
  *         var secureTagValue1 = new TagValue("secureTagValue1", TagValueArgs.builder()
  *             .description("Tag value")
- *             .parent(secureTagKey1.name().applyValue(name -> String.format("tagKeys/%s", name)))
+ *             .parent(secureTagKey1.id())
  *             .shortName("tf-tag-value")
  *             .build());
  * 
@@ -130,7 +130,7 @@
  *                         .destAddressGroups(addressGroup1.id())
  *                         .build())
  *                     .targetSecureTags(NetworkFirewallPolicyWithRulesRuleTargetSecureTagArgs.builder()
- *                         .name(secureTagValue1.name().applyValue(name -> String.format("tagValues/%s", name)))
+ *                         .name(secureTagValue1.id())
  *                         .build())
  *                     .build(),
  *                 NetworkFirewallPolicyWithRulesRuleArgs.builder()
@@ -155,7 +155,7 @@
  *                             "iplist-public-clouds")
  *                         .srcAddressGroups(addressGroup1.id())
  *                         .srcSecureTags(NetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgs.builder()
- *                             .name(secureTagValue1.name().applyValue(name -> String.format("tagValues/%s", name)))
+ *                             .name(secureTagValue1.id())
  *                             .build())
  *                         .build())
  *                     .disabled(true)
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/NodeTemplate.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/NodeTemplate.java
index 10fb5e69b3..fdb84ca37c 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/compute/NodeTemplate.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/NodeTemplate.java
@@ -11,6 +11,7 @@
 import com.pulumi.gcp.compute.NodeTemplateArgs;
 import com.pulumi.gcp.compute.inputs.NodeTemplateState;
 import com.pulumi.gcp.compute.outputs.NodeTemplateAccelerator;
+import com.pulumi.gcp.compute.outputs.NodeTemplateDisk;
 import com.pulumi.gcp.compute.outputs.NodeTemplateNodeTypeFlexibility;
 import com.pulumi.gcp.compute.outputs.NodeTemplateServerBinding;
 import java.lang.String;
@@ -162,6 +163,54 @@
  * }
  * 
* <!--End PulumiCodeChooser --> + * ### Node Template Disks + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.gcp.compute.ComputeFunctions;
+ * import com.pulumi.gcp.compute.inputs.GetNodeTypesArgs;
+ * import com.pulumi.gcp.compute.NodeTemplate;
+ * import com.pulumi.gcp.compute.NodeTemplateArgs;
+ * import com.pulumi.gcp.compute.inputs.NodeTemplateDiskArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         final var central1a = ComputeFunctions.getNodeTypes(GetNodeTypesArgs.builder()
+ *             .zone("us-central1-a")
+ *             .build());
+ * 
+ *         var template = new NodeTemplate("template", NodeTemplateArgs.builder()
+ *             .name("soletenant-with-disks")
+ *             .region("us-central1")
+ *             .nodeType("n2-node-80-640")
+ *             .disks(NodeTemplateDiskArgs.builder()
+ *                 .diskCount(16)
+ *                 .diskSizeGb(375)
+ *                 .diskType("local-ssd")
+ *                 .build())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> * * ## Import * @@ -260,6 +309,24 @@ public Output creationTimestamp() { public Output> description() { return Codegen.optional(this.description); } + /** + * List of the type, size and count of disks attached to the + * node template + * Structure is documented below. + * + */ + @Export(name="disks", refs={List.class,NodeTemplateDisk.class}, tree="[0,1]") + private Output> disks; + + /** + * @return List of the type, size and count of disks attached to the + * node template + * Structure is documented below. + * + */ + public Output>> disks() { + return Codegen.optional(this.disks); + } /** * Name of the resource. * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/NodeTemplateArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/NodeTemplateArgs.java index 7697f59921..d487d5dc34 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/NodeTemplateArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/NodeTemplateArgs.java @@ -6,6 +6,7 @@ import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import com.pulumi.gcp.compute.inputs.NodeTemplateAcceleratorArgs; +import com.pulumi.gcp.compute.inputs.NodeTemplateDiskArgs; import com.pulumi.gcp.compute.inputs.NodeTemplateNodeTypeFlexibilityArgs; import com.pulumi.gcp.compute.inputs.NodeTemplateServerBindingArgs; import java.lang.String; @@ -73,6 +74,25 @@ public Optional> description() { return Optional.ofNullable(this.description); } + /** + * List of the type, size and count of disks attached to the + * node template + * Structure is documented below. + * + */ + @Import(name="disks") + private @Nullable Output> disks; + + /** + * @return List of the type, size and count of disks attached to the + * node template + * Structure is documented below. + * + */ + public Optional>> disks() { + return Optional.ofNullable(this.disks); + } + /** * Name of the resource. * @@ -204,6 +224,7 @@ private NodeTemplateArgs(NodeTemplateArgs $) { this.accelerators = $.accelerators; this.cpuOvercommitType = $.cpuOvercommitType; this.description = $.description; + this.disks = $.disks; this.name = $.name; this.nodeAffinityLabels = $.nodeAffinityLabels; this.nodeType = $.nodeType; @@ -314,6 +335,43 @@ public Builder description(String description) { return description(Output.of(description)); } + /** + * @param disks List of the type, size and count of disks attached to the + * node template + * Structure is documented below. + * + * @return builder + * + */ + public Builder disks(@Nullable Output> disks) { + $.disks = disks; + return this; + } + + /** + * @param disks List of the type, size and count of disks attached to the + * node template + * Structure is documented below. + * + * @return builder + * + */ + public Builder disks(List disks) { + return disks(Output.of(disks)); + } + + /** + * @param disks List of the type, size and count of disks attached to the + * node template + * Structure is documented below. + * + * @return builder + * + */ + public Builder disks(NodeTemplateDiskArgs... disks) { + return disks(List.of(disks)); + } + /** * @param name Name of the resource. * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionDisk.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionDisk.java index e406787ef7..b37a896a3e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionDisk.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionDisk.java @@ -246,7 +246,7 @@ @ResourceType(type="gcp:compute/regionDisk:RegionDisk") public class RegionDisk extends com.pulumi.resources.CustomResource { /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -254,7 +254,7 @@ public class RegionDisk extends com.pulumi.resources.CustomResource { private Output asyncPrimaryDisk; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionDiskArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionDiskArgs.java index 1d0d075c6f..c9ddd82170 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionDiskArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionDiskArgs.java @@ -24,7 +24,7 @@ public final class RegionDiskArgs extends com.pulumi.resources.ResourceArgs { public static final RegionDiskArgs Empty = new RegionDiskArgs(); /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -32,7 +32,7 @@ public final class RegionDiskArgs extends com.pulumi.resources.ResourceArgs { private @Nullable Output asyncPrimaryDisk; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -433,7 +433,7 @@ public Builder(RegionDiskArgs defaults) { } /** - * @param asyncPrimaryDisk A nested object resource + * @param asyncPrimaryDisk A nested object resource. * Structure is documented below. * * @return builder @@ -445,7 +445,7 @@ public Builder asyncPrimaryDisk(@Nullable Output } /** - * @param asyncPrimaryDisk A nested object resource + * @param asyncPrimaryDisk A nested object resource. * Structure is documented below. * * @return builder diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionHealthCheck.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionHealthCheck.java index d43257e196..9b40d92ab8 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionHealthCheck.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionHealthCheck.java @@ -688,7 +688,7 @@ public Output> description() { return Codegen.optional(this.description); } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -696,7 +696,7 @@ public Output> description() { private Output grpcHealthCheck; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -720,7 +720,7 @@ public Output> healthyThreshold() { return Codegen.optional(this.healthyThreshold); } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -728,7 +728,7 @@ public Output> healthyThreshold() { private Output http2HealthCheck; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -736,7 +736,7 @@ public Output> http2HealthCheck() { return Codegen.optional(this.http2HealthCheck); } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -744,7 +744,7 @@ public Output> http2HealthCheck() { private Output httpHealthCheck; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -752,7 +752,7 @@ public Output> httpHealthCheck() { return Codegen.optional(this.httpHealthCheck); } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -760,7 +760,7 @@ public Output> httpHealthCheck() { private Output httpsHealthCheck; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -860,7 +860,7 @@ public Output selfLink() { return this.selfLink; } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -868,7 +868,7 @@ public Output selfLink() { private Output sslHealthCheck; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -876,7 +876,7 @@ public Output> sslHealthCheck() { return Codegen.optional(this.sslHealthCheck); } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -884,7 +884,7 @@ public Output> sslHealthCheck() { private Output tcpHealthCheck; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionHealthCheckArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionHealthCheckArgs.java index 73734985cf..e4ab6e4096 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionHealthCheckArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionHealthCheckArgs.java @@ -58,7 +58,7 @@ public Optional> description() { } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -66,7 +66,7 @@ public Optional> description() { private @Nullable Output grpcHealthCheck; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -92,7 +92,7 @@ public Optional> healthyThreshold() { } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -100,7 +100,7 @@ public Optional> healthyThreshold() { private @Nullable Output http2HealthCheck; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -109,7 +109,7 @@ public Optional> http2HealthCheck( } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -117,7 +117,7 @@ public Optional> http2HealthCheck( private @Nullable Output httpHealthCheck; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -126,7 +126,7 @@ public Optional> httpHealthCheck() } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -134,7 +134,7 @@ public Optional> httpHealthCheck() private @Nullable Output httpsHealthCheck; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -225,7 +225,7 @@ public Optional> region() { } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -233,7 +233,7 @@ public Optional> region() { private @Nullable Output sslHealthCheck; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -242,7 +242,7 @@ public Optional> sslHealthCheck() { } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -250,7 +250,7 @@ public Optional> sslHealthCheck() { private @Nullable Output tcpHealthCheck; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -379,7 +379,7 @@ public Builder description(String description) { } /** - * @param grpcHealthCheck A nested object resource + * @param grpcHealthCheck A nested object resource. * Structure is documented below. * * @return builder @@ -391,7 +391,7 @@ public Builder grpcHealthCheck(@Nullable Output> distributionPolicyZones() { public Output fingerprint() { return this.fingerprint; } + /** + * The flexibility policy for managed instance group. Instance flexibility allows managed instance group to create VMs from multiple types of machines. Instance flexibility configuration on managed instance group overrides instance template configuration. Structure is documented below. + * *** + * + */ + @Export(name="instanceFlexibilityPolicy", refs={RegionInstanceGroupManagerInstanceFlexibilityPolicy.class}, tree="[0]") + private Output instanceFlexibilityPolicy; + + /** + * @return The flexibility policy for managed instance group. Instance flexibility allows managed instance group to create VMs from multiple types of machines. Instance flexibility configuration on managed instance group overrides instance template configuration. Structure is documented below. + * *** + * + */ + public Output> instanceFlexibilityPolicy() { + return Codegen.optional(this.instanceFlexibilityPolicy); + } /** * The full URL of the instance group created by the manager. * @@ -456,8 +473,6 @@ public Output>> namedPorts() /** * Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert). * - * *** - * */ @Export(name="params", refs={RegionInstanceGroupManagerParams.class}, tree="[0]") private Output params; @@ -465,8 +480,6 @@ public Output>> namedPorts() /** * @return Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert). * - * *** - * */ public Output> params() { return Codegen.optional(this.params); diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionInstanceGroupManagerArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionInstanceGroupManagerArgs.java index 6a5df34c0c..b636d6982e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionInstanceGroupManagerArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionInstanceGroupManagerArgs.java @@ -8,6 +8,7 @@ import com.pulumi.exceptions.MissingRequiredPropertyException; import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerAllInstancesConfigArgs; import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerAutoHealingPoliciesArgs; +import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs; import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerInstanceLifecyclePolicyArgs; import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerNamedPortArgs; import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerParamsArgs; @@ -140,6 +141,23 @@ public Optional>> distributionPolicyZones() { return Optional.ofNullable(this.distributionPolicyZones); } + /** + * The flexibility policy for managed instance group. Instance flexibility allows managed instance group to create VMs from multiple types of machines. Instance flexibility configuration on managed instance group overrides instance template configuration. Structure is documented below. + * *** + * + */ + @Import(name="instanceFlexibilityPolicy") + private @Nullable Output instanceFlexibilityPolicy; + + /** + * @return The flexibility policy for managed instance group. Instance flexibility allows managed instance group to create VMs from multiple types of machines. Instance flexibility configuration on managed instance group overrides instance template configuration. Structure is documented below. + * *** + * + */ + public Optional> instanceFlexibilityPolicy() { + return Optional.ofNullable(this.instanceFlexibilityPolicy); + } + /** * The instance lifecycle policy for this managed instance group. * @@ -221,8 +239,6 @@ public Optional>> namedPort /** * Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert). * - * *** - * */ @Import(name="params") private @Nullable Output params; @@ -230,8 +246,6 @@ public Optional>> namedPort /** * @return Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert). * - * *** - * */ public Optional> params() { return Optional.ofNullable(this.params); @@ -482,6 +496,7 @@ private RegionInstanceGroupManagerArgs(RegionInstanceGroupManagerArgs $) { this.description = $.description; this.distributionPolicyTargetShape = $.distributionPolicyTargetShape; this.distributionPolicyZones = $.distributionPolicyZones; + this.instanceFlexibilityPolicy = $.instanceFlexibilityPolicy; this.instanceLifecyclePolicy = $.instanceLifecyclePolicy; this.listManagedInstancesResults = $.listManagedInstancesResults; this.name = $.name; @@ -678,6 +693,29 @@ public Builder distributionPolicyZones(String... distributionPolicyZones) { return distributionPolicyZones(List.of(distributionPolicyZones)); } + /** + * @param instanceFlexibilityPolicy The flexibility policy for managed instance group. Instance flexibility allows managed instance group to create VMs from multiple types of machines. Instance flexibility configuration on managed instance group overrides instance template configuration. Structure is documented below. + * *** + * + * @return builder + * + */ + public Builder instanceFlexibilityPolicy(@Nullable Output instanceFlexibilityPolicy) { + $.instanceFlexibilityPolicy = instanceFlexibilityPolicy; + return this; + } + + /** + * @param instanceFlexibilityPolicy The flexibility policy for managed instance group. Instance flexibility allows managed instance group to create VMs from multiple types of machines. Instance flexibility configuration on managed instance group overrides instance template configuration. Structure is documented below. + * *** + * + * @return builder + * + */ + public Builder instanceFlexibilityPolicy(RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs instanceFlexibilityPolicy) { + return instanceFlexibilityPolicy(Output.of(instanceFlexibilityPolicy)); + } + /** * @param instanceLifecyclePolicy The instance lifecycle policy for this managed instance group. * @@ -794,8 +832,6 @@ public Builder namedPorts(RegionInstanceGroupManagerNamedPortArgs... namedPorts) /** * @param params Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert). * - * *** - * * @return builder * */ @@ -807,8 +843,6 @@ public Builder params(@Nullable Output par /** * @param params Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert). * - * *** - * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionNetworkFirewallPolicyRule.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionNetworkFirewallPolicyRule.java index 04e525fb16..f488fd5939 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionNetworkFirewallPolicyRule.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionNetworkFirewallPolicyRule.java @@ -95,7 +95,7 @@ * * var basicValue = new TagValue("basicValue", TagValueArgs.builder() * .description("For valuename resources.") - * .parent(basicKey.name().applyValue(name -> String.format("tagKeys/%s", name))) + * .parent(basicKey.id()) * .shortName("tagvalue") * .build()); * @@ -119,7 +119,7 @@ * .ipProtocol("all") * .build()) * .srcSecureTags(RegionNetworkFirewallPolicyRuleMatchSrcSecureTagArgs.builder() - * .name(basicValue.name().applyValue(name -> String.format("tagValues/%s", name))) + * .name(basicValue.id()) * .build()) * .srcAddressGroups(basicRegionalNetworksecurityAddressGroup.id()) * .build()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionNetworkFirewallPolicyWithRules.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionNetworkFirewallPolicyWithRules.java index 19ce602be6..9bde8df7ce 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionNetworkFirewallPolicyWithRules.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionNetworkFirewallPolicyWithRules.java @@ -60,7 +60,7 @@ * * var addressGroup1 = new AddressGroup("addressGroup1", AddressGroupArgs.builder() * .name("tf-address-group") - * .parent(String.format("projects/%s", project.applyValue(getProjectResult -> getProjectResult.name()))) + * .parent(project.applyValue(getProjectResult -> getProjectResult.id())) * .description("Regional address group") * .location("us-west2") * .items("208.80.154.224/32") @@ -70,7 +70,7 @@ * * var secureTagKey1 = new TagKey("secureTagKey1", TagKeyArgs.builder() * .description("Tag key") - * .parent(String.format("projects/%s", project.applyValue(getProjectResult -> getProjectResult.name()))) + * .parent(project.applyValue(getProjectResult -> getProjectResult.id())) * .purpose("GCE_FIREWALL") * .shortName("tf-tag-key") * .purposeData(Map.of("network", String.format("%s/default", project.applyValue(getProjectResult -> getProjectResult.name())))) @@ -78,7 +78,7 @@ * * var secureTagValue1 = new TagValue("secureTagValue1", TagValueArgs.builder() * .description("Tag value") - * .parent(secureTagKey1.name().applyValue(name -> String.format("tagKeys/%s", name))) + * .parent(secureTagKey1.id()) * .shortName("tf-tag-value") * .build()); * @@ -113,7 +113,7 @@ * .destAddressGroups(addressGroup1.id()) * .build()) * .targetSecureTags(RegionNetworkFirewallPolicyWithRulesRuleTargetSecureTagArgs.builder() - * .name(secureTagValue1.name().applyValue(name -> String.format("tagValues/%s", name))) + * .name(secureTagValue1.id()) * .build()) * .build(), * RegionNetworkFirewallPolicyWithRulesRuleArgs.builder() @@ -139,7 +139,7 @@ * "iplist-public-clouds") * .srcAddressGroups(addressGroup1.id()) * .srcSecureTags(RegionNetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgs.builder() - * .name(secureTagValue1.name().applyValue(name -> String.format("tagValues/%s", name))) + * .name(secureTagValue1.id()) * .build()) * .build()) * .disabled(true) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionResizeRequest.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionResizeRequest.java new file mode 100644 index 0000000000..fe8d5fa590 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionResizeRequest.java @@ -0,0 +1,381 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.gcp.Utilities; +import com.pulumi.gcp.compute.RegionResizeRequestArgs; +import com.pulumi.gcp.compute.inputs.RegionResizeRequestState; +import com.pulumi.gcp.compute.outputs.RegionResizeRequestRequestedRunDuration; +import com.pulumi.gcp.compute.outputs.RegionResizeRequestStatus; +import java.lang.Integer; +import java.lang.String; +import java.util.List; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * ## Example Usage + * + * ### Compute Rmig Resize Request + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.gcp.compute.RegionInstanceTemplate;
+ * import com.pulumi.gcp.compute.RegionInstanceTemplateArgs;
+ * import com.pulumi.gcp.compute.inputs.RegionInstanceTemplateSchedulingArgs;
+ * import com.pulumi.gcp.compute.inputs.RegionInstanceTemplateDiskArgs;
+ * import com.pulumi.gcp.compute.inputs.RegionInstanceTemplateGuestAcceleratorArgs;
+ * import com.pulumi.gcp.compute.inputs.RegionInstanceTemplateReservationAffinityArgs;
+ * import com.pulumi.gcp.compute.inputs.RegionInstanceTemplateShieldedInstanceConfigArgs;
+ * import com.pulumi.gcp.compute.inputs.RegionInstanceTemplateNetworkInterfaceArgs;
+ * import com.pulumi.gcp.compute.RegionInstanceGroupManager;
+ * import com.pulumi.gcp.compute.RegionInstanceGroupManagerArgs;
+ * import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerVersionArgs;
+ * import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerInstanceLifecyclePolicyArgs;
+ * import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerUpdatePolicyArgs;
+ * import com.pulumi.gcp.compute.RegionResizeRequest;
+ * import com.pulumi.gcp.compute.RegionResizeRequestArgs;
+ * import com.pulumi.gcp.compute.inputs.RegionResizeRequestRequestedRunDurationArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var a3Dws = new RegionInstanceTemplate("a3Dws", RegionInstanceTemplateArgs.builder()
+ *             .name("a3-dws")
+ *             .region("us-central1")
+ *             .description("This template is used to create a mig instance that is compatible with DWS resize requests.")
+ *             .instanceDescription("A3 GPU")
+ *             .machineType("a3-highgpu-8g")
+ *             .canIpForward(false)
+ *             .scheduling(RegionInstanceTemplateSchedulingArgs.builder()
+ *                 .automaticRestart(false)
+ *                 .onHostMaintenance("TERMINATE")
+ *                 .build())
+ *             .disks(RegionInstanceTemplateDiskArgs.builder()
+ *                 .sourceImage("cos-cloud/cos-105-lts")
+ *                 .autoDelete(true)
+ *                 .boot(true)
+ *                 .diskType("pd-ssd")
+ *                 .diskSizeGb("960")
+ *                 .mode("READ_WRITE")
+ *                 .build())
+ *             .guestAccelerators(RegionInstanceTemplateGuestAcceleratorArgs.builder()
+ *                 .type("nvidia-h100-80gb")
+ *                 .count(8)
+ *                 .build())
+ *             .reservationAffinity(RegionInstanceTemplateReservationAffinityArgs.builder()
+ *                 .type("NO_RESERVATION")
+ *                 .build())
+ *             .shieldedInstanceConfig(RegionInstanceTemplateShieldedInstanceConfigArgs.builder()
+ *                 .enableVtpm(true)
+ *                 .enableIntegrityMonitoring(true)
+ *                 .build())
+ *             .networkInterfaces(RegionInstanceTemplateNetworkInterfaceArgs.builder()
+ *                 .network("default")
+ *                 .build())
+ *             .build());
+ * 
+ *         var a3DwsRegionInstanceGroupManager = new RegionInstanceGroupManager("a3DwsRegionInstanceGroupManager", RegionInstanceGroupManagerArgs.builder()
+ *             .name("a3-dws")
+ *             .baseInstanceName("a3-dws")
+ *             .region("us-central1")
+ *             .versions(RegionInstanceGroupManagerVersionArgs.builder()
+ *                 .instanceTemplate(a3Dws.selfLink())
+ *                 .build())
+ *             .instanceLifecyclePolicy(RegionInstanceGroupManagerInstanceLifecyclePolicyArgs.builder()
+ *                 .defaultActionOnFailure("DO_NOTHING")
+ *                 .build())
+ *             .distributionPolicyTargetShape("ANY_SINGLE_ZONE")
+ *             .distributionPolicyZones(            
+ *                 "us-central1-a",
+ *                 "us-central1-b",
+ *                 "us-central1-c",
+ *                 "us-central1-f")
+ *             .updatePolicy(RegionInstanceGroupManagerUpdatePolicyArgs.builder()
+ *                 .instanceRedistributionType("NONE")
+ *                 .type("OPPORTUNISTIC")
+ *                 .minimalAction("REPLACE")
+ *                 .maxSurgeFixed(0)
+ *                 .maxUnavailableFixed(6)
+ *                 .build())
+ *             .waitForInstances(false)
+ *             .build());
+ * 
+ *         var a3ResizeRequest = new RegionResizeRequest("a3ResizeRequest", RegionResizeRequestArgs.builder()
+ *             .name("a3-dws")
+ *             .instanceGroupManager(a3DwsRegionInstanceGroupManager.name())
+ *             .region("us-central1")
+ *             .description("Test resize request resource")
+ *             .resizeBy(2)
+ *             .requestedRunDuration(RegionResizeRequestRequestedRunDurationArgs.builder()
+ *                 .seconds(14400)
+ *                 .nanos(0)
+ *                 .build())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * RegionResizeRequest can be imported using any of these accepted formats: + * + * * `projects/{{project}}/regions/{{region}}/instanceGroupManagers/{{instance_group_manager}}/resizeRequests/{{name}}` + * + * * `{{project}}/{{region}}/{{instance_group_manager}}/{{name}}` + * + * * `{{region}}/{{instance_group_manager}}/{{name}}` + * + * * `{{instance_group_manager}}/{{name}}` + * + * When using the `pulumi import` command, RegionResizeRequest can be imported using one of the formats above. For example: + * + * ```sh + * $ pulumi import gcp:compute/regionResizeRequest:RegionResizeRequest default projects/{{project}}/regions/{{region}}/instanceGroupManagers/{{instance_group_manager}}/resizeRequests/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:compute/regionResizeRequest:RegionResizeRequest default {{project}}/{{region}}/{{instance_group_manager}}/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:compute/regionResizeRequest:RegionResizeRequest default {{region}}/{{instance_group_manager}}/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:compute/regionResizeRequest:RegionResizeRequest default {{instance_group_manager}}/{{name}} + * ``` + * + */ +@ResourceType(type="gcp:compute/regionResizeRequest:RegionResizeRequest") +public class RegionResizeRequest extends com.pulumi.resources.CustomResource { + /** + * The creation timestamp for this resize request in RFC3339 text format. + * + */ + @Export(name="creationTimestamp", refs={String.class}, tree="[0]") + private Output creationTimestamp; + + /** + * @return The creation timestamp for this resize request in RFC3339 text format. + * + */ + public Output creationTimestamp() { + return this.creationTimestamp; + } + /** + * An optional description of this resize-request. + * + */ + @Export(name="description", refs={String.class}, tree="[0]") + private Output description; + + /** + * @return An optional description of this resize-request. + * + */ + public Output> description() { + return Codegen.optional(this.description); + } + /** + * The reference of the regional instance group manager this ResizeRequest is a part of. + * + * *** + * + */ + @Export(name="instanceGroupManager", refs={String.class}, tree="[0]") + private Output instanceGroupManager; + + /** + * @return The reference of the regional instance group manager this ResizeRequest is a part of. + * + * *** + * + */ + public Output instanceGroupManager() { + return this.instanceGroupManager; + } + /** + * The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + * + */ + public Output name() { + return this.name; + } + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + @Export(name="project", refs={String.class}, tree="[0]") + private Output project; + + /** + * @return The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + public Output project() { + return this.project; + } + /** + * The reference of the compute region scoping this request. + * + */ + @Export(name="region", refs={String.class}, tree="[0]") + private Output region; + + /** + * @return The reference of the compute region scoping this request. + * + */ + public Output region() { + return this.region; + } + /** + * Requested run duration for instances that will be created by this request. At the end of the run duration instances will be deleted. + * Structure is documented below. + * + */ + @Export(name="requestedRunDuration", refs={RegionResizeRequestRequestedRunDuration.class}, tree="[0]") + private Output requestedRunDuration; + + /** + * @return Requested run duration for instances that will be created by this request. At the end of the run duration instances will be deleted. + * Structure is documented below. + * + */ + public Output> requestedRunDuration() { + return Codegen.optional(this.requestedRunDuration); + } + /** + * The number of instances to be created by this resize request. The group's target size will be increased by this number. + * + */ + @Export(name="resizeBy", refs={Integer.class}, tree="[0]") + private Output resizeBy; + + /** + * @return The number of instances to be created by this resize request. The group's target size will be increased by this number. + * + */ + public Output resizeBy() { + return this.resizeBy; + } + /** + * Current state of the request. + * + */ + @Export(name="state", refs={String.class}, tree="[0]") + private Output state; + + /** + * @return Current state of the request. + * + */ + public Output state() { + return this.state; + } + /** + * Status of the request. + * Structure is documented below. + * + */ + @Export(name="statuses", refs={List.class,RegionResizeRequestStatus.class}, tree="[0,1]") + private Output> statuses; + + /** + * @return Status of the request. + * Structure is documented below. + * + */ + public Output> statuses() { + return this.statuses; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public RegionResizeRequest(java.lang.String name) { + this(name, RegionResizeRequestArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public RegionResizeRequest(java.lang.String name, RegionResizeRequestArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public RegionResizeRequest(java.lang.String name, RegionResizeRequestArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:compute/regionResizeRequest:RegionResizeRequest", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private RegionResizeRequest(java.lang.String name, Output id, @Nullable RegionResizeRequestState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:compute/regionResizeRequest:RegionResizeRequest", name, state, makeResourceOptions(options, id), false); + } + + private static RegionResizeRequestArgs makeArgs(RegionResizeRequestArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RegionResizeRequestArgs.Empty : args; + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static RegionResizeRequest get(java.lang.String name, Output id, @Nullable RegionResizeRequestState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new RegionResizeRequest(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionResizeRequestArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionResizeRequestArgs.java new file mode 100644 index 0000000000..aa2ec9c08f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionResizeRequestArgs.java @@ -0,0 +1,333 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.gcp.compute.inputs.RegionResizeRequestRequestedRunDurationArgs; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class RegionResizeRequestArgs extends com.pulumi.resources.ResourceArgs { + + public static final RegionResizeRequestArgs Empty = new RegionResizeRequestArgs(); + + /** + * An optional description of this resize-request. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return An optional description of this resize-request. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * The reference of the regional instance group manager this ResizeRequest is a part of. + * + * *** + * + */ + @Import(name="instanceGroupManager", required=true) + private Output instanceGroupManager; + + /** + * @return The reference of the regional instance group manager this ResizeRequest is a part of. + * + * *** + * + */ + public Output instanceGroupManager() { + return this.instanceGroupManager; + } + + /** + * The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + @Import(name="project") + private @Nullable Output project; + + /** + * @return The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + public Optional> project() { + return Optional.ofNullable(this.project); + } + + /** + * The reference of the compute region scoping this request. + * + */ + @Import(name="region", required=true) + private Output region; + + /** + * @return The reference of the compute region scoping this request. + * + */ + public Output region() { + return this.region; + } + + /** + * Requested run duration for instances that will be created by this request. At the end of the run duration instances will be deleted. + * Structure is documented below. + * + */ + @Import(name="requestedRunDuration") + private @Nullable Output requestedRunDuration; + + /** + * @return Requested run duration for instances that will be created by this request. At the end of the run duration instances will be deleted. + * Structure is documented below. + * + */ + public Optional> requestedRunDuration() { + return Optional.ofNullable(this.requestedRunDuration); + } + + /** + * The number of instances to be created by this resize request. The group's target size will be increased by this number. + * + */ + @Import(name="resizeBy", required=true) + private Output resizeBy; + + /** + * @return The number of instances to be created by this resize request. The group's target size will be increased by this number. + * + */ + public Output resizeBy() { + return this.resizeBy; + } + + private RegionResizeRequestArgs() {} + + private RegionResizeRequestArgs(RegionResizeRequestArgs $) { + this.description = $.description; + this.instanceGroupManager = $.instanceGroupManager; + this.name = $.name; + this.project = $.project; + this.region = $.region; + this.requestedRunDuration = $.requestedRunDuration; + this.resizeBy = $.resizeBy; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(RegionResizeRequestArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private RegionResizeRequestArgs $; + + public Builder() { + $ = new RegionResizeRequestArgs(); + } + + public Builder(RegionResizeRequestArgs defaults) { + $ = new RegionResizeRequestArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param description An optional description of this resize-request. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description An optional description of this resize-request. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param instanceGroupManager The reference of the regional instance group manager this ResizeRequest is a part of. + * + * *** + * + * @return builder + * + */ + public Builder instanceGroupManager(Output instanceGroupManager) { + $.instanceGroupManager = instanceGroupManager; + return this; + } + + /** + * @param instanceGroupManager The reference of the regional instance group manager this ResizeRequest is a part of. + * + * *** + * + * @return builder + * + */ + public Builder instanceGroupManager(String instanceGroupManager) { + return instanceGroupManager(Output.of(instanceGroupManager)); + } + + /** + * @param name The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + * @return builder + * + */ + public Builder project(@Nullable Output project) { + $.project = project; + return this; + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + * @return builder + * + */ + public Builder project(String project) { + return project(Output.of(project)); + } + + /** + * @param region The reference of the compute region scoping this request. + * + * @return builder + * + */ + public Builder region(Output region) { + $.region = region; + return this; + } + + /** + * @param region The reference of the compute region scoping this request. + * + * @return builder + * + */ + public Builder region(String region) { + return region(Output.of(region)); + } + + /** + * @param requestedRunDuration Requested run duration for instances that will be created by this request. At the end of the run duration instances will be deleted. + * Structure is documented below. + * + * @return builder + * + */ + public Builder requestedRunDuration(@Nullable Output requestedRunDuration) { + $.requestedRunDuration = requestedRunDuration; + return this; + } + + /** + * @param requestedRunDuration Requested run duration for instances that will be created by this request. At the end of the run duration instances will be deleted. + * Structure is documented below. + * + * @return builder + * + */ + public Builder requestedRunDuration(RegionResizeRequestRequestedRunDurationArgs requestedRunDuration) { + return requestedRunDuration(Output.of(requestedRunDuration)); + } + + /** + * @param resizeBy The number of instances to be created by this resize request. The group's target size will be increased by this number. + * + * @return builder + * + */ + public Builder resizeBy(Output resizeBy) { + $.resizeBy = resizeBy; + return this; + } + + /** + * @param resizeBy The number of instances to be created by this resize request. The group's target size will be increased by this number. + * + * @return builder + * + */ + public Builder resizeBy(Integer resizeBy) { + return resizeBy(Output.of(resizeBy)); + } + + public RegionResizeRequestArgs build() { + if ($.instanceGroupManager == null) { + throw new MissingRequiredPropertyException("RegionResizeRequestArgs", "instanceGroupManager"); + } + if ($.region == null) { + throw new MissingRequiredPropertyException("RegionResizeRequestArgs", "region"); + } + if ($.resizeBy == null) { + throw new MissingRequiredPropertyException("RegionResizeRequestArgs", "resizeBy"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionSecurityPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionSecurityPolicy.java index 119aaab20c..2bb128485e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionSecurityPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionSecurityPolicy.java @@ -11,6 +11,7 @@ import com.pulumi.gcp.compute.RegionSecurityPolicyArgs; import com.pulumi.gcp.compute.inputs.RegionSecurityPolicyState; import com.pulumi.gcp.compute.outputs.RegionSecurityPolicyDdosProtectionConfig; +import com.pulumi.gcp.compute.outputs.RegionSecurityPolicyRule; import com.pulumi.gcp.compute.outputs.RegionSecurityPolicyUserDefinedField; import java.lang.String; import java.util.List; @@ -148,6 +149,67 @@ * } * * <!--End PulumiCodeChooser --> + * ### Region Security Policy With Rules + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.gcp.compute.RegionSecurityPolicy;
+ * import com.pulumi.gcp.compute.RegionSecurityPolicyArgs;
+ * import com.pulumi.gcp.compute.inputs.RegionSecurityPolicyRuleArgs;
+ * import com.pulumi.gcp.compute.inputs.RegionSecurityPolicyRuleMatchArgs;
+ * import com.pulumi.gcp.compute.inputs.RegionSecurityPolicyRuleMatchExprArgs;
+ * import com.pulumi.gcp.compute.inputs.RegionSecurityPolicyRuleMatchConfigArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var region_sec_policy_with_rules = new RegionSecurityPolicy("region-sec-policy-with-rules", RegionSecurityPolicyArgs.builder()
+ *             .name("my-sec-policy-with-rules")
+ *             .description("basic region security policy with multiple rules")
+ *             .type("CLOUD_ARMOR")
+ *             .rules(            
+ *                 RegionSecurityPolicyRuleArgs.builder()
+ *                     .action("deny")
+ *                     .priority("1000")
+ *                     .match(RegionSecurityPolicyRuleMatchArgs.builder()
+ *                         .expr(RegionSecurityPolicyRuleMatchExprArgs.builder()
+ *                             .expression("request.path.matches(\"/login.html\") && token.recaptcha_session.score < 0.2")
+ *                             .build())
+ *                         .build())
+ *                     .build(),
+ *                 RegionSecurityPolicyRuleArgs.builder()
+ *                     .action("deny")
+ *                     .priority("2147483647")
+ *                     .match(RegionSecurityPolicyRuleMatchArgs.builder()
+ *                         .versionedExpr("SRC_IPS_V1")
+ *                         .config(RegionSecurityPolicyRuleMatchConfigArgs.builder()
+ *                             .srcIpRanges("*")
+ *                             .build())
+ *                         .build())
+ *                     .description("default rule")
+ *                     .build())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> * * ## Import * @@ -294,6 +356,22 @@ public Output project() { public Output region() { return this.region; } + /** + * The set of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added. + * Structure is documented below. + * + */ + @Export(name="rules", refs={List.class,RegionSecurityPolicyRule.class}, tree="[0,1]") + private Output> rules; + + /** + * @return The set of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added. + * Structure is documented below. + * + */ + public Output> rules() { + return this.rules; + } /** * Server-defined URL for the resource. * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionSecurityPolicyArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionSecurityPolicyArgs.java index b7cd544ec5..8e65878e18 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionSecurityPolicyArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionSecurityPolicyArgs.java @@ -6,6 +6,7 @@ import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import com.pulumi.gcp.compute.inputs.RegionSecurityPolicyDdosProtectionConfigArgs; +import com.pulumi.gcp.compute.inputs.RegionSecurityPolicyRuleArgs; import com.pulumi.gcp.compute.inputs.RegionSecurityPolicyUserDefinedFieldArgs; import java.lang.String; import java.util.List; @@ -105,6 +106,23 @@ public Optional> region() { return Optional.ofNullable(this.region); } + /** + * The set of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added. + * Structure is documented below. + * + */ + @Import(name="rules") + private @Nullable Output> rules; + + /** + * @return The set of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added. + * Structure is documented below. + * + */ + public Optional>> rules() { + return Optional.ofNullable(this.rules); + } + /** * The type indicates the intended use of the security policy. * - CLOUD_ARMOR: Cloud Armor backend security policies can be configured to filter incoming HTTP requests targeting backend services. They filter requests before they hit the origin servers. @@ -159,6 +177,7 @@ private RegionSecurityPolicyArgs(RegionSecurityPolicyArgs $) { this.name = $.name; this.project = $.project; this.region = $.region; + this.rules = $.rules; this.type = $.type; this.userDefinedFields = $.userDefinedFields; } @@ -298,6 +317,40 @@ public Builder region(String region) { return region(Output.of(region)); } + /** + * @param rules The set of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added. + * Structure is documented below. + * + * @return builder + * + */ + public Builder rules(@Nullable Output> rules) { + $.rules = rules; + return this; + } + + /** + * @param rules The set of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added. + * Structure is documented below. + * + * @return builder + * + */ + public Builder rules(List rules) { + return rules(Output.of(rules)); + } + + /** + * @param rules The set of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added. + * Structure is documented below. + * + * @return builder + * + */ + public Builder rules(RegionSecurityPolicyRuleArgs... rules) { + return rules(List.of(rules)); + } + /** * @param type The type indicates the intended use of the security policy. * - CLOUD_ARMOR: Cloud Armor backend security policies can be configured to filter incoming HTTP requests targeting backend services. They filter requests before they hit the origin servers. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RouterPeer.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RouterPeer.java index 8bffda7249..38ff1d6ff0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RouterPeer.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RouterPeer.java @@ -683,34 +683,40 @@ public Output bfd() { return this.bfd; } /** - * The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a - * subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + * The custom learned route IP address range. Must be a valid CIDR-formatted prefix. + * If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, + * a /32 singular IP address range, and, for IPv6, /128. + * Structure is documented below. * */ @Export(name="customLearnedIpRanges", refs={List.class,RouterPeerCustomLearnedIpRange.class}, tree="[0,1]") private Output> customLearnedIpRanges; /** - * @return The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a - * subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + * @return The custom learned route IP address range. Must be a valid CIDR-formatted prefix. + * If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, + * a /32 singular IP address range, and, for IPv6, /128. + * Structure is documented below. * */ public Output>> customLearnedIpRanges() { return Codegen.optional(this.customLearnedIpRanges); } /** - * The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route - * ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a - * priority of 100 to the ranges. + * The user-defined custom learned route priority for a BGP session. + * This value is applied to all custom learned route ranges for the session. + * You can choose a value from 0 to 65335. If you don't provide a value, + * Google Cloud assigns a priority of 100 to the ranges. * */ @Export(name="customLearnedRoutePriority", refs={Integer.class}, tree="[0]") private Output customLearnedRoutePriority; /** - * @return The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route - * ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a - * priority of 100 to the ranges. + * @return The user-defined custom learned route priority for a BGP session. + * This value is applied to all custom learned route ranges for the session. + * You can choose a value from 0 to 65335. If you don't provide a value, + * Google Cloud assigns a priority of 100 to the ranges. * */ public Output> customLearnedRoutePriority() { diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RouterPeerArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RouterPeerArgs.java index 624b83b423..d6e6682f8e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RouterPeerArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RouterPeerArgs.java @@ -139,16 +139,20 @@ public Optional> bfd() { } /** - * The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a - * subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + * The custom learned route IP address range. Must be a valid CIDR-formatted prefix. + * If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, + * a /32 singular IP address range, and, for IPv6, /128. + * Structure is documented below. * */ @Import(name="customLearnedIpRanges") private @Nullable Output> customLearnedIpRanges; /** - * @return The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a - * subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + * @return The custom learned route IP address range. Must be a valid CIDR-formatted prefix. + * If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, + * a /32 singular IP address range, and, for IPv6, /128. + * Structure is documented below. * */ public Optional>> customLearnedIpRanges() { @@ -156,18 +160,20 @@ public Optional>> customLearnedI } /** - * The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route - * ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a - * priority of 100 to the ranges. + * The user-defined custom learned route priority for a BGP session. + * This value is applied to all custom learned route ranges for the session. + * You can choose a value from 0 to 65335. If you don't provide a value, + * Google Cloud assigns a priority of 100 to the ranges. * */ @Import(name="customLearnedRoutePriority") private @Nullable Output customLearnedRoutePriority; /** - * @return The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route - * ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a - * priority of 100 to the ranges. + * @return The user-defined custom learned route priority for a BGP session. + * This value is applied to all custom learned route ranges for the session. + * You can choose a value from 0 to 65335. If you don't provide a value, + * Google Cloud assigns a priority of 100 to the ranges. * */ public Optional> customLearnedRoutePriority() { @@ -742,8 +748,10 @@ public Builder bfd(RouterPeerBfdArgs bfd) { } /** - * @param customLearnedIpRanges The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a - * subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + * @param customLearnedIpRanges The custom learned route IP address range. Must be a valid CIDR-formatted prefix. + * If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, + * a /32 singular IP address range, and, for IPv6, /128. + * Structure is documented below. * * @return builder * @@ -754,8 +762,10 @@ public Builder customLearnedIpRanges(@Nullable Output cu } /** - * @param customLearnedIpRanges The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a - * subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + * @param customLearnedIpRanges The custom learned route IP address range. Must be a valid CIDR-formatted prefix. + * If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, + * a /32 singular IP address range, and, for IPv6, /128. + * Structure is documented below. * * @return builder * @@ -776,9 +788,10 @@ public Builder customLearnedIpRanges(RouterPeerCustomLearnedIpRangeArgs... custo } /** - * @param customLearnedRoutePriority The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route - * ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a - * priority of 100 to the ranges. + * @param customLearnedRoutePriority The user-defined custom learned route priority for a BGP session. + * This value is applied to all custom learned route ranges for the session. + * You can choose a value from 0 to 65335. If you don't provide a value, + * Google Cloud assigns a priority of 100 to the ranges. * * @return builder * @@ -789,9 +802,10 @@ public Builder customLearnedRoutePriority(@Nullable Output customLearne } /** - * @param customLearnedRoutePriority The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route - * ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a - * priority of 100 to the ranges. + * @param customLearnedRoutePriority The user-defined custom learned route priority for a BGP session. + * This value is applied to all custom learned route ranges for the session. + * You can choose a value from 0 to 65335. If you don't provide a value, + * Google Cloud assigns a priority of 100 to the ranges. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/SecurityScanConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/SecurityScanConfig.java index d5fd11ba61..5649e36405 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/SecurityScanConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/SecurityScanConfig.java @@ -76,20 +76,20 @@ * * ScanConfig can be imported using any of these accepted formats: * - * * `projects/{{project}}/scanConfigs/{{name}}` - * * * `{{project}}/{{name}}` * + * * `{{project}} {{name}}` + * * * `{{name}}` * * When using the `pulumi import` command, ScanConfig can be imported using one of the formats above. For example: * * ```sh - * $ pulumi import gcp:compute/securityScanConfig:SecurityScanConfig default projects/{{project}}/scanConfigs/{{name}} + * $ pulumi import gcp:compute/securityScanConfig:SecurityScanConfig default {{project}}/{{name}} * ``` * * ```sh - * $ pulumi import gcp:compute/securityScanConfig:SecurityScanConfig default {{project}}/{{name}} + * $ pulumi import gcp:compute/securityScanConfig:SecurityScanConfig default "{{project}} {{name}}" * ``` * * ```sh diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/AutoscalerAutoscalingPolicyScaleDownControlArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/AutoscalerAutoscalingPolicyScaleDownControlArgs.java index 3c7cee2e20..751302e4ac 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/AutoscalerAutoscalingPolicyScaleDownControlArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/AutoscalerAutoscalingPolicyScaleDownControlArgs.java @@ -17,7 +17,7 @@ public final class AutoscalerAutoscalingPolicyScaleDownControlArgs extends com.p public static final AutoscalerAutoscalingPolicyScaleDownControlArgs Empty = new AutoscalerAutoscalingPolicyScaleDownControlArgs(); /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -25,7 +25,7 @@ public final class AutoscalerAutoscalingPolicyScaleDownControlArgs extends com.p private @Nullable Output maxScaledDownReplicas; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -76,7 +76,7 @@ public Builder(AutoscalerAutoscalingPolicyScaleDownControlArgs defaults) { } /** - * @param maxScaledDownReplicas A nested object resource + * @param maxScaledDownReplicas A nested object resource. * Structure is documented below. * * @return builder @@ -88,7 +88,7 @@ public Builder maxScaledDownReplicas(@Nullable Output maxScaledInReplicas; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -76,7 +76,7 @@ public Builder(AutoscalerAutoscalingPolicyScaleInControlArgs defaults) { } /** - * @param maxScaledInReplicas A nested object resource + * @param maxScaledInReplicas A nested object resource. * Structure is documented below. * * @return builder @@ -88,7 +88,7 @@ public Builder maxScaledInReplicas(@Nullable Output> accessMode() { } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -56,7 +56,7 @@ public Optional> accessMode() { private @Nullable Output asyncPrimaryDisk; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -875,7 +875,7 @@ public Builder accessMode(String accessMode) { } /** - * @param asyncPrimaryDisk A nested object resource + * @param asyncPrimaryDisk A nested object resource. * Structure is documented below. * * @return builder @@ -887,7 +887,7 @@ public Builder asyncPrimaryDisk(@Nullable Output async } /** - * @param asyncPrimaryDisk A nested object resource + * @param asyncPrimaryDisk A nested object resource. * Structure is documented below. * * @return builder diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/FirewallPolicyRuleMatchArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/FirewallPolicyRuleMatchArgs.java index aa309aa512..9e5715f7a8 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/FirewallPolicyRuleMatchArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/FirewallPolicyRuleMatchArgs.java @@ -19,14 +19,14 @@ public final class FirewallPolicyRuleMatchArgs extends com.pulumi.resources.Reso public static final FirewallPolicyRuleMatchArgs Empty = new FirewallPolicyRuleMatchArgs(); /** - * Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. Destination address groups is only supported in Egress rules. + * Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. * */ @Import(name="destAddressGroups") private @Nullable Output> destAddressGroups; /** - * @return Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. Destination address groups is only supported in Egress rules. + * @return Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. * */ public Optional>> destAddressGroups() { @@ -34,14 +34,14 @@ public Optional>> destAddressGroups() { } /** - * Domain names that will be used to match against the resolved domain name of destination of traffic. Can only be specified if DIRECTION is egress. + * Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100. * */ @Import(name="destFqdns") private @Nullable Output> destFqdns; /** - * @return Domain names that will be used to match against the resolved domain name of destination of traffic. Can only be specified if DIRECTION is egress. + * @return Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100. * */ public Optional>> destFqdns() { @@ -49,14 +49,14 @@ public Optional>> destFqdns() { } /** - * CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 256. + * CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000. * */ @Import(name="destIpRanges") private @Nullable Output> destIpRanges; /** - * @return CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 256. + * @return CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000. * */ public Optional>> destIpRanges() { @@ -64,14 +64,14 @@ public Optional>> destIpRanges() { } /** - * The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is egress. + * Region codes whose IP addresses will be used to match for destination of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of dest region codes allowed is 5000. * */ @Import(name="destRegionCodes") private @Nullable Output> destRegionCodes; /** - * @return The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is egress. + * @return Region codes whose IP addresses will be used to match for destination of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of dest region codes allowed is 5000. * */ public Optional>> destRegionCodes() { @@ -79,14 +79,14 @@ public Optional>> destRegionCodes() { } /** - * Name of the Google Cloud Threat Intelligence list. + * Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination. * */ @Import(name="destThreatIntelligences") private @Nullable Output> destThreatIntelligences; /** - * @return Name of the Google Cloud Threat Intelligence list. + * @return Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination. * */ public Optional>> destThreatIntelligences() { @@ -95,6 +95,7 @@ public Optional>> destThreatIntelligences() { /** * Pairs of IP protocols and ports that the rule should match. + * Structure is documented below. * */ @Import(name="layer4Configs", required=true) @@ -102,6 +103,7 @@ public Optional>> destThreatIntelligences() { /** * @return Pairs of IP protocols and ports that the rule should match. + * Structure is documented below. * */ public Output> layer4Configs() { @@ -109,14 +111,14 @@ public Output> layer4Configs() { } /** - * Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. Source address groups is only supported in Ingress rules. + * Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. * */ @Import(name="srcAddressGroups") private @Nullable Output> srcAddressGroups; /** - * @return Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. Source address groups is only supported in Ingress rules. + * @return Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. * */ public Optional>> srcAddressGroups() { @@ -124,14 +126,14 @@ public Optional>> srcAddressGroups() { } /** - * Domain names that will be used to match against the resolved domain name of source of traffic. Can only be specified if DIRECTION is ingress. + * Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100. * */ @Import(name="srcFqdns") private @Nullable Output> srcFqdns; /** - * @return Domain names that will be used to match against the resolved domain name of source of traffic. Can only be specified if DIRECTION is ingress. + * @return Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100. * */ public Optional>> srcFqdns() { @@ -139,14 +141,14 @@ public Optional>> srcFqdns() { } /** - * CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 256. + * CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000. * */ @Import(name="srcIpRanges") private @Nullable Output> srcIpRanges; /** - * @return CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 256. + * @return CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000. * */ public Optional>> srcIpRanges() { @@ -154,14 +156,14 @@ public Optional>> srcIpRanges() { } /** - * The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is ingress. + * Region codes whose IP addresses will be used to match for source of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of source region codes allowed is 5000. * */ @Import(name="srcRegionCodes") private @Nullable Output> srcRegionCodes; /** - * @return The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is ingress. + * @return Region codes whose IP addresses will be used to match for source of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of source region codes allowed is 5000. * */ public Optional>> srcRegionCodes() { @@ -169,18 +171,18 @@ public Optional>> srcRegionCodes() { } /** - * Name of the Google Cloud Threat Intelligence list. + * Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source. * - * The `layer4_configs` block supports: + * <a name="nested_layer4_configs"></a>The `layer4_configs` block supports: * */ @Import(name="srcThreatIntelligences") private @Nullable Output> srcThreatIntelligences; /** - * @return Name of the Google Cloud Threat Intelligence list. + * @return Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source. * - * The `layer4_configs` block supports: + * <a name="nested_layer4_configs"></a>The `layer4_configs` block supports: * */ public Optional>> srcThreatIntelligences() { @@ -222,7 +224,7 @@ public Builder(FirewallPolicyRuleMatchArgs defaults) { } /** - * @param destAddressGroups Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. Destination address groups is only supported in Egress rules. + * @param destAddressGroups Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. * * @return builder * @@ -233,7 +235,7 @@ public Builder destAddressGroups(@Nullable Output> destAddressGroup } /** - * @param destAddressGroups Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. Destination address groups is only supported in Egress rules. + * @param destAddressGroups Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. * * @return builder * @@ -243,7 +245,7 @@ public Builder destAddressGroups(List destAddressGroups) { } /** - * @param destAddressGroups Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. Destination address groups is only supported in Egress rules. + * @param destAddressGroups Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. * * @return builder * @@ -253,7 +255,7 @@ public Builder destAddressGroups(String... destAddressGroups) { } /** - * @param destFqdns Domain names that will be used to match against the resolved domain name of destination of traffic. Can only be specified if DIRECTION is egress. + * @param destFqdns Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100. * * @return builder * @@ -264,7 +266,7 @@ public Builder destFqdns(@Nullable Output> destFqdns) { } /** - * @param destFqdns Domain names that will be used to match against the resolved domain name of destination of traffic. Can only be specified if DIRECTION is egress. + * @param destFqdns Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100. * * @return builder * @@ -274,7 +276,7 @@ public Builder destFqdns(List destFqdns) { } /** - * @param destFqdns Domain names that will be used to match against the resolved domain name of destination of traffic. Can only be specified if DIRECTION is egress. + * @param destFqdns Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100. * * @return builder * @@ -284,7 +286,7 @@ public Builder destFqdns(String... destFqdns) { } /** - * @param destIpRanges CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 256. + * @param destIpRanges CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000. * * @return builder * @@ -295,7 +297,7 @@ public Builder destIpRanges(@Nullable Output> destIpRanges) { } /** - * @param destIpRanges CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 256. + * @param destIpRanges CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000. * * @return builder * @@ -305,7 +307,7 @@ public Builder destIpRanges(List destIpRanges) { } /** - * @param destIpRanges CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 256. + * @param destIpRanges CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000. * * @return builder * @@ -315,7 +317,7 @@ public Builder destIpRanges(String... destIpRanges) { } /** - * @param destRegionCodes The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is egress. + * @param destRegionCodes Region codes whose IP addresses will be used to match for destination of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of dest region codes allowed is 5000. * * @return builder * @@ -326,7 +328,7 @@ public Builder destRegionCodes(@Nullable Output> destRegionCodes) { } /** - * @param destRegionCodes The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is egress. + * @param destRegionCodes Region codes whose IP addresses will be used to match for destination of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of dest region codes allowed is 5000. * * @return builder * @@ -336,7 +338,7 @@ public Builder destRegionCodes(List destRegionCodes) { } /** - * @param destRegionCodes The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is egress. + * @param destRegionCodes Region codes whose IP addresses will be used to match for destination of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of dest region codes allowed is 5000. * * @return builder * @@ -346,7 +348,7 @@ public Builder destRegionCodes(String... destRegionCodes) { } /** - * @param destThreatIntelligences Name of the Google Cloud Threat Intelligence list. + * @param destThreatIntelligences Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination. * * @return builder * @@ -357,7 +359,7 @@ public Builder destThreatIntelligences(@Nullable Output> destThreat } /** - * @param destThreatIntelligences Name of the Google Cloud Threat Intelligence list. + * @param destThreatIntelligences Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination. * * @return builder * @@ -367,7 +369,7 @@ public Builder destThreatIntelligences(List destThreatIntelligences) { } /** - * @param destThreatIntelligences Name of the Google Cloud Threat Intelligence list. + * @param destThreatIntelligences Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination. * * @return builder * @@ -378,6 +380,7 @@ public Builder destThreatIntelligences(String... destThreatIntelligences) { /** * @param layer4Configs Pairs of IP protocols and ports that the rule should match. + * Structure is documented below. * * @return builder * @@ -389,6 +392,7 @@ public Builder layer4Configs(Output layer /** * @param layer4Configs Pairs of IP protocols and ports that the rule should match. + * Structure is documented below. * * @return builder * @@ -408,7 +413,7 @@ public Builder layer4Configs(FirewallPolicyRuleMatchLayer4ConfigArgs... layer4Co } /** - * @param srcAddressGroups Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. Source address groups is only supported in Ingress rules. + * @param srcAddressGroups Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. * * @return builder * @@ -419,7 +424,7 @@ public Builder srcAddressGroups(@Nullable Output> srcAddressGroups) } /** - * @param srcAddressGroups Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. Source address groups is only supported in Ingress rules. + * @param srcAddressGroups Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. * * @return builder * @@ -429,7 +434,7 @@ public Builder srcAddressGroups(List srcAddressGroups) { } /** - * @param srcAddressGroups Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. Source address groups is only supported in Ingress rules. + * @param srcAddressGroups Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. * * @return builder * @@ -439,7 +444,7 @@ public Builder srcAddressGroups(String... srcAddressGroups) { } /** - * @param srcFqdns Domain names that will be used to match against the resolved domain name of source of traffic. Can only be specified if DIRECTION is ingress. + * @param srcFqdns Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100. * * @return builder * @@ -450,7 +455,7 @@ public Builder srcFqdns(@Nullable Output> srcFqdns) { } /** - * @param srcFqdns Domain names that will be used to match against the resolved domain name of source of traffic. Can only be specified if DIRECTION is ingress. + * @param srcFqdns Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100. * * @return builder * @@ -460,7 +465,7 @@ public Builder srcFqdns(List srcFqdns) { } /** - * @param srcFqdns Domain names that will be used to match against the resolved domain name of source of traffic. Can only be specified if DIRECTION is ingress. + * @param srcFqdns Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100. * * @return builder * @@ -470,7 +475,7 @@ public Builder srcFqdns(String... srcFqdns) { } /** - * @param srcIpRanges CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 256. + * @param srcIpRanges CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000. * * @return builder * @@ -481,7 +486,7 @@ public Builder srcIpRanges(@Nullable Output> srcIpRanges) { } /** - * @param srcIpRanges CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 256. + * @param srcIpRanges CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000. * * @return builder * @@ -491,7 +496,7 @@ public Builder srcIpRanges(List srcIpRanges) { } /** - * @param srcIpRanges CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 256. + * @param srcIpRanges CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000. * * @return builder * @@ -501,7 +506,7 @@ public Builder srcIpRanges(String... srcIpRanges) { } /** - * @param srcRegionCodes The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is ingress. + * @param srcRegionCodes Region codes whose IP addresses will be used to match for source of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of source region codes allowed is 5000. * * @return builder * @@ -512,7 +517,7 @@ public Builder srcRegionCodes(@Nullable Output> srcRegionCodes) { } /** - * @param srcRegionCodes The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is ingress. + * @param srcRegionCodes Region codes whose IP addresses will be used to match for source of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of source region codes allowed is 5000. * * @return builder * @@ -522,7 +527,7 @@ public Builder srcRegionCodes(List srcRegionCodes) { } /** - * @param srcRegionCodes The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is ingress. + * @param srcRegionCodes Region codes whose IP addresses will be used to match for source of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of source region codes allowed is 5000. * * @return builder * @@ -532,9 +537,9 @@ public Builder srcRegionCodes(String... srcRegionCodes) { } /** - * @param srcThreatIntelligences Name of the Google Cloud Threat Intelligence list. + * @param srcThreatIntelligences Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source. * - * The `layer4_configs` block supports: + * <a name="nested_layer4_configs"></a>The `layer4_configs` block supports: * * @return builder * @@ -545,9 +550,9 @@ public Builder srcThreatIntelligences(@Nullable Output> srcThreatIn } /** - * @param srcThreatIntelligences Name of the Google Cloud Threat Intelligence list. + * @param srcThreatIntelligences Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source. * - * The `layer4_configs` block supports: + * <a name="nested_layer4_configs"></a>The `layer4_configs` block supports: * * @return builder * @@ -557,9 +562,9 @@ public Builder srcThreatIntelligences(List srcThreatIntelligences) { } /** - * @param srcThreatIntelligences Name of the Google Cloud Threat Intelligence list. + * @param srcThreatIntelligences Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source. * - * The `layer4_configs` block supports: + * <a name="nested_layer4_configs"></a>The `layer4_configs` block supports: * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/FirewallPolicyRuleMatchLayer4ConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/FirewallPolicyRuleMatchLayer4ConfigArgs.java index a7d37fb103..31ebf76b11 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/FirewallPolicyRuleMatchLayer4ConfigArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/FirewallPolicyRuleMatchLayer4ConfigArgs.java @@ -18,14 +18,16 @@ public final class FirewallPolicyRuleMatchLayer4ConfigArgs extends com.pulumi.re public static final FirewallPolicyRuleMatchLayer4ConfigArgs Empty = new FirewallPolicyRuleMatchLayer4ConfigArgs(); /** - * The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (`tcp`, `udp`, `icmp`, `esp`, `ah`, `ipip`, `sctp`), or the IP protocol number. + * The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. + * This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number. * */ @Import(name="ipProtocol", required=true) private Output ipProtocol; /** - * @return The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (`tcp`, `udp`, `icmp`, `esp`, `ah`, `ipip`, `sctp`), or the IP protocol number. + * @return The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. + * This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number. * */ public Output ipProtocol() { @@ -33,14 +35,16 @@ public Output ipProtocol() { } /** - * An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ``. + * An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. + * Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. * */ @Import(name="ports") private @Nullable Output> ports; /** - * @return An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ``. + * @return An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. + * Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. * */ public Optional>> ports() { @@ -73,7 +77,8 @@ public Builder(FirewallPolicyRuleMatchLayer4ConfigArgs defaults) { } /** - * @param ipProtocol The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (`tcp`, `udp`, `icmp`, `esp`, `ah`, `ipip`, `sctp`), or the IP protocol number. + * @param ipProtocol The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. + * This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number. * * @return builder * @@ -84,7 +89,8 @@ public Builder ipProtocol(Output ipProtocol) { } /** - * @param ipProtocol The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (`tcp`, `udp`, `icmp`, `esp`, `ah`, `ipip`, `sctp`), or the IP protocol number. + * @param ipProtocol The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. + * This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number. * * @return builder * @@ -94,7 +100,8 @@ public Builder ipProtocol(String ipProtocol) { } /** - * @param ports An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ``. + * @param ports An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. + * Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. * * @return builder * @@ -105,7 +112,8 @@ public Builder ports(@Nullable Output> ports) { } /** - * @param ports An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ``. + * @param ports An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. + * Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. * * @return builder * @@ -115,7 +123,8 @@ public Builder ports(List ports) { } /** - * @param ports An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ``. + * @param ports An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. + * Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/FirewallPolicyRuleState.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/FirewallPolicyRuleState.java index b58db7f9d6..c15f830167 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/FirewallPolicyRuleState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/FirewallPolicyRuleState.java @@ -34,6 +34,21 @@ public Optional> action() { return Optional.ofNullable(this.action); } + /** + * Creation timestamp in RFC3339 text format. + * + */ + @Import(name="creationTimestamp") + private @Nullable Output creationTimestamp; + + /** + * @return Creation timestamp in RFC3339 text format. + * + */ + public Optional> creationTimestamp() { + return Optional.ofNullable(this.creationTimestamp); + } + /** * An optional description for this resource. * @@ -50,14 +65,16 @@ public Optional> description() { } /** - * The direction in which this rule applies. Possible values: INGRESS, EGRESS + * The direction in which this rule applies. + * Possible values are: `INGRESS`, `EGRESS`. * */ @Import(name="direction") private @Nullable Output direction; /** - * @return The direction in which this rule applies. Possible values: INGRESS, EGRESS + * @return The direction in which this rule applies. + * Possible values are: `INGRESS`, `EGRESS`. * */ public Optional> direction() { @@ -132,6 +149,7 @@ public Optional> kind() { /** * A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. + * Structure is documented below. * */ @Import(name="match") @@ -139,6 +157,7 @@ public Optional> kind() { /** * @return A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. + * Structure is documented below. * */ public Optional> match() { @@ -146,14 +165,18 @@ public Optional> match() { } /** - * An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. + * An integer indicating the priority of a rule in the list. + * The priority must be a positive value between 0 and 2147483647. + * Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. * */ @Import(name="priority") private @Nullable Output priority; /** - * @return An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. + * @return An integer indicating the priority of a rule in the list. + * The priority must be a positive value between 0 and 2147483647. + * Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. * */ public Optional> priority() { @@ -176,18 +199,18 @@ public Optional> ruleTupleCount() { } /** - * A fully-qualified URL of a SecurityProfileGroup resource. Example: - * https://networksecurity.googleapis.com/v1/organizations/{organizationId}/locations/global/securityProfileGroups/my-security-profile-group. - * It must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. + * A fully-qualified URL of a SecurityProfile resource instance. Example: + * https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group + * Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. * */ @Import(name="securityProfileGroup") private @Nullable Output securityProfileGroup; /** - * @return A fully-qualified URL of a SecurityProfileGroup resource. Example: - * https://networksecurity.googleapis.com/v1/organizations/{organizationId}/locations/global/securityProfileGroups/my-security-profile-group. - * It must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. + * @return A fully-qualified URL of a SecurityProfile resource instance. Example: + * https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group + * Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. * */ public Optional> securityProfileGroup() { @@ -227,7 +250,7 @@ public Optional>> targetServiceAccounts() { } /** - * Boolean flag indicating if the traffic should be TLS decrypted. It can be set only if action = + * Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = * 'apply_security_profile_group' and cannot be set for other actions. * */ @@ -235,7 +258,7 @@ public Optional>> targetServiceAccounts() { private @Nullable Output tlsInspect; /** - * @return Boolean flag indicating if the traffic should be TLS decrypted. It can be set only if action = + * @return Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = * 'apply_security_profile_group' and cannot be set for other actions. * */ @@ -247,6 +270,7 @@ private FirewallPolicyRuleState() {} private FirewallPolicyRuleState(FirewallPolicyRuleState $) { this.action = $.action; + this.creationTimestamp = $.creationTimestamp; this.description = $.description; this.direction = $.direction; this.disabled = $.disabled; @@ -301,6 +325,27 @@ public Builder action(String action) { return action(Output.of(action)); } + /** + * @param creationTimestamp Creation timestamp in RFC3339 text format. + * + * @return builder + * + */ + public Builder creationTimestamp(@Nullable Output creationTimestamp) { + $.creationTimestamp = creationTimestamp; + return this; + } + + /** + * @param creationTimestamp Creation timestamp in RFC3339 text format. + * + * @return builder + * + */ + public Builder creationTimestamp(String creationTimestamp) { + return creationTimestamp(Output.of(creationTimestamp)); + } + /** * @param description An optional description for this resource. * @@ -323,7 +368,8 @@ public Builder description(String description) { } /** - * @param direction The direction in which this rule applies. Possible values: INGRESS, EGRESS + * @param direction The direction in which this rule applies. + * Possible values are: `INGRESS`, `EGRESS`. * * @return builder * @@ -334,7 +380,8 @@ public Builder direction(@Nullable Output direction) { } /** - * @param direction The direction in which this rule applies. Possible values: INGRESS, EGRESS + * @param direction The direction in which this rule applies. + * Possible values are: `INGRESS`, `EGRESS`. * * @return builder * @@ -435,6 +482,7 @@ public Builder kind(String kind) { /** * @param match A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. + * Structure is documented below. * * @return builder * @@ -446,6 +494,7 @@ public Builder match(@Nullable Output match) { /** * @param match A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. + * Structure is documented below. * * @return builder * @@ -455,7 +504,9 @@ public Builder match(FirewallPolicyRuleMatchArgs match) { } /** - * @param priority An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. + * @param priority An integer indicating the priority of a rule in the list. + * The priority must be a positive value between 0 and 2147483647. + * Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. * * @return builder * @@ -466,7 +517,9 @@ public Builder priority(@Nullable Output priority) { } /** - * @param priority An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. + * @param priority An integer indicating the priority of a rule in the list. + * The priority must be a positive value between 0 and 2147483647. + * Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. * * @return builder * @@ -497,9 +550,9 @@ public Builder ruleTupleCount(Integer ruleTupleCount) { } /** - * @param securityProfileGroup A fully-qualified URL of a SecurityProfileGroup resource. Example: - * https://networksecurity.googleapis.com/v1/organizations/{organizationId}/locations/global/securityProfileGroups/my-security-profile-group. - * It must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. + * @param securityProfileGroup A fully-qualified URL of a SecurityProfile resource instance. Example: + * https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group + * Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. * * @return builder * @@ -510,9 +563,9 @@ public Builder securityProfileGroup(@Nullable Output securityProfileGrou } /** - * @param securityProfileGroup A fully-qualified URL of a SecurityProfileGroup resource. Example: - * https://networksecurity.googleapis.com/v1/organizations/{organizationId}/locations/global/securityProfileGroups/my-security-profile-group. - * It must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. + * @param securityProfileGroup A fully-qualified URL of a SecurityProfile resource instance. Example: + * https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group + * Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. * * @return builder * @@ -587,7 +640,7 @@ public Builder targetServiceAccounts(String... targetServiceAccounts) { } /** - * @param tlsInspect Boolean flag indicating if the traffic should be TLS decrypted. It can be set only if action = + * @param tlsInspect Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = * 'apply_security_profile_group' and cannot be set for other actions. * * @return builder @@ -599,7 +652,7 @@ public Builder tlsInspect(@Nullable Output tlsInspect) { } /** - * @param tlsInspect Boolean flag indicating if the traffic should be TLS decrypted. It can be set only if action = + * @param tlsInspect Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = * 'apply_security_profile_group' and cannot be set for other actions. * * @return builder diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/HealthCheckState.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/HealthCheckState.java index 41539aa578..38e1f6d37d 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/HealthCheckState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/HealthCheckState.java @@ -74,7 +74,7 @@ public Optional> description() { } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -82,7 +82,7 @@ public Optional> description() { private @Nullable Output grpcHealthCheck; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -108,7 +108,7 @@ public Optional> healthyThreshold() { } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -116,7 +116,7 @@ public Optional> healthyThreshold() { private @Nullable Output http2HealthCheck; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -125,7 +125,7 @@ public Optional> http2HealthCheck() { } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -133,7 +133,7 @@ public Optional> http2HealthCheck() { private @Nullable Output httpHealthCheck; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -142,7 +142,7 @@ public Optional> httpHealthCheck() { } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -150,7 +150,7 @@ public Optional> httpHealthCheck() { private @Nullable Output httpsHealthCheck; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -276,7 +276,7 @@ public Optional>> sourceRegions() { } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -284,7 +284,7 @@ public Optional>> sourceRegions() { private @Nullable Output sslHealthCheck; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -293,7 +293,7 @@ public Optional> sslHealthCheck() { } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -301,7 +301,7 @@ public Optional> sslHealthCheck() { private @Nullable Output tcpHealthCheck; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -469,7 +469,7 @@ public Builder description(String description) { } /** - * @param grpcHealthCheck A nested object resource + * @param grpcHealthCheck A nested object resource. * Structure is documented below. * * @return builder @@ -481,7 +481,7 @@ public Builder grpcHealthCheck(@Nullable Output } /** - * @param grpcHealthCheck A nested object resource + * @param grpcHealthCheck A nested object resource. * Structure is documented below. * * @return builder @@ -515,7 +515,7 @@ public Builder healthyThreshold(Integer healthyThreshold) { } /** - * @param http2HealthCheck A nested object resource + * @param http2HealthCheck A nested object resource. * Structure is documented below. * * @return builder @@ -527,7 +527,7 @@ public Builder http2HealthCheck(@Nullable Output } /** - * @param httpHealthCheck A nested object resource + * @param httpHealthCheck A nested object resource. * Structure is documented below. * * @return builder @@ -561,7 +561,7 @@ public Builder httpHealthCheck(HealthCheckHttpHealthCheckArgs httpHealthCheck) { } /** - * @param httpsHealthCheck A nested object resource + * @param httpsHealthCheck A nested object resource. * Structure is documented below. * * @return builder @@ -573,7 +573,7 @@ public Builder httpsHealthCheck(@Nullable Output ss } /** - * @param sslHealthCheck A nested object resource + * @param sslHealthCheck A nested object resource. * Structure is documented below. * * @return builder @@ -775,7 +775,7 @@ public Builder sslHealthCheck(HealthCheckSslHealthCheckArgs sslHealthCheck) { } /** - * @param tcpHealthCheck A nested object resource + * @param tcpHealthCheck A nested object resource. * Structure is documented below. * * @return builder @@ -787,7 +787,7 @@ public Builder tcpHealthCheck(@Nullable Output tc } /** - * @param tcpHealthCheck A nested object resource + * @param tcpHealthCheck A nested object resource. * Structure is documented below. * * @return builder diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/NodeTemplateDiskArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/NodeTemplateDiskArgs.java new file mode 100644 index 0000000000..82f8b90d2b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/NodeTemplateDiskArgs.java @@ -0,0 +1,158 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class NodeTemplateDiskArgs extends com.pulumi.resources.ResourceArgs { + + public static final NodeTemplateDiskArgs Empty = new NodeTemplateDiskArgs(); + + /** + * Specifies the number of such disks. + * + */ + @Import(name="diskCount") + private @Nullable Output diskCount; + + /** + * @return Specifies the number of such disks. + * + */ + public Optional> diskCount() { + return Optional.ofNullable(this.diskCount); + } + + /** + * Specifies the size of the disk in base-2 GB. + * + */ + @Import(name="diskSizeGb") + private @Nullable Output diskSizeGb; + + /** + * @return Specifies the size of the disk in base-2 GB. + * + */ + public Optional> diskSizeGb() { + return Optional.ofNullable(this.diskSizeGb); + } + + /** + * Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be the name of the disk type and not its URL. + * + */ + @Import(name="diskType") + private @Nullable Output diskType; + + /** + * @return Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be the name of the disk type and not its URL. + * + */ + public Optional> diskType() { + return Optional.ofNullable(this.diskType); + } + + private NodeTemplateDiskArgs() {} + + private NodeTemplateDiskArgs(NodeTemplateDiskArgs $) { + this.diskCount = $.diskCount; + this.diskSizeGb = $.diskSizeGb; + this.diskType = $.diskType; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(NodeTemplateDiskArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private NodeTemplateDiskArgs $; + + public Builder() { + $ = new NodeTemplateDiskArgs(); + } + + public Builder(NodeTemplateDiskArgs defaults) { + $ = new NodeTemplateDiskArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param diskCount Specifies the number of such disks. + * + * @return builder + * + */ + public Builder diskCount(@Nullable Output diskCount) { + $.diskCount = diskCount; + return this; + } + + /** + * @param diskCount Specifies the number of such disks. + * + * @return builder + * + */ + public Builder diskCount(Integer diskCount) { + return diskCount(Output.of(diskCount)); + } + + /** + * @param diskSizeGb Specifies the size of the disk in base-2 GB. + * + * @return builder + * + */ + public Builder diskSizeGb(@Nullable Output diskSizeGb) { + $.diskSizeGb = diskSizeGb; + return this; + } + + /** + * @param diskSizeGb Specifies the size of the disk in base-2 GB. + * + * @return builder + * + */ + public Builder diskSizeGb(Integer diskSizeGb) { + return diskSizeGb(Output.of(diskSizeGb)); + } + + /** + * @param diskType Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be the name of the disk type and not its URL. + * + * @return builder + * + */ + public Builder diskType(@Nullable Output diskType) { + $.diskType = diskType; + return this; + } + + /** + * @param diskType Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be the name of the disk type and not its URL. + * + * @return builder + * + */ + public Builder diskType(String diskType) { + return diskType(Output.of(diskType)); + } + + public NodeTemplateDiskArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/NodeTemplateState.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/NodeTemplateState.java index 5991bea65b..15406faf58 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/NodeTemplateState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/NodeTemplateState.java @@ -6,6 +6,7 @@ import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import com.pulumi.gcp.compute.inputs.NodeTemplateAcceleratorArgs; +import com.pulumi.gcp.compute.inputs.NodeTemplateDiskArgs; import com.pulumi.gcp.compute.inputs.NodeTemplateNodeTypeFlexibilityArgs; import com.pulumi.gcp.compute.inputs.NodeTemplateServerBindingArgs; import java.lang.String; @@ -88,6 +89,25 @@ public Optional> description() { return Optional.ofNullable(this.description); } + /** + * List of the type, size and count of disks attached to the + * node template + * Structure is documented below. + * + */ + @Import(name="disks") + private @Nullable Output> disks; + + /** + * @return List of the type, size and count of disks attached to the + * node template + * Structure is documented below. + * + */ + public Optional>> disks() { + return Optional.ofNullable(this.disks); + } + /** * Name of the resource. * @@ -235,6 +255,7 @@ private NodeTemplateState(NodeTemplateState $) { this.cpuOvercommitType = $.cpuOvercommitType; this.creationTimestamp = $.creationTimestamp; this.description = $.description; + this.disks = $.disks; this.name = $.name; this.nodeAffinityLabels = $.nodeAffinityLabels; this.nodeType = $.nodeType; @@ -367,6 +388,43 @@ public Builder description(String description) { return description(Output.of(description)); } + /** + * @param disks List of the type, size and count of disks attached to the + * node template + * Structure is documented below. + * + * @return builder + * + */ + public Builder disks(@Nullable Output> disks) { + $.disks = disks; + return this; + } + + /** + * @param disks List of the type, size and count of disks attached to the + * node template + * Structure is documented below. + * + * @return builder + * + */ + public Builder disks(List disks) { + return disks(Output.of(disks)); + } + + /** + * @param disks List of the type, size and count of disks attached to the + * node template + * Structure is documented below. + * + * @return builder + * + */ + public Builder disks(NodeTemplateDiskArgs... disks) { + return disks(List.of(disks)); + } + /** * @param name Name of the resource. * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionAutoscalerAutoscalingPolicyScaleDownControlArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionAutoscalerAutoscalingPolicyScaleDownControlArgs.java index f27b49667d..89033d2fee 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionAutoscalerAutoscalingPolicyScaleDownControlArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionAutoscalerAutoscalingPolicyScaleDownControlArgs.java @@ -17,7 +17,7 @@ public final class RegionAutoscalerAutoscalingPolicyScaleDownControlArgs extends public static final RegionAutoscalerAutoscalingPolicyScaleDownControlArgs Empty = new RegionAutoscalerAutoscalingPolicyScaleDownControlArgs(); /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -25,7 +25,7 @@ public final class RegionAutoscalerAutoscalingPolicyScaleDownControlArgs extends private @Nullable Output maxScaledDownReplicas; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -76,7 +76,7 @@ public Builder(RegionAutoscalerAutoscalingPolicyScaleDownControlArgs defaults) { } /** - * @param maxScaledDownReplicas A nested object resource + * @param maxScaledDownReplicas A nested object resource. * Structure is documented below. * * @return builder @@ -88,7 +88,7 @@ public Builder maxScaledDownReplicas(@Nullable Output maxScaledInReplicas; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -76,7 +76,7 @@ public Builder(RegionAutoscalerAutoscalingPolicyScaleInControlArgs defaults) { } /** - * @param maxScaledInReplicas A nested object resource + * @param maxScaledInReplicas A nested object resource. * Structure is documented below. * * @return builder @@ -88,7 +88,7 @@ public Builder maxScaledInReplicas(@Nullable Output asyncPrimaryDisk; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -612,7 +612,7 @@ public Builder(RegionDiskState defaults) { } /** - * @param asyncPrimaryDisk A nested object resource + * @param asyncPrimaryDisk A nested object resource. * Structure is documented below. * * @return builder @@ -624,7 +624,7 @@ public Builder asyncPrimaryDisk(@Nullable Output } /** - * @param asyncPrimaryDisk A nested object resource + * @param asyncPrimaryDisk A nested object resource. * Structure is documented below. * * @return builder diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionHealthCheckState.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionHealthCheckState.java index 9cfada6bcc..daba1b0b2b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionHealthCheckState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionHealthCheckState.java @@ -73,7 +73,7 @@ public Optional> description() { } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -81,7 +81,7 @@ public Optional> description() { private @Nullable Output grpcHealthCheck; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -107,7 +107,7 @@ public Optional> healthyThreshold() { } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -115,7 +115,7 @@ public Optional> healthyThreshold() { private @Nullable Output http2HealthCheck; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -124,7 +124,7 @@ public Optional> http2HealthCheck( } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -132,7 +132,7 @@ public Optional> http2HealthCheck( private @Nullable Output httpHealthCheck; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -141,7 +141,7 @@ public Optional> httpHealthCheck() } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -149,7 +149,7 @@ public Optional> httpHealthCheck() private @Nullable Output httpsHealthCheck; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -255,7 +255,7 @@ public Optional> selfLink() { } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -263,7 +263,7 @@ public Optional> selfLink() { private @Nullable Output sslHealthCheck; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -272,7 +272,7 @@ public Optional> sslHealthCheck() { } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -280,7 +280,7 @@ public Optional> sslHealthCheck() { private @Nullable Output tcpHealthCheck; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -448,7 +448,7 @@ public Builder description(String description) { } /** - * @param grpcHealthCheck A nested object resource + * @param grpcHealthCheck A nested object resource. * Structure is documented below. * * @return builder @@ -460,7 +460,7 @@ public Builder grpcHealthCheck(@Nullable Output> labels; /** - * @return , The label key-value pairs that you want to patch onto the instance. - * - * *** + * @return The label key-value pairs that you want to patch onto the instance, * */ public Optional>> labels() { @@ -36,14 +32,14 @@ public Optional>> labels() { } /** - * , The metadata key-value pairs that you want to patch onto the instance. For more information, see [Project and instance metadata](https://cloud.google.com/compute/docs/metadata#project_and_instance_metadata). + * The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata, * */ @Import(name="metadata") private @Nullable Output> metadata; /** - * @return , The metadata key-value pairs that you want to patch onto the instance. For more information, see [Project and instance metadata](https://cloud.google.com/compute/docs/metadata#project_and_instance_metadata). + * @return The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata, * */ public Optional>> metadata() { @@ -76,9 +72,7 @@ public Builder(RegionInstanceGroupManagerAllInstancesConfigArgs defaults) { } /** - * @param labels , The label key-value pairs that you want to patch onto the instance. - * - * *** + * @param labels The label key-value pairs that you want to patch onto the instance, * * @return builder * @@ -89,9 +83,7 @@ public Builder labels(@Nullable Output> labels) { } /** - * @param labels , The label key-value pairs that you want to patch onto the instance. - * - * *** + * @param labels The label key-value pairs that you want to patch onto the instance, * * @return builder * @@ -101,7 +93,7 @@ public Builder labels(Map labels) { } /** - * @param metadata , The metadata key-value pairs that you want to patch onto the instance. For more information, see [Project and instance metadata](https://cloud.google.com/compute/docs/metadata#project_and_instance_metadata). + * @param metadata The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata, * * @return builder * @@ -112,7 +104,7 @@ public Builder metadata(@Nullable Output> metadata) { } /** - * @param metadata , The metadata key-value pairs that you want to patch onto the instance. For more information, see [Project and instance metadata](https://cloud.google.com/compute/docs/metadata#project_and_instance_metadata). + * @param metadata The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata, * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs.java new file mode 100644 index 0000000000..7aec1ee5b8 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs.java @@ -0,0 +1,94 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs extends com.pulumi.resources.ResourceArgs { + + public static final RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs Empty = new RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs(); + + /** + * Named instance selections configuring properties that the group will use when creating new VMs. + * + */ + @Import(name="instanceSelections") + private @Nullable Output> instanceSelections; + + /** + * @return Named instance selections configuring properties that the group will use when creating new VMs. + * + */ + public Optional>> instanceSelections() { + return Optional.ofNullable(this.instanceSelections); + } + + private RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs() {} + + private RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs(RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs $) { + this.instanceSelections = $.instanceSelections; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs $; + + public Builder() { + $ = new RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs(); + } + + public Builder(RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs defaults) { + $ = new RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param instanceSelections Named instance selections configuring properties that the group will use when creating new VMs. + * + * @return builder + * + */ + public Builder instanceSelections(@Nullable Output> instanceSelections) { + $.instanceSelections = instanceSelections; + return this; + } + + /** + * @param instanceSelections Named instance selections configuring properties that the group will use when creating new VMs. + * + * @return builder + * + */ + public Builder instanceSelections(List instanceSelections) { + return instanceSelections(Output.of(instanceSelections)); + } + + /** + * @param instanceSelections Named instance selections configuring properties that the group will use when creating new VMs. + * + * @return builder + * + */ + public Builder instanceSelections(RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs... instanceSelections) { + return instanceSelections(List.of(instanceSelections)); + } + + public RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs.java new file mode 100644 index 0000000000..6b018f5664 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs.java @@ -0,0 +1,188 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs extends com.pulumi.resources.ResourceArgs { + + public static final RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs Empty = new RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs(); + + /** + * Full machine-type names, e.g. "n1-standard-16" + * + */ + @Import(name="machineTypes", required=true) + private Output> machineTypes; + + /** + * @return Full machine-type names, e.g. "n1-standard-16" + * + */ + public Output> machineTypes() { + return this.machineTypes; + } + + /** + * The name of the instance group manager. Must be 1-63 + * characters long and comply with + * [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Supported characters + * include lowercase letters, numbers, and hyphens. + * + */ + @Import(name="name", required=true) + private Output name; + + /** + * @return The name of the instance group manager. Must be 1-63 + * characters long and comply with + * [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Supported characters + * include lowercase letters, numbers, and hyphens. + * + */ + public Output name() { + return this.name; + } + + /** + * Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference. + * + */ + @Import(name="rank") + private @Nullable Output rank; + + /** + * @return Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference. + * + */ + public Optional> rank() { + return Optional.ofNullable(this.rank); + } + + private RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs() {} + + private RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs(RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs $) { + this.machineTypes = $.machineTypes; + this.name = $.name; + this.rank = $.rank; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs $; + + public Builder() { + $ = new RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs(); + } + + public Builder(RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs defaults) { + $ = new RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param machineTypes Full machine-type names, e.g. "n1-standard-16" + * + * @return builder + * + */ + public Builder machineTypes(Output> machineTypes) { + $.machineTypes = machineTypes; + return this; + } + + /** + * @param machineTypes Full machine-type names, e.g. "n1-standard-16" + * + * @return builder + * + */ + public Builder machineTypes(List machineTypes) { + return machineTypes(Output.of(machineTypes)); + } + + /** + * @param machineTypes Full machine-type names, e.g. "n1-standard-16" + * + * @return builder + * + */ + public Builder machineTypes(String... machineTypes) { + return machineTypes(List.of(machineTypes)); + } + + /** + * @param name The name of the instance group manager. Must be 1-63 + * characters long and comply with + * [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Supported characters + * include lowercase letters, numbers, and hyphens. + * + * @return builder + * + */ + public Builder name(Output name) { + $.name = name; + return this; + } + + /** + * @param name The name of the instance group manager. Must be 1-63 + * characters long and comply with + * [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Supported characters + * include lowercase letters, numbers, and hyphens. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param rank Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference. + * + * @return builder + * + */ + public Builder rank(@Nullable Output rank) { + $.rank = rank; + return this; + } + + /** + * @param rank Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference. + * + * @return builder + * + */ + public Builder rank(Integer rank) { + return rank(Output.of(rank)); + } + + public RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs build() { + if ($.machineTypes == null) { + throw new MissingRequiredPropertyException("RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs", "machineTypes"); + } + if ($.name == null) { + throw new MissingRequiredPropertyException("RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs", "name"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionInstanceGroupManagerInstanceLifecyclePolicyArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionInstanceGroupManagerInstanceLifecyclePolicyArgs.java index 7d04b35f67..4c73da13fd 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionInstanceGroupManagerInstanceLifecyclePolicyArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionInstanceGroupManagerInstanceLifecyclePolicyArgs.java @@ -19,6 +19,7 @@ public final class RegionInstanceGroupManagerInstanceLifecyclePolicyArgs extends * , Default behavior for all instance or health check failures. Valid options are: `REPAIR`, `DO_NOTHING`. If `DO_NOTHING` then instances will not be repaired. If `REPAIR` (default), then failed instances will be repaired. * * *** + * <a name="nested_instance_flexibility_policy"></a>The `instance_flexibility_policy` block supports: * */ @Import(name="defaultActionOnFailure") @@ -28,6 +29,7 @@ public final class RegionInstanceGroupManagerInstanceLifecyclePolicyArgs extends * @return , Default behavior for all instance or health check failures. Valid options are: `REPAIR`, `DO_NOTHING`. If `DO_NOTHING` then instances will not be repaired. If `REPAIR` (default), then failed instances will be repaired. * * *** + * <a name="nested_instance_flexibility_policy"></a>The `instance_flexibility_policy` block supports: * */ public Optional> defaultActionOnFailure() { @@ -78,6 +80,7 @@ public Builder(RegionInstanceGroupManagerInstanceLifecyclePolicyArgs defaults) { * @param defaultActionOnFailure , Default behavior for all instance or health check failures. Valid options are: `REPAIR`, `DO_NOTHING`. If `DO_NOTHING` then instances will not be repaired. If `REPAIR` (default), then failed instances will be repaired. * * *** + * <a name="nested_instance_flexibility_policy"></a>The `instance_flexibility_policy` block supports: * * @return builder * @@ -91,6 +94,7 @@ public Builder defaultActionOnFailure(@Nullable Output defaultActionOnFa * @param defaultActionOnFailure , Default behavior for all instance or health check failures. Valid options are: `REPAIR`, `DO_NOTHING`. If `DO_NOTHING` then instances will not be repaired. If `REPAIR` (default), then failed instances will be repaired. * * *** + * <a name="nested_instance_flexibility_policy"></a>The `instance_flexibility_policy` block supports: * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionInstanceGroupManagerState.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionInstanceGroupManagerState.java index c401559620..68d7fc53bb 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionInstanceGroupManagerState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionInstanceGroupManagerState.java @@ -7,6 +7,7 @@ import com.pulumi.core.annotations.Import; import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerAllInstancesConfigArgs; import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerAutoHealingPoliciesArgs; +import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs; import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerInstanceLifecyclePolicyArgs; import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerNamedPortArgs; import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerParamsArgs; @@ -170,6 +171,23 @@ public Optional> fingerprint() { return Optional.ofNullable(this.fingerprint); } + /** + * The flexibility policy for managed instance group. Instance flexibility allows managed instance group to create VMs from multiple types of machines. Instance flexibility configuration on managed instance group overrides instance template configuration. Structure is documented below. + * *** + * + */ + @Import(name="instanceFlexibilityPolicy") + private @Nullable Output instanceFlexibilityPolicy; + + /** + * @return The flexibility policy for managed instance group. Instance flexibility allows managed instance group to create VMs from multiple types of machines. Instance flexibility configuration on managed instance group overrides instance template configuration. Structure is documented below. + * *** + * + */ + public Optional> instanceFlexibilityPolicy() { + return Optional.ofNullable(this.instanceFlexibilityPolicy); + } + /** * The full URL of the instance group created by the manager. * @@ -266,8 +284,6 @@ public Optional>> namedPort /** * Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert). * - * *** - * */ @Import(name="params") private @Nullable Output params; @@ -275,8 +291,6 @@ public Optional>> namedPort /** * @return Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert). * - * *** - * */ public Optional> params() { return Optional.ofNullable(this.params); @@ -559,6 +573,7 @@ private RegionInstanceGroupManagerState(RegionInstanceGroupManagerState $) { this.distributionPolicyTargetShape = $.distributionPolicyTargetShape; this.distributionPolicyZones = $.distributionPolicyZones; this.fingerprint = $.fingerprint; + this.instanceFlexibilityPolicy = $.instanceFlexibilityPolicy; this.instanceGroup = $.instanceGroup; this.instanceLifecyclePolicy = $.instanceLifecyclePolicy; this.listManagedInstancesResults = $.listManagedInstancesResults; @@ -800,6 +815,29 @@ public Builder fingerprint(String fingerprint) { return fingerprint(Output.of(fingerprint)); } + /** + * @param instanceFlexibilityPolicy The flexibility policy for managed instance group. Instance flexibility allows managed instance group to create VMs from multiple types of machines. Instance flexibility configuration on managed instance group overrides instance template configuration. Structure is documented below. + * *** + * + * @return builder + * + */ + public Builder instanceFlexibilityPolicy(@Nullable Output instanceFlexibilityPolicy) { + $.instanceFlexibilityPolicy = instanceFlexibilityPolicy; + return this; + } + + /** + * @param instanceFlexibilityPolicy The flexibility policy for managed instance group. Instance flexibility allows managed instance group to create VMs from multiple types of machines. Instance flexibility configuration on managed instance group overrides instance template configuration. Structure is documented below. + * *** + * + * @return builder + * + */ + public Builder instanceFlexibilityPolicy(RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs instanceFlexibilityPolicy) { + return instanceFlexibilityPolicy(Output.of(instanceFlexibilityPolicy)); + } + /** * @param instanceGroup The full URL of the instance group created by the manager. * @@ -937,8 +975,6 @@ public Builder namedPorts(RegionInstanceGroupManagerNamedPortArgs... namedPorts) /** * @param params Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert). * - * *** - * * @return builder * */ @@ -950,8 +986,6 @@ public Builder params(@Nullable Output par /** * @param params Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert). * - * *** - * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestRequestedRunDurationArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestRequestedRunDurationArgs.java new file mode 100644 index 0000000000..d05c9018c9 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestRequestedRunDurationArgs.java @@ -0,0 +1,125 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class RegionResizeRequestRequestedRunDurationArgs extends com.pulumi.resources.ResourceArgs { + + public static final RegionResizeRequestRequestedRunDurationArgs Empty = new RegionResizeRequestRequestedRunDurationArgs(); + + /** + * Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. + * + */ + @Import(name="nanos") + private @Nullable Output nanos; + + /** + * @return Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. + * + */ + public Optional> nanos() { + return Optional.ofNullable(this.nanos); + } + + /** + * Span of time at a resolution of a second. Must be from 600 to 604800 inclusive. Note: minimum and maximum allowed range for requestedRunDuration is 10 minutes (600 seconds) and 7 days(604800 seconds) correspondingly. + * + */ + @Import(name="seconds", required=true) + private Output seconds; + + /** + * @return Span of time at a resolution of a second. Must be from 600 to 604800 inclusive. Note: minimum and maximum allowed range for requestedRunDuration is 10 minutes (600 seconds) and 7 days(604800 seconds) correspondingly. + * + */ + public Output seconds() { + return this.seconds; + } + + private RegionResizeRequestRequestedRunDurationArgs() {} + + private RegionResizeRequestRequestedRunDurationArgs(RegionResizeRequestRequestedRunDurationArgs $) { + this.nanos = $.nanos; + this.seconds = $.seconds; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(RegionResizeRequestRequestedRunDurationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private RegionResizeRequestRequestedRunDurationArgs $; + + public Builder() { + $ = new RegionResizeRequestRequestedRunDurationArgs(); + } + + public Builder(RegionResizeRequestRequestedRunDurationArgs defaults) { + $ = new RegionResizeRequestRequestedRunDurationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param nanos Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. + * + * @return builder + * + */ + public Builder nanos(@Nullable Output nanos) { + $.nanos = nanos; + return this; + } + + /** + * @param nanos Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. + * + * @return builder + * + */ + public Builder nanos(Integer nanos) { + return nanos(Output.of(nanos)); + } + + /** + * @param seconds Span of time at a resolution of a second. Must be from 600 to 604800 inclusive. Note: minimum and maximum allowed range for requestedRunDuration is 10 minutes (600 seconds) and 7 days(604800 seconds) correspondingly. + * + * @return builder + * + */ + public Builder seconds(Output seconds) { + $.seconds = seconds; + return this; + } + + /** + * @param seconds Span of time at a resolution of a second. Must be from 600 to 604800 inclusive. Note: minimum and maximum allowed range for requestedRunDuration is 10 minutes (600 seconds) and 7 days(604800 seconds) correspondingly. + * + * @return builder + * + */ + public Builder seconds(String seconds) { + return seconds(Output.of(seconds)); + } + + public RegionResizeRequestRequestedRunDurationArgs build() { + if ($.seconds == null) { + throw new MissingRequiredPropertyException("RegionResizeRequestRequestedRunDurationArgs", "seconds"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestState.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestState.java new file mode 100644 index 0000000000..64290c3798 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestState.java @@ -0,0 +1,451 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.compute.inputs.RegionResizeRequestRequestedRunDurationArgs; +import com.pulumi.gcp.compute.inputs.RegionResizeRequestStatusArgs; +import java.lang.Integer; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class RegionResizeRequestState extends com.pulumi.resources.ResourceArgs { + + public static final RegionResizeRequestState Empty = new RegionResizeRequestState(); + + /** + * The creation timestamp for this resize request in RFC3339 text format. + * + */ + @Import(name="creationTimestamp") + private @Nullable Output creationTimestamp; + + /** + * @return The creation timestamp for this resize request in RFC3339 text format. + * + */ + public Optional> creationTimestamp() { + return Optional.ofNullable(this.creationTimestamp); + } + + /** + * An optional description of this resize-request. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return An optional description of this resize-request. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * The reference of the regional instance group manager this ResizeRequest is a part of. + * + * *** + * + */ + @Import(name="instanceGroupManager") + private @Nullable Output instanceGroupManager; + + /** + * @return The reference of the regional instance group manager this ResizeRequest is a part of. + * + * *** + * + */ + public Optional> instanceGroupManager() { + return Optional.ofNullable(this.instanceGroupManager); + } + + /** + * The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + @Import(name="project") + private @Nullable Output project; + + /** + * @return The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + public Optional> project() { + return Optional.ofNullable(this.project); + } + + /** + * The reference of the compute region scoping this request. + * + */ + @Import(name="region") + private @Nullable Output region; + + /** + * @return The reference of the compute region scoping this request. + * + */ + public Optional> region() { + return Optional.ofNullable(this.region); + } + + /** + * Requested run duration for instances that will be created by this request. At the end of the run duration instances will be deleted. + * Structure is documented below. + * + */ + @Import(name="requestedRunDuration") + private @Nullable Output requestedRunDuration; + + /** + * @return Requested run duration for instances that will be created by this request. At the end of the run duration instances will be deleted. + * Structure is documented below. + * + */ + public Optional> requestedRunDuration() { + return Optional.ofNullable(this.requestedRunDuration); + } + + /** + * The number of instances to be created by this resize request. The group's target size will be increased by this number. + * + */ + @Import(name="resizeBy") + private @Nullable Output resizeBy; + + /** + * @return The number of instances to be created by this resize request. The group's target size will be increased by this number. + * + */ + public Optional> resizeBy() { + return Optional.ofNullable(this.resizeBy); + } + + /** + * Current state of the request. + * + */ + @Import(name="state") + private @Nullable Output state; + + /** + * @return Current state of the request. + * + */ + public Optional> state() { + return Optional.ofNullable(this.state); + } + + /** + * Status of the request. + * Structure is documented below. + * + */ + @Import(name="statuses") + private @Nullable Output> statuses; + + /** + * @return Status of the request. + * Structure is documented below. + * + */ + public Optional>> statuses() { + return Optional.ofNullable(this.statuses); + } + + private RegionResizeRequestState() {} + + private RegionResizeRequestState(RegionResizeRequestState $) { + this.creationTimestamp = $.creationTimestamp; + this.description = $.description; + this.instanceGroupManager = $.instanceGroupManager; + this.name = $.name; + this.project = $.project; + this.region = $.region; + this.requestedRunDuration = $.requestedRunDuration; + this.resizeBy = $.resizeBy; + this.state = $.state; + this.statuses = $.statuses; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(RegionResizeRequestState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private RegionResizeRequestState $; + + public Builder() { + $ = new RegionResizeRequestState(); + } + + public Builder(RegionResizeRequestState defaults) { + $ = new RegionResizeRequestState(Objects.requireNonNull(defaults)); + } + + /** + * @param creationTimestamp The creation timestamp for this resize request in RFC3339 text format. + * + * @return builder + * + */ + public Builder creationTimestamp(@Nullable Output creationTimestamp) { + $.creationTimestamp = creationTimestamp; + return this; + } + + /** + * @param creationTimestamp The creation timestamp for this resize request in RFC3339 text format. + * + * @return builder + * + */ + public Builder creationTimestamp(String creationTimestamp) { + return creationTimestamp(Output.of(creationTimestamp)); + } + + /** + * @param description An optional description of this resize-request. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description An optional description of this resize-request. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param instanceGroupManager The reference of the regional instance group manager this ResizeRequest is a part of. + * + * *** + * + * @return builder + * + */ + public Builder instanceGroupManager(@Nullable Output instanceGroupManager) { + $.instanceGroupManager = instanceGroupManager; + return this; + } + + /** + * @param instanceGroupManager The reference of the regional instance group manager this ResizeRequest is a part of. + * + * *** + * + * @return builder + * + */ + public Builder instanceGroupManager(String instanceGroupManager) { + return instanceGroupManager(Output.of(instanceGroupManager)); + } + + /** + * @param name The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + * @return builder + * + */ + public Builder project(@Nullable Output project) { + $.project = project; + return this; + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + * @return builder + * + */ + public Builder project(String project) { + return project(Output.of(project)); + } + + /** + * @param region The reference of the compute region scoping this request. + * + * @return builder + * + */ + public Builder region(@Nullable Output region) { + $.region = region; + return this; + } + + /** + * @param region The reference of the compute region scoping this request. + * + * @return builder + * + */ + public Builder region(String region) { + return region(Output.of(region)); + } + + /** + * @param requestedRunDuration Requested run duration for instances that will be created by this request. At the end of the run duration instances will be deleted. + * Structure is documented below. + * + * @return builder + * + */ + public Builder requestedRunDuration(@Nullable Output requestedRunDuration) { + $.requestedRunDuration = requestedRunDuration; + return this; + } + + /** + * @param requestedRunDuration Requested run duration for instances that will be created by this request. At the end of the run duration instances will be deleted. + * Structure is documented below. + * + * @return builder + * + */ + public Builder requestedRunDuration(RegionResizeRequestRequestedRunDurationArgs requestedRunDuration) { + return requestedRunDuration(Output.of(requestedRunDuration)); + } + + /** + * @param resizeBy The number of instances to be created by this resize request. The group's target size will be increased by this number. + * + * @return builder + * + */ + public Builder resizeBy(@Nullable Output resizeBy) { + $.resizeBy = resizeBy; + return this; + } + + /** + * @param resizeBy The number of instances to be created by this resize request. The group's target size will be increased by this number. + * + * @return builder + * + */ + public Builder resizeBy(Integer resizeBy) { + return resizeBy(Output.of(resizeBy)); + } + + /** + * @param state Current state of the request. + * + * @return builder + * + */ + public Builder state(@Nullable Output state) { + $.state = state; + return this; + } + + /** + * @param state Current state of the request. + * + * @return builder + * + */ + public Builder state(String state) { + return state(Output.of(state)); + } + + /** + * @param statuses Status of the request. + * Structure is documented below. + * + * @return builder + * + */ + public Builder statuses(@Nullable Output> statuses) { + $.statuses = statuses; + return this; + } + + /** + * @param statuses Status of the request. + * Structure is documented below. + * + * @return builder + * + */ + public Builder statuses(List statuses) { + return statuses(Output.of(statuses)); + } + + /** + * @param statuses Status of the request. + * Structure is documented below. + * + * @return builder + * + */ + public Builder statuses(RegionResizeRequestStatusArgs... statuses) { + return statuses(List.of(statuses)); + } + + public RegionResizeRequestState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusArgs.java new file mode 100644 index 0000000000..80ed11c228 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusArgs.java @@ -0,0 +1,162 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.compute.inputs.RegionResizeRequestStatusErrorArgs; +import com.pulumi.gcp.compute.inputs.RegionResizeRequestStatusLastAttemptArgs; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class RegionResizeRequestStatusArgs extends com.pulumi.resources.ResourceArgs { + + public static final RegionResizeRequestStatusArgs Empty = new RegionResizeRequestStatusArgs(); + + /** + * (Output) + * Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + * Structure is documented below. + * + */ + @Import(name="errors") + private @Nullable Output> errors; + + /** + * @return (Output) + * Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + * Structure is documented below. + * + */ + public Optional>> errors() { + return Optional.ofNullable(this.errors); + } + + /** + * (Output) + * Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the "error" field only. + * Structure is documented below. + * + */ + @Import(name="lastAttempts") + private @Nullable Output> lastAttempts; + + /** + * @return (Output) + * Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the "error" field only. + * Structure is documented below. + * + */ + public Optional>> lastAttempts() { + return Optional.ofNullable(this.lastAttempts); + } + + private RegionResizeRequestStatusArgs() {} + + private RegionResizeRequestStatusArgs(RegionResizeRequestStatusArgs $) { + this.errors = $.errors; + this.lastAttempts = $.lastAttempts; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(RegionResizeRequestStatusArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private RegionResizeRequestStatusArgs $; + + public Builder() { + $ = new RegionResizeRequestStatusArgs(); + } + + public Builder(RegionResizeRequestStatusArgs defaults) { + $ = new RegionResizeRequestStatusArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param errors (Output) + * Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errors(@Nullable Output> errors) { + $.errors = errors; + return this; + } + + /** + * @param errors (Output) + * Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errors(List errors) { + return errors(Output.of(errors)); + } + + /** + * @param errors (Output) + * Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errors(RegionResizeRequestStatusErrorArgs... errors) { + return errors(List.of(errors)); + } + + /** + * @param lastAttempts (Output) + * Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the "error" field only. + * Structure is documented below. + * + * @return builder + * + */ + public Builder lastAttempts(@Nullable Output> lastAttempts) { + $.lastAttempts = lastAttempts; + return this; + } + + /** + * @param lastAttempts (Output) + * Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the "error" field only. + * Structure is documented below. + * + * @return builder + * + */ + public Builder lastAttempts(List lastAttempts) { + return lastAttempts(Output.of(lastAttempts)); + } + + /** + * @param lastAttempts (Output) + * Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the "error" field only. + * Structure is documented below. + * + * @return builder + * + */ + public Builder lastAttempts(RegionResizeRequestStatusLastAttemptArgs... lastAttempts) { + return lastAttempts(List.of(lastAttempts)); + } + + public RegionResizeRequestStatusArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusErrorArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusErrorArgs.java new file mode 100644 index 0000000000..e12f317bfe --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusErrorArgs.java @@ -0,0 +1,104 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.compute.inputs.RegionResizeRequestStatusErrorErrorArgs; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class RegionResizeRequestStatusErrorArgs extends com.pulumi.resources.ResourceArgs { + + public static final RegionResizeRequestStatusErrorArgs Empty = new RegionResizeRequestStatusErrorArgs(); + + /** + * (Output) + * The array of errors encountered while processing this operation. + * Structure is documented below. + * + */ + @Import(name="errors") + private @Nullable Output> errors; + + /** + * @return (Output) + * The array of errors encountered while processing this operation. + * Structure is documented below. + * + */ + public Optional>> errors() { + return Optional.ofNullable(this.errors); + } + + private RegionResizeRequestStatusErrorArgs() {} + + private RegionResizeRequestStatusErrorArgs(RegionResizeRequestStatusErrorArgs $) { + this.errors = $.errors; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(RegionResizeRequestStatusErrorArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private RegionResizeRequestStatusErrorArgs $; + + public Builder() { + $ = new RegionResizeRequestStatusErrorArgs(); + } + + public Builder(RegionResizeRequestStatusErrorArgs defaults) { + $ = new RegionResizeRequestStatusErrorArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param errors (Output) + * The array of errors encountered while processing this operation. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errors(@Nullable Output> errors) { + $.errors = errors; + return this; + } + + /** + * @param errors (Output) + * The array of errors encountered while processing this operation. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errors(List errors) { + return errors(Output.of(errors)); + } + + /** + * @param errors (Output) + * The array of errors encountered while processing this operation. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errors(RegionResizeRequestStatusErrorErrorArgs... errors) { + return errors(List.of(errors)); + } + + public RegionResizeRequestStatusErrorArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusErrorErrorArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusErrorErrorArgs.java new file mode 100644 index 0000000000..35fd05b3ca --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusErrorErrorArgs.java @@ -0,0 +1,228 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.compute.inputs.RegionResizeRequestStatusErrorErrorErrorDetailArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class RegionResizeRequestStatusErrorErrorArgs extends com.pulumi.resources.ResourceArgs { + + public static final RegionResizeRequestStatusErrorErrorArgs Empty = new RegionResizeRequestStatusErrorErrorArgs(); + + /** + * (Output) + * The error type identifier for this error. + * + */ + @Import(name="code") + private @Nullable Output code; + + /** + * @return (Output) + * The error type identifier for this error. + * + */ + public Optional> code() { + return Optional.ofNullable(this.code); + } + + /** + * (Output) + * An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + * Structure is documented below. + * + */ + @Import(name="errorDetails") + private @Nullable Output> errorDetails; + + /** + * @return (Output) + * An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + * Structure is documented below. + * + */ + public Optional>> errorDetails() { + return Optional.ofNullable(this.errorDetails); + } + + /** + * (Output) + * Indicates the field in the request that caused the error. This property is optional. + * + */ + @Import(name="location") + private @Nullable Output location; + + /** + * @return (Output) + * Indicates the field in the request that caused the error. This property is optional. + * + */ + public Optional> location() { + return Optional.ofNullable(this.location); + } + + /** + * (Output) + * The localized error message in the above locale. + * + */ + @Import(name="message") + private @Nullable Output message; + + /** + * @return (Output) + * The localized error message in the above locale. + * + */ + public Optional> message() { + return Optional.ofNullable(this.message); + } + + private RegionResizeRequestStatusErrorErrorArgs() {} + + private RegionResizeRequestStatusErrorErrorArgs(RegionResizeRequestStatusErrorErrorArgs $) { + this.code = $.code; + this.errorDetails = $.errorDetails; + this.location = $.location; + this.message = $.message; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(RegionResizeRequestStatusErrorErrorArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private RegionResizeRequestStatusErrorErrorArgs $; + + public Builder() { + $ = new RegionResizeRequestStatusErrorErrorArgs(); + } + + public Builder(RegionResizeRequestStatusErrorErrorArgs defaults) { + $ = new RegionResizeRequestStatusErrorErrorArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param code (Output) + * The error type identifier for this error. + * + * @return builder + * + */ + public Builder code(@Nullable Output code) { + $.code = code; + return this; + } + + /** + * @param code (Output) + * The error type identifier for this error. + * + * @return builder + * + */ + public Builder code(String code) { + return code(Output.of(code)); + } + + /** + * @param errorDetails (Output) + * An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errorDetails(@Nullable Output> errorDetails) { + $.errorDetails = errorDetails; + return this; + } + + /** + * @param errorDetails (Output) + * An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errorDetails(List errorDetails) { + return errorDetails(Output.of(errorDetails)); + } + + /** + * @param errorDetails (Output) + * An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errorDetails(RegionResizeRequestStatusErrorErrorErrorDetailArgs... errorDetails) { + return errorDetails(List.of(errorDetails)); + } + + /** + * @param location (Output) + * Indicates the field in the request that caused the error. This property is optional. + * + * @return builder + * + */ + public Builder location(@Nullable Output location) { + $.location = location; + return this; + } + + /** + * @param location (Output) + * Indicates the field in the request that caused the error. This property is optional. + * + * @return builder + * + */ + public Builder location(String location) { + return location(Output.of(location)); + } + + /** + * @param message (Output) + * The localized error message in the above locale. + * + * @return builder + * + */ + public Builder message(@Nullable Output message) { + $.message = message; + return this; + } + + /** + * @param message (Output) + * The localized error message in the above locale. + * + * @return builder + * + */ + public Builder message(String message) { + return message(Output.of(message)); + } + + public RegionResizeRequestStatusErrorErrorArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusErrorErrorErrorDetailArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusErrorErrorErrorDetailArgs.java new file mode 100644 index 0000000000..eff73a62dd --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusErrorErrorErrorDetailArgs.java @@ -0,0 +1,278 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.compute.inputs.RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs; +import com.pulumi.gcp.compute.inputs.RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs; +import com.pulumi.gcp.compute.inputs.RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs; +import com.pulumi.gcp.compute.inputs.RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class RegionResizeRequestStatusErrorErrorErrorDetailArgs extends com.pulumi.resources.ResourceArgs { + + public static final RegionResizeRequestStatusErrorErrorErrorDetailArgs Empty = new RegionResizeRequestStatusErrorErrorErrorDetailArgs(); + + /** + * (Output) + * A nested object resource. + * Structure is documented below. + * + */ + @Import(name="errorInfos") + private @Nullable Output> errorInfos; + + /** + * @return (Output) + * A nested object resource. + * Structure is documented below. + * + */ + public Optional>> errorInfos() { + return Optional.ofNullable(this.errorInfos); + } + + /** + * (Output) + * A nested object resource. + * Structure is documented below. + * + */ + @Import(name="helps") + private @Nullable Output> helps; + + /** + * @return (Output) + * A nested object resource. + * Structure is documented below. + * + */ + public Optional>> helps() { + return Optional.ofNullable(this.helps); + } + + /** + * (Output) + * A nested object resource. + * Structure is documented below. + * + */ + @Import(name="localizedMessages") + private @Nullable Output> localizedMessages; + + /** + * @return (Output) + * A nested object resource. + * Structure is documented below. + * + */ + public Optional>> localizedMessages() { + return Optional.ofNullable(this.localizedMessages); + } + + /** + * (Output) + * A nested object resource. + * Structure is documented below. + * + */ + @Import(name="quotaInfos") + private @Nullable Output> quotaInfos; + + /** + * @return (Output) + * A nested object resource. + * Structure is documented below. + * + */ + public Optional>> quotaInfos() { + return Optional.ofNullable(this.quotaInfos); + } + + private RegionResizeRequestStatusErrorErrorErrorDetailArgs() {} + + private RegionResizeRequestStatusErrorErrorErrorDetailArgs(RegionResizeRequestStatusErrorErrorErrorDetailArgs $) { + this.errorInfos = $.errorInfos; + this.helps = $.helps; + this.localizedMessages = $.localizedMessages; + this.quotaInfos = $.quotaInfos; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(RegionResizeRequestStatusErrorErrorErrorDetailArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private RegionResizeRequestStatusErrorErrorErrorDetailArgs $; + + public Builder() { + $ = new RegionResizeRequestStatusErrorErrorErrorDetailArgs(); + } + + public Builder(RegionResizeRequestStatusErrorErrorErrorDetailArgs defaults) { + $ = new RegionResizeRequestStatusErrorErrorErrorDetailArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param errorInfos (Output) + * A nested object resource. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errorInfos(@Nullable Output> errorInfos) { + $.errorInfos = errorInfos; + return this; + } + + /** + * @param errorInfos (Output) + * A nested object resource. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errorInfos(List errorInfos) { + return errorInfos(Output.of(errorInfos)); + } + + /** + * @param errorInfos (Output) + * A nested object resource. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errorInfos(RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs... errorInfos) { + return errorInfos(List.of(errorInfos)); + } + + /** + * @param helps (Output) + * A nested object resource. + * Structure is documented below. + * + * @return builder + * + */ + public Builder helps(@Nullable Output> helps) { + $.helps = helps; + return this; + } + + /** + * @param helps (Output) + * A nested object resource. + * Structure is documented below. + * + * @return builder + * + */ + public Builder helps(List helps) { + return helps(Output.of(helps)); + } + + /** + * @param helps (Output) + * A nested object resource. + * Structure is documented below. + * + * @return builder + * + */ + public Builder helps(RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs... helps) { + return helps(List.of(helps)); + } + + /** + * @param localizedMessages (Output) + * A nested object resource. + * Structure is documented below. + * + * @return builder + * + */ + public Builder localizedMessages(@Nullable Output> localizedMessages) { + $.localizedMessages = localizedMessages; + return this; + } + + /** + * @param localizedMessages (Output) + * A nested object resource. + * Structure is documented below. + * + * @return builder + * + */ + public Builder localizedMessages(List localizedMessages) { + return localizedMessages(Output.of(localizedMessages)); + } + + /** + * @param localizedMessages (Output) + * A nested object resource. + * Structure is documented below. + * + * @return builder + * + */ + public Builder localizedMessages(RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs... localizedMessages) { + return localizedMessages(List.of(localizedMessages)); + } + + /** + * @param quotaInfos (Output) + * A nested object resource. + * Structure is documented below. + * + * @return builder + * + */ + public Builder quotaInfos(@Nullable Output> quotaInfos) { + $.quotaInfos = quotaInfos; + return this; + } + + /** + * @param quotaInfos (Output) + * A nested object resource. + * Structure is documented below. + * + * @return builder + * + */ + public Builder quotaInfos(List quotaInfos) { + return quotaInfos(Output.of(quotaInfos)); + } + + /** + * @param quotaInfos (Output) + * A nested object resource. + * Structure is documented below. + * + * @return builder + * + */ + public Builder quotaInfos(RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs... quotaInfos) { + return quotaInfos(List.of(quotaInfos)); + } + + public RegionResizeRequestStatusErrorErrorErrorDetailArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs.java new file mode 100644 index 0000000000..af60f446bc --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs.java @@ -0,0 +1,170 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs extends com.pulumi.resources.ResourceArgs { + + public static final RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs Empty = new RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs(); + + /** + * (Output) + * 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". + * + */ + @Import(name="domain") + private @Nullable Output domain; + + /** + * @return (Output) + * 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". + * + */ + public Optional> domain() { + return Optional.ofNullable(this.domain); + } + + /** + * (Output) + * Additional structured details about this error. + * + */ + @Import(name="metadatas") + private @Nullable Output> metadatas; + + /** + * @return (Output) + * Additional structured details about this error. + * + */ + public Optional>> metadatas() { + return Optional.ofNullable(this.metadatas); + } + + /** + * (Output) + * 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. + * + */ + @Import(name="reason") + private @Nullable Output reason; + + /** + * @return (Output) + * 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. + * + */ + public Optional> reason() { + return Optional.ofNullable(this.reason); + } + + private RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs() {} + + private RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs(RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs $) { + this.domain = $.domain; + this.metadatas = $.metadatas; + this.reason = $.reason; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs $; + + public Builder() { + $ = new RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs(); + } + + public Builder(RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs defaults) { + $ = new RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param domain (Output) + * 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". + * + * @return builder + * + */ + public Builder domain(@Nullable Output domain) { + $.domain = domain; + return this; + } + + /** + * @param domain (Output) + * 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". + * + * @return builder + * + */ + public Builder domain(String domain) { + return domain(Output.of(domain)); + } + + /** + * @param metadatas (Output) + * Additional structured details about this error. + * + * @return builder + * + */ + public Builder metadatas(@Nullable Output> metadatas) { + $.metadatas = metadatas; + return this; + } + + /** + * @param metadatas (Output) + * Additional structured details about this error. + * + * @return builder + * + */ + public Builder metadatas(Map metadatas) { + return metadatas(Output.of(metadatas)); + } + + /** + * @param reason (Output) + * 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. + * + * @return builder + * + */ + public Builder reason(@Nullable Output reason) { + $.reason = reason; + return this; + } + + /** + * @param reason (Output) + * 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. + * + * @return builder + * + */ + public Builder reason(String reason) { + return reason(Output.of(reason)); + } + + public RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs.java new file mode 100644 index 0000000000..16b7817a1a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs.java @@ -0,0 +1,104 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.compute.inputs.RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs extends com.pulumi.resources.ResourceArgs { + + public static final RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs Empty = new RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs(); + + /** + * (Output) + * A nested object resource. + * Structure is documented below. + * + */ + @Import(name="links") + private @Nullable Output> links; + + /** + * @return (Output) + * A nested object resource. + * Structure is documented below. + * + */ + public Optional>> links() { + return Optional.ofNullable(this.links); + } + + private RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs() {} + + private RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs(RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs $) { + this.links = $.links; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs $; + + public Builder() { + $ = new RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs(); + } + + public Builder(RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs defaults) { + $ = new RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param links (Output) + * A nested object resource. + * Structure is documented below. + * + * @return builder + * + */ + public Builder links(@Nullable Output> links) { + $.links = links; + return this; + } + + /** + * @param links (Output) + * A nested object resource. + * Structure is documented below. + * + * @return builder + * + */ + public Builder links(List links) { + return links(Output.of(links)); + } + + /** + * @param links (Output) + * A nested object resource. + * Structure is documented below. + * + * @return builder + * + */ + public Builder links(RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs... links) { + return links(List.of(links)); + } + + public RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs.java new file mode 100644 index 0000000000..41b976086c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs.java @@ -0,0 +1,124 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs extends com.pulumi.resources.ResourceArgs { + + public static final RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs Empty = new RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs(); + + /** + * An optional description of this resize-request. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return An optional description of this resize-request. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * (Output) + * The URL of the link. + * + */ + @Import(name="url") + private @Nullable Output url; + + /** + * @return (Output) + * The URL of the link. + * + */ + public Optional> url() { + return Optional.ofNullable(this.url); + } + + private RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs() {} + + private RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs(RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs $) { + this.description = $.description; + this.url = $.url; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs $; + + public Builder() { + $ = new RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs(); + } + + public Builder(RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs defaults) { + $ = new RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param description An optional description of this resize-request. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description An optional description of this resize-request. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param url (Output) + * The URL of the link. + * + * @return builder + * + */ + public Builder url(@Nullable Output url) { + $.url = url; + return this; + } + + /** + * @param url (Output) + * The URL of the link. + * + * @return builder + * + */ + public Builder url(String url) { + return url(Output.of(url)); + } + + public RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs.java new file mode 100644 index 0000000000..23b51c388b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs.java @@ -0,0 +1,128 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs extends com.pulumi.resources.ResourceArgs { + + public static final RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs Empty = new RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs(); + + /** + * (Output) + * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + * + */ + @Import(name="locale") + private @Nullable Output locale; + + /** + * @return (Output) + * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + * + */ + public Optional> locale() { + return Optional.ofNullable(this.locale); + } + + /** + * (Output) + * The localized error message in the above locale. + * + */ + @Import(name="message") + private @Nullable Output message; + + /** + * @return (Output) + * The localized error message in the above locale. + * + */ + public Optional> message() { + return Optional.ofNullable(this.message); + } + + private RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs() {} + + private RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs(RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs $) { + this.locale = $.locale; + this.message = $.message; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs $; + + public Builder() { + $ = new RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs(); + } + + public Builder(RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs defaults) { + $ = new RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param locale (Output) + * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + * + * @return builder + * + */ + public Builder locale(@Nullable Output locale) { + $.locale = locale; + return this; + } + + /** + * @param locale (Output) + * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + * + * @return builder + * + */ + public Builder locale(String locale) { + return locale(Output.of(locale)); + } + + /** + * @param message (Output) + * The localized error message in the above locale. + * + * @return builder + * + */ + public Builder message(@Nullable Output message) { + $.message = message; + return this; + } + + /** + * @param message (Output) + * The localized error message in the above locale. + * + * @return builder + * + */ + public Builder message(String message) { + return message(Output.of(message)); + } + + public RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs.java new file mode 100644 index 0000000000..84f8d215be --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs.java @@ -0,0 +1,294 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Integer; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs extends com.pulumi.resources.ResourceArgs { + + public static final RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs Empty = new RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs(); + + /** + * (Output) + * The map holding related quota dimensions + * + */ + @Import(name="dimensions") + private @Nullable Output> dimensions; + + /** + * @return (Output) + * The map holding related quota dimensions + * + */ + public Optional>> dimensions() { + return Optional.ofNullable(this.dimensions); + } + + /** + * (Output) + * Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + * + */ + @Import(name="futureLimit") + private @Nullable Output futureLimit; + + /** + * @return (Output) + * Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + * + */ + public Optional> futureLimit() { + return Optional.ofNullable(this.futureLimit); + } + + /** + * (Output) + * Current effective quota limit. The limit's unit depends on the quota type or metric. + * + */ + @Import(name="limit") + private @Nullable Output limit; + + /** + * @return (Output) + * Current effective quota limit. The limit's unit depends on the quota type or metric. + * + */ + public Optional> limit() { + return Optional.ofNullable(this.limit); + } + + /** + * (Output) + * The name of the quota limit. + * + */ + @Import(name="limitName") + private @Nullable Output limitName; + + /** + * @return (Output) + * The name of the quota limit. + * + */ + public Optional> limitName() { + return Optional.ofNullable(this.limitName); + } + + /** + * (Output) + * The Compute Engine quota metric name. + * + */ + @Import(name="metricName") + private @Nullable Output metricName; + + /** + * @return (Output) + * The Compute Engine quota metric name. + * + */ + public Optional> metricName() { + return Optional.ofNullable(this.metricName); + } + + /** + * (Output) + * Rollout status of the future quota limit. + * + */ + @Import(name="rolloutStatus") + private @Nullable Output rolloutStatus; + + /** + * @return (Output) + * Rollout status of the future quota limit. + * + */ + public Optional> rolloutStatus() { + return Optional.ofNullable(this.rolloutStatus); + } + + private RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs() {} + + private RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs(RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs $) { + this.dimensions = $.dimensions; + this.futureLimit = $.futureLimit; + this.limit = $.limit; + this.limitName = $.limitName; + this.metricName = $.metricName; + this.rolloutStatus = $.rolloutStatus; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs $; + + public Builder() { + $ = new RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs(); + } + + public Builder(RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs defaults) { + $ = new RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param dimensions (Output) + * The map holding related quota dimensions + * + * @return builder + * + */ + public Builder dimensions(@Nullable Output> dimensions) { + $.dimensions = dimensions; + return this; + } + + /** + * @param dimensions (Output) + * The map holding related quota dimensions + * + * @return builder + * + */ + public Builder dimensions(Map dimensions) { + return dimensions(Output.of(dimensions)); + } + + /** + * @param futureLimit (Output) + * Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + * + * @return builder + * + */ + public Builder futureLimit(@Nullable Output futureLimit) { + $.futureLimit = futureLimit; + return this; + } + + /** + * @param futureLimit (Output) + * Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + * + * @return builder + * + */ + public Builder futureLimit(Integer futureLimit) { + return futureLimit(Output.of(futureLimit)); + } + + /** + * @param limit (Output) + * Current effective quota limit. The limit's unit depends on the quota type or metric. + * + * @return builder + * + */ + public Builder limit(@Nullable Output limit) { + $.limit = limit; + return this; + } + + /** + * @param limit (Output) + * Current effective quota limit. The limit's unit depends on the quota type or metric. + * + * @return builder + * + */ + public Builder limit(Integer limit) { + return limit(Output.of(limit)); + } + + /** + * @param limitName (Output) + * The name of the quota limit. + * + * @return builder + * + */ + public Builder limitName(@Nullable Output limitName) { + $.limitName = limitName; + return this; + } + + /** + * @param limitName (Output) + * The name of the quota limit. + * + * @return builder + * + */ + public Builder limitName(String limitName) { + return limitName(Output.of(limitName)); + } + + /** + * @param metricName (Output) + * The Compute Engine quota metric name. + * + * @return builder + * + */ + public Builder metricName(@Nullable Output metricName) { + $.metricName = metricName; + return this; + } + + /** + * @param metricName (Output) + * The Compute Engine quota metric name. + * + * @return builder + * + */ + public Builder metricName(String metricName) { + return metricName(Output.of(metricName)); + } + + /** + * @param rolloutStatus (Output) + * Rollout status of the future quota limit. + * + * @return builder + * + */ + public Builder rolloutStatus(@Nullable Output rolloutStatus) { + $.rolloutStatus = rolloutStatus; + return this; + } + + /** + * @param rolloutStatus (Output) + * Rollout status of the future quota limit. + * + * @return builder + * + */ + public Builder rolloutStatus(String rolloutStatus) { + return rolloutStatus(Output.of(rolloutStatus)); + } + + public RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptArgs.java new file mode 100644 index 0000000000..2e9cc163a5 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptArgs.java @@ -0,0 +1,104 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.compute.inputs.RegionResizeRequestStatusLastAttemptErrorArgs; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class RegionResizeRequestStatusLastAttemptArgs extends com.pulumi.resources.ResourceArgs { + + public static final RegionResizeRequestStatusLastAttemptArgs Empty = new RegionResizeRequestStatusLastAttemptArgs(); + + /** + * (Output) + * Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + * Structure is documented below. + * + */ + @Import(name="errors") + private @Nullable Output> errors; + + /** + * @return (Output) + * Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + * Structure is documented below. + * + */ + public Optional>> errors() { + return Optional.ofNullable(this.errors); + } + + private RegionResizeRequestStatusLastAttemptArgs() {} + + private RegionResizeRequestStatusLastAttemptArgs(RegionResizeRequestStatusLastAttemptArgs $) { + this.errors = $.errors; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(RegionResizeRequestStatusLastAttemptArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private RegionResizeRequestStatusLastAttemptArgs $; + + public Builder() { + $ = new RegionResizeRequestStatusLastAttemptArgs(); + } + + public Builder(RegionResizeRequestStatusLastAttemptArgs defaults) { + $ = new RegionResizeRequestStatusLastAttemptArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param errors (Output) + * Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errors(@Nullable Output> errors) { + $.errors = errors; + return this; + } + + /** + * @param errors (Output) + * Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errors(List errors) { + return errors(Output.of(errors)); + } + + /** + * @param errors (Output) + * Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errors(RegionResizeRequestStatusLastAttemptErrorArgs... errors) { + return errors(List.of(errors)); + } + + public RegionResizeRequestStatusLastAttemptArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptErrorArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptErrorArgs.java new file mode 100644 index 0000000000..5c3dc6e14e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptErrorArgs.java @@ -0,0 +1,104 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.compute.inputs.RegionResizeRequestStatusLastAttemptErrorErrorArgs; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class RegionResizeRequestStatusLastAttemptErrorArgs extends com.pulumi.resources.ResourceArgs { + + public static final RegionResizeRequestStatusLastAttemptErrorArgs Empty = new RegionResizeRequestStatusLastAttemptErrorArgs(); + + /** + * (Output) + * The array of errors encountered while processing this operation. + * Structure is documented below. + * + */ + @Import(name="errors") + private @Nullable Output> errors; + + /** + * @return (Output) + * The array of errors encountered while processing this operation. + * Structure is documented below. + * + */ + public Optional>> errors() { + return Optional.ofNullable(this.errors); + } + + private RegionResizeRequestStatusLastAttemptErrorArgs() {} + + private RegionResizeRequestStatusLastAttemptErrorArgs(RegionResizeRequestStatusLastAttemptErrorArgs $) { + this.errors = $.errors; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(RegionResizeRequestStatusLastAttemptErrorArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private RegionResizeRequestStatusLastAttemptErrorArgs $; + + public Builder() { + $ = new RegionResizeRequestStatusLastAttemptErrorArgs(); + } + + public Builder(RegionResizeRequestStatusLastAttemptErrorArgs defaults) { + $ = new RegionResizeRequestStatusLastAttemptErrorArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param errors (Output) + * The array of errors encountered while processing this operation. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errors(@Nullable Output> errors) { + $.errors = errors; + return this; + } + + /** + * @param errors (Output) + * The array of errors encountered while processing this operation. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errors(List errors) { + return errors(Output.of(errors)); + } + + /** + * @param errors (Output) + * The array of errors encountered while processing this operation. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errors(RegionResizeRequestStatusLastAttemptErrorErrorArgs... errors) { + return errors(List.of(errors)); + } + + public RegionResizeRequestStatusLastAttemptErrorArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptErrorErrorArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptErrorErrorArgs.java new file mode 100644 index 0000000000..4dd15ad18c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptErrorErrorArgs.java @@ -0,0 +1,228 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.compute.inputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class RegionResizeRequestStatusLastAttemptErrorErrorArgs extends com.pulumi.resources.ResourceArgs { + + public static final RegionResizeRequestStatusLastAttemptErrorErrorArgs Empty = new RegionResizeRequestStatusLastAttemptErrorErrorArgs(); + + /** + * (Output) + * The error type identifier for this error. + * + */ + @Import(name="code") + private @Nullable Output code; + + /** + * @return (Output) + * The error type identifier for this error. + * + */ + public Optional> code() { + return Optional.ofNullable(this.code); + } + + /** + * (Output) + * An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + * Structure is documented below. + * + */ + @Import(name="errorDetails") + private @Nullable Output> errorDetails; + + /** + * @return (Output) + * An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + * Structure is documented below. + * + */ + public Optional>> errorDetails() { + return Optional.ofNullable(this.errorDetails); + } + + /** + * (Output) + * Indicates the field in the request that caused the error. This property is optional. + * + */ + @Import(name="location") + private @Nullable Output location; + + /** + * @return (Output) + * Indicates the field in the request that caused the error. This property is optional. + * + */ + public Optional> location() { + return Optional.ofNullable(this.location); + } + + /** + * (Output) + * The localized error message in the above locale. + * + */ + @Import(name="message") + private @Nullable Output message; + + /** + * @return (Output) + * The localized error message in the above locale. + * + */ + public Optional> message() { + return Optional.ofNullable(this.message); + } + + private RegionResizeRequestStatusLastAttemptErrorErrorArgs() {} + + private RegionResizeRequestStatusLastAttemptErrorErrorArgs(RegionResizeRequestStatusLastAttemptErrorErrorArgs $) { + this.code = $.code; + this.errorDetails = $.errorDetails; + this.location = $.location; + this.message = $.message; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(RegionResizeRequestStatusLastAttemptErrorErrorArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private RegionResizeRequestStatusLastAttemptErrorErrorArgs $; + + public Builder() { + $ = new RegionResizeRequestStatusLastAttemptErrorErrorArgs(); + } + + public Builder(RegionResizeRequestStatusLastAttemptErrorErrorArgs defaults) { + $ = new RegionResizeRequestStatusLastAttemptErrorErrorArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param code (Output) + * The error type identifier for this error. + * + * @return builder + * + */ + public Builder code(@Nullable Output code) { + $.code = code; + return this; + } + + /** + * @param code (Output) + * The error type identifier for this error. + * + * @return builder + * + */ + public Builder code(String code) { + return code(Output.of(code)); + } + + /** + * @param errorDetails (Output) + * An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errorDetails(@Nullable Output> errorDetails) { + $.errorDetails = errorDetails; + return this; + } + + /** + * @param errorDetails (Output) + * An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errorDetails(List errorDetails) { + return errorDetails(Output.of(errorDetails)); + } + + /** + * @param errorDetails (Output) + * An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errorDetails(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs... errorDetails) { + return errorDetails(List.of(errorDetails)); + } + + /** + * @param location (Output) + * Indicates the field in the request that caused the error. This property is optional. + * + * @return builder + * + */ + public Builder location(@Nullable Output location) { + $.location = location; + return this; + } + + /** + * @param location (Output) + * Indicates the field in the request that caused the error. This property is optional. + * + * @return builder + * + */ + public Builder location(String location) { + return location(Output.of(location)); + } + + /** + * @param message (Output) + * The localized error message in the above locale. + * + * @return builder + * + */ + public Builder message(@Nullable Output message) { + $.message = message; + return this; + } + + /** + * @param message (Output) + * The localized error message in the above locale. + * + * @return builder + * + */ + public Builder message(String message) { + return message(Output.of(message)); + } + + public RegionResizeRequestStatusLastAttemptErrorErrorArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs.java new file mode 100644 index 0000000000..246520e05f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs.java @@ -0,0 +1,278 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.compute.inputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs; +import com.pulumi.gcp.compute.inputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs; +import com.pulumi.gcp.compute.inputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs; +import com.pulumi.gcp.compute.inputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs extends com.pulumi.resources.ResourceArgs { + + public static final RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs Empty = new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs(); + + /** + * (Output) + * A nested object resource. + * Structure is documented below. + * + */ + @Import(name="errorInfos") + private @Nullable Output> errorInfos; + + /** + * @return (Output) + * A nested object resource. + * Structure is documented below. + * + */ + public Optional>> errorInfos() { + return Optional.ofNullable(this.errorInfos); + } + + /** + * (Output) + * A nested object resource. + * Structure is documented below. + * + */ + @Import(name="helps") + private @Nullable Output> helps; + + /** + * @return (Output) + * A nested object resource. + * Structure is documented below. + * + */ + public Optional>> helps() { + return Optional.ofNullable(this.helps); + } + + /** + * (Output) + * A nested object resource. + * Structure is documented below. + * + */ + @Import(name="localizedMessages") + private @Nullable Output> localizedMessages; + + /** + * @return (Output) + * A nested object resource. + * Structure is documented below. + * + */ + public Optional>> localizedMessages() { + return Optional.ofNullable(this.localizedMessages); + } + + /** + * (Output) + * A nested object resource. + * Structure is documented below. + * + */ + @Import(name="quotaInfos") + private @Nullable Output> quotaInfos; + + /** + * @return (Output) + * A nested object resource. + * Structure is documented below. + * + */ + public Optional>> quotaInfos() { + return Optional.ofNullable(this.quotaInfos); + } + + private RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs() {} + + private RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs $) { + this.errorInfos = $.errorInfos; + this.helps = $.helps; + this.localizedMessages = $.localizedMessages; + this.quotaInfos = $.quotaInfos; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs $; + + public Builder() { + $ = new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs(); + } + + public Builder(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs defaults) { + $ = new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param errorInfos (Output) + * A nested object resource. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errorInfos(@Nullable Output> errorInfos) { + $.errorInfos = errorInfos; + return this; + } + + /** + * @param errorInfos (Output) + * A nested object resource. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errorInfos(List errorInfos) { + return errorInfos(Output.of(errorInfos)); + } + + /** + * @param errorInfos (Output) + * A nested object resource. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errorInfos(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs... errorInfos) { + return errorInfos(List.of(errorInfos)); + } + + /** + * @param helps (Output) + * A nested object resource. + * Structure is documented below. + * + * @return builder + * + */ + public Builder helps(@Nullable Output> helps) { + $.helps = helps; + return this; + } + + /** + * @param helps (Output) + * A nested object resource. + * Structure is documented below. + * + * @return builder + * + */ + public Builder helps(List helps) { + return helps(Output.of(helps)); + } + + /** + * @param helps (Output) + * A nested object resource. + * Structure is documented below. + * + * @return builder + * + */ + public Builder helps(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs... helps) { + return helps(List.of(helps)); + } + + /** + * @param localizedMessages (Output) + * A nested object resource. + * Structure is documented below. + * + * @return builder + * + */ + public Builder localizedMessages(@Nullable Output> localizedMessages) { + $.localizedMessages = localizedMessages; + return this; + } + + /** + * @param localizedMessages (Output) + * A nested object resource. + * Structure is documented below. + * + * @return builder + * + */ + public Builder localizedMessages(List localizedMessages) { + return localizedMessages(Output.of(localizedMessages)); + } + + /** + * @param localizedMessages (Output) + * A nested object resource. + * Structure is documented below. + * + * @return builder + * + */ + public Builder localizedMessages(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs... localizedMessages) { + return localizedMessages(List.of(localizedMessages)); + } + + /** + * @param quotaInfos (Output) + * A nested object resource. + * Structure is documented below. + * + * @return builder + * + */ + public Builder quotaInfos(@Nullable Output> quotaInfos) { + $.quotaInfos = quotaInfos; + return this; + } + + /** + * @param quotaInfos (Output) + * A nested object resource. + * Structure is documented below. + * + * @return builder + * + */ + public Builder quotaInfos(List quotaInfos) { + return quotaInfos(Output.of(quotaInfos)); + } + + /** + * @param quotaInfos (Output) + * A nested object resource. + * Structure is documented below. + * + * @return builder + * + */ + public Builder quotaInfos(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs... quotaInfos) { + return quotaInfos(List.of(quotaInfos)); + } + + public RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs.java new file mode 100644 index 0000000000..1a288b8346 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs.java @@ -0,0 +1,170 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs extends com.pulumi.resources.ResourceArgs { + + public static final RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs Empty = new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs(); + + /** + * (Output) + * 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". + * + */ + @Import(name="domain") + private @Nullable Output domain; + + /** + * @return (Output) + * 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". + * + */ + public Optional> domain() { + return Optional.ofNullable(this.domain); + } + + /** + * (Output) + * Additional structured details about this error. + * + */ + @Import(name="metadatas") + private @Nullable Output> metadatas; + + /** + * @return (Output) + * Additional structured details about this error. + * + */ + public Optional>> metadatas() { + return Optional.ofNullable(this.metadatas); + } + + /** + * (Output) + * 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. + * + */ + @Import(name="reason") + private @Nullable Output reason; + + /** + * @return (Output) + * 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. + * + */ + public Optional> reason() { + return Optional.ofNullable(this.reason); + } + + private RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs() {} + + private RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs $) { + this.domain = $.domain; + this.metadatas = $.metadatas; + this.reason = $.reason; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs $; + + public Builder() { + $ = new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs(); + } + + public Builder(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs defaults) { + $ = new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param domain (Output) + * 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". + * + * @return builder + * + */ + public Builder domain(@Nullable Output domain) { + $.domain = domain; + return this; + } + + /** + * @param domain (Output) + * 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". + * + * @return builder + * + */ + public Builder domain(String domain) { + return domain(Output.of(domain)); + } + + /** + * @param metadatas (Output) + * Additional structured details about this error. + * + * @return builder + * + */ + public Builder metadatas(@Nullable Output> metadatas) { + $.metadatas = metadatas; + return this; + } + + /** + * @param metadatas (Output) + * Additional structured details about this error. + * + * @return builder + * + */ + public Builder metadatas(Map metadatas) { + return metadatas(Output.of(metadatas)); + } + + /** + * @param reason (Output) + * 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. + * + * @return builder + * + */ + public Builder reason(@Nullable Output reason) { + $.reason = reason; + return this; + } + + /** + * @param reason (Output) + * 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. + * + * @return builder + * + */ + public Builder reason(String reason) { + return reason(Output.of(reason)); + } + + public RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs.java new file mode 100644 index 0000000000..a9526bc5fc --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs.java @@ -0,0 +1,104 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.compute.inputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs extends com.pulumi.resources.ResourceArgs { + + public static final RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs Empty = new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs(); + + /** + * (Output) + * A nested object resource. + * Structure is documented below. + * + */ + @Import(name="links") + private @Nullable Output> links; + + /** + * @return (Output) + * A nested object resource. + * Structure is documented below. + * + */ + public Optional>> links() { + return Optional.ofNullable(this.links); + } + + private RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs() {} + + private RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs $) { + this.links = $.links; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs $; + + public Builder() { + $ = new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs(); + } + + public Builder(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs defaults) { + $ = new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param links (Output) + * A nested object resource. + * Structure is documented below. + * + * @return builder + * + */ + public Builder links(@Nullable Output> links) { + $.links = links; + return this; + } + + /** + * @param links (Output) + * A nested object resource. + * Structure is documented below. + * + * @return builder + * + */ + public Builder links(List links) { + return links(Output.of(links)); + } + + /** + * @param links (Output) + * A nested object resource. + * Structure is documented below. + * + * @return builder + * + */ + public Builder links(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs... links) { + return links(List.of(links)); + } + + public RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs.java new file mode 100644 index 0000000000..07fdcae7a0 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs.java @@ -0,0 +1,124 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs extends com.pulumi.resources.ResourceArgs { + + public static final RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs Empty = new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs(); + + /** + * An optional description of this resize-request. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return An optional description of this resize-request. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * (Output) + * The URL of the link. + * + */ + @Import(name="url") + private @Nullable Output url; + + /** + * @return (Output) + * The URL of the link. + * + */ + public Optional> url() { + return Optional.ofNullable(this.url); + } + + private RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs() {} + + private RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs $) { + this.description = $.description; + this.url = $.url; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs $; + + public Builder() { + $ = new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs(); + } + + public Builder(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs defaults) { + $ = new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param description An optional description of this resize-request. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description An optional description of this resize-request. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param url (Output) + * The URL of the link. + * + * @return builder + * + */ + public Builder url(@Nullable Output url) { + $.url = url; + return this; + } + + /** + * @param url (Output) + * The URL of the link. + * + * @return builder + * + */ + public Builder url(String url) { + return url(Output.of(url)); + } + + public RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs.java new file mode 100644 index 0000000000..13f5903107 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs.java @@ -0,0 +1,128 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs extends com.pulumi.resources.ResourceArgs { + + public static final RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs Empty = new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs(); + + /** + * (Output) + * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + * + */ + @Import(name="locale") + private @Nullable Output locale; + + /** + * @return (Output) + * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + * + */ + public Optional> locale() { + return Optional.ofNullable(this.locale); + } + + /** + * (Output) + * The localized error message in the above locale. + * + */ + @Import(name="message") + private @Nullable Output message; + + /** + * @return (Output) + * The localized error message in the above locale. + * + */ + public Optional> message() { + return Optional.ofNullable(this.message); + } + + private RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs() {} + + private RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs $) { + this.locale = $.locale; + this.message = $.message; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs $; + + public Builder() { + $ = new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs(); + } + + public Builder(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs defaults) { + $ = new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param locale (Output) + * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + * + * @return builder + * + */ + public Builder locale(@Nullable Output locale) { + $.locale = locale; + return this; + } + + /** + * @param locale (Output) + * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + * + * @return builder + * + */ + public Builder locale(String locale) { + return locale(Output.of(locale)); + } + + /** + * @param message (Output) + * The localized error message in the above locale. + * + * @return builder + * + */ + public Builder message(@Nullable Output message) { + $.message = message; + return this; + } + + /** + * @param message (Output) + * The localized error message in the above locale. + * + * @return builder + * + */ + public Builder message(String message) { + return message(Output.of(message)); + } + + public RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs.java new file mode 100644 index 0000000000..f6e24cc0d5 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs.java @@ -0,0 +1,294 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Integer; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs extends com.pulumi.resources.ResourceArgs { + + public static final RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs Empty = new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs(); + + /** + * (Output) + * The map holding related quota dimensions + * + */ + @Import(name="dimensions") + private @Nullable Output> dimensions; + + /** + * @return (Output) + * The map holding related quota dimensions + * + */ + public Optional>> dimensions() { + return Optional.ofNullable(this.dimensions); + } + + /** + * (Output) + * Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + * + */ + @Import(name="futureLimit") + private @Nullable Output futureLimit; + + /** + * @return (Output) + * Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + * + */ + public Optional> futureLimit() { + return Optional.ofNullable(this.futureLimit); + } + + /** + * (Output) + * Current effective quota limit. The limit's unit depends on the quota type or metric. + * + */ + @Import(name="limit") + private @Nullable Output limit; + + /** + * @return (Output) + * Current effective quota limit. The limit's unit depends on the quota type or metric. + * + */ + public Optional> limit() { + return Optional.ofNullable(this.limit); + } + + /** + * (Output) + * The name of the quota limit. + * + */ + @Import(name="limitName") + private @Nullable Output limitName; + + /** + * @return (Output) + * The name of the quota limit. + * + */ + public Optional> limitName() { + return Optional.ofNullable(this.limitName); + } + + /** + * (Output) + * The Compute Engine quota metric name. + * + */ + @Import(name="metricName") + private @Nullable Output metricName; + + /** + * @return (Output) + * The Compute Engine quota metric name. + * + */ + public Optional> metricName() { + return Optional.ofNullable(this.metricName); + } + + /** + * (Output) + * Rollout status of the future quota limit. + * + */ + @Import(name="rolloutStatus") + private @Nullable Output rolloutStatus; + + /** + * @return (Output) + * Rollout status of the future quota limit. + * + */ + public Optional> rolloutStatus() { + return Optional.ofNullable(this.rolloutStatus); + } + + private RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs() {} + + private RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs $) { + this.dimensions = $.dimensions; + this.futureLimit = $.futureLimit; + this.limit = $.limit; + this.limitName = $.limitName; + this.metricName = $.metricName; + this.rolloutStatus = $.rolloutStatus; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs $; + + public Builder() { + $ = new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs(); + } + + public Builder(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs defaults) { + $ = new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param dimensions (Output) + * The map holding related quota dimensions + * + * @return builder + * + */ + public Builder dimensions(@Nullable Output> dimensions) { + $.dimensions = dimensions; + return this; + } + + /** + * @param dimensions (Output) + * The map holding related quota dimensions + * + * @return builder + * + */ + public Builder dimensions(Map dimensions) { + return dimensions(Output.of(dimensions)); + } + + /** + * @param futureLimit (Output) + * Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + * + * @return builder + * + */ + public Builder futureLimit(@Nullable Output futureLimit) { + $.futureLimit = futureLimit; + return this; + } + + /** + * @param futureLimit (Output) + * Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + * + * @return builder + * + */ + public Builder futureLimit(Integer futureLimit) { + return futureLimit(Output.of(futureLimit)); + } + + /** + * @param limit (Output) + * Current effective quota limit. The limit's unit depends on the quota type or metric. + * + * @return builder + * + */ + public Builder limit(@Nullable Output limit) { + $.limit = limit; + return this; + } + + /** + * @param limit (Output) + * Current effective quota limit. The limit's unit depends on the quota type or metric. + * + * @return builder + * + */ + public Builder limit(Integer limit) { + return limit(Output.of(limit)); + } + + /** + * @param limitName (Output) + * The name of the quota limit. + * + * @return builder + * + */ + public Builder limitName(@Nullable Output limitName) { + $.limitName = limitName; + return this; + } + + /** + * @param limitName (Output) + * The name of the quota limit. + * + * @return builder + * + */ + public Builder limitName(String limitName) { + return limitName(Output.of(limitName)); + } + + /** + * @param metricName (Output) + * The Compute Engine quota metric name. + * + * @return builder + * + */ + public Builder metricName(@Nullable Output metricName) { + $.metricName = metricName; + return this; + } + + /** + * @param metricName (Output) + * The Compute Engine quota metric name. + * + * @return builder + * + */ + public Builder metricName(String metricName) { + return metricName(Output.of(metricName)); + } + + /** + * @param rolloutStatus (Output) + * Rollout status of the future quota limit. + * + * @return builder + * + */ + public Builder rolloutStatus(@Nullable Output rolloutStatus) { + $.rolloutStatus = rolloutStatus; + return this; + } + + /** + * @param rolloutStatus (Output) + * Rollout status of the future quota limit. + * + * @return builder + * + */ + public Builder rolloutStatus(String rolloutStatus) { + return rolloutStatus(Output.of(rolloutStatus)); + } + + public RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionSecurityPolicyRuleArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionSecurityPolicyRuleArgs.java new file mode 100644 index 0000000000..0881b0551c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionSecurityPolicyRuleArgs.java @@ -0,0 +1,435 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.gcp.compute.inputs.RegionSecurityPolicyRuleMatchArgs; +import com.pulumi.gcp.compute.inputs.RegionSecurityPolicyRuleNetworkMatchArgs; +import com.pulumi.gcp.compute.inputs.RegionSecurityPolicyRulePreconfiguredWafConfigArgs; +import com.pulumi.gcp.compute.inputs.RegionSecurityPolicyRuleRateLimitOptionsArgs; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class RegionSecurityPolicyRuleArgs extends com.pulumi.resources.ResourceArgs { + + public static final RegionSecurityPolicyRuleArgs Empty = new RegionSecurityPolicyRuleArgs(); + + /** + * The Action to perform when the rule is matched. The following are the valid actions: + * * allow: allow access to target. + * * deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for STATUS are 403, 404, and 502. + * * rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rateLimitOptions to be set. + * * redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. This action is only supported in Global Security Policies of type CLOUD_ARMOR. + * * throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rateLimitOptions to be set for this. + * + */ + @Import(name="action", required=true) + private Output action; + + /** + * @return The Action to perform when the rule is matched. The following are the valid actions: + * * allow: allow access to target. + * * deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for STATUS are 403, 404, and 502. + * * rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rateLimitOptions to be set. + * * redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. This action is only supported in Global Security Policies of type CLOUD_ARMOR. + * * throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rateLimitOptions to be set for this. + * + */ + public Output action() { + return this.action; + } + + /** + * An optional description of this resource. Provide this property when you create the resource. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return An optional description of this resource. Provide this property when you create the resource. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * A match condition that incoming traffic is evaluated against. + * If it evaluates to true, the corresponding 'action' is enforced. + * Structure is documented below. + * + */ + @Import(name="match") + private @Nullable Output match; + + /** + * @return A match condition that incoming traffic is evaluated against. + * If it evaluates to true, the corresponding 'action' is enforced. + * Structure is documented below. + * + */ + public Optional> match() { + return Optional.ofNullable(this.match); + } + + /** + * A match condition that incoming packets are evaluated against for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding 'action' is enforced. + * The match criteria for a rule consists of built-in match fields (like 'srcIpRanges') and potentially multiple user-defined match fields ('userDefinedFields'). + * Field values may be extracted directly from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may not be present in every packet (e.g. 'srcPorts'). A user-defined field is only present if the base header is found in the packet and the entire field is in bounds. + * Each match field may specify which values can match it, listing one or more ranges, prefixes, or exact values that are considered a match for the field. A field value must be present in order to match a specified match field. If no match values are specified for a match field, then any field value is considered to match it, and it's not required to be present. For strings specifying '*' is also equivalent to match all. + * For a packet to match a rule, all specified match fields must match the corresponding field values derived from the packet. + * Example: + * networkMatch: srcIpRanges: - "192.0.2.0/24" - "198.51.100.0/24" userDefinedFields: - name: "ipv4_fragment_offset" values: - "1-0x1fff" + * The above match condition matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a user-defined field named "ipv4_fragment_offset" with a value between 1 and 0x1fff inclusive + * Structure is documented below. + * + */ + @Import(name="networkMatch") + private @Nullable Output networkMatch; + + /** + * @return A match condition that incoming packets are evaluated against for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding 'action' is enforced. + * The match criteria for a rule consists of built-in match fields (like 'srcIpRanges') and potentially multiple user-defined match fields ('userDefinedFields'). + * Field values may be extracted directly from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may not be present in every packet (e.g. 'srcPorts'). A user-defined field is only present if the base header is found in the packet and the entire field is in bounds. + * Each match field may specify which values can match it, listing one or more ranges, prefixes, or exact values that are considered a match for the field. A field value must be present in order to match a specified match field. If no match values are specified for a match field, then any field value is considered to match it, and it's not required to be present. For strings specifying '*' is also equivalent to match all. + * For a packet to match a rule, all specified match fields must match the corresponding field values derived from the packet. + * Example: + * networkMatch: srcIpRanges: - "192.0.2.0/24" - "198.51.100.0/24" userDefinedFields: - name: "ipv4_fragment_offset" values: - "1-0x1fff" + * The above match condition matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a user-defined field named "ipv4_fragment_offset" with a value between 1 and 0x1fff inclusive + * Structure is documented below. + * + */ + public Optional> networkMatch() { + return Optional.ofNullable(this.networkMatch); + } + + /** + * Preconfigured WAF configuration to be applied for the rule. + * If the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect. + * Structure is documented below. + * + */ + @Import(name="preconfiguredWafConfig") + private @Nullable Output preconfiguredWafConfig; + + /** + * @return Preconfigured WAF configuration to be applied for the rule. + * If the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect. + * Structure is documented below. + * + */ + public Optional> preconfiguredWafConfig() { + return Optional.ofNullable(this.preconfiguredWafConfig); + } + + /** + * If set to true, the specified action is not enforced. + * + */ + @Import(name="preview") + private @Nullable Output preview; + + /** + * @return If set to true, the specified action is not enforced. + * + */ + public Optional> preview() { + return Optional.ofNullable(this.preview); + } + + /** + * An integer indicating the priority of a rule in the list. + * The priority must be a positive value between 0 and 2147483647. + * Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority. + * + */ + @Import(name="priority", required=true) + private Output priority; + + /** + * @return An integer indicating the priority of a rule in the list. + * The priority must be a positive value between 0 and 2147483647. + * Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority. + * + */ + public Output priority() { + return this.priority; + } + + /** + * Must be specified if the action is "rate_based_ban" or "throttle". Cannot be specified for any other actions. + * Structure is documented below. + * + */ + @Import(name="rateLimitOptions") + private @Nullable Output rateLimitOptions; + + /** + * @return Must be specified if the action is "rate_based_ban" or "throttle". Cannot be specified for any other actions. + * Structure is documented below. + * + */ + public Optional> rateLimitOptions() { + return Optional.ofNullable(this.rateLimitOptions); + } + + private RegionSecurityPolicyRuleArgs() {} + + private RegionSecurityPolicyRuleArgs(RegionSecurityPolicyRuleArgs $) { + this.action = $.action; + this.description = $.description; + this.match = $.match; + this.networkMatch = $.networkMatch; + this.preconfiguredWafConfig = $.preconfiguredWafConfig; + this.preview = $.preview; + this.priority = $.priority; + this.rateLimitOptions = $.rateLimitOptions; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(RegionSecurityPolicyRuleArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private RegionSecurityPolicyRuleArgs $; + + public Builder() { + $ = new RegionSecurityPolicyRuleArgs(); + } + + public Builder(RegionSecurityPolicyRuleArgs defaults) { + $ = new RegionSecurityPolicyRuleArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param action The Action to perform when the rule is matched. The following are the valid actions: + * * allow: allow access to target. + * * deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for STATUS are 403, 404, and 502. + * * rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rateLimitOptions to be set. + * * redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. This action is only supported in Global Security Policies of type CLOUD_ARMOR. + * * throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rateLimitOptions to be set for this. + * + * @return builder + * + */ + public Builder action(Output action) { + $.action = action; + return this; + } + + /** + * @param action The Action to perform when the rule is matched. The following are the valid actions: + * * allow: allow access to target. + * * deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for STATUS are 403, 404, and 502. + * * rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rateLimitOptions to be set. + * * redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. This action is only supported in Global Security Policies of type CLOUD_ARMOR. + * * throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rateLimitOptions to be set for this. + * + * @return builder + * + */ + public Builder action(String action) { + return action(Output.of(action)); + } + + /** + * @param description An optional description of this resource. Provide this property when you create the resource. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description An optional description of this resource. Provide this property when you create the resource. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param match A match condition that incoming traffic is evaluated against. + * If it evaluates to true, the corresponding 'action' is enforced. + * Structure is documented below. + * + * @return builder + * + */ + public Builder match(@Nullable Output match) { + $.match = match; + return this; + } + + /** + * @param match A match condition that incoming traffic is evaluated against. + * If it evaluates to true, the corresponding 'action' is enforced. + * Structure is documented below. + * + * @return builder + * + */ + public Builder match(RegionSecurityPolicyRuleMatchArgs match) { + return match(Output.of(match)); + } + + /** + * @param networkMatch A match condition that incoming packets are evaluated against for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding 'action' is enforced. + * The match criteria for a rule consists of built-in match fields (like 'srcIpRanges') and potentially multiple user-defined match fields ('userDefinedFields'). + * Field values may be extracted directly from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may not be present in every packet (e.g. 'srcPorts'). A user-defined field is only present if the base header is found in the packet and the entire field is in bounds. + * Each match field may specify which values can match it, listing one or more ranges, prefixes, or exact values that are considered a match for the field. A field value must be present in order to match a specified match field. If no match values are specified for a match field, then any field value is considered to match it, and it's not required to be present. For strings specifying '*' is also equivalent to match all. + * For a packet to match a rule, all specified match fields must match the corresponding field values derived from the packet. + * Example: + * networkMatch: srcIpRanges: - "192.0.2.0/24" - "198.51.100.0/24" userDefinedFields: - name: "ipv4_fragment_offset" values: - "1-0x1fff" + * The above match condition matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a user-defined field named "ipv4_fragment_offset" with a value between 1 and 0x1fff inclusive + * Structure is documented below. + * + * @return builder + * + */ + public Builder networkMatch(@Nullable Output networkMatch) { + $.networkMatch = networkMatch; + return this; + } + + /** + * @param networkMatch A match condition that incoming packets are evaluated against for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding 'action' is enforced. + * The match criteria for a rule consists of built-in match fields (like 'srcIpRanges') and potentially multiple user-defined match fields ('userDefinedFields'). + * Field values may be extracted directly from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may not be present in every packet (e.g. 'srcPorts'). A user-defined field is only present if the base header is found in the packet and the entire field is in bounds. + * Each match field may specify which values can match it, listing one or more ranges, prefixes, or exact values that are considered a match for the field. A field value must be present in order to match a specified match field. If no match values are specified for a match field, then any field value is considered to match it, and it's not required to be present. For strings specifying '*' is also equivalent to match all. + * For a packet to match a rule, all specified match fields must match the corresponding field values derived from the packet. + * Example: + * networkMatch: srcIpRanges: - "192.0.2.0/24" - "198.51.100.0/24" userDefinedFields: - name: "ipv4_fragment_offset" values: - "1-0x1fff" + * The above match condition matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a user-defined field named "ipv4_fragment_offset" with a value between 1 and 0x1fff inclusive + * Structure is documented below. + * + * @return builder + * + */ + public Builder networkMatch(RegionSecurityPolicyRuleNetworkMatchArgs networkMatch) { + return networkMatch(Output.of(networkMatch)); + } + + /** + * @param preconfiguredWafConfig Preconfigured WAF configuration to be applied for the rule. + * If the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect. + * Structure is documented below. + * + * @return builder + * + */ + public Builder preconfiguredWafConfig(@Nullable Output preconfiguredWafConfig) { + $.preconfiguredWafConfig = preconfiguredWafConfig; + return this; + } + + /** + * @param preconfiguredWafConfig Preconfigured WAF configuration to be applied for the rule. + * If the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect. + * Structure is documented below. + * + * @return builder + * + */ + public Builder preconfiguredWafConfig(RegionSecurityPolicyRulePreconfiguredWafConfigArgs preconfiguredWafConfig) { + return preconfiguredWafConfig(Output.of(preconfiguredWafConfig)); + } + + /** + * @param preview If set to true, the specified action is not enforced. + * + * @return builder + * + */ + public Builder preview(@Nullable Output preview) { + $.preview = preview; + return this; + } + + /** + * @param preview If set to true, the specified action is not enforced. + * + * @return builder + * + */ + public Builder preview(Boolean preview) { + return preview(Output.of(preview)); + } + + /** + * @param priority An integer indicating the priority of a rule in the list. + * The priority must be a positive value between 0 and 2147483647. + * Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority. + * + * @return builder + * + */ + public Builder priority(Output priority) { + $.priority = priority; + return this; + } + + /** + * @param priority An integer indicating the priority of a rule in the list. + * The priority must be a positive value between 0 and 2147483647. + * Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority. + * + * @return builder + * + */ + public Builder priority(Integer priority) { + return priority(Output.of(priority)); + } + + /** + * @param rateLimitOptions Must be specified if the action is "rate_based_ban" or "throttle". Cannot be specified for any other actions. + * Structure is documented below. + * + * @return builder + * + */ + public Builder rateLimitOptions(@Nullable Output rateLimitOptions) { + $.rateLimitOptions = rateLimitOptions; + return this; + } + + /** + * @param rateLimitOptions Must be specified if the action is "rate_based_ban" or "throttle". Cannot be specified for any other actions. + * Structure is documented below. + * + * @return builder + * + */ + public Builder rateLimitOptions(RegionSecurityPolicyRuleRateLimitOptionsArgs rateLimitOptions) { + return rateLimitOptions(Output.of(rateLimitOptions)); + } + + public RegionSecurityPolicyRuleArgs build() { + if ($.action == null) { + throw new MissingRequiredPropertyException("RegionSecurityPolicyRuleArgs", "action"); + } + if ($.priority == null) { + throw new MissingRequiredPropertyException("RegionSecurityPolicyRuleArgs", "priority"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionSecurityPolicyState.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionSecurityPolicyState.java index 7ba55af7ff..0643fc31a1 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionSecurityPolicyState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionSecurityPolicyState.java @@ -6,6 +6,7 @@ import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import com.pulumi.gcp.compute.inputs.RegionSecurityPolicyDdosProtectionConfigArgs; +import com.pulumi.gcp.compute.inputs.RegionSecurityPolicyRuleArgs; import com.pulumi.gcp.compute.inputs.RegionSecurityPolicyUserDefinedFieldArgs; import java.lang.String; import java.util.List; @@ -137,6 +138,23 @@ public Optional> region() { return Optional.ofNullable(this.region); } + /** + * The set of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added. + * Structure is documented below. + * + */ + @Import(name="rules") + private @Nullable Output> rules; + + /** + * @return The set of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added. + * Structure is documented below. + * + */ + public Optional>> rules() { + return Optional.ofNullable(this.rules); + } + /** * Server-defined URL for the resource. * @@ -223,6 +241,7 @@ private RegionSecurityPolicyState(RegionSecurityPolicyState $) { this.policyId = $.policyId; this.project = $.project; this.region = $.region; + this.rules = $.rules; this.selfLink = $.selfLink; this.selfLinkWithPolicyId = $.selfLinkWithPolicyId; this.type = $.type; @@ -408,6 +427,40 @@ public Builder region(String region) { return region(Output.of(region)); } + /** + * @param rules The set of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added. + * Structure is documented below. + * + * @return builder + * + */ + public Builder rules(@Nullable Output> rules) { + $.rules = rules; + return this; + } + + /** + * @param rules The set of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added. + * Structure is documented below. + * + * @return builder + * + */ + public Builder rules(List rules) { + return rules(Output.of(rules)); + } + + /** + * @param rules The set of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added. + * Structure is documented below. + * + * @return builder + * + */ + public Builder rules(RegionSecurityPolicyRuleArgs... rules) { + return rules(List.of(rules)); + } + /** * @param selfLink Server-defined URL for the resource. * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionSecurityPolicyUserDefinedFieldArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionSecurityPolicyUserDefinedFieldArgs.java index d7d51053c6..f2623f7cae 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionSecurityPolicyUserDefinedFieldArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionSecurityPolicyUserDefinedFieldArgs.java @@ -62,14 +62,14 @@ public Optional> mask() { } /** - * The name of this field. Must be unique within the policy. + * Name of the user-defined field, as given in the definition. * */ @Import(name="name") private @Nullable Output name; /** - * @return The name of this field. Must be unique within the policy. + * @return Name of the user-defined field, as given in the definition. * */ public Optional> name() { @@ -191,7 +191,7 @@ public Builder mask(String mask) { } /** - * @param name The name of this field. Must be unique within the policy. + * @param name Name of the user-defined field, as given in the definition. * * @return builder * @@ -202,7 +202,7 @@ public Builder name(@Nullable Output name) { } /** - * @param name The name of this field. Must be unique within the policy. + * @param name Name of the user-defined field, as given in the definition. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RouterPeerCustomLearnedIpRangeArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RouterPeerCustomLearnedIpRangeArgs.java index c0dff646e8..aeef1a11f0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RouterPeerCustomLearnedIpRangeArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RouterPeerCustomLearnedIpRangeArgs.java @@ -15,7 +15,7 @@ public final class RouterPeerCustomLearnedIpRangeArgs extends com.pulumi.resourc public static final RouterPeerCustomLearnedIpRangeArgs Empty = new RouterPeerCustomLearnedIpRangeArgs(); /** - * The IP range to advertise. The value must be a + * The IP range to learn. The value must be a * CIDR-formatted string. * */ @@ -23,7 +23,7 @@ public final class RouterPeerCustomLearnedIpRangeArgs extends com.pulumi.resourc private Output range; /** - * @return The IP range to advertise. The value must be a + * @return The IP range to learn. The value must be a * CIDR-formatted string. * */ @@ -56,7 +56,7 @@ public Builder(RouterPeerCustomLearnedIpRangeArgs defaults) { } /** - * @param range The IP range to advertise. The value must be a + * @param range The IP range to learn. The value must be a * CIDR-formatted string. * * @return builder @@ -68,7 +68,7 @@ public Builder range(Output range) { } /** - * @param range The IP range to advertise. The value must be a + * @param range The IP range to learn. The value must be a * CIDR-formatted string. * * @return builder diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RouterPeerState.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RouterPeerState.java index 1b33aeb5db..9d202edffb 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RouterPeerState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RouterPeerState.java @@ -138,16 +138,20 @@ public Optional> bfd() { } /** - * The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a - * subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + * The custom learned route IP address range. Must be a valid CIDR-formatted prefix. + * If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, + * a /32 singular IP address range, and, for IPv6, /128. + * Structure is documented below. * */ @Import(name="customLearnedIpRanges") private @Nullable Output> customLearnedIpRanges; /** - * @return The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a - * subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + * @return The custom learned route IP address range. Must be a valid CIDR-formatted prefix. + * If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, + * a /32 singular IP address range, and, for IPv6, /128. + * Structure is documented below. * */ public Optional>> customLearnedIpRanges() { @@ -155,18 +159,20 @@ public Optional>> customLearnedI } /** - * The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route - * ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a - * priority of 100 to the ranges. + * The user-defined custom learned route priority for a BGP session. + * This value is applied to all custom learned route ranges for the session. + * You can choose a value from 0 to 65335. If you don't provide a value, + * Google Cloud assigns a priority of 100 to the ranges. * */ @Import(name="customLearnedRoutePriority") private @Nullable Output customLearnedRoutePriority; /** - * @return The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route - * ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a - * priority of 100 to the ranges. + * @return The user-defined custom learned route priority for a BGP session. + * This value is applied to all custom learned route ranges for the session. + * You can choose a value from 0 to 65335. If you don't provide a value, + * Google Cloud assigns a priority of 100 to the ranges. * */ public Optional> customLearnedRoutePriority() { @@ -773,8 +779,10 @@ public Builder bfd(RouterPeerBfdArgs bfd) { } /** - * @param customLearnedIpRanges The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a - * subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + * @param customLearnedIpRanges The custom learned route IP address range. Must be a valid CIDR-formatted prefix. + * If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, + * a /32 singular IP address range, and, for IPv6, /128. + * Structure is documented below. * * @return builder * @@ -785,8 +793,10 @@ public Builder customLearnedIpRanges(@Nullable Output cu } /** - * @param customLearnedIpRanges The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a - * subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + * @param customLearnedIpRanges The custom learned route IP address range. Must be a valid CIDR-formatted prefix. + * If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, + * a /32 singular IP address range, and, for IPv6, /128. + * Structure is documented below. * * @return builder * @@ -807,9 +819,10 @@ public Builder customLearnedIpRanges(RouterPeerCustomLearnedIpRangeArgs... custo } /** - * @param customLearnedRoutePriority The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route - * ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a - * priority of 100 to the ranges. + * @param customLearnedRoutePriority The user-defined custom learned route priority for a BGP session. + * This value is applied to all custom learned route ranges for the session. + * You can choose a value from 0 to 65335. If you don't provide a value, + * Google Cloud assigns a priority of 100 to the ranges. * * @return builder * @@ -820,9 +833,10 @@ public Builder customLearnedRoutePriority(@Nullable Output customLearne } /** - * @param customLearnedRoutePriority The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route - * ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a - * priority of 100 to the ranges. + * @param customLearnedRoutePriority The user-defined custom learned route priority for a BGP session. + * This value is applied to all custom learned route ranges for the session. + * You can choose a value from 0 to 65335. If you don't provide a value, + * Google Cloud assigns a priority of 100 to the ranges. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/AutoscalerAutoscalingPolicyScaleDownControl.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/AutoscalerAutoscalingPolicyScaleDownControl.java index 33922de89f..08e7378765 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/AutoscalerAutoscalingPolicyScaleDownControl.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/AutoscalerAutoscalingPolicyScaleDownControl.java @@ -13,7 +13,7 @@ @CustomType public final class AutoscalerAutoscalingPolicyScaleDownControl { /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -27,7 +27,7 @@ public final class AutoscalerAutoscalingPolicyScaleDownControl { private AutoscalerAutoscalingPolicyScaleDownControl() {} /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/AutoscalerAutoscalingPolicyScaleInControl.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/AutoscalerAutoscalingPolicyScaleInControl.java index 1888f9e826..c22e353b3b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/AutoscalerAutoscalingPolicyScaleInControl.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/AutoscalerAutoscalingPolicyScaleInControl.java @@ -13,7 +13,7 @@ @CustomType public final class AutoscalerAutoscalingPolicyScaleInControl { /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -27,7 +27,7 @@ public final class AutoscalerAutoscalingPolicyScaleInControl { private AutoscalerAutoscalingPolicyScaleInControl() {} /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/FirewallPolicyRuleMatch.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/FirewallPolicyRuleMatch.java index 16788ad97d..9f68de00ec 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/FirewallPolicyRuleMatch.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/FirewallPolicyRuleMatch.java @@ -14,94 +14,95 @@ @CustomType public final class FirewallPolicyRuleMatch { /** - * @return Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. Destination address groups is only supported in Egress rules. + * @return Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. * */ private @Nullable List destAddressGroups; /** - * @return Domain names that will be used to match against the resolved domain name of destination of traffic. Can only be specified if DIRECTION is egress. + * @return Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100. * */ private @Nullable List destFqdns; /** - * @return CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 256. + * @return CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000. * */ private @Nullable List destIpRanges; /** - * @return The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is egress. + * @return Region codes whose IP addresses will be used to match for destination of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of dest region codes allowed is 5000. * */ private @Nullable List destRegionCodes; /** - * @return Name of the Google Cloud Threat Intelligence list. + * @return Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination. * */ private @Nullable List destThreatIntelligences; /** * @return Pairs of IP protocols and ports that the rule should match. + * Structure is documented below. * */ private List layer4Configs; /** - * @return Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. Source address groups is only supported in Ingress rules. + * @return Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. * */ private @Nullable List srcAddressGroups; /** - * @return Domain names that will be used to match against the resolved domain name of source of traffic. Can only be specified if DIRECTION is ingress. + * @return Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100. * */ private @Nullable List srcFqdns; /** - * @return CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 256. + * @return CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000. * */ private @Nullable List srcIpRanges; /** - * @return The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is ingress. + * @return Region codes whose IP addresses will be used to match for source of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of source region codes allowed is 5000. * */ private @Nullable List srcRegionCodes; /** - * @return Name of the Google Cloud Threat Intelligence list. + * @return Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source. * - * The `layer4_configs` block supports: + * <a name="nested_layer4_configs"></a>The `layer4_configs` block supports: * */ private @Nullable List srcThreatIntelligences; private FirewallPolicyRuleMatch() {} /** - * @return Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. Destination address groups is only supported in Egress rules. + * @return Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. * */ public List destAddressGroups() { return this.destAddressGroups == null ? List.of() : this.destAddressGroups; } /** - * @return Domain names that will be used to match against the resolved domain name of destination of traffic. Can only be specified if DIRECTION is egress. + * @return Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100. * */ public List destFqdns() { return this.destFqdns == null ? List.of() : this.destFqdns; } /** - * @return CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 256. + * @return CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000. * */ public List destIpRanges() { return this.destIpRanges == null ? List.of() : this.destIpRanges; } /** - * @return The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is egress. + * @return Region codes whose IP addresses will be used to match for destination of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of dest region codes allowed is 5000. * */ public List destRegionCodes() { return this.destRegionCodes == null ? List.of() : this.destRegionCodes; } /** - * @return Name of the Google Cloud Threat Intelligence list. + * @return Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination. * */ public List destThreatIntelligences() { @@ -109,43 +110,44 @@ public List destThreatIntelligences() { } /** * @return Pairs of IP protocols and ports that the rule should match. + * Structure is documented below. * */ public List layer4Configs() { return this.layer4Configs; } /** - * @return Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. Source address groups is only supported in Ingress rules. + * @return Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. * */ public List srcAddressGroups() { return this.srcAddressGroups == null ? List.of() : this.srcAddressGroups; } /** - * @return Domain names that will be used to match against the resolved domain name of source of traffic. Can only be specified if DIRECTION is ingress. + * @return Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100. * */ public List srcFqdns() { return this.srcFqdns == null ? List.of() : this.srcFqdns; } /** - * @return CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 256. + * @return CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000. * */ public List srcIpRanges() { return this.srcIpRanges == null ? List.of() : this.srcIpRanges; } /** - * @return The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is ingress. + * @return Region codes whose IP addresses will be used to match for source of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of source region codes allowed is 5000. * */ public List srcRegionCodes() { return this.srcRegionCodes == null ? List.of() : this.srcRegionCodes; } /** - * @return Name of the Google Cloud Threat Intelligence list. + * @return Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source. * - * The `layer4_configs` block supports: + * <a name="nested_layer4_configs"></a>The `layer4_configs` block supports: * */ public List srcThreatIntelligences() { diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/FirewallPolicyRuleMatchLayer4Config.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/FirewallPolicyRuleMatchLayer4Config.java index 09c2ecf701..d16245f6aa 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/FirewallPolicyRuleMatchLayer4Config.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/FirewallPolicyRuleMatchLayer4Config.java @@ -13,26 +13,30 @@ @CustomType public final class FirewallPolicyRuleMatchLayer4Config { /** - * @return The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (`tcp`, `udp`, `icmp`, `esp`, `ah`, `ipip`, `sctp`), or the IP protocol number. + * @return The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. + * This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number. * */ private String ipProtocol; /** - * @return An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ``. + * @return An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. + * Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. * */ private @Nullable List ports; private FirewallPolicyRuleMatchLayer4Config() {} /** - * @return The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (`tcp`, `udp`, `icmp`, `esp`, `ah`, `ipip`, `sctp`), or the IP protocol number. + * @return The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. + * This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number. * */ public String ipProtocol() { return this.ipProtocol; } /** - * @return An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ``. + * @return An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. + * Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. * */ public List ports() { diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetRegionInstanceGroupManagerInstanceFlexibilityPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetRegionInstanceGroupManagerInstanceFlexibilityPolicy.java new file mode 100644 index 0000000000..43457a9144 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetRegionInstanceGroupManagerInstanceFlexibilityPolicy.java @@ -0,0 +1,62 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.gcp.compute.outputs.GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection; +import java.util.List; +import java.util.Objects; + +@CustomType +public final class GetRegionInstanceGroupManagerInstanceFlexibilityPolicy { + /** + * @return Named instance selections configuring properties that the group will use when creating new VMs. + * + */ + private List instanceSelections; + + private GetRegionInstanceGroupManagerInstanceFlexibilityPolicy() {} + /** + * @return Named instance selections configuring properties that the group will use when creating new VMs. + * + */ + public List instanceSelections() { + return this.instanceSelections; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetRegionInstanceGroupManagerInstanceFlexibilityPolicy defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private List instanceSelections; + public Builder() {} + public Builder(GetRegionInstanceGroupManagerInstanceFlexibilityPolicy defaults) { + Objects.requireNonNull(defaults); + this.instanceSelections = defaults.instanceSelections; + } + + @CustomType.Setter + public Builder instanceSelections(List instanceSelections) { + if (instanceSelections == null) { + throw new MissingRequiredPropertyException("GetRegionInstanceGroupManagerInstanceFlexibilityPolicy", "instanceSelections"); + } + this.instanceSelections = instanceSelections; + return this; + } + public Builder instanceSelections(GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection... instanceSelections) { + return instanceSelections(List.of(instanceSelections)); + } + public GetRegionInstanceGroupManagerInstanceFlexibilityPolicy build() { + final var _resultValue = new GetRegionInstanceGroupManagerInstanceFlexibilityPolicy(); + _resultValue.instanceSelections = instanceSelections; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection.java new file mode 100644 index 0000000000..082b55af3f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection.java @@ -0,0 +1,109 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +@CustomType +public final class GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection { + /** + * @return Full machine-type names, e.g. "n1-standard-16" + * + */ + private List machineTypes; + /** + * @return The name of the instance group. Either `name` or `self_link` must be provided. + * + */ + private String name; + /** + * @return Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference. + * + */ + private Integer rank; + + private GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection() {} + /** + * @return Full machine-type names, e.g. "n1-standard-16" + * + */ + public List machineTypes() { + return this.machineTypes; + } + /** + * @return The name of the instance group. Either `name` or `self_link` must be provided. + * + */ + public String name() { + return this.name; + } + /** + * @return Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference. + * + */ + public Integer rank() { + return this.rank; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private List machineTypes; + private String name; + private Integer rank; + public Builder() {} + public Builder(GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection defaults) { + Objects.requireNonNull(defaults); + this.machineTypes = defaults.machineTypes; + this.name = defaults.name; + this.rank = defaults.rank; + } + + @CustomType.Setter + public Builder machineTypes(List machineTypes) { + if (machineTypes == null) { + throw new MissingRequiredPropertyException("GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection", "machineTypes"); + } + this.machineTypes = machineTypes; + return this; + } + public Builder machineTypes(String... machineTypes) { + return machineTypes(List.of(machineTypes)); + } + @CustomType.Setter + public Builder name(String name) { + if (name == null) { + throw new MissingRequiredPropertyException("GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection", "name"); + } + this.name = name; + return this; + } + @CustomType.Setter + public Builder rank(Integer rank) { + if (rank == null) { + throw new MissingRequiredPropertyException("GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection", "rank"); + } + this.rank = rank; + return this; + } + public GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection build() { + final var _resultValue = new GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection(); + _resultValue.machineTypes = machineTypes; + _resultValue.name = name; + _resultValue.rank = rank; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetRegionInstanceGroupManagerResult.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetRegionInstanceGroupManagerResult.java index 44924f2b25..f542534b96 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetRegionInstanceGroupManagerResult.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetRegionInstanceGroupManagerResult.java @@ -7,6 +7,7 @@ import com.pulumi.exceptions.MissingRequiredPropertyException; import com.pulumi.gcp.compute.outputs.GetRegionInstanceGroupManagerAllInstancesConfig; import com.pulumi.gcp.compute.outputs.GetRegionInstanceGroupManagerAutoHealingPolicy; +import com.pulumi.gcp.compute.outputs.GetRegionInstanceGroupManagerInstanceFlexibilityPolicy; import com.pulumi.gcp.compute.outputs.GetRegionInstanceGroupManagerInstanceLifecyclePolicy; import com.pulumi.gcp.compute.outputs.GetRegionInstanceGroupManagerNamedPort; import com.pulumi.gcp.compute.outputs.GetRegionInstanceGroupManagerParam; @@ -40,6 +41,7 @@ public final class GetRegionInstanceGroupManagerResult { * */ private String id; + private List instanceFlexibilityPolicies; private String instanceGroup; private List instanceLifecyclePolicies; private String listManagedInstancesResults; @@ -95,6 +97,9 @@ public String fingerprint() { public String id() { return this.id; } + public List instanceFlexibilityPolicies() { + return this.instanceFlexibilityPolicies; + } public String instanceGroup() { return this.instanceGroup; } @@ -180,6 +185,7 @@ public static final class Builder { private List distributionPolicyZones; private String fingerprint; private String id; + private List instanceFlexibilityPolicies; private String instanceGroup; private List instanceLifecyclePolicies; private String listManagedInstancesResults; @@ -214,6 +220,7 @@ public Builder(GetRegionInstanceGroupManagerResult defaults) { this.distributionPolicyZones = defaults.distributionPolicyZones; this.fingerprint = defaults.fingerprint; this.id = defaults.id; + this.instanceFlexibilityPolicies = defaults.instanceFlexibilityPolicies; this.instanceGroup = defaults.instanceGroup; this.instanceLifecyclePolicies = defaults.instanceLifecyclePolicies; this.listManagedInstancesResults = defaults.listManagedInstancesResults; @@ -320,6 +327,17 @@ public Builder id(String id) { return this; } @CustomType.Setter + public Builder instanceFlexibilityPolicies(List instanceFlexibilityPolicies) { + if (instanceFlexibilityPolicies == null) { + throw new MissingRequiredPropertyException("GetRegionInstanceGroupManagerResult", "instanceFlexibilityPolicies"); + } + this.instanceFlexibilityPolicies = instanceFlexibilityPolicies; + return this; + } + public Builder instanceFlexibilityPolicies(GetRegionInstanceGroupManagerInstanceFlexibilityPolicy... instanceFlexibilityPolicies) { + return instanceFlexibilityPolicies(List.of(instanceFlexibilityPolicies)); + } + @CustomType.Setter public Builder instanceGroup(String instanceGroup) { if (instanceGroup == null) { throw new MissingRequiredPropertyException("GetRegionInstanceGroupManagerResult", "instanceGroup"); @@ -531,6 +549,7 @@ public GetRegionInstanceGroupManagerResult build() { _resultValue.distributionPolicyZones = distributionPolicyZones; _resultValue.fingerprint = fingerprint; _resultValue.id = id; + _resultValue.instanceFlexibilityPolicies = instanceFlexibilityPolicies; _resultValue.instanceGroup = instanceGroup; _resultValue.instanceLifecyclePolicies = instanceLifecyclePolicies; _resultValue.listManagedInstancesResults = listManagedInstancesResults; diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/NodeTemplateDisk.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/NodeTemplateDisk.java new file mode 100644 index 0000000000..7df204cea7 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/NodeTemplateDisk.java @@ -0,0 +1,100 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class NodeTemplateDisk { + /** + * @return Specifies the number of such disks. + * + */ + private @Nullable Integer diskCount; + /** + * @return Specifies the size of the disk in base-2 GB. + * + */ + private @Nullable Integer diskSizeGb; + /** + * @return Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be the name of the disk type and not its URL. + * + */ + private @Nullable String diskType; + + private NodeTemplateDisk() {} + /** + * @return Specifies the number of such disks. + * + */ + public Optional diskCount() { + return Optional.ofNullable(this.diskCount); + } + /** + * @return Specifies the size of the disk in base-2 GB. + * + */ + public Optional diskSizeGb() { + return Optional.ofNullable(this.diskSizeGb); + } + /** + * @return Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be the name of the disk type and not its URL. + * + */ + public Optional diskType() { + return Optional.ofNullable(this.diskType); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(NodeTemplateDisk defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Integer diskCount; + private @Nullable Integer diskSizeGb; + private @Nullable String diskType; + public Builder() {} + public Builder(NodeTemplateDisk defaults) { + Objects.requireNonNull(defaults); + this.diskCount = defaults.diskCount; + this.diskSizeGb = defaults.diskSizeGb; + this.diskType = defaults.diskType; + } + + @CustomType.Setter + public Builder diskCount(@Nullable Integer diskCount) { + + this.diskCount = diskCount; + return this; + } + @CustomType.Setter + public Builder diskSizeGb(@Nullable Integer diskSizeGb) { + + this.diskSizeGb = diskSizeGb; + return this; + } + @CustomType.Setter + public Builder diskType(@Nullable String diskType) { + + this.diskType = diskType; + return this; + } + public NodeTemplateDisk build() { + final var _resultValue = new NodeTemplateDisk(); + _resultValue.diskCount = diskCount; + _resultValue.diskSizeGb = diskSizeGb; + _resultValue.diskType = diskType; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionAutoscalerAutoscalingPolicyScaleDownControl.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionAutoscalerAutoscalingPolicyScaleDownControl.java index 7d0365e0ed..525090dd45 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionAutoscalerAutoscalingPolicyScaleDownControl.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionAutoscalerAutoscalingPolicyScaleDownControl.java @@ -13,7 +13,7 @@ @CustomType public final class RegionAutoscalerAutoscalingPolicyScaleDownControl { /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -27,7 +27,7 @@ public final class RegionAutoscalerAutoscalingPolicyScaleDownControl { private RegionAutoscalerAutoscalingPolicyScaleDownControl() {} /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionAutoscalerAutoscalingPolicyScaleInControl.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionAutoscalerAutoscalingPolicyScaleInControl.java index eb2198b1dc..4ac6715253 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionAutoscalerAutoscalingPolicyScaleInControl.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionAutoscalerAutoscalingPolicyScaleInControl.java @@ -13,7 +13,7 @@ @CustomType public final class RegionAutoscalerAutoscalingPolicyScaleInControl { /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -27,7 +27,7 @@ public final class RegionAutoscalerAutoscalingPolicyScaleInControl { private RegionAutoscalerAutoscalingPolicyScaleInControl() {} /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionInstanceGroupManagerAllInstancesConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionInstanceGroupManagerAllInstancesConfig.java index e15936dcf1..da007ca7ec 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionInstanceGroupManagerAllInstancesConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionInstanceGroupManagerAllInstancesConfig.java @@ -12,30 +12,26 @@ @CustomType public final class RegionInstanceGroupManagerAllInstancesConfig { /** - * @return , The label key-value pairs that you want to patch onto the instance. - * - * *** + * @return The label key-value pairs that you want to patch onto the instance, * */ private @Nullable Map labels; /** - * @return , The metadata key-value pairs that you want to patch onto the instance. For more information, see [Project and instance metadata](https://cloud.google.com/compute/docs/metadata#project_and_instance_metadata). + * @return The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata, * */ private @Nullable Map metadata; private RegionInstanceGroupManagerAllInstancesConfig() {} /** - * @return , The label key-value pairs that you want to patch onto the instance. - * - * *** + * @return The label key-value pairs that you want to patch onto the instance, * */ public Map labels() { return this.labels == null ? Map.of() : this.labels; } /** - * @return , The metadata key-value pairs that you want to patch onto the instance. For more information, see [Project and instance metadata](https://cloud.google.com/compute/docs/metadata#project_and_instance_metadata). + * @return The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata, * */ public Map metadata() { diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionInstanceGroupManagerInstanceFlexibilityPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionInstanceGroupManagerInstanceFlexibilityPolicy.java new file mode 100644 index 0000000000..62c824adab --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionInstanceGroupManagerInstanceFlexibilityPolicy.java @@ -0,0 +1,60 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.compute.outputs.RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class RegionInstanceGroupManagerInstanceFlexibilityPolicy { + /** + * @return Named instance selections configuring properties that the group will use when creating new VMs. + * + */ + private @Nullable List instanceSelections; + + private RegionInstanceGroupManagerInstanceFlexibilityPolicy() {} + /** + * @return Named instance selections configuring properties that the group will use when creating new VMs. + * + */ + public List instanceSelections() { + return this.instanceSelections == null ? List.of() : this.instanceSelections; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(RegionInstanceGroupManagerInstanceFlexibilityPolicy defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List instanceSelections; + public Builder() {} + public Builder(RegionInstanceGroupManagerInstanceFlexibilityPolicy defaults) { + Objects.requireNonNull(defaults); + this.instanceSelections = defaults.instanceSelections; + } + + @CustomType.Setter + public Builder instanceSelections(@Nullable List instanceSelections) { + + this.instanceSelections = instanceSelections; + return this; + } + public Builder instanceSelections(RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection... instanceSelections) { + return instanceSelections(List.of(instanceSelections)); + } + public RegionInstanceGroupManagerInstanceFlexibilityPolicy build() { + final var _resultValue = new RegionInstanceGroupManagerInstanceFlexibilityPolicy(); + _resultValue.instanceSelections = instanceSelections; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection.java new file mode 100644 index 0000000000..87d25fadd3 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection.java @@ -0,0 +1,115 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection { + /** + * @return Full machine-type names, e.g. "n1-standard-16" + * + */ + private List machineTypes; + /** + * @return The name of the instance group manager. Must be 1-63 + * characters long and comply with + * [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Supported characters + * include lowercase letters, numbers, and hyphens. + * + */ + private String name; + /** + * @return Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference. + * + */ + private @Nullable Integer rank; + + private RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection() {} + /** + * @return Full machine-type names, e.g. "n1-standard-16" + * + */ + public List machineTypes() { + return this.machineTypes; + } + /** + * @return The name of the instance group manager. Must be 1-63 + * characters long and comply with + * [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Supported characters + * include lowercase letters, numbers, and hyphens. + * + */ + public String name() { + return this.name; + } + /** + * @return Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference. + * + */ + public Optional rank() { + return Optional.ofNullable(this.rank); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private List machineTypes; + private String name; + private @Nullable Integer rank; + public Builder() {} + public Builder(RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection defaults) { + Objects.requireNonNull(defaults); + this.machineTypes = defaults.machineTypes; + this.name = defaults.name; + this.rank = defaults.rank; + } + + @CustomType.Setter + public Builder machineTypes(List machineTypes) { + if (machineTypes == null) { + throw new MissingRequiredPropertyException("RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection", "machineTypes"); + } + this.machineTypes = machineTypes; + return this; + } + public Builder machineTypes(String... machineTypes) { + return machineTypes(List.of(machineTypes)); + } + @CustomType.Setter + public Builder name(String name) { + if (name == null) { + throw new MissingRequiredPropertyException("RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection", "name"); + } + this.name = name; + return this; + } + @CustomType.Setter + public Builder rank(@Nullable Integer rank) { + + this.rank = rank; + return this; + } + public RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection build() { + final var _resultValue = new RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection(); + _resultValue.machineTypes = machineTypes; + _resultValue.name = name; + _resultValue.rank = rank; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionInstanceGroupManagerInstanceLifecyclePolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionInstanceGroupManagerInstanceLifecyclePolicy.java index fe38ccfa60..986d5422ea 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionInstanceGroupManagerInstanceLifecyclePolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionInstanceGroupManagerInstanceLifecyclePolicy.java @@ -15,6 +15,7 @@ public final class RegionInstanceGroupManagerInstanceLifecyclePolicy { * @return , Default behavior for all instance or health check failures. Valid options are: `REPAIR`, `DO_NOTHING`. If `DO_NOTHING` then instances will not be repaired. If `REPAIR` (default), then failed instances will be repaired. * * *** + * <a name="nested_instance_flexibility_policy"></a>The `instance_flexibility_policy` block supports: * */ private @Nullable String defaultActionOnFailure; @@ -29,6 +30,7 @@ private RegionInstanceGroupManagerInstanceLifecyclePolicy() {} * @return , Default behavior for all instance or health check failures. Valid options are: `REPAIR`, `DO_NOTHING`. If `DO_NOTHING` then instances will not be repaired. If `REPAIR` (default), then failed instances will be repaired. * * *** + * <a name="nested_instance_flexibility_policy"></a>The `instance_flexibility_policy` block supports: * */ public Optional defaultActionOnFailure() { diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestRequestedRunDuration.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestRequestedRunDuration.java new file mode 100644 index 0000000000..81ba475638 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestRequestedRunDuration.java @@ -0,0 +1,82 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class RegionResizeRequestRequestedRunDuration { + /** + * @return Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. + * + */ + private @Nullable Integer nanos; + /** + * @return Span of time at a resolution of a second. Must be from 600 to 604800 inclusive. Note: minimum and maximum allowed range for requestedRunDuration is 10 minutes (600 seconds) and 7 days(604800 seconds) correspondingly. + * + */ + private String seconds; + + private RegionResizeRequestRequestedRunDuration() {} + /** + * @return Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. + * + */ + public Optional nanos() { + return Optional.ofNullable(this.nanos); + } + /** + * @return Span of time at a resolution of a second. Must be from 600 to 604800 inclusive. Note: minimum and maximum allowed range for requestedRunDuration is 10 minutes (600 seconds) and 7 days(604800 seconds) correspondingly. + * + */ + public String seconds() { + return this.seconds; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(RegionResizeRequestRequestedRunDuration defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Integer nanos; + private String seconds; + public Builder() {} + public Builder(RegionResizeRequestRequestedRunDuration defaults) { + Objects.requireNonNull(defaults); + this.nanos = defaults.nanos; + this.seconds = defaults.seconds; + } + + @CustomType.Setter + public Builder nanos(@Nullable Integer nanos) { + + this.nanos = nanos; + return this; + } + @CustomType.Setter + public Builder seconds(String seconds) { + if (seconds == null) { + throw new MissingRequiredPropertyException("RegionResizeRequestRequestedRunDuration", "seconds"); + } + this.seconds = seconds; + return this; + } + public RegionResizeRequestRequestedRunDuration build() { + final var _resultValue = new RegionResizeRequestRequestedRunDuration(); + _resultValue.nanos = nanos; + _resultValue.seconds = seconds; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatus.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatus.java new file mode 100644 index 0000000000..a90351f311 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatus.java @@ -0,0 +1,93 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.compute.outputs.RegionResizeRequestStatusError; +import com.pulumi.gcp.compute.outputs.RegionResizeRequestStatusLastAttempt; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class RegionResizeRequestStatus { + /** + * @return (Output) + * Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + * Structure is documented below. + * + */ + private @Nullable List errors; + /** + * @return (Output) + * Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the "error" field only. + * Structure is documented below. + * + */ + private @Nullable List lastAttempts; + + private RegionResizeRequestStatus() {} + /** + * @return (Output) + * Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + * Structure is documented below. + * + */ + public List errors() { + return this.errors == null ? List.of() : this.errors; + } + /** + * @return (Output) + * Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the "error" field only. + * Structure is documented below. + * + */ + public List lastAttempts() { + return this.lastAttempts == null ? List.of() : this.lastAttempts; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(RegionResizeRequestStatus defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List errors; + private @Nullable List lastAttempts; + public Builder() {} + public Builder(RegionResizeRequestStatus defaults) { + Objects.requireNonNull(defaults); + this.errors = defaults.errors; + this.lastAttempts = defaults.lastAttempts; + } + + @CustomType.Setter + public Builder errors(@Nullable List errors) { + + this.errors = errors; + return this; + } + public Builder errors(RegionResizeRequestStatusError... errors) { + return errors(List.of(errors)); + } + @CustomType.Setter + public Builder lastAttempts(@Nullable List lastAttempts) { + + this.lastAttempts = lastAttempts; + return this; + } + public Builder lastAttempts(RegionResizeRequestStatusLastAttempt... lastAttempts) { + return lastAttempts(List.of(lastAttempts)); + } + public RegionResizeRequestStatus build() { + final var _resultValue = new RegionResizeRequestStatus(); + _resultValue.errors = errors; + _resultValue.lastAttempts = lastAttempts; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusError.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusError.java new file mode 100644 index 0000000000..beff6f1140 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusError.java @@ -0,0 +1,64 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.compute.outputs.RegionResizeRequestStatusErrorError; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class RegionResizeRequestStatusError { + /** + * @return (Output) + * The array of errors encountered while processing this operation. + * Structure is documented below. + * + */ + private @Nullable List errors; + + private RegionResizeRequestStatusError() {} + /** + * @return (Output) + * The array of errors encountered while processing this operation. + * Structure is documented below. + * + */ + public List errors() { + return this.errors == null ? List.of() : this.errors; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(RegionResizeRequestStatusError defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List errors; + public Builder() {} + public Builder(RegionResizeRequestStatusError defaults) { + Objects.requireNonNull(defaults); + this.errors = defaults.errors; + } + + @CustomType.Setter + public Builder errors(@Nullable List errors) { + + this.errors = errors; + return this; + } + public Builder errors(RegionResizeRequestStatusErrorError... errors) { + return errors(List.of(errors)); + } + public RegionResizeRequestStatusError build() { + final var _resultValue = new RegionResizeRequestStatusError(); + _resultValue.errors = errors; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusErrorError.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusErrorError.java new file mode 100644 index 0000000000..b1172d54f6 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusErrorError.java @@ -0,0 +1,135 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.compute.outputs.RegionResizeRequestStatusErrorErrorErrorDetail; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class RegionResizeRequestStatusErrorError { + /** + * @return (Output) + * The error type identifier for this error. + * + */ + private @Nullable String code; + /** + * @return (Output) + * An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + * Structure is documented below. + * + */ + private @Nullable List errorDetails; + /** + * @return (Output) + * Indicates the field in the request that caused the error. This property is optional. + * + */ + private @Nullable String location; + /** + * @return (Output) + * The localized error message in the above locale. + * + */ + private @Nullable String message; + + private RegionResizeRequestStatusErrorError() {} + /** + * @return (Output) + * The error type identifier for this error. + * + */ + public Optional code() { + return Optional.ofNullable(this.code); + } + /** + * @return (Output) + * An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + * Structure is documented below. + * + */ + public List errorDetails() { + return this.errorDetails == null ? List.of() : this.errorDetails; + } + /** + * @return (Output) + * Indicates the field in the request that caused the error. This property is optional. + * + */ + public Optional location() { + return Optional.ofNullable(this.location); + } + /** + * @return (Output) + * The localized error message in the above locale. + * + */ + public Optional message() { + return Optional.ofNullable(this.message); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(RegionResizeRequestStatusErrorError defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String code; + private @Nullable List errorDetails; + private @Nullable String location; + private @Nullable String message; + public Builder() {} + public Builder(RegionResizeRequestStatusErrorError defaults) { + Objects.requireNonNull(defaults); + this.code = defaults.code; + this.errorDetails = defaults.errorDetails; + this.location = defaults.location; + this.message = defaults.message; + } + + @CustomType.Setter + public Builder code(@Nullable String code) { + + this.code = code; + return this; + } + @CustomType.Setter + public Builder errorDetails(@Nullable List errorDetails) { + + this.errorDetails = errorDetails; + return this; + } + public Builder errorDetails(RegionResizeRequestStatusErrorErrorErrorDetail... errorDetails) { + return errorDetails(List.of(errorDetails)); + } + @CustomType.Setter + public Builder location(@Nullable String location) { + + this.location = location; + return this; + } + @CustomType.Setter + public Builder message(@Nullable String message) { + + this.message = message; + return this; + } + public RegionResizeRequestStatusErrorError build() { + final var _resultValue = new RegionResizeRequestStatusErrorError(); + _resultValue.code = code; + _resultValue.errorDetails = errorDetails; + _resultValue.location = location; + _resultValue.message = message; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusErrorErrorErrorDetail.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusErrorErrorErrorDetail.java new file mode 100644 index 0000000000..1f8401b932 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusErrorErrorErrorDetail.java @@ -0,0 +1,151 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.compute.outputs.RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo; +import com.pulumi.gcp.compute.outputs.RegionResizeRequestStatusErrorErrorErrorDetailHelp; +import com.pulumi.gcp.compute.outputs.RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage; +import com.pulumi.gcp.compute.outputs.RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class RegionResizeRequestStatusErrorErrorErrorDetail { + /** + * @return (Output) + * A nested object resource. + * Structure is documented below. + * + */ + private @Nullable List errorInfos; + /** + * @return (Output) + * A nested object resource. + * Structure is documented below. + * + */ + private @Nullable List helps; + /** + * @return (Output) + * A nested object resource. + * Structure is documented below. + * + */ + private @Nullable List localizedMessages; + /** + * @return (Output) + * A nested object resource. + * Structure is documented below. + * + */ + private @Nullable List quotaInfos; + + private RegionResizeRequestStatusErrorErrorErrorDetail() {} + /** + * @return (Output) + * A nested object resource. + * Structure is documented below. + * + */ + public List errorInfos() { + return this.errorInfos == null ? List.of() : this.errorInfos; + } + /** + * @return (Output) + * A nested object resource. + * Structure is documented below. + * + */ + public List helps() { + return this.helps == null ? List.of() : this.helps; + } + /** + * @return (Output) + * A nested object resource. + * Structure is documented below. + * + */ + public List localizedMessages() { + return this.localizedMessages == null ? List.of() : this.localizedMessages; + } + /** + * @return (Output) + * A nested object resource. + * Structure is documented below. + * + */ + public List quotaInfos() { + return this.quotaInfos == null ? List.of() : this.quotaInfos; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(RegionResizeRequestStatusErrorErrorErrorDetail defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List errorInfos; + private @Nullable List helps; + private @Nullable List localizedMessages; + private @Nullable List quotaInfos; + public Builder() {} + public Builder(RegionResizeRequestStatusErrorErrorErrorDetail defaults) { + Objects.requireNonNull(defaults); + this.errorInfos = defaults.errorInfos; + this.helps = defaults.helps; + this.localizedMessages = defaults.localizedMessages; + this.quotaInfos = defaults.quotaInfos; + } + + @CustomType.Setter + public Builder errorInfos(@Nullable List errorInfos) { + + this.errorInfos = errorInfos; + return this; + } + public Builder errorInfos(RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo... errorInfos) { + return errorInfos(List.of(errorInfos)); + } + @CustomType.Setter + public Builder helps(@Nullable List helps) { + + this.helps = helps; + return this; + } + public Builder helps(RegionResizeRequestStatusErrorErrorErrorDetailHelp... helps) { + return helps(List.of(helps)); + } + @CustomType.Setter + public Builder localizedMessages(@Nullable List localizedMessages) { + + this.localizedMessages = localizedMessages; + return this; + } + public Builder localizedMessages(RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage... localizedMessages) { + return localizedMessages(List.of(localizedMessages)); + } + @CustomType.Setter + public Builder quotaInfos(@Nullable List quotaInfos) { + + this.quotaInfos = quotaInfos; + return this; + } + public Builder quotaInfos(RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo... quotaInfos) { + return quotaInfos(List.of(quotaInfos)); + } + public RegionResizeRequestStatusErrorErrorErrorDetail build() { + final var _resultValue = new RegionResizeRequestStatusErrorErrorErrorDetail(); + _resultValue.errorInfos = errorInfos; + _resultValue.helps = helps; + _resultValue.localizedMessages = localizedMessages; + _resultValue.quotaInfos = quotaInfos; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo.java new file mode 100644 index 0000000000..67a27b301e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo.java @@ -0,0 +1,106 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo { + /** + * @return (Output) + * 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". + * + */ + private @Nullable String domain; + /** + * @return (Output) + * Additional structured details about this error. + * + */ + private @Nullable Map metadatas; + /** + * @return (Output) + * 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. + * + */ + private @Nullable String reason; + + private RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo() {} + /** + * @return (Output) + * 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". + * + */ + public Optional domain() { + return Optional.ofNullable(this.domain); + } + /** + * @return (Output) + * Additional structured details about this error. + * + */ + public Map metadatas() { + return this.metadatas == null ? Map.of() : this.metadatas; + } + /** + * @return (Output) + * 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. + * + */ + public Optional reason() { + return Optional.ofNullable(this.reason); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String domain; + private @Nullable Map metadatas; + private @Nullable String reason; + public Builder() {} + public Builder(RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo defaults) { + Objects.requireNonNull(defaults); + this.domain = defaults.domain; + this.metadatas = defaults.metadatas; + this.reason = defaults.reason; + } + + @CustomType.Setter + public Builder domain(@Nullable String domain) { + + this.domain = domain; + return this; + } + @CustomType.Setter + public Builder metadatas(@Nullable Map metadatas) { + + this.metadatas = metadatas; + return this; + } + @CustomType.Setter + public Builder reason(@Nullable String reason) { + + this.reason = reason; + return this; + } + public RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo build() { + final var _resultValue = new RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo(); + _resultValue.domain = domain; + _resultValue.metadatas = metadatas; + _resultValue.reason = reason; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusErrorErrorErrorDetailHelp.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusErrorErrorErrorDetailHelp.java new file mode 100644 index 0000000000..bf0cb77515 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusErrorErrorErrorDetailHelp.java @@ -0,0 +1,64 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.compute.outputs.RegionResizeRequestStatusErrorErrorErrorDetailHelpLink; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class RegionResizeRequestStatusErrorErrorErrorDetailHelp { + /** + * @return (Output) + * A nested object resource. + * Structure is documented below. + * + */ + private @Nullable List links; + + private RegionResizeRequestStatusErrorErrorErrorDetailHelp() {} + /** + * @return (Output) + * A nested object resource. + * Structure is documented below. + * + */ + public List links() { + return this.links == null ? List.of() : this.links; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(RegionResizeRequestStatusErrorErrorErrorDetailHelp defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List links; + public Builder() {} + public Builder(RegionResizeRequestStatusErrorErrorErrorDetailHelp defaults) { + Objects.requireNonNull(defaults); + this.links = defaults.links; + } + + @CustomType.Setter + public Builder links(@Nullable List links) { + + this.links = links; + return this; + } + public Builder links(RegionResizeRequestStatusErrorErrorErrorDetailHelpLink... links) { + return links(List.of(links)); + } + public RegionResizeRequestStatusErrorErrorErrorDetailHelp build() { + final var _resultValue = new RegionResizeRequestStatusErrorErrorErrorDetailHelp(); + _resultValue.links = links; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusErrorErrorErrorDetailHelpLink.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusErrorErrorErrorDetailHelpLink.java new file mode 100644 index 0000000000..fc4e28385d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusErrorErrorErrorDetailHelpLink.java @@ -0,0 +1,80 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class RegionResizeRequestStatusErrorErrorErrorDetailHelpLink { + /** + * @return An optional description of this resize-request. + * + */ + private @Nullable String description; + /** + * @return (Output) + * The URL of the link. + * + */ + private @Nullable String url; + + private RegionResizeRequestStatusErrorErrorErrorDetailHelpLink() {} + /** + * @return An optional description of this resize-request. + * + */ + public Optional description() { + return Optional.ofNullable(this.description); + } + /** + * @return (Output) + * The URL of the link. + * + */ + public Optional url() { + return Optional.ofNullable(this.url); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(RegionResizeRequestStatusErrorErrorErrorDetailHelpLink defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String description; + private @Nullable String url; + public Builder() {} + public Builder(RegionResizeRequestStatusErrorErrorErrorDetailHelpLink defaults) { + Objects.requireNonNull(defaults); + this.description = defaults.description; + this.url = defaults.url; + } + + @CustomType.Setter + public Builder description(@Nullable String description) { + + this.description = description; + return this; + } + @CustomType.Setter + public Builder url(@Nullable String url) { + + this.url = url; + return this; + } + public RegionResizeRequestStatusErrorErrorErrorDetailHelpLink build() { + final var _resultValue = new RegionResizeRequestStatusErrorErrorErrorDetailHelpLink(); + _resultValue.description = description; + _resultValue.url = url; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage.java new file mode 100644 index 0000000000..dc4c961f96 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage.java @@ -0,0 +1,82 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage { + /** + * @return (Output) + * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + * + */ + private @Nullable String locale; + /** + * @return (Output) + * The localized error message in the above locale. + * + */ + private @Nullable String message; + + private RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage() {} + /** + * @return (Output) + * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + * + */ + public Optional locale() { + return Optional.ofNullable(this.locale); + } + /** + * @return (Output) + * The localized error message in the above locale. + * + */ + public Optional message() { + return Optional.ofNullable(this.message); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String locale; + private @Nullable String message; + public Builder() {} + public Builder(RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage defaults) { + Objects.requireNonNull(defaults); + this.locale = defaults.locale; + this.message = defaults.message; + } + + @CustomType.Setter + public Builder locale(@Nullable String locale) { + + this.locale = locale; + return this; + } + @CustomType.Setter + public Builder message(@Nullable String message) { + + this.message = message; + return this; + } + public RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage build() { + final var _resultValue = new RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage(); + _resultValue.locale = locale; + _resultValue.message = message; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo.java new file mode 100644 index 0000000000..9e1131a5da --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo.java @@ -0,0 +1,176 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Integer; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo { + /** + * @return (Output) + * The map holding related quota dimensions + * + */ + private @Nullable Map dimensions; + /** + * @return (Output) + * Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + * + */ + private @Nullable Integer futureLimit; + /** + * @return (Output) + * Current effective quota limit. The limit's unit depends on the quota type or metric. + * + */ + private @Nullable Integer limit; + /** + * @return (Output) + * The name of the quota limit. + * + */ + private @Nullable String limitName; + /** + * @return (Output) + * The Compute Engine quota metric name. + * + */ + private @Nullable String metricName; + /** + * @return (Output) + * Rollout status of the future quota limit. + * + */ + private @Nullable String rolloutStatus; + + private RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo() {} + /** + * @return (Output) + * The map holding related quota dimensions + * + */ + public Map dimensions() { + return this.dimensions == null ? Map.of() : this.dimensions; + } + /** + * @return (Output) + * Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + * + */ + public Optional futureLimit() { + return Optional.ofNullable(this.futureLimit); + } + /** + * @return (Output) + * Current effective quota limit. The limit's unit depends on the quota type or metric. + * + */ + public Optional limit() { + return Optional.ofNullable(this.limit); + } + /** + * @return (Output) + * The name of the quota limit. + * + */ + public Optional limitName() { + return Optional.ofNullable(this.limitName); + } + /** + * @return (Output) + * The Compute Engine quota metric name. + * + */ + public Optional metricName() { + return Optional.ofNullable(this.metricName); + } + /** + * @return (Output) + * Rollout status of the future quota limit. + * + */ + public Optional rolloutStatus() { + return Optional.ofNullable(this.rolloutStatus); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Map dimensions; + private @Nullable Integer futureLimit; + private @Nullable Integer limit; + private @Nullable String limitName; + private @Nullable String metricName; + private @Nullable String rolloutStatus; + public Builder() {} + public Builder(RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo defaults) { + Objects.requireNonNull(defaults); + this.dimensions = defaults.dimensions; + this.futureLimit = defaults.futureLimit; + this.limit = defaults.limit; + this.limitName = defaults.limitName; + this.metricName = defaults.metricName; + this.rolloutStatus = defaults.rolloutStatus; + } + + @CustomType.Setter + public Builder dimensions(@Nullable Map dimensions) { + + this.dimensions = dimensions; + return this; + } + @CustomType.Setter + public Builder futureLimit(@Nullable Integer futureLimit) { + + this.futureLimit = futureLimit; + return this; + } + @CustomType.Setter + public Builder limit(@Nullable Integer limit) { + + this.limit = limit; + return this; + } + @CustomType.Setter + public Builder limitName(@Nullable String limitName) { + + this.limitName = limitName; + return this; + } + @CustomType.Setter + public Builder metricName(@Nullable String metricName) { + + this.metricName = metricName; + return this; + } + @CustomType.Setter + public Builder rolloutStatus(@Nullable String rolloutStatus) { + + this.rolloutStatus = rolloutStatus; + return this; + } + public RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo build() { + final var _resultValue = new RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo(); + _resultValue.dimensions = dimensions; + _resultValue.futureLimit = futureLimit; + _resultValue.limit = limit; + _resultValue.limitName = limitName; + _resultValue.metricName = metricName; + _resultValue.rolloutStatus = rolloutStatus; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttempt.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttempt.java new file mode 100644 index 0000000000..7bccd2df7e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttempt.java @@ -0,0 +1,64 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.compute.outputs.RegionResizeRequestStatusLastAttemptError; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class RegionResizeRequestStatusLastAttempt { + /** + * @return (Output) + * Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + * Structure is documented below. + * + */ + private @Nullable List errors; + + private RegionResizeRequestStatusLastAttempt() {} + /** + * @return (Output) + * Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + * Structure is documented below. + * + */ + public List errors() { + return this.errors == null ? List.of() : this.errors; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(RegionResizeRequestStatusLastAttempt defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List errors; + public Builder() {} + public Builder(RegionResizeRequestStatusLastAttempt defaults) { + Objects.requireNonNull(defaults); + this.errors = defaults.errors; + } + + @CustomType.Setter + public Builder errors(@Nullable List errors) { + + this.errors = errors; + return this; + } + public Builder errors(RegionResizeRequestStatusLastAttemptError... errors) { + return errors(List.of(errors)); + } + public RegionResizeRequestStatusLastAttempt build() { + final var _resultValue = new RegionResizeRequestStatusLastAttempt(); + _resultValue.errors = errors; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttemptError.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttemptError.java new file mode 100644 index 0000000000..912e2da574 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttemptError.java @@ -0,0 +1,64 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.compute.outputs.RegionResizeRequestStatusLastAttemptErrorError; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class RegionResizeRequestStatusLastAttemptError { + /** + * @return (Output) + * The array of errors encountered while processing this operation. + * Structure is documented below. + * + */ + private @Nullable List errors; + + private RegionResizeRequestStatusLastAttemptError() {} + /** + * @return (Output) + * The array of errors encountered while processing this operation. + * Structure is documented below. + * + */ + public List errors() { + return this.errors == null ? List.of() : this.errors; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(RegionResizeRequestStatusLastAttemptError defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List errors; + public Builder() {} + public Builder(RegionResizeRequestStatusLastAttemptError defaults) { + Objects.requireNonNull(defaults); + this.errors = defaults.errors; + } + + @CustomType.Setter + public Builder errors(@Nullable List errors) { + + this.errors = errors; + return this; + } + public Builder errors(RegionResizeRequestStatusLastAttemptErrorError... errors) { + return errors(List.of(errors)); + } + public RegionResizeRequestStatusLastAttemptError build() { + final var _resultValue = new RegionResizeRequestStatusLastAttemptError(); + _resultValue.errors = errors; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttemptErrorError.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttemptErrorError.java new file mode 100644 index 0000000000..5b2d9f0bfb --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttemptErrorError.java @@ -0,0 +1,135 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.compute.outputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class RegionResizeRequestStatusLastAttemptErrorError { + /** + * @return (Output) + * The error type identifier for this error. + * + */ + private @Nullable String code; + /** + * @return (Output) + * An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + * Structure is documented below. + * + */ + private @Nullable List errorDetails; + /** + * @return (Output) + * Indicates the field in the request that caused the error. This property is optional. + * + */ + private @Nullable String location; + /** + * @return (Output) + * The localized error message in the above locale. + * + */ + private @Nullable String message; + + private RegionResizeRequestStatusLastAttemptErrorError() {} + /** + * @return (Output) + * The error type identifier for this error. + * + */ + public Optional code() { + return Optional.ofNullable(this.code); + } + /** + * @return (Output) + * An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + * Structure is documented below. + * + */ + public List errorDetails() { + return this.errorDetails == null ? List.of() : this.errorDetails; + } + /** + * @return (Output) + * Indicates the field in the request that caused the error. This property is optional. + * + */ + public Optional location() { + return Optional.ofNullable(this.location); + } + /** + * @return (Output) + * The localized error message in the above locale. + * + */ + public Optional message() { + return Optional.ofNullable(this.message); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(RegionResizeRequestStatusLastAttemptErrorError defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String code; + private @Nullable List errorDetails; + private @Nullable String location; + private @Nullable String message; + public Builder() {} + public Builder(RegionResizeRequestStatusLastAttemptErrorError defaults) { + Objects.requireNonNull(defaults); + this.code = defaults.code; + this.errorDetails = defaults.errorDetails; + this.location = defaults.location; + this.message = defaults.message; + } + + @CustomType.Setter + public Builder code(@Nullable String code) { + + this.code = code; + return this; + } + @CustomType.Setter + public Builder errorDetails(@Nullable List errorDetails) { + + this.errorDetails = errorDetails; + return this; + } + public Builder errorDetails(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail... errorDetails) { + return errorDetails(List.of(errorDetails)); + } + @CustomType.Setter + public Builder location(@Nullable String location) { + + this.location = location; + return this; + } + @CustomType.Setter + public Builder message(@Nullable String message) { + + this.message = message; + return this; + } + public RegionResizeRequestStatusLastAttemptErrorError build() { + final var _resultValue = new RegionResizeRequestStatusLastAttemptErrorError(); + _resultValue.code = code; + _resultValue.errorDetails = errorDetails; + _resultValue.location = location; + _resultValue.message = message; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail.java new file mode 100644 index 0000000000..6100141d5b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail.java @@ -0,0 +1,151 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.compute.outputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo; +import com.pulumi.gcp.compute.outputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp; +import com.pulumi.gcp.compute.outputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage; +import com.pulumi.gcp.compute.outputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail { + /** + * @return (Output) + * A nested object resource. + * Structure is documented below. + * + */ + private @Nullable List errorInfos; + /** + * @return (Output) + * A nested object resource. + * Structure is documented below. + * + */ + private @Nullable List helps; + /** + * @return (Output) + * A nested object resource. + * Structure is documented below. + * + */ + private @Nullable List localizedMessages; + /** + * @return (Output) + * A nested object resource. + * Structure is documented below. + * + */ + private @Nullable List quotaInfos; + + private RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail() {} + /** + * @return (Output) + * A nested object resource. + * Structure is documented below. + * + */ + public List errorInfos() { + return this.errorInfos == null ? List.of() : this.errorInfos; + } + /** + * @return (Output) + * A nested object resource. + * Structure is documented below. + * + */ + public List helps() { + return this.helps == null ? List.of() : this.helps; + } + /** + * @return (Output) + * A nested object resource. + * Structure is documented below. + * + */ + public List localizedMessages() { + return this.localizedMessages == null ? List.of() : this.localizedMessages; + } + /** + * @return (Output) + * A nested object resource. + * Structure is documented below. + * + */ + public List quotaInfos() { + return this.quotaInfos == null ? List.of() : this.quotaInfos; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List errorInfos; + private @Nullable List helps; + private @Nullable List localizedMessages; + private @Nullable List quotaInfos; + public Builder() {} + public Builder(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail defaults) { + Objects.requireNonNull(defaults); + this.errorInfos = defaults.errorInfos; + this.helps = defaults.helps; + this.localizedMessages = defaults.localizedMessages; + this.quotaInfos = defaults.quotaInfos; + } + + @CustomType.Setter + public Builder errorInfos(@Nullable List errorInfos) { + + this.errorInfos = errorInfos; + return this; + } + public Builder errorInfos(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo... errorInfos) { + return errorInfos(List.of(errorInfos)); + } + @CustomType.Setter + public Builder helps(@Nullable List helps) { + + this.helps = helps; + return this; + } + public Builder helps(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp... helps) { + return helps(List.of(helps)); + } + @CustomType.Setter + public Builder localizedMessages(@Nullable List localizedMessages) { + + this.localizedMessages = localizedMessages; + return this; + } + public Builder localizedMessages(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage... localizedMessages) { + return localizedMessages(List.of(localizedMessages)); + } + @CustomType.Setter + public Builder quotaInfos(@Nullable List quotaInfos) { + + this.quotaInfos = quotaInfos; + return this; + } + public Builder quotaInfos(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo... quotaInfos) { + return quotaInfos(List.of(quotaInfos)); + } + public RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail build() { + final var _resultValue = new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail(); + _resultValue.errorInfos = errorInfos; + _resultValue.helps = helps; + _resultValue.localizedMessages = localizedMessages; + _resultValue.quotaInfos = quotaInfos; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo.java new file mode 100644 index 0000000000..2db7ee1c2c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo.java @@ -0,0 +1,106 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo { + /** + * @return (Output) + * 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". + * + */ + private @Nullable String domain; + /** + * @return (Output) + * Additional structured details about this error. + * + */ + private @Nullable Map metadatas; + /** + * @return (Output) + * 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. + * + */ + private @Nullable String reason; + + private RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo() {} + /** + * @return (Output) + * 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". + * + */ + public Optional domain() { + return Optional.ofNullable(this.domain); + } + /** + * @return (Output) + * Additional structured details about this error. + * + */ + public Map metadatas() { + return this.metadatas == null ? Map.of() : this.metadatas; + } + /** + * @return (Output) + * 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. + * + */ + public Optional reason() { + return Optional.ofNullable(this.reason); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String domain; + private @Nullable Map metadatas; + private @Nullable String reason; + public Builder() {} + public Builder(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo defaults) { + Objects.requireNonNull(defaults); + this.domain = defaults.domain; + this.metadatas = defaults.metadatas; + this.reason = defaults.reason; + } + + @CustomType.Setter + public Builder domain(@Nullable String domain) { + + this.domain = domain; + return this; + } + @CustomType.Setter + public Builder metadatas(@Nullable Map metadatas) { + + this.metadatas = metadatas; + return this; + } + @CustomType.Setter + public Builder reason(@Nullable String reason) { + + this.reason = reason; + return this; + } + public RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo build() { + final var _resultValue = new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo(); + _resultValue.domain = domain; + _resultValue.metadatas = metadatas; + _resultValue.reason = reason; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp.java new file mode 100644 index 0000000000..e73970fc11 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp.java @@ -0,0 +1,64 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.compute.outputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp { + /** + * @return (Output) + * A nested object resource. + * Structure is documented below. + * + */ + private @Nullable List links; + + private RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp() {} + /** + * @return (Output) + * A nested object resource. + * Structure is documented below. + * + */ + public List links() { + return this.links == null ? List.of() : this.links; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List links; + public Builder() {} + public Builder(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp defaults) { + Objects.requireNonNull(defaults); + this.links = defaults.links; + } + + @CustomType.Setter + public Builder links(@Nullable List links) { + + this.links = links; + return this; + } + public Builder links(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink... links) { + return links(List.of(links)); + } + public RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp build() { + final var _resultValue = new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp(); + _resultValue.links = links; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink.java new file mode 100644 index 0000000000..9560de5069 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink.java @@ -0,0 +1,80 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink { + /** + * @return An optional description of this resize-request. + * + */ + private @Nullable String description; + /** + * @return (Output) + * The URL of the link. + * + */ + private @Nullable String url; + + private RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink() {} + /** + * @return An optional description of this resize-request. + * + */ + public Optional description() { + return Optional.ofNullable(this.description); + } + /** + * @return (Output) + * The URL of the link. + * + */ + public Optional url() { + return Optional.ofNullable(this.url); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String description; + private @Nullable String url; + public Builder() {} + public Builder(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink defaults) { + Objects.requireNonNull(defaults); + this.description = defaults.description; + this.url = defaults.url; + } + + @CustomType.Setter + public Builder description(@Nullable String description) { + + this.description = description; + return this; + } + @CustomType.Setter + public Builder url(@Nullable String url) { + + this.url = url; + return this; + } + public RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink build() { + final var _resultValue = new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink(); + _resultValue.description = description; + _resultValue.url = url; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage.java new file mode 100644 index 0000000000..f101207340 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage.java @@ -0,0 +1,82 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage { + /** + * @return (Output) + * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + * + */ + private @Nullable String locale; + /** + * @return (Output) + * The localized error message in the above locale. + * + */ + private @Nullable String message; + + private RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage() {} + /** + * @return (Output) + * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + * + */ + public Optional locale() { + return Optional.ofNullable(this.locale); + } + /** + * @return (Output) + * The localized error message in the above locale. + * + */ + public Optional message() { + return Optional.ofNullable(this.message); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String locale; + private @Nullable String message; + public Builder() {} + public Builder(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage defaults) { + Objects.requireNonNull(defaults); + this.locale = defaults.locale; + this.message = defaults.message; + } + + @CustomType.Setter + public Builder locale(@Nullable String locale) { + + this.locale = locale; + return this; + } + @CustomType.Setter + public Builder message(@Nullable String message) { + + this.message = message; + return this; + } + public RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage build() { + final var _resultValue = new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage(); + _resultValue.locale = locale; + _resultValue.message = message; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo.java new file mode 100644 index 0000000000..6930b55e71 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo.java @@ -0,0 +1,176 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Integer; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo { + /** + * @return (Output) + * The map holding related quota dimensions + * + */ + private @Nullable Map dimensions; + /** + * @return (Output) + * Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + * + */ + private @Nullable Integer futureLimit; + /** + * @return (Output) + * Current effective quota limit. The limit's unit depends on the quota type or metric. + * + */ + private @Nullable Integer limit; + /** + * @return (Output) + * The name of the quota limit. + * + */ + private @Nullable String limitName; + /** + * @return (Output) + * The Compute Engine quota metric name. + * + */ + private @Nullable String metricName; + /** + * @return (Output) + * Rollout status of the future quota limit. + * + */ + private @Nullable String rolloutStatus; + + private RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo() {} + /** + * @return (Output) + * The map holding related quota dimensions + * + */ + public Map dimensions() { + return this.dimensions == null ? Map.of() : this.dimensions; + } + /** + * @return (Output) + * Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + * + */ + public Optional futureLimit() { + return Optional.ofNullable(this.futureLimit); + } + /** + * @return (Output) + * Current effective quota limit. The limit's unit depends on the quota type or metric. + * + */ + public Optional limit() { + return Optional.ofNullable(this.limit); + } + /** + * @return (Output) + * The name of the quota limit. + * + */ + public Optional limitName() { + return Optional.ofNullable(this.limitName); + } + /** + * @return (Output) + * The Compute Engine quota metric name. + * + */ + public Optional metricName() { + return Optional.ofNullable(this.metricName); + } + /** + * @return (Output) + * Rollout status of the future quota limit. + * + */ + public Optional rolloutStatus() { + return Optional.ofNullable(this.rolloutStatus); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Map dimensions; + private @Nullable Integer futureLimit; + private @Nullable Integer limit; + private @Nullable String limitName; + private @Nullable String metricName; + private @Nullable String rolloutStatus; + public Builder() {} + public Builder(RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo defaults) { + Objects.requireNonNull(defaults); + this.dimensions = defaults.dimensions; + this.futureLimit = defaults.futureLimit; + this.limit = defaults.limit; + this.limitName = defaults.limitName; + this.metricName = defaults.metricName; + this.rolloutStatus = defaults.rolloutStatus; + } + + @CustomType.Setter + public Builder dimensions(@Nullable Map dimensions) { + + this.dimensions = dimensions; + return this; + } + @CustomType.Setter + public Builder futureLimit(@Nullable Integer futureLimit) { + + this.futureLimit = futureLimit; + return this; + } + @CustomType.Setter + public Builder limit(@Nullable Integer limit) { + + this.limit = limit; + return this; + } + @CustomType.Setter + public Builder limitName(@Nullable String limitName) { + + this.limitName = limitName; + return this; + } + @CustomType.Setter + public Builder metricName(@Nullable String metricName) { + + this.metricName = metricName; + return this; + } + @CustomType.Setter + public Builder rolloutStatus(@Nullable String rolloutStatus) { + + this.rolloutStatus = rolloutStatus; + return this; + } + public RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo build() { + final var _resultValue = new RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo(); + _resultValue.dimensions = dimensions; + _resultValue.futureLimit = futureLimit; + _resultValue.limit = limit; + _resultValue.limitName = limitName; + _resultValue.metricName = metricName; + _resultValue.rolloutStatus = rolloutStatus; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionSecurityPolicyRule.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionSecurityPolicyRule.java new file mode 100644 index 0000000000..46449a6535 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionSecurityPolicyRule.java @@ -0,0 +1,255 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.gcp.compute.outputs.RegionSecurityPolicyRuleMatch; +import com.pulumi.gcp.compute.outputs.RegionSecurityPolicyRuleNetworkMatch; +import com.pulumi.gcp.compute.outputs.RegionSecurityPolicyRulePreconfiguredWafConfig; +import com.pulumi.gcp.compute.outputs.RegionSecurityPolicyRuleRateLimitOptions; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class RegionSecurityPolicyRule { + /** + * @return The Action to perform when the rule is matched. The following are the valid actions: + * * allow: allow access to target. + * * deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for STATUS are 403, 404, and 502. + * * rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rateLimitOptions to be set. + * * redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. This action is only supported in Global Security Policies of type CLOUD_ARMOR. + * * throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rateLimitOptions to be set for this. + * + */ + private String action; + /** + * @return An optional description of this resource. Provide this property when you create the resource. + * + */ + private @Nullable String description; + /** + * @return A match condition that incoming traffic is evaluated against. + * If it evaluates to true, the corresponding 'action' is enforced. + * Structure is documented below. + * + */ + private @Nullable RegionSecurityPolicyRuleMatch match; + /** + * @return A match condition that incoming packets are evaluated against for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding 'action' is enforced. + * The match criteria for a rule consists of built-in match fields (like 'srcIpRanges') and potentially multiple user-defined match fields ('userDefinedFields'). + * Field values may be extracted directly from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may not be present in every packet (e.g. 'srcPorts'). A user-defined field is only present if the base header is found in the packet and the entire field is in bounds. + * Each match field may specify which values can match it, listing one or more ranges, prefixes, or exact values that are considered a match for the field. A field value must be present in order to match a specified match field. If no match values are specified for a match field, then any field value is considered to match it, and it's not required to be present. For strings specifying '*' is also equivalent to match all. + * For a packet to match a rule, all specified match fields must match the corresponding field values derived from the packet. + * Example: + * networkMatch: srcIpRanges: - "192.0.2.0/24" - "198.51.100.0/24" userDefinedFields: - name: "ipv4_fragment_offset" values: - "1-0x1fff" + * The above match condition matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a user-defined field named "ipv4_fragment_offset" with a value between 1 and 0x1fff inclusive + * Structure is documented below. + * + */ + private @Nullable RegionSecurityPolicyRuleNetworkMatch networkMatch; + /** + * @return Preconfigured WAF configuration to be applied for the rule. + * If the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect. + * Structure is documented below. + * + */ + private @Nullable RegionSecurityPolicyRulePreconfiguredWafConfig preconfiguredWafConfig; + /** + * @return If set to true, the specified action is not enforced. + * + */ + private @Nullable Boolean preview; + /** + * @return An integer indicating the priority of a rule in the list. + * The priority must be a positive value between 0 and 2147483647. + * Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority. + * + */ + private Integer priority; + /** + * @return Must be specified if the action is "rate_based_ban" or "throttle". Cannot be specified for any other actions. + * Structure is documented below. + * + */ + private @Nullable RegionSecurityPolicyRuleRateLimitOptions rateLimitOptions; + + private RegionSecurityPolicyRule() {} + /** + * @return The Action to perform when the rule is matched. The following are the valid actions: + * * allow: allow access to target. + * * deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for STATUS are 403, 404, and 502. + * * rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rateLimitOptions to be set. + * * redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. This action is only supported in Global Security Policies of type CLOUD_ARMOR. + * * throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rateLimitOptions to be set for this. + * + */ + public String action() { + return this.action; + } + /** + * @return An optional description of this resource. Provide this property when you create the resource. + * + */ + public Optional description() { + return Optional.ofNullable(this.description); + } + /** + * @return A match condition that incoming traffic is evaluated against. + * If it evaluates to true, the corresponding 'action' is enforced. + * Structure is documented below. + * + */ + public Optional match() { + return Optional.ofNullable(this.match); + } + /** + * @return A match condition that incoming packets are evaluated against for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding 'action' is enforced. + * The match criteria for a rule consists of built-in match fields (like 'srcIpRanges') and potentially multiple user-defined match fields ('userDefinedFields'). + * Field values may be extracted directly from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may not be present in every packet (e.g. 'srcPorts'). A user-defined field is only present if the base header is found in the packet and the entire field is in bounds. + * Each match field may specify which values can match it, listing one or more ranges, prefixes, or exact values that are considered a match for the field. A field value must be present in order to match a specified match field. If no match values are specified for a match field, then any field value is considered to match it, and it's not required to be present. For strings specifying '*' is also equivalent to match all. + * For a packet to match a rule, all specified match fields must match the corresponding field values derived from the packet. + * Example: + * networkMatch: srcIpRanges: - "192.0.2.0/24" - "198.51.100.0/24" userDefinedFields: - name: "ipv4_fragment_offset" values: - "1-0x1fff" + * The above match condition matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a user-defined field named "ipv4_fragment_offset" with a value between 1 and 0x1fff inclusive + * Structure is documented below. + * + */ + public Optional networkMatch() { + return Optional.ofNullable(this.networkMatch); + } + /** + * @return Preconfigured WAF configuration to be applied for the rule. + * If the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect. + * Structure is documented below. + * + */ + public Optional preconfiguredWafConfig() { + return Optional.ofNullable(this.preconfiguredWafConfig); + } + /** + * @return If set to true, the specified action is not enforced. + * + */ + public Optional preview() { + return Optional.ofNullable(this.preview); + } + /** + * @return An integer indicating the priority of a rule in the list. + * The priority must be a positive value between 0 and 2147483647. + * Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority. + * + */ + public Integer priority() { + return this.priority; + } + /** + * @return Must be specified if the action is "rate_based_ban" or "throttle". Cannot be specified for any other actions. + * Structure is documented below. + * + */ + public Optional rateLimitOptions() { + return Optional.ofNullable(this.rateLimitOptions); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(RegionSecurityPolicyRule defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String action; + private @Nullable String description; + private @Nullable RegionSecurityPolicyRuleMatch match; + private @Nullable RegionSecurityPolicyRuleNetworkMatch networkMatch; + private @Nullable RegionSecurityPolicyRulePreconfiguredWafConfig preconfiguredWafConfig; + private @Nullable Boolean preview; + private Integer priority; + private @Nullable RegionSecurityPolicyRuleRateLimitOptions rateLimitOptions; + public Builder() {} + public Builder(RegionSecurityPolicyRule defaults) { + Objects.requireNonNull(defaults); + this.action = defaults.action; + this.description = defaults.description; + this.match = defaults.match; + this.networkMatch = defaults.networkMatch; + this.preconfiguredWafConfig = defaults.preconfiguredWafConfig; + this.preview = defaults.preview; + this.priority = defaults.priority; + this.rateLimitOptions = defaults.rateLimitOptions; + } + + @CustomType.Setter + public Builder action(String action) { + if (action == null) { + throw new MissingRequiredPropertyException("RegionSecurityPolicyRule", "action"); + } + this.action = action; + return this; + } + @CustomType.Setter + public Builder description(@Nullable String description) { + + this.description = description; + return this; + } + @CustomType.Setter + public Builder match(@Nullable RegionSecurityPolicyRuleMatch match) { + + this.match = match; + return this; + } + @CustomType.Setter + public Builder networkMatch(@Nullable RegionSecurityPolicyRuleNetworkMatch networkMatch) { + + this.networkMatch = networkMatch; + return this; + } + @CustomType.Setter + public Builder preconfiguredWafConfig(@Nullable RegionSecurityPolicyRulePreconfiguredWafConfig preconfiguredWafConfig) { + + this.preconfiguredWafConfig = preconfiguredWafConfig; + return this; + } + @CustomType.Setter + public Builder preview(@Nullable Boolean preview) { + + this.preview = preview; + return this; + } + @CustomType.Setter + public Builder priority(Integer priority) { + if (priority == null) { + throw new MissingRequiredPropertyException("RegionSecurityPolicyRule", "priority"); + } + this.priority = priority; + return this; + } + @CustomType.Setter + public Builder rateLimitOptions(@Nullable RegionSecurityPolicyRuleRateLimitOptions rateLimitOptions) { + + this.rateLimitOptions = rateLimitOptions; + return this; + } + public RegionSecurityPolicyRule build() { + final var _resultValue = new RegionSecurityPolicyRule(); + _resultValue.action = action; + _resultValue.description = description; + _resultValue.match = match; + _resultValue.networkMatch = networkMatch; + _resultValue.preconfiguredWafConfig = preconfiguredWafConfig; + _resultValue.preview = preview; + _resultValue.priority = priority; + _resultValue.rateLimitOptions = rateLimitOptions; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionSecurityPolicyUserDefinedField.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionSecurityPolicyUserDefinedField.java index c5159dbe99..808f0feda3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionSecurityPolicyUserDefinedField.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionSecurityPolicyUserDefinedField.java @@ -31,7 +31,7 @@ public final class RegionSecurityPolicyUserDefinedField { */ private @Nullable String mask; /** - * @return The name of this field. Must be unique within the policy. + * @return Name of the user-defined field, as given in the definition. * */ private @Nullable String name; @@ -69,7 +69,7 @@ public Optional mask() { return Optional.ofNullable(this.mask); } /** - * @return The name of this field. Must be unique within the policy. + * @return Name of the user-defined field, as given in the definition. * */ public Optional name() { diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RouterPeerCustomLearnedIpRange.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RouterPeerCustomLearnedIpRange.java index c33a6fa267..6e93aa683e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RouterPeerCustomLearnedIpRange.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RouterPeerCustomLearnedIpRange.java @@ -11,7 +11,7 @@ @CustomType public final class RouterPeerCustomLearnedIpRange { /** - * @return The IP range to advertise. The value must be a + * @return The IP range to learn. The value must be a * CIDR-formatted string. * */ @@ -19,7 +19,7 @@ public final class RouterPeerCustomLearnedIpRange { private RouterPeerCustomLearnedIpRange() {} /** - * @return The IP range to advertise. The value must be a + * @return The IP range to learn. The value must be a * CIDR-formatted string. * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/Cluster.java b/sdk/java/src/main/java/com/pulumi/gcp/container/Cluster.java index 951cb32c7c..9b8681eaba 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/container/Cluster.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/Cluster.java @@ -16,6 +16,7 @@ import com.pulumi.gcp.container.outputs.ClusterClusterAutoscaling; import com.pulumi.gcp.container.outputs.ClusterClusterTelemetry; import com.pulumi.gcp.container.outputs.ClusterConfidentialNodes; +import com.pulumi.gcp.container.outputs.ClusterControlPlaneEndpointsConfig; import com.pulumi.gcp.container.outputs.ClusterCostManagementConfig; import com.pulumi.gcp.container.outputs.ClusterDatabaseEncryption; import com.pulumi.gcp.container.outputs.ClusterDefaultSnatStatus; @@ -46,6 +47,7 @@ import com.pulumi.gcp.container.outputs.ClusterSecurityPostureConfig; import com.pulumi.gcp.container.outputs.ClusterServiceExternalIpsConfig; import com.pulumi.gcp.container.outputs.ClusterTpuConfig; +import com.pulumi.gcp.container.outputs.ClusterUserManagedKeysConfig; import com.pulumi.gcp.container.outputs.ClusterVerticalPodAutoscaling; import com.pulumi.gcp.container.outputs.ClusterWorkloadAltsConfig; import com.pulumi.gcp.container.outputs.ClusterWorkloadIdentityConfig; @@ -413,6 +415,22 @@ public Output clusterTelemetry() { public Output confidentialNodes() { return this.confidentialNodes; } + /** + * Configuration for all of the cluster's control plane endpoints. + * Structure is documented below. + * + */ + @Export(name="controlPlaneEndpointsConfig", refs={ClusterControlPlaneEndpointsConfig.class}, tree="[0]") + private Output controlPlaneEndpointsConfig; + + /** + * @return Configuration for all of the cluster's control plane endpoints. + * Structure is documented below. + * + */ + public Output controlPlaneEndpointsConfig() { + return this.controlPlaneEndpointsConfig; + } /** * Configuration for the * [Cost Allocation](https://cloud.google.com/kubernetes-engine/docs/how-to/cost-allocations) feature. @@ -1599,6 +1617,20 @@ public Output tpuConfig() { public Output tpuIpv4CidrBlock() { return this.tpuIpv4CidrBlock; } + /** + * The custom keys configuration of the cluster. + * + */ + @Export(name="userManagedKeysConfig", refs={ClusterUserManagedKeysConfig.class}, tree="[0]") + private Output userManagedKeysConfig; + + /** + * @return The custom keys configuration of the cluster. + * + */ + public Output> userManagedKeysConfig() { + return Codegen.optional(this.userManagedKeysConfig); + } /** * Vertical Pod Autoscaling automatically adjusts the resources of pods controlled by it. * Structure is documented below. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/ClusterArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/container/ClusterArgs.java index cc02fe1bb6..719e585136 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/container/ClusterArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/ClusterArgs.java @@ -11,6 +11,7 @@ import com.pulumi.gcp.container.inputs.ClusterClusterAutoscalingArgs; import com.pulumi.gcp.container.inputs.ClusterClusterTelemetryArgs; import com.pulumi.gcp.container.inputs.ClusterConfidentialNodesArgs; +import com.pulumi.gcp.container.inputs.ClusterControlPlaneEndpointsConfigArgs; import com.pulumi.gcp.container.inputs.ClusterCostManagementConfigArgs; import com.pulumi.gcp.container.inputs.ClusterDatabaseEncryptionArgs; import com.pulumi.gcp.container.inputs.ClusterDefaultSnatStatusArgs; @@ -41,6 +42,7 @@ import com.pulumi.gcp.container.inputs.ClusterSecurityPostureConfigArgs; import com.pulumi.gcp.container.inputs.ClusterServiceExternalIpsConfigArgs; import com.pulumi.gcp.container.inputs.ClusterTpuConfigArgs; +import com.pulumi.gcp.container.inputs.ClusterUserManagedKeysConfigArgs; import com.pulumi.gcp.container.inputs.ClusterVerticalPodAutoscalingArgs; import com.pulumi.gcp.container.inputs.ClusterWorkloadAltsConfigArgs; import com.pulumi.gcp.container.inputs.ClusterWorkloadIdentityConfigArgs; @@ -208,6 +210,23 @@ public Optional> confidentialNodes() { return Optional.ofNullable(this.confidentialNodes); } + /** + * Configuration for all of the cluster's control plane endpoints. + * Structure is documented below. + * + */ + @Import(name="controlPlaneEndpointsConfig") + private @Nullable Output controlPlaneEndpointsConfig; + + /** + * @return Configuration for all of the cluster's control plane endpoints. + * Structure is documented below. + * + */ + public Optional> controlPlaneEndpointsConfig() { + return Optional.ofNullable(this.controlPlaneEndpointsConfig); + } + /** * Configuration for the * [Cost Allocation](https://cloud.google.com/kubernetes-engine/docs/how-to/cost-allocations) feature. @@ -1321,6 +1340,21 @@ public Optional> tpuConfig() { return Optional.ofNullable(this.tpuConfig); } + /** + * The custom keys configuration of the cluster. + * + */ + @Import(name="userManagedKeysConfig") + private @Nullable Output userManagedKeysConfig; + + /** + * @return The custom keys configuration of the cluster. + * + */ + public Optional> userManagedKeysConfig() { + return Optional.ofNullable(this.userManagedKeysConfig); + } + /** * Vertical Pod Autoscaling automatically adjusts the resources of pods controlled by it. * Structure is documented below. @@ -1387,6 +1421,7 @@ private ClusterArgs(ClusterArgs $) { this.clusterIpv4Cidr = $.clusterIpv4Cidr; this.clusterTelemetry = $.clusterTelemetry; this.confidentialNodes = $.confidentialNodes; + this.controlPlaneEndpointsConfig = $.controlPlaneEndpointsConfig; this.costManagementConfig = $.costManagementConfig; this.databaseEncryption = $.databaseEncryption; this.datapathProvider = $.datapathProvider; @@ -1446,6 +1481,7 @@ private ClusterArgs(ClusterArgs $) { this.serviceExternalIpsConfig = $.serviceExternalIpsConfig; this.subnetwork = $.subnetwork; this.tpuConfig = $.tpuConfig; + this.userManagedKeysConfig = $.userManagedKeysConfig; this.verticalPodAutoscaling = $.verticalPodAutoscaling; this.workloadAltsConfig = $.workloadAltsConfig; this.workloadIdentityConfig = $.workloadIdentityConfig; @@ -1667,6 +1703,29 @@ public Builder confidentialNodes(ClusterConfidentialNodesArgs confidentialNodes) return confidentialNodes(Output.of(confidentialNodes)); } + /** + * @param controlPlaneEndpointsConfig Configuration for all of the cluster's control plane endpoints. + * Structure is documented below. + * + * @return builder + * + */ + public Builder controlPlaneEndpointsConfig(@Nullable Output controlPlaneEndpointsConfig) { + $.controlPlaneEndpointsConfig = controlPlaneEndpointsConfig; + return this; + } + + /** + * @param controlPlaneEndpointsConfig Configuration for all of the cluster's control plane endpoints. + * Structure is documented below. + * + * @return builder + * + */ + public Builder controlPlaneEndpointsConfig(ClusterControlPlaneEndpointsConfigArgs controlPlaneEndpointsConfig) { + return controlPlaneEndpointsConfig(Output.of(controlPlaneEndpointsConfig)); + } + /** * @param costManagementConfig Configuration for the * [Cost Allocation](https://cloud.google.com/kubernetes-engine/docs/how-to/cost-allocations) feature. @@ -3165,6 +3224,27 @@ public Builder tpuConfig(ClusterTpuConfigArgs tpuConfig) { return tpuConfig(Output.of(tpuConfig)); } + /** + * @param userManagedKeysConfig The custom keys configuration of the cluster. + * + * @return builder + * + */ + public Builder userManagedKeysConfig(@Nullable Output userManagedKeysConfig) { + $.userManagedKeysConfig = userManagedKeysConfig; + return this; + } + + /** + * @param userManagedKeysConfig The custom keys configuration of the cluster. + * + * @return builder + * + */ + public Builder userManagedKeysConfig(ClusterUserManagedKeysConfigArgs userManagedKeysConfig) { + return userManagedKeysConfig(Output.of(userManagedKeysConfig)); + } + /** * @param verticalPodAutoscaling Vertical Pod Autoscaling automatically adjusts the resources of pods controlled by it. * Structure is documented below. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterAddonsConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterAddonsConfigArgs.java index 5087028261..7ca14ca2e8 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterAddonsConfigArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterAddonsConfigArgs.java @@ -17,6 +17,7 @@ import com.pulumi.gcp.container.inputs.ClusterAddonsConfigIstioConfigArgs; import com.pulumi.gcp.container.inputs.ClusterAddonsConfigKalmConfigArgs; import com.pulumi.gcp.container.inputs.ClusterAddonsConfigNetworkPolicyConfigArgs; +import com.pulumi.gcp.container.inputs.ClusterAddonsConfigParallelstoreCsiDriverConfigArgs; import com.pulumi.gcp.container.inputs.ClusterAddonsConfigRayOperatorConfigArgs; import com.pulumi.gcp.container.inputs.ClusterAddonsConfigStatefulHaConfigArgs; import java.util.List; @@ -267,6 +268,33 @@ public Optional> networkPolic return Optional.ofNullable(this.networkPolicyConfig); } + /** + * The status of the Parallelstore CSI driver addon, + * which allows the usage of a Parallelstore instances as volumes. + * It is disabled by default for Standard clusters; set `enabled = true` to enable. + * It is enabled by default for Autopilot clusters with version 1.29 or later; set `enabled = true` to enable it explicitly. + * See [Enable the Parallelstore CSI driver](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/parallelstore-csi-new-volume#enable) for more information. + * + * This example `addons_config` disables two addons: + * + */ + @Import(name="parallelstoreCsiDriverConfig") + private @Nullable Output parallelstoreCsiDriverConfig; + + /** + * @return The status of the Parallelstore CSI driver addon, + * which allows the usage of a Parallelstore instances as volumes. + * It is disabled by default for Standard clusters; set `enabled = true` to enable. + * It is enabled by default for Autopilot clusters with version 1.29 or later; set `enabled = true` to enable it explicitly. + * See [Enable the Parallelstore CSI driver](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/parallelstore-csi-new-volume#enable) for more information. + * + * This example `addons_config` disables two addons: + * + */ + public Optional> parallelstoreCsiDriverConfig() { + return Optional.ofNullable(this.parallelstoreCsiDriverConfig); + } + /** * . The status of the [Ray Operator * addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview). @@ -281,8 +309,6 @@ public Optional> networkPolic * GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) * for more information. * - * This example `addons_config` disables two addons: - * */ @Import(name="rayOperatorConfigs") private @Nullable Output> rayOperatorConfigs; @@ -301,8 +327,6 @@ public Optional> networkPolic * GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) * for more information. * - * This example `addons_config` disables two addons: - * */ public Optional>> rayOperatorConfigs() { return Optional.ofNullable(this.rayOperatorConfigs); @@ -342,6 +366,7 @@ private ClusterAddonsConfigArgs(ClusterAddonsConfigArgs $) { this.istioConfig = $.istioConfig; this.kalmConfig = $.kalmConfig; this.networkPolicyConfig = $.networkPolicyConfig; + this.parallelstoreCsiDriverConfig = $.parallelstoreCsiDriverConfig; this.rayOperatorConfigs = $.rayOperatorConfigs; this.statefulHaConfig = $.statefulHaConfig; } @@ -674,6 +699,39 @@ public Builder networkPolicyConfig(ClusterAddonsConfigNetworkPolicyConfigArgs ne return networkPolicyConfig(Output.of(networkPolicyConfig)); } + /** + * @param parallelstoreCsiDriverConfig The status of the Parallelstore CSI driver addon, + * which allows the usage of a Parallelstore instances as volumes. + * It is disabled by default for Standard clusters; set `enabled = true` to enable. + * It is enabled by default for Autopilot clusters with version 1.29 or later; set `enabled = true` to enable it explicitly. + * See [Enable the Parallelstore CSI driver](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/parallelstore-csi-new-volume#enable) for more information. + * + * This example `addons_config` disables two addons: + * + * @return builder + * + */ + public Builder parallelstoreCsiDriverConfig(@Nullable Output parallelstoreCsiDriverConfig) { + $.parallelstoreCsiDriverConfig = parallelstoreCsiDriverConfig; + return this; + } + + /** + * @param parallelstoreCsiDriverConfig The status of the Parallelstore CSI driver addon, + * which allows the usage of a Parallelstore instances as volumes. + * It is disabled by default for Standard clusters; set `enabled = true` to enable. + * It is enabled by default for Autopilot clusters with version 1.29 or later; set `enabled = true` to enable it explicitly. + * See [Enable the Parallelstore CSI driver](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/parallelstore-csi-new-volume#enable) for more information. + * + * This example `addons_config` disables two addons: + * + * @return builder + * + */ + public Builder parallelstoreCsiDriverConfig(ClusterAddonsConfigParallelstoreCsiDriverConfigArgs parallelstoreCsiDriverConfig) { + return parallelstoreCsiDriverConfig(Output.of(parallelstoreCsiDriverConfig)); + } + /** * @param rayOperatorConfigs . The status of the [Ray Operator * addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview). @@ -688,8 +746,6 @@ public Builder networkPolicyConfig(ClusterAddonsConfigNetworkPolicyConfigArgs ne * GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) * for more information. * - * This example `addons_config` disables two addons: - * * @return builder * */ @@ -712,8 +768,6 @@ public Builder rayOperatorConfigs(@Nullable Output * GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) * for more information. * - * This example `addons_config` disables two addons: - * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterAddonsConfigParallelstoreCsiDriverConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterAddonsConfigParallelstoreCsiDriverConfigArgs.java new file mode 100644 index 0000000000..da4fcd403a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterAddonsConfigParallelstoreCsiDriverConfigArgs.java @@ -0,0 +1,65 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.container.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.util.Objects; + + +public final class ClusterAddonsConfigParallelstoreCsiDriverConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final ClusterAddonsConfigParallelstoreCsiDriverConfigArgs Empty = new ClusterAddonsConfigParallelstoreCsiDriverConfigArgs(); + + @Import(name="enabled", required=true) + private Output enabled; + + public Output enabled() { + return this.enabled; + } + + private ClusterAddonsConfigParallelstoreCsiDriverConfigArgs() {} + + private ClusterAddonsConfigParallelstoreCsiDriverConfigArgs(ClusterAddonsConfigParallelstoreCsiDriverConfigArgs $) { + this.enabled = $.enabled; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ClusterAddonsConfigParallelstoreCsiDriverConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ClusterAddonsConfigParallelstoreCsiDriverConfigArgs $; + + public Builder() { + $ = new ClusterAddonsConfigParallelstoreCsiDriverConfigArgs(); + } + + public Builder(ClusterAddonsConfigParallelstoreCsiDriverConfigArgs defaults) { + $ = new ClusterAddonsConfigParallelstoreCsiDriverConfigArgs(Objects.requireNonNull(defaults)); + } + + public Builder enabled(Output enabled) { + $.enabled = enabled; + return this; + } + + public Builder enabled(Boolean enabled) { + return enabled(Output.of(enabled)); + } + + public ClusterAddonsConfigParallelstoreCsiDriverConfigArgs build() { + if ($.enabled == null) { + throw new MissingRequiredPropertyException("ClusterAddonsConfigParallelstoreCsiDriverConfigArgs", "enabled"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterControlPlaneEndpointsConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterControlPlaneEndpointsConfigArgs.java new file mode 100644 index 0000000000..a0463fa05d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterControlPlaneEndpointsConfigArgs.java @@ -0,0 +1,83 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.container.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.container.inputs.ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ClusterControlPlaneEndpointsConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final ClusterControlPlaneEndpointsConfigArgs Empty = new ClusterControlPlaneEndpointsConfigArgs(); + + /** + * DNS endpoint configuration. + * + */ + @Import(name="dnsEndpointConfig") + private @Nullable Output dnsEndpointConfig; + + /** + * @return DNS endpoint configuration. + * + */ + public Optional> dnsEndpointConfig() { + return Optional.ofNullable(this.dnsEndpointConfig); + } + + private ClusterControlPlaneEndpointsConfigArgs() {} + + private ClusterControlPlaneEndpointsConfigArgs(ClusterControlPlaneEndpointsConfigArgs $) { + this.dnsEndpointConfig = $.dnsEndpointConfig; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ClusterControlPlaneEndpointsConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ClusterControlPlaneEndpointsConfigArgs $; + + public Builder() { + $ = new ClusterControlPlaneEndpointsConfigArgs(); + } + + public Builder(ClusterControlPlaneEndpointsConfigArgs defaults) { + $ = new ClusterControlPlaneEndpointsConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param dnsEndpointConfig DNS endpoint configuration. + * + * @return builder + * + */ + public Builder dnsEndpointConfig(@Nullable Output dnsEndpointConfig) { + $.dnsEndpointConfig = dnsEndpointConfig; + return this; + } + + /** + * @param dnsEndpointConfig DNS endpoint configuration. + * + * @return builder + * + */ + public Builder dnsEndpointConfig(ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs dnsEndpointConfig) { + return dnsEndpointConfig(Output.of(dnsEndpointConfig)); + } + + public ClusterControlPlaneEndpointsConfigArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs.java new file mode 100644 index 0000000000..6287a03f05 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs.java @@ -0,0 +1,121 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.container.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs Empty = new ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs(); + + /** + * Controls whether user traffic is allowed over this endpoint. Note that GCP-managed services may still use the endpoint even if this is false. + * + */ + @Import(name="allowExternalTraffic") + private @Nullable Output allowExternalTraffic; + + /** + * @return Controls whether user traffic is allowed over this endpoint. Note that GCP-managed services may still use the endpoint even if this is false. + * + */ + public Optional> allowExternalTraffic() { + return Optional.ofNullable(this.allowExternalTraffic); + } + + /** + * The cluster's DNS endpoint. + * + */ + @Import(name="endpoint") + private @Nullable Output endpoint; + + /** + * @return The cluster's DNS endpoint. + * + */ + public Optional> endpoint() { + return Optional.ofNullable(this.endpoint); + } + + private ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs() {} + + private ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs(ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs $) { + this.allowExternalTraffic = $.allowExternalTraffic; + this.endpoint = $.endpoint; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs $; + + public Builder() { + $ = new ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs(); + } + + public Builder(ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs defaults) { + $ = new ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param allowExternalTraffic Controls whether user traffic is allowed over this endpoint. Note that GCP-managed services may still use the endpoint even if this is false. + * + * @return builder + * + */ + public Builder allowExternalTraffic(@Nullable Output allowExternalTraffic) { + $.allowExternalTraffic = allowExternalTraffic; + return this; + } + + /** + * @param allowExternalTraffic Controls whether user traffic is allowed over this endpoint. Note that GCP-managed services may still use the endpoint even if this is false. + * + * @return builder + * + */ + public Builder allowExternalTraffic(Boolean allowExternalTraffic) { + return allowExternalTraffic(Output.of(allowExternalTraffic)); + } + + /** + * @param endpoint The cluster's DNS endpoint. + * + * @return builder + * + */ + public Builder endpoint(@Nullable Output endpoint) { + $.endpoint = endpoint; + return this; + } + + /** + * @param endpoint The cluster's DNS endpoint. + * + * @return builder + * + */ + public Builder endpoint(String endpoint) { + return endpoint(Output.of(endpoint)); + } + + public ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterMasterAuthorizedNetworksConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterMasterAuthorizedNetworksConfigArgs.java index 778e31e412..f89ddde4de 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterMasterAuthorizedNetworksConfigArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterMasterAuthorizedNetworksConfigArgs.java @@ -51,11 +51,27 @@ public Optional> gcpPublicCidrsAccessEnabled() { return Optional.ofNullable(this.gcpPublicCidrsAccessEnabled); } + /** + * Whether authorized networks is enforced on the private endpoint or not. Defaults to false. + * + */ + @Import(name="privateEndpointEnforcementEnabled") + private @Nullable Output privateEndpointEnforcementEnabled; + + /** + * @return Whether authorized networks is enforced on the private endpoint or not. Defaults to false. + * + */ + public Optional> privateEndpointEnforcementEnabled() { + return Optional.ofNullable(this.privateEndpointEnforcementEnabled); + } + private ClusterMasterAuthorizedNetworksConfigArgs() {} private ClusterMasterAuthorizedNetworksConfigArgs(ClusterMasterAuthorizedNetworksConfigArgs $) { this.cidrBlocks = $.cidrBlocks; this.gcpPublicCidrsAccessEnabled = $.gcpPublicCidrsAccessEnabled; + this.privateEndpointEnforcementEnabled = $.privateEndpointEnforcementEnabled; } public static Builder builder() { @@ -133,6 +149,27 @@ public Builder gcpPublicCidrsAccessEnabled(Boolean gcpPublicCidrsAccessEnabled) return gcpPublicCidrsAccessEnabled(Output.of(gcpPublicCidrsAccessEnabled)); } + /** + * @param privateEndpointEnforcementEnabled Whether authorized networks is enforced on the private endpoint or not. Defaults to false. + * + * @return builder + * + */ + public Builder privateEndpointEnforcementEnabled(@Nullable Output privateEndpointEnforcementEnabled) { + $.privateEndpointEnforcementEnabled = privateEndpointEnforcementEnabled; + return this; + } + + /** + * @param privateEndpointEnforcementEnabled Whether authorized networks is enforced on the private endpoint or not. Defaults to false. + * + * @return builder + * + */ + public Builder privateEndpointEnforcementEnabled(Boolean privateEndpointEnforcementEnabled) { + return privateEndpointEnforcementEnabled(Output.of(privateEndpointEnforcementEnabled)); + } + public ClusterMasterAuthorizedNetworksConfigArgs build() { return $; } diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterState.java b/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterState.java index ab33fe3595..08f6a3f24f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterState.java @@ -11,6 +11,7 @@ import com.pulumi.gcp.container.inputs.ClusterClusterAutoscalingArgs; import com.pulumi.gcp.container.inputs.ClusterClusterTelemetryArgs; import com.pulumi.gcp.container.inputs.ClusterConfidentialNodesArgs; +import com.pulumi.gcp.container.inputs.ClusterControlPlaneEndpointsConfigArgs; import com.pulumi.gcp.container.inputs.ClusterCostManagementConfigArgs; import com.pulumi.gcp.container.inputs.ClusterDatabaseEncryptionArgs; import com.pulumi.gcp.container.inputs.ClusterDefaultSnatStatusArgs; @@ -41,6 +42,7 @@ import com.pulumi.gcp.container.inputs.ClusterSecurityPostureConfigArgs; import com.pulumi.gcp.container.inputs.ClusterServiceExternalIpsConfigArgs; import com.pulumi.gcp.container.inputs.ClusterTpuConfigArgs; +import com.pulumi.gcp.container.inputs.ClusterUserManagedKeysConfigArgs; import com.pulumi.gcp.container.inputs.ClusterVerticalPodAutoscalingArgs; import com.pulumi.gcp.container.inputs.ClusterWorkloadAltsConfigArgs; import com.pulumi.gcp.container.inputs.ClusterWorkloadIdentityConfigArgs; @@ -208,6 +210,23 @@ public Optional> confidentialNodes() { return Optional.ofNullable(this.confidentialNodes); } + /** + * Configuration for all of the cluster's control plane endpoints. + * Structure is documented below. + * + */ + @Import(name="controlPlaneEndpointsConfig") + private @Nullable Output controlPlaneEndpointsConfig; + + /** + * @return Configuration for all of the cluster's control plane endpoints. + * Structure is documented below. + * + */ + public Optional> controlPlaneEndpointsConfig() { + return Optional.ofNullable(this.controlPlaneEndpointsConfig); + } + /** * Configuration for the * [Cost Allocation](https://cloud.google.com/kubernetes-engine/docs/how-to/cost-allocations) feature. @@ -1462,6 +1481,21 @@ public Optional> tpuIpv4CidrBlock() { return Optional.ofNullable(this.tpuIpv4CidrBlock); } + /** + * The custom keys configuration of the cluster. + * + */ + @Import(name="userManagedKeysConfig") + private @Nullable Output userManagedKeysConfig; + + /** + * @return The custom keys configuration of the cluster. + * + */ + public Optional> userManagedKeysConfig() { + return Optional.ofNullable(this.userManagedKeysConfig); + } + /** * Vertical Pod Autoscaling automatically adjusts the resources of pods controlled by it. * Structure is documented below. @@ -1528,6 +1562,7 @@ private ClusterState(ClusterState $) { this.clusterIpv4Cidr = $.clusterIpv4Cidr; this.clusterTelemetry = $.clusterTelemetry; this.confidentialNodes = $.confidentialNodes; + this.controlPlaneEndpointsConfig = $.controlPlaneEndpointsConfig; this.costManagementConfig = $.costManagementConfig; this.databaseEncryption = $.databaseEncryption; this.datapathProvider = $.datapathProvider; @@ -1596,6 +1631,7 @@ private ClusterState(ClusterState $) { this.subnetwork = $.subnetwork; this.tpuConfig = $.tpuConfig; this.tpuIpv4CidrBlock = $.tpuIpv4CidrBlock; + this.userManagedKeysConfig = $.userManagedKeysConfig; this.verticalPodAutoscaling = $.verticalPodAutoscaling; this.workloadAltsConfig = $.workloadAltsConfig; this.workloadIdentityConfig = $.workloadIdentityConfig; @@ -1817,6 +1853,29 @@ public Builder confidentialNodes(ClusterConfidentialNodesArgs confidentialNodes) return confidentialNodes(Output.of(confidentialNodes)); } + /** + * @param controlPlaneEndpointsConfig Configuration for all of the cluster's control plane endpoints. + * Structure is documented below. + * + * @return builder + * + */ + public Builder controlPlaneEndpointsConfig(@Nullable Output controlPlaneEndpointsConfig) { + $.controlPlaneEndpointsConfig = controlPlaneEndpointsConfig; + return this; + } + + /** + * @param controlPlaneEndpointsConfig Configuration for all of the cluster's control plane endpoints. + * Structure is documented below. + * + * @return builder + * + */ + public Builder controlPlaneEndpointsConfig(ClusterControlPlaneEndpointsConfigArgs controlPlaneEndpointsConfig) { + return controlPlaneEndpointsConfig(Output.of(controlPlaneEndpointsConfig)); + } + /** * @param costManagementConfig Configuration for the * [Cost Allocation](https://cloud.google.com/kubernetes-engine/docs/how-to/cost-allocations) feature. @@ -3506,6 +3565,27 @@ public Builder tpuIpv4CidrBlock(String tpuIpv4CidrBlock) { return tpuIpv4CidrBlock(Output.of(tpuIpv4CidrBlock)); } + /** + * @param userManagedKeysConfig The custom keys configuration of the cluster. + * + * @return builder + * + */ + public Builder userManagedKeysConfig(@Nullable Output userManagedKeysConfig) { + $.userManagedKeysConfig = userManagedKeysConfig; + return this; + } + + /** + * @param userManagedKeysConfig The custom keys configuration of the cluster. + * + * @return builder + * + */ + public Builder userManagedKeysConfig(ClusterUserManagedKeysConfigArgs userManagedKeysConfig) { + return userManagedKeysConfig(Output.of(userManagedKeysConfig)); + } + /** * @param verticalPodAutoscaling Vertical Pod Autoscaling automatically adjusts the resources of pods controlled by it. * Structure is documented below. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterUserManagedKeysConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterUserManagedKeysConfigArgs.java new file mode 100644 index 0000000000..84fd9b3de6 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterUserManagedKeysConfigArgs.java @@ -0,0 +1,363 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.container.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ClusterUserManagedKeysConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final ClusterUserManagedKeysConfigArgs Empty = new ClusterUserManagedKeysConfigArgs(); + + /** + * The Certificate Authority Service caPool to use for the aggreation CA in this cluster. + * + */ + @Import(name="aggregationCa") + private @Nullable Output aggregationCa; + + /** + * @return The Certificate Authority Service caPool to use for the aggreation CA in this cluster. + * + */ + public Optional> aggregationCa() { + return Optional.ofNullable(this.aggregationCa); + } + + /** + * The Certificate Authority Service caPool to use for the cluster CA in this cluster. + * + */ + @Import(name="clusterCa") + private @Nullable Output clusterCa; + + /** + * @return The Certificate Authority Service caPool to use for the cluster CA in this cluster. + * + */ + public Optional> clusterCa() { + return Optional.ofNullable(this.clusterCa); + } + + /** + * The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes. + * + */ + @Import(name="controlPlaneDiskEncryptionKey") + private @Nullable Output controlPlaneDiskEncryptionKey; + + /** + * @return The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes. + * + */ + public Optional> controlPlaneDiskEncryptionKey() { + return Optional.ofNullable(this.controlPlaneDiskEncryptionKey); + } + + /** + * The Certificate Authority Service caPool to use for the etcd API CA in this cluster. + * + */ + @Import(name="etcdApiCa") + private @Nullable Output etcdApiCa; + + /** + * @return The Certificate Authority Service caPool to use for the etcd API CA in this cluster. + * + */ + public Optional> etcdApiCa() { + return Optional.ofNullable(this.etcdApiCa); + } + + /** + * The Certificate Authority Service caPool to use for the etcd peer CA in this cluster. + * + */ + @Import(name="etcdPeerCa") + private @Nullable Output etcdPeerCa; + + /** + * @return The Certificate Authority Service caPool to use for the etcd peer CA in this cluster. + * + */ + public Optional> etcdPeerCa() { + return Optional.ofNullable(this.etcdPeerCa); + } + + /** + * Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups. + * + */ + @Import(name="gkeopsEtcdBackupEncryptionKey") + private @Nullable Output gkeopsEtcdBackupEncryptionKey; + + /** + * @return Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups. + * + */ + public Optional> gkeopsEtcdBackupEncryptionKey() { + return Optional.ofNullable(this.gkeopsEtcdBackupEncryptionKey); + } + + /** + * The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. + * + */ + @Import(name="serviceAccountSigningKeys") + private @Nullable Output> serviceAccountSigningKeys; + + /** + * @return The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. + * + */ + public Optional>> serviceAccountSigningKeys() { + return Optional.ofNullable(this.serviceAccountSigningKeys); + } + + /** + * The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. + * + */ + @Import(name="serviceAccountVerificationKeys") + private @Nullable Output> serviceAccountVerificationKeys; + + /** + * @return The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. + * + */ + public Optional>> serviceAccountVerificationKeys() { + return Optional.ofNullable(this.serviceAccountVerificationKeys); + } + + private ClusterUserManagedKeysConfigArgs() {} + + private ClusterUserManagedKeysConfigArgs(ClusterUserManagedKeysConfigArgs $) { + this.aggregationCa = $.aggregationCa; + this.clusterCa = $.clusterCa; + this.controlPlaneDiskEncryptionKey = $.controlPlaneDiskEncryptionKey; + this.etcdApiCa = $.etcdApiCa; + this.etcdPeerCa = $.etcdPeerCa; + this.gkeopsEtcdBackupEncryptionKey = $.gkeopsEtcdBackupEncryptionKey; + this.serviceAccountSigningKeys = $.serviceAccountSigningKeys; + this.serviceAccountVerificationKeys = $.serviceAccountVerificationKeys; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ClusterUserManagedKeysConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ClusterUserManagedKeysConfigArgs $; + + public Builder() { + $ = new ClusterUserManagedKeysConfigArgs(); + } + + public Builder(ClusterUserManagedKeysConfigArgs defaults) { + $ = new ClusterUserManagedKeysConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param aggregationCa The Certificate Authority Service caPool to use for the aggreation CA in this cluster. + * + * @return builder + * + */ + public Builder aggregationCa(@Nullable Output aggregationCa) { + $.aggregationCa = aggregationCa; + return this; + } + + /** + * @param aggregationCa The Certificate Authority Service caPool to use for the aggreation CA in this cluster. + * + * @return builder + * + */ + public Builder aggregationCa(String aggregationCa) { + return aggregationCa(Output.of(aggregationCa)); + } + + /** + * @param clusterCa The Certificate Authority Service caPool to use for the cluster CA in this cluster. + * + * @return builder + * + */ + public Builder clusterCa(@Nullable Output clusterCa) { + $.clusterCa = clusterCa; + return this; + } + + /** + * @param clusterCa The Certificate Authority Service caPool to use for the cluster CA in this cluster. + * + * @return builder + * + */ + public Builder clusterCa(String clusterCa) { + return clusterCa(Output.of(clusterCa)); + } + + /** + * @param controlPlaneDiskEncryptionKey The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes. + * + * @return builder + * + */ + public Builder controlPlaneDiskEncryptionKey(@Nullable Output controlPlaneDiskEncryptionKey) { + $.controlPlaneDiskEncryptionKey = controlPlaneDiskEncryptionKey; + return this; + } + + /** + * @param controlPlaneDiskEncryptionKey The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes. + * + * @return builder + * + */ + public Builder controlPlaneDiskEncryptionKey(String controlPlaneDiskEncryptionKey) { + return controlPlaneDiskEncryptionKey(Output.of(controlPlaneDiskEncryptionKey)); + } + + /** + * @param etcdApiCa The Certificate Authority Service caPool to use for the etcd API CA in this cluster. + * + * @return builder + * + */ + public Builder etcdApiCa(@Nullable Output etcdApiCa) { + $.etcdApiCa = etcdApiCa; + return this; + } + + /** + * @param etcdApiCa The Certificate Authority Service caPool to use for the etcd API CA in this cluster. + * + * @return builder + * + */ + public Builder etcdApiCa(String etcdApiCa) { + return etcdApiCa(Output.of(etcdApiCa)); + } + + /** + * @param etcdPeerCa The Certificate Authority Service caPool to use for the etcd peer CA in this cluster. + * + * @return builder + * + */ + public Builder etcdPeerCa(@Nullable Output etcdPeerCa) { + $.etcdPeerCa = etcdPeerCa; + return this; + } + + /** + * @param etcdPeerCa The Certificate Authority Service caPool to use for the etcd peer CA in this cluster. + * + * @return builder + * + */ + public Builder etcdPeerCa(String etcdPeerCa) { + return etcdPeerCa(Output.of(etcdPeerCa)); + } + + /** + * @param gkeopsEtcdBackupEncryptionKey Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups. + * + * @return builder + * + */ + public Builder gkeopsEtcdBackupEncryptionKey(@Nullable Output gkeopsEtcdBackupEncryptionKey) { + $.gkeopsEtcdBackupEncryptionKey = gkeopsEtcdBackupEncryptionKey; + return this; + } + + /** + * @param gkeopsEtcdBackupEncryptionKey Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups. + * + * @return builder + * + */ + public Builder gkeopsEtcdBackupEncryptionKey(String gkeopsEtcdBackupEncryptionKey) { + return gkeopsEtcdBackupEncryptionKey(Output.of(gkeopsEtcdBackupEncryptionKey)); + } + + /** + * @param serviceAccountSigningKeys The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. + * + * @return builder + * + */ + public Builder serviceAccountSigningKeys(@Nullable Output> serviceAccountSigningKeys) { + $.serviceAccountSigningKeys = serviceAccountSigningKeys; + return this; + } + + /** + * @param serviceAccountSigningKeys The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. + * + * @return builder + * + */ + public Builder serviceAccountSigningKeys(List serviceAccountSigningKeys) { + return serviceAccountSigningKeys(Output.of(serviceAccountSigningKeys)); + } + + /** + * @param serviceAccountSigningKeys The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. + * + * @return builder + * + */ + public Builder serviceAccountSigningKeys(String... serviceAccountSigningKeys) { + return serviceAccountSigningKeys(List.of(serviceAccountSigningKeys)); + } + + /** + * @param serviceAccountVerificationKeys The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. + * + * @return builder + * + */ + public Builder serviceAccountVerificationKeys(@Nullable Output> serviceAccountVerificationKeys) { + $.serviceAccountVerificationKeys = serviceAccountVerificationKeys; + return this; + } + + /** + * @param serviceAccountVerificationKeys The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. + * + * @return builder + * + */ + public Builder serviceAccountVerificationKeys(List serviceAccountVerificationKeys) { + return serviceAccountVerificationKeys(Output.of(serviceAccountVerificationKeys)); + } + + /** + * @param serviceAccountVerificationKeys The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. + * + * @return builder + * + */ + public Builder serviceAccountVerificationKeys(String... serviceAccountVerificationKeys) { + return serviceAccountVerificationKeys(List.of(serviceAccountVerificationKeys)); + } + + public ClusterUserManagedKeysConfigArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/ClusterAddonsConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/ClusterAddonsConfig.java index 4cb503f575..960973c9ae 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/ClusterAddonsConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/ClusterAddonsConfig.java @@ -16,6 +16,7 @@ import com.pulumi.gcp.container.outputs.ClusterAddonsConfigIstioConfig; import com.pulumi.gcp.container.outputs.ClusterAddonsConfigKalmConfig; import com.pulumi.gcp.container.outputs.ClusterAddonsConfigNetworkPolicyConfig; +import com.pulumi.gcp.container.outputs.ClusterAddonsConfigParallelstoreCsiDriverConfig; import com.pulumi.gcp.container.outputs.ClusterAddonsConfigRayOperatorConfig; import com.pulumi.gcp.container.outputs.ClusterAddonsConfigStatefulHaConfig; import java.util.List; @@ -114,6 +115,17 @@ public final class ClusterAddonsConfig { * */ private @Nullable ClusterAddonsConfigNetworkPolicyConfig networkPolicyConfig; + /** + * @return The status of the Parallelstore CSI driver addon, + * which allows the usage of a Parallelstore instances as volumes. + * It is disabled by default for Standard clusters; set `enabled = true` to enable. + * It is enabled by default for Autopilot clusters with version 1.29 or later; set `enabled = true` to enable it explicitly. + * See [Enable the Parallelstore CSI driver](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/parallelstore-csi-new-volume#enable) for more information. + * + * This example `addons_config` disables two addons: + * + */ + private @Nullable ClusterAddonsConfigParallelstoreCsiDriverConfig parallelstoreCsiDriverConfig; /** * @return . The status of the [Ray Operator * addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview). @@ -128,8 +140,6 @@ public final class ClusterAddonsConfig { * GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) * for more information. * - * This example `addons_config` disables two addons: - * */ private @Nullable List rayOperatorConfigs; /** @@ -254,6 +264,19 @@ public Optional kalmConfig() { public Optional networkPolicyConfig() { return Optional.ofNullable(this.networkPolicyConfig); } + /** + * @return The status of the Parallelstore CSI driver addon, + * which allows the usage of a Parallelstore instances as volumes. + * It is disabled by default for Standard clusters; set `enabled = true` to enable. + * It is enabled by default for Autopilot clusters with version 1.29 or later; set `enabled = true` to enable it explicitly. + * See [Enable the Parallelstore CSI driver](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/parallelstore-csi-new-volume#enable) for more information. + * + * This example `addons_config` disables two addons: + * + */ + public Optional parallelstoreCsiDriverConfig() { + return Optional.ofNullable(this.parallelstoreCsiDriverConfig); + } /** * @return . The status of the [Ray Operator * addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview). @@ -268,8 +291,6 @@ public Optional networkPolicyConfig() { * GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) * for more information. * - * This example `addons_config` disables two addons: - * */ public List rayOperatorConfigs() { return this.rayOperatorConfigs == null ? List.of() : this.rayOperatorConfigs; @@ -305,6 +326,7 @@ public static final class Builder { private @Nullable ClusterAddonsConfigIstioConfig istioConfig; private @Nullable ClusterAddonsConfigKalmConfig kalmConfig; private @Nullable ClusterAddonsConfigNetworkPolicyConfig networkPolicyConfig; + private @Nullable ClusterAddonsConfigParallelstoreCsiDriverConfig parallelstoreCsiDriverConfig; private @Nullable List rayOperatorConfigs; private @Nullable ClusterAddonsConfigStatefulHaConfig statefulHaConfig; public Builder() {} @@ -322,6 +344,7 @@ public Builder(ClusterAddonsConfig defaults) { this.istioConfig = defaults.istioConfig; this.kalmConfig = defaults.kalmConfig; this.networkPolicyConfig = defaults.networkPolicyConfig; + this.parallelstoreCsiDriverConfig = defaults.parallelstoreCsiDriverConfig; this.rayOperatorConfigs = defaults.rayOperatorConfigs; this.statefulHaConfig = defaults.statefulHaConfig; } @@ -399,6 +422,12 @@ public Builder networkPolicyConfig(@Nullable ClusterAddonsConfigNetworkPolicyCon return this; } @CustomType.Setter + public Builder parallelstoreCsiDriverConfig(@Nullable ClusterAddonsConfigParallelstoreCsiDriverConfig parallelstoreCsiDriverConfig) { + + this.parallelstoreCsiDriverConfig = parallelstoreCsiDriverConfig; + return this; + } + @CustomType.Setter public Builder rayOperatorConfigs(@Nullable List rayOperatorConfigs) { this.rayOperatorConfigs = rayOperatorConfigs; @@ -427,6 +456,7 @@ public ClusterAddonsConfig build() { _resultValue.istioConfig = istioConfig; _resultValue.kalmConfig = kalmConfig; _resultValue.networkPolicyConfig = networkPolicyConfig; + _resultValue.parallelstoreCsiDriverConfig = parallelstoreCsiDriverConfig; _resultValue.rayOperatorConfigs = rayOperatorConfigs; _resultValue.statefulHaConfig = statefulHaConfig; return _resultValue; diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/ClusterAddonsConfigParallelstoreCsiDriverConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/ClusterAddonsConfigParallelstoreCsiDriverConfig.java new file mode 100644 index 0000000000..8d45150871 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/ClusterAddonsConfigParallelstoreCsiDriverConfig.java @@ -0,0 +1,50 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.container.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.util.Objects; + +@CustomType +public final class ClusterAddonsConfigParallelstoreCsiDriverConfig { + private Boolean enabled; + + private ClusterAddonsConfigParallelstoreCsiDriverConfig() {} + public Boolean enabled() { + return this.enabled; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ClusterAddonsConfigParallelstoreCsiDriverConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private Boolean enabled; + public Builder() {} + public Builder(ClusterAddonsConfigParallelstoreCsiDriverConfig defaults) { + Objects.requireNonNull(defaults); + this.enabled = defaults.enabled; + } + + @CustomType.Setter + public Builder enabled(Boolean enabled) { + if (enabled == null) { + throw new MissingRequiredPropertyException("ClusterAddonsConfigParallelstoreCsiDriverConfig", "enabled"); + } + this.enabled = enabled; + return this; + } + public ClusterAddonsConfigParallelstoreCsiDriverConfig build() { + final var _resultValue = new ClusterAddonsConfigParallelstoreCsiDriverConfig(); + _resultValue.enabled = enabled; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/ClusterControlPlaneEndpointsConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/ClusterControlPlaneEndpointsConfig.java new file mode 100644 index 0000000000..80f7794031 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/ClusterControlPlaneEndpointsConfig.java @@ -0,0 +1,57 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.container.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.container.outputs.ClusterControlPlaneEndpointsConfigDnsEndpointConfig; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ClusterControlPlaneEndpointsConfig { + /** + * @return DNS endpoint configuration. + * + */ + private @Nullable ClusterControlPlaneEndpointsConfigDnsEndpointConfig dnsEndpointConfig; + + private ClusterControlPlaneEndpointsConfig() {} + /** + * @return DNS endpoint configuration. + * + */ + public Optional dnsEndpointConfig() { + return Optional.ofNullable(this.dnsEndpointConfig); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ClusterControlPlaneEndpointsConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable ClusterControlPlaneEndpointsConfigDnsEndpointConfig dnsEndpointConfig; + public Builder() {} + public Builder(ClusterControlPlaneEndpointsConfig defaults) { + Objects.requireNonNull(defaults); + this.dnsEndpointConfig = defaults.dnsEndpointConfig; + } + + @CustomType.Setter + public Builder dnsEndpointConfig(@Nullable ClusterControlPlaneEndpointsConfigDnsEndpointConfig dnsEndpointConfig) { + + this.dnsEndpointConfig = dnsEndpointConfig; + return this; + } + public ClusterControlPlaneEndpointsConfig build() { + final var _resultValue = new ClusterControlPlaneEndpointsConfig(); + _resultValue.dnsEndpointConfig = dnsEndpointConfig; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/ClusterControlPlaneEndpointsConfigDnsEndpointConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/ClusterControlPlaneEndpointsConfigDnsEndpointConfig.java new file mode 100644 index 0000000000..05a26c0b53 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/ClusterControlPlaneEndpointsConfigDnsEndpointConfig.java @@ -0,0 +1,79 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.container.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ClusterControlPlaneEndpointsConfigDnsEndpointConfig { + /** + * @return Controls whether user traffic is allowed over this endpoint. Note that GCP-managed services may still use the endpoint even if this is false. + * + */ + private @Nullable Boolean allowExternalTraffic; + /** + * @return The cluster's DNS endpoint. + * + */ + private @Nullable String endpoint; + + private ClusterControlPlaneEndpointsConfigDnsEndpointConfig() {} + /** + * @return Controls whether user traffic is allowed over this endpoint. Note that GCP-managed services may still use the endpoint even if this is false. + * + */ + public Optional allowExternalTraffic() { + return Optional.ofNullable(this.allowExternalTraffic); + } + /** + * @return The cluster's DNS endpoint. + * + */ + public Optional endpoint() { + return Optional.ofNullable(this.endpoint); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ClusterControlPlaneEndpointsConfigDnsEndpointConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Boolean allowExternalTraffic; + private @Nullable String endpoint; + public Builder() {} + public Builder(ClusterControlPlaneEndpointsConfigDnsEndpointConfig defaults) { + Objects.requireNonNull(defaults); + this.allowExternalTraffic = defaults.allowExternalTraffic; + this.endpoint = defaults.endpoint; + } + + @CustomType.Setter + public Builder allowExternalTraffic(@Nullable Boolean allowExternalTraffic) { + + this.allowExternalTraffic = allowExternalTraffic; + return this; + } + @CustomType.Setter + public Builder endpoint(@Nullable String endpoint) { + + this.endpoint = endpoint; + return this; + } + public ClusterControlPlaneEndpointsConfigDnsEndpointConfig build() { + final var _resultValue = new ClusterControlPlaneEndpointsConfigDnsEndpointConfig(); + _resultValue.allowExternalTraffic = allowExternalTraffic; + _resultValue.endpoint = endpoint; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/ClusterMasterAuthorizedNetworksConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/ClusterMasterAuthorizedNetworksConfig.java index 4d4c8fac9c..a9c224ca05 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/ClusterMasterAuthorizedNetworksConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/ClusterMasterAuthorizedNetworksConfig.java @@ -25,6 +25,11 @@ public final class ClusterMasterAuthorizedNetworksConfig { * */ private @Nullable Boolean gcpPublicCidrsAccessEnabled; + /** + * @return Whether authorized networks is enforced on the private endpoint or not. Defaults to false. + * + */ + private @Nullable Boolean privateEndpointEnforcementEnabled; private ClusterMasterAuthorizedNetworksConfig() {} /** @@ -43,6 +48,13 @@ public List cidrBlocks() { public Optional gcpPublicCidrsAccessEnabled() { return Optional.ofNullable(this.gcpPublicCidrsAccessEnabled); } + /** + * @return Whether authorized networks is enforced on the private endpoint or not. Defaults to false. + * + */ + public Optional privateEndpointEnforcementEnabled() { + return Optional.ofNullable(this.privateEndpointEnforcementEnabled); + } public static Builder builder() { return new Builder(); @@ -55,11 +67,13 @@ public static Builder builder(ClusterMasterAuthorizedNetworksConfig defaults) { public static final class Builder { private @Nullable List cidrBlocks; private @Nullable Boolean gcpPublicCidrsAccessEnabled; + private @Nullable Boolean privateEndpointEnforcementEnabled; public Builder() {} public Builder(ClusterMasterAuthorizedNetworksConfig defaults) { Objects.requireNonNull(defaults); this.cidrBlocks = defaults.cidrBlocks; this.gcpPublicCidrsAccessEnabled = defaults.gcpPublicCidrsAccessEnabled; + this.privateEndpointEnforcementEnabled = defaults.privateEndpointEnforcementEnabled; } @CustomType.Setter @@ -77,10 +91,17 @@ public Builder gcpPublicCidrsAccessEnabled(@Nullable Boolean gcpPublicCidrsAcces this.gcpPublicCidrsAccessEnabled = gcpPublicCidrsAccessEnabled; return this; } + @CustomType.Setter + public Builder privateEndpointEnforcementEnabled(@Nullable Boolean privateEndpointEnforcementEnabled) { + + this.privateEndpointEnforcementEnabled = privateEndpointEnforcementEnabled; + return this; + } public ClusterMasterAuthorizedNetworksConfig build() { final var _resultValue = new ClusterMasterAuthorizedNetworksConfig(); _resultValue.cidrBlocks = cidrBlocks; _resultValue.gcpPublicCidrsAccessEnabled = gcpPublicCidrsAccessEnabled; + _resultValue.privateEndpointEnforcementEnabled = privateEndpointEnforcementEnabled; return _resultValue; } } diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/ClusterUserManagedKeysConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/ClusterUserManagedKeysConfig.java new file mode 100644 index 0000000000..6818ba41a2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/ClusterUserManagedKeysConfig.java @@ -0,0 +1,211 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.container.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ClusterUserManagedKeysConfig { + /** + * @return The Certificate Authority Service caPool to use for the aggreation CA in this cluster. + * + */ + private @Nullable String aggregationCa; + /** + * @return The Certificate Authority Service caPool to use for the cluster CA in this cluster. + * + */ + private @Nullable String clusterCa; + /** + * @return The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes. + * + */ + private @Nullable String controlPlaneDiskEncryptionKey; + /** + * @return The Certificate Authority Service caPool to use for the etcd API CA in this cluster. + * + */ + private @Nullable String etcdApiCa; + /** + * @return The Certificate Authority Service caPool to use for the etcd peer CA in this cluster. + * + */ + private @Nullable String etcdPeerCa; + /** + * @return Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups. + * + */ + private @Nullable String gkeopsEtcdBackupEncryptionKey; + /** + * @return The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. + * + */ + private @Nullable List serviceAccountSigningKeys; + /** + * @return The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. + * + */ + private @Nullable List serviceAccountVerificationKeys; + + private ClusterUserManagedKeysConfig() {} + /** + * @return The Certificate Authority Service caPool to use for the aggreation CA in this cluster. + * + */ + public Optional aggregationCa() { + return Optional.ofNullable(this.aggregationCa); + } + /** + * @return The Certificate Authority Service caPool to use for the cluster CA in this cluster. + * + */ + public Optional clusterCa() { + return Optional.ofNullable(this.clusterCa); + } + /** + * @return The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes. + * + */ + public Optional controlPlaneDiskEncryptionKey() { + return Optional.ofNullable(this.controlPlaneDiskEncryptionKey); + } + /** + * @return The Certificate Authority Service caPool to use for the etcd API CA in this cluster. + * + */ + public Optional etcdApiCa() { + return Optional.ofNullable(this.etcdApiCa); + } + /** + * @return The Certificate Authority Service caPool to use for the etcd peer CA in this cluster. + * + */ + public Optional etcdPeerCa() { + return Optional.ofNullable(this.etcdPeerCa); + } + /** + * @return Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups. + * + */ + public Optional gkeopsEtcdBackupEncryptionKey() { + return Optional.ofNullable(this.gkeopsEtcdBackupEncryptionKey); + } + /** + * @return The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. + * + */ + public List serviceAccountSigningKeys() { + return this.serviceAccountSigningKeys == null ? List.of() : this.serviceAccountSigningKeys; + } + /** + * @return The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. + * + */ + public List serviceAccountVerificationKeys() { + return this.serviceAccountVerificationKeys == null ? List.of() : this.serviceAccountVerificationKeys; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ClusterUserManagedKeysConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String aggregationCa; + private @Nullable String clusterCa; + private @Nullable String controlPlaneDiskEncryptionKey; + private @Nullable String etcdApiCa; + private @Nullable String etcdPeerCa; + private @Nullable String gkeopsEtcdBackupEncryptionKey; + private @Nullable List serviceAccountSigningKeys; + private @Nullable List serviceAccountVerificationKeys; + public Builder() {} + public Builder(ClusterUserManagedKeysConfig defaults) { + Objects.requireNonNull(defaults); + this.aggregationCa = defaults.aggregationCa; + this.clusterCa = defaults.clusterCa; + this.controlPlaneDiskEncryptionKey = defaults.controlPlaneDiskEncryptionKey; + this.etcdApiCa = defaults.etcdApiCa; + this.etcdPeerCa = defaults.etcdPeerCa; + this.gkeopsEtcdBackupEncryptionKey = defaults.gkeopsEtcdBackupEncryptionKey; + this.serviceAccountSigningKeys = defaults.serviceAccountSigningKeys; + this.serviceAccountVerificationKeys = defaults.serviceAccountVerificationKeys; + } + + @CustomType.Setter + public Builder aggregationCa(@Nullable String aggregationCa) { + + this.aggregationCa = aggregationCa; + return this; + } + @CustomType.Setter + public Builder clusterCa(@Nullable String clusterCa) { + + this.clusterCa = clusterCa; + return this; + } + @CustomType.Setter + public Builder controlPlaneDiskEncryptionKey(@Nullable String controlPlaneDiskEncryptionKey) { + + this.controlPlaneDiskEncryptionKey = controlPlaneDiskEncryptionKey; + return this; + } + @CustomType.Setter + public Builder etcdApiCa(@Nullable String etcdApiCa) { + + this.etcdApiCa = etcdApiCa; + return this; + } + @CustomType.Setter + public Builder etcdPeerCa(@Nullable String etcdPeerCa) { + + this.etcdPeerCa = etcdPeerCa; + return this; + } + @CustomType.Setter + public Builder gkeopsEtcdBackupEncryptionKey(@Nullable String gkeopsEtcdBackupEncryptionKey) { + + this.gkeopsEtcdBackupEncryptionKey = gkeopsEtcdBackupEncryptionKey; + return this; + } + @CustomType.Setter + public Builder serviceAccountSigningKeys(@Nullable List serviceAccountSigningKeys) { + + this.serviceAccountSigningKeys = serviceAccountSigningKeys; + return this; + } + public Builder serviceAccountSigningKeys(String... serviceAccountSigningKeys) { + return serviceAccountSigningKeys(List.of(serviceAccountSigningKeys)); + } + @CustomType.Setter + public Builder serviceAccountVerificationKeys(@Nullable List serviceAccountVerificationKeys) { + + this.serviceAccountVerificationKeys = serviceAccountVerificationKeys; + return this; + } + public Builder serviceAccountVerificationKeys(String... serviceAccountVerificationKeys) { + return serviceAccountVerificationKeys(List.of(serviceAccountVerificationKeys)); + } + public ClusterUserManagedKeysConfig build() { + final var _resultValue = new ClusterUserManagedKeysConfig(); + _resultValue.aggregationCa = aggregationCa; + _resultValue.clusterCa = clusterCa; + _resultValue.controlPlaneDiskEncryptionKey = controlPlaneDiskEncryptionKey; + _resultValue.etcdApiCa = etcdApiCa; + _resultValue.etcdPeerCa = etcdPeerCa; + _resultValue.gkeopsEtcdBackupEncryptionKey = gkeopsEtcdBackupEncryptionKey; + _resultValue.serviceAccountSigningKeys = serviceAccountSigningKeys; + _resultValue.serviceAccountVerificationKeys = serviceAccountVerificationKeys; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterAddonsConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterAddonsConfig.java index 42e76935df..322521b3e0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterAddonsConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterAddonsConfig.java @@ -17,6 +17,7 @@ import com.pulumi.gcp.container.outputs.GetClusterAddonsConfigIstioConfig; import com.pulumi.gcp.container.outputs.GetClusterAddonsConfigKalmConfig; import com.pulumi.gcp.container.outputs.GetClusterAddonsConfigNetworkPolicyConfig; +import com.pulumi.gcp.container.outputs.GetClusterAddonsConfigParallelstoreCsiDriverConfig; import com.pulumi.gcp.container.outputs.GetClusterAddonsConfigRayOperatorConfig; import com.pulumi.gcp.container.outputs.GetClusterAddonsConfigStatefulHaConfig; import java.util.List; @@ -84,6 +85,11 @@ public final class GetClusterAddonsConfig { * */ private List networkPolicyConfigs; + /** + * @return The status of the Parallelstore CSI driver addon, which allows the usage of Parallelstore instances as volumes. Defaults to disabled; set enabled = true to enable. + * + */ + private List parallelstoreCsiDriverConfigs; /** * @return The status of the Ray Operator addon, which enabled management of Ray AI/ML jobs on GKE. Defaults to disabled; set enabled = true to enable. * @@ -180,6 +186,13 @@ public List kalmConfigs() { public List networkPolicyConfigs() { return this.networkPolicyConfigs; } + /** + * @return The status of the Parallelstore CSI driver addon, which allows the usage of Parallelstore instances as volumes. Defaults to disabled; set enabled = true to enable. + * + */ + public List parallelstoreCsiDriverConfigs() { + return this.parallelstoreCsiDriverConfigs; + } /** * @return The status of the Ray Operator addon, which enabled management of Ray AI/ML jobs on GKE. Defaults to disabled; set enabled = true to enable. * @@ -216,6 +229,7 @@ public static final class Builder { private List istioConfigs; private List kalmConfigs; private List networkPolicyConfigs; + private List parallelstoreCsiDriverConfigs; private List rayOperatorConfigs; private List statefulHaConfigs; public Builder() {} @@ -233,6 +247,7 @@ public Builder(GetClusterAddonsConfig defaults) { this.istioConfigs = defaults.istioConfigs; this.kalmConfigs = defaults.kalmConfigs; this.networkPolicyConfigs = defaults.networkPolicyConfigs; + this.parallelstoreCsiDriverConfigs = defaults.parallelstoreCsiDriverConfigs; this.rayOperatorConfigs = defaults.rayOperatorConfigs; this.statefulHaConfigs = defaults.statefulHaConfigs; } @@ -370,6 +385,17 @@ public Builder networkPolicyConfigs(GetClusterAddonsConfigNetworkPolicyConfig... return networkPolicyConfigs(List.of(networkPolicyConfigs)); } @CustomType.Setter + public Builder parallelstoreCsiDriverConfigs(List parallelstoreCsiDriverConfigs) { + if (parallelstoreCsiDriverConfigs == null) { + throw new MissingRequiredPropertyException("GetClusterAddonsConfig", "parallelstoreCsiDriverConfigs"); + } + this.parallelstoreCsiDriverConfigs = parallelstoreCsiDriverConfigs; + return this; + } + public Builder parallelstoreCsiDriverConfigs(GetClusterAddonsConfigParallelstoreCsiDriverConfig... parallelstoreCsiDriverConfigs) { + return parallelstoreCsiDriverConfigs(List.of(parallelstoreCsiDriverConfigs)); + } + @CustomType.Setter public Builder rayOperatorConfigs(List rayOperatorConfigs) { if (rayOperatorConfigs == null) { throw new MissingRequiredPropertyException("GetClusterAddonsConfig", "rayOperatorConfigs"); @@ -405,6 +431,7 @@ public GetClusterAddonsConfig build() { _resultValue.istioConfigs = istioConfigs; _resultValue.kalmConfigs = kalmConfigs; _resultValue.networkPolicyConfigs = networkPolicyConfigs; + _resultValue.parallelstoreCsiDriverConfigs = parallelstoreCsiDriverConfigs; _resultValue.rayOperatorConfigs = rayOperatorConfigs; _resultValue.statefulHaConfigs = statefulHaConfigs; return _resultValue; diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterAddonsConfigParallelstoreCsiDriverConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterAddonsConfigParallelstoreCsiDriverConfig.java new file mode 100644 index 0000000000..7adf7e10cb --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterAddonsConfigParallelstoreCsiDriverConfig.java @@ -0,0 +1,50 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.container.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.util.Objects; + +@CustomType +public final class GetClusterAddonsConfigParallelstoreCsiDriverConfig { + private Boolean enabled; + + private GetClusterAddonsConfigParallelstoreCsiDriverConfig() {} + public Boolean enabled() { + return this.enabled; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetClusterAddonsConfigParallelstoreCsiDriverConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private Boolean enabled; + public Builder() {} + public Builder(GetClusterAddonsConfigParallelstoreCsiDriverConfig defaults) { + Objects.requireNonNull(defaults); + this.enabled = defaults.enabled; + } + + @CustomType.Setter + public Builder enabled(Boolean enabled) { + if (enabled == null) { + throw new MissingRequiredPropertyException("GetClusterAddonsConfigParallelstoreCsiDriverConfig", "enabled"); + } + this.enabled = enabled; + return this; + } + public GetClusterAddonsConfigParallelstoreCsiDriverConfig build() { + final var _resultValue = new GetClusterAddonsConfigParallelstoreCsiDriverConfig(); + _resultValue.enabled = enabled; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterControlPlaneEndpointsConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterControlPlaneEndpointsConfig.java new file mode 100644 index 0000000000..6d079a1ce4 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterControlPlaneEndpointsConfig.java @@ -0,0 +1,62 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.container.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.gcp.container.outputs.GetClusterControlPlaneEndpointsConfigDnsEndpointConfig; +import java.util.List; +import java.util.Objects; + +@CustomType +public final class GetClusterControlPlaneEndpointsConfig { + /** + * @return DNS endpoint configuration. + * + */ + private List dnsEndpointConfigs; + + private GetClusterControlPlaneEndpointsConfig() {} + /** + * @return DNS endpoint configuration. + * + */ + public List dnsEndpointConfigs() { + return this.dnsEndpointConfigs; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetClusterControlPlaneEndpointsConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private List dnsEndpointConfigs; + public Builder() {} + public Builder(GetClusterControlPlaneEndpointsConfig defaults) { + Objects.requireNonNull(defaults); + this.dnsEndpointConfigs = defaults.dnsEndpointConfigs; + } + + @CustomType.Setter + public Builder dnsEndpointConfigs(List dnsEndpointConfigs) { + if (dnsEndpointConfigs == null) { + throw new MissingRequiredPropertyException("GetClusterControlPlaneEndpointsConfig", "dnsEndpointConfigs"); + } + this.dnsEndpointConfigs = dnsEndpointConfigs; + return this; + } + public Builder dnsEndpointConfigs(GetClusterControlPlaneEndpointsConfigDnsEndpointConfig... dnsEndpointConfigs) { + return dnsEndpointConfigs(List.of(dnsEndpointConfigs)); + } + public GetClusterControlPlaneEndpointsConfig build() { + final var _resultValue = new GetClusterControlPlaneEndpointsConfig(); + _resultValue.dnsEndpointConfigs = dnsEndpointConfigs; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterControlPlaneEndpointsConfigDnsEndpointConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterControlPlaneEndpointsConfigDnsEndpointConfig.java new file mode 100644 index 0000000000..c41983fae6 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterControlPlaneEndpointsConfigDnsEndpointConfig.java @@ -0,0 +1,82 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.container.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GetClusterControlPlaneEndpointsConfigDnsEndpointConfig { + /** + * @return Controls whether user traffic is allowed over this endpoint. Note that GCP-managed services may still use the endpoint even if this is false. + * + */ + private Boolean allowExternalTraffic; + /** + * @return The cluster's DNS endpoint. + * + */ + private String endpoint; + + private GetClusterControlPlaneEndpointsConfigDnsEndpointConfig() {} + /** + * @return Controls whether user traffic is allowed over this endpoint. Note that GCP-managed services may still use the endpoint even if this is false. + * + */ + public Boolean allowExternalTraffic() { + return this.allowExternalTraffic; + } + /** + * @return The cluster's DNS endpoint. + * + */ + public String endpoint() { + return this.endpoint; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetClusterControlPlaneEndpointsConfigDnsEndpointConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private Boolean allowExternalTraffic; + private String endpoint; + public Builder() {} + public Builder(GetClusterControlPlaneEndpointsConfigDnsEndpointConfig defaults) { + Objects.requireNonNull(defaults); + this.allowExternalTraffic = defaults.allowExternalTraffic; + this.endpoint = defaults.endpoint; + } + + @CustomType.Setter + public Builder allowExternalTraffic(Boolean allowExternalTraffic) { + if (allowExternalTraffic == null) { + throw new MissingRequiredPropertyException("GetClusterControlPlaneEndpointsConfigDnsEndpointConfig", "allowExternalTraffic"); + } + this.allowExternalTraffic = allowExternalTraffic; + return this; + } + @CustomType.Setter + public Builder endpoint(String endpoint) { + if (endpoint == null) { + throw new MissingRequiredPropertyException("GetClusterControlPlaneEndpointsConfigDnsEndpointConfig", "endpoint"); + } + this.endpoint = endpoint; + return this; + } + public GetClusterControlPlaneEndpointsConfigDnsEndpointConfig build() { + final var _resultValue = new GetClusterControlPlaneEndpointsConfigDnsEndpointConfig(); + _resultValue.allowExternalTraffic = allowExternalTraffic; + _resultValue.endpoint = endpoint; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterMasterAuthorizedNetworksConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterMasterAuthorizedNetworksConfig.java index ca9736449f..800779d8e5 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterMasterAuthorizedNetworksConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterMasterAuthorizedNetworksConfig.java @@ -22,6 +22,11 @@ public final class GetClusterMasterAuthorizedNetworksConfig { * */ private Boolean gcpPublicCidrsAccessEnabled; + /** + * @return Whether authorized networks is enforced on the private endpoint or not. Defaults to false. + * + */ + private Boolean privateEndpointEnforcementEnabled; private GetClusterMasterAuthorizedNetworksConfig() {} /** @@ -38,6 +43,13 @@ public List cidrBlocks() { public Boolean gcpPublicCidrsAccessEnabled() { return this.gcpPublicCidrsAccessEnabled; } + /** + * @return Whether authorized networks is enforced on the private endpoint or not. Defaults to false. + * + */ + public Boolean privateEndpointEnforcementEnabled() { + return this.privateEndpointEnforcementEnabled; + } public static Builder builder() { return new Builder(); @@ -50,11 +62,13 @@ public static Builder builder(GetClusterMasterAuthorizedNetworksConfig defaults) public static final class Builder { private List cidrBlocks; private Boolean gcpPublicCidrsAccessEnabled; + private Boolean privateEndpointEnforcementEnabled; public Builder() {} public Builder(GetClusterMasterAuthorizedNetworksConfig defaults) { Objects.requireNonNull(defaults); this.cidrBlocks = defaults.cidrBlocks; this.gcpPublicCidrsAccessEnabled = defaults.gcpPublicCidrsAccessEnabled; + this.privateEndpointEnforcementEnabled = defaults.privateEndpointEnforcementEnabled; } @CustomType.Setter @@ -76,10 +90,19 @@ public Builder gcpPublicCidrsAccessEnabled(Boolean gcpPublicCidrsAccessEnabled) this.gcpPublicCidrsAccessEnabled = gcpPublicCidrsAccessEnabled; return this; } + @CustomType.Setter + public Builder privateEndpointEnforcementEnabled(Boolean privateEndpointEnforcementEnabled) { + if (privateEndpointEnforcementEnabled == null) { + throw new MissingRequiredPropertyException("GetClusterMasterAuthorizedNetworksConfig", "privateEndpointEnforcementEnabled"); + } + this.privateEndpointEnforcementEnabled = privateEndpointEnforcementEnabled; + return this; + } public GetClusterMasterAuthorizedNetworksConfig build() { final var _resultValue = new GetClusterMasterAuthorizedNetworksConfig(); _resultValue.cidrBlocks = cidrBlocks; _resultValue.gcpPublicCidrsAccessEnabled = gcpPublicCidrsAccessEnabled; + _resultValue.privateEndpointEnforcementEnabled = privateEndpointEnforcementEnabled; return _resultValue; } } diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterResult.java b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterResult.java index 54e38a0321..5a4d8feea7 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterResult.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterResult.java @@ -11,6 +11,7 @@ import com.pulumi.gcp.container.outputs.GetClusterClusterAutoscaling; import com.pulumi.gcp.container.outputs.GetClusterClusterTelemetry; import com.pulumi.gcp.container.outputs.GetClusterConfidentialNode; +import com.pulumi.gcp.container.outputs.GetClusterControlPlaneEndpointsConfig; import com.pulumi.gcp.container.outputs.GetClusterCostManagementConfig; import com.pulumi.gcp.container.outputs.GetClusterDatabaseEncryption; import com.pulumi.gcp.container.outputs.GetClusterDefaultSnatStatus; @@ -41,6 +42,7 @@ import com.pulumi.gcp.container.outputs.GetClusterSecurityPostureConfig; import com.pulumi.gcp.container.outputs.GetClusterServiceExternalIpsConfig; import com.pulumi.gcp.container.outputs.GetClusterTpuConfig; +import com.pulumi.gcp.container.outputs.GetClusterUserManagedKeysConfig; import com.pulumi.gcp.container.outputs.GetClusterVerticalPodAutoscaling; import com.pulumi.gcp.container.outputs.GetClusterWorkloadAltsConfig; import com.pulumi.gcp.container.outputs.GetClusterWorkloadIdentityConfig; @@ -63,6 +65,7 @@ public final class GetClusterResult { private String clusterIpv4Cidr; private List clusterTelemetries; private List confidentialNodes; + private List controlPlaneEndpointsConfigs; private List costManagementConfigs; private List databaseEncryptions; private String datapathProvider; @@ -136,6 +139,7 @@ public final class GetClusterResult { private String subnetwork; private List tpuConfigs; private String tpuIpv4CidrBlock; + private List userManagedKeysConfigs; private List verticalPodAutoscalings; private List workloadAltsConfigs; private List workloadIdentityConfigs; @@ -165,6 +169,9 @@ public List clusterTelemetries() { public List confidentialNodes() { return this.confidentialNodes; } + public List controlPlaneEndpointsConfigs() { + return this.controlPlaneEndpointsConfigs; + } public List costManagementConfigs() { return this.costManagementConfigs; } @@ -376,6 +383,9 @@ public List tpuConfigs() { public String tpuIpv4CidrBlock() { return this.tpuIpv4CidrBlock; } + public List userManagedKeysConfigs() { + return this.userManagedKeysConfigs; + } public List verticalPodAutoscalings() { return this.verticalPodAutoscalings; } @@ -403,6 +413,7 @@ public static final class Builder { private String clusterIpv4Cidr; private List clusterTelemetries; private List confidentialNodes; + private List controlPlaneEndpointsConfigs; private List costManagementConfigs; private List databaseEncryptions; private String datapathProvider; @@ -472,6 +483,7 @@ public static final class Builder { private String subnetwork; private List tpuConfigs; private String tpuIpv4CidrBlock; + private List userManagedKeysConfigs; private List verticalPodAutoscalings; private List workloadAltsConfigs; private List workloadIdentityConfigs; @@ -486,6 +498,7 @@ public Builder(GetClusterResult defaults) { this.clusterIpv4Cidr = defaults.clusterIpv4Cidr; this.clusterTelemetries = defaults.clusterTelemetries; this.confidentialNodes = defaults.confidentialNodes; + this.controlPlaneEndpointsConfigs = defaults.controlPlaneEndpointsConfigs; this.costManagementConfigs = defaults.costManagementConfigs; this.databaseEncryptions = defaults.databaseEncryptions; this.datapathProvider = defaults.datapathProvider; @@ -555,6 +568,7 @@ public Builder(GetClusterResult defaults) { this.subnetwork = defaults.subnetwork; this.tpuConfigs = defaults.tpuConfigs; this.tpuIpv4CidrBlock = defaults.tpuIpv4CidrBlock; + this.userManagedKeysConfigs = defaults.userManagedKeysConfigs; this.verticalPodAutoscalings = defaults.verticalPodAutoscalings; this.workloadAltsConfigs = defaults.workloadAltsConfigs; this.workloadIdentityConfigs = defaults.workloadIdentityConfigs; @@ -643,6 +657,17 @@ public Builder confidentialNodes(GetClusterConfidentialNode... confidentialNodes return confidentialNodes(List.of(confidentialNodes)); } @CustomType.Setter + public Builder controlPlaneEndpointsConfigs(List controlPlaneEndpointsConfigs) { + if (controlPlaneEndpointsConfigs == null) { + throw new MissingRequiredPropertyException("GetClusterResult", "controlPlaneEndpointsConfigs"); + } + this.controlPlaneEndpointsConfigs = controlPlaneEndpointsConfigs; + return this; + } + public Builder controlPlaneEndpointsConfigs(GetClusterControlPlaneEndpointsConfig... controlPlaneEndpointsConfigs) { + return controlPlaneEndpointsConfigs(List.of(controlPlaneEndpointsConfigs)); + } + @CustomType.Setter public Builder costManagementConfigs(List costManagementConfigs) { if (costManagementConfigs == null) { throw new MissingRequiredPropertyException("GetClusterResult", "costManagementConfigs"); @@ -1284,6 +1309,17 @@ public Builder tpuIpv4CidrBlock(String tpuIpv4CidrBlock) { return this; } @CustomType.Setter + public Builder userManagedKeysConfigs(List userManagedKeysConfigs) { + if (userManagedKeysConfigs == null) { + throw new MissingRequiredPropertyException("GetClusterResult", "userManagedKeysConfigs"); + } + this.userManagedKeysConfigs = userManagedKeysConfigs; + return this; + } + public Builder userManagedKeysConfigs(GetClusterUserManagedKeysConfig... userManagedKeysConfigs) { + return userManagedKeysConfigs(List.of(userManagedKeysConfigs)); + } + @CustomType.Setter public Builder verticalPodAutoscalings(List verticalPodAutoscalings) { if (verticalPodAutoscalings == null) { throw new MissingRequiredPropertyException("GetClusterResult", "verticalPodAutoscalings"); @@ -1326,6 +1362,7 @@ public GetClusterResult build() { _resultValue.clusterIpv4Cidr = clusterIpv4Cidr; _resultValue.clusterTelemetries = clusterTelemetries; _resultValue.confidentialNodes = confidentialNodes; + _resultValue.controlPlaneEndpointsConfigs = controlPlaneEndpointsConfigs; _resultValue.costManagementConfigs = costManagementConfigs; _resultValue.databaseEncryptions = databaseEncryptions; _resultValue.datapathProvider = datapathProvider; @@ -1395,6 +1432,7 @@ public GetClusterResult build() { _resultValue.subnetwork = subnetwork; _resultValue.tpuConfigs = tpuConfigs; _resultValue.tpuIpv4CidrBlock = tpuIpv4CidrBlock; + _resultValue.userManagedKeysConfigs = userManagedKeysConfigs; _resultValue.verticalPodAutoscalings = verticalPodAutoscalings; _resultValue.workloadAltsConfigs = workloadAltsConfigs; _resultValue.workloadIdentityConfigs = workloadIdentityConfigs; diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterUserManagedKeysConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterUserManagedKeysConfig.java new file mode 100644 index 0000000000..3e11b6b814 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterUserManagedKeysConfig.java @@ -0,0 +1,226 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.container.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +@CustomType +public final class GetClusterUserManagedKeysConfig { + /** + * @return The Certificate Authority Service caPool to use for the aggreation CA in this cluster. + * + */ + private String aggregationCa; + /** + * @return The Certificate Authority Service caPool to use for the cluster CA in this cluster. + * + */ + private String clusterCa; + /** + * @return The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes. + * + */ + private String controlPlaneDiskEncryptionKey; + /** + * @return The Certificate Authority Service caPool to use for the etcd API CA in this cluster. + * + */ + private String etcdApiCa; + /** + * @return The Certificate Authority Service caPool to use for the etcd peer CA in this cluster. + * + */ + private String etcdPeerCa; + /** + * @return Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups. + * + */ + private String gkeopsEtcdBackupEncryptionKey; + /** + * @return The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. + * + */ + private List serviceAccountSigningKeys; + /** + * @return The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. + * + */ + private List serviceAccountVerificationKeys; + + private GetClusterUserManagedKeysConfig() {} + /** + * @return The Certificate Authority Service caPool to use for the aggreation CA in this cluster. + * + */ + public String aggregationCa() { + return this.aggregationCa; + } + /** + * @return The Certificate Authority Service caPool to use for the cluster CA in this cluster. + * + */ + public String clusterCa() { + return this.clusterCa; + } + /** + * @return The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes. + * + */ + public String controlPlaneDiskEncryptionKey() { + return this.controlPlaneDiskEncryptionKey; + } + /** + * @return The Certificate Authority Service caPool to use for the etcd API CA in this cluster. + * + */ + public String etcdApiCa() { + return this.etcdApiCa; + } + /** + * @return The Certificate Authority Service caPool to use for the etcd peer CA in this cluster. + * + */ + public String etcdPeerCa() { + return this.etcdPeerCa; + } + /** + * @return Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups. + * + */ + public String gkeopsEtcdBackupEncryptionKey() { + return this.gkeopsEtcdBackupEncryptionKey; + } + /** + * @return The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. + * + */ + public List serviceAccountSigningKeys() { + return this.serviceAccountSigningKeys; + } + /** + * @return The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. + * + */ + public List serviceAccountVerificationKeys() { + return this.serviceAccountVerificationKeys; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetClusterUserManagedKeysConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String aggregationCa; + private String clusterCa; + private String controlPlaneDiskEncryptionKey; + private String etcdApiCa; + private String etcdPeerCa; + private String gkeopsEtcdBackupEncryptionKey; + private List serviceAccountSigningKeys; + private List serviceAccountVerificationKeys; + public Builder() {} + public Builder(GetClusterUserManagedKeysConfig defaults) { + Objects.requireNonNull(defaults); + this.aggregationCa = defaults.aggregationCa; + this.clusterCa = defaults.clusterCa; + this.controlPlaneDiskEncryptionKey = defaults.controlPlaneDiskEncryptionKey; + this.etcdApiCa = defaults.etcdApiCa; + this.etcdPeerCa = defaults.etcdPeerCa; + this.gkeopsEtcdBackupEncryptionKey = defaults.gkeopsEtcdBackupEncryptionKey; + this.serviceAccountSigningKeys = defaults.serviceAccountSigningKeys; + this.serviceAccountVerificationKeys = defaults.serviceAccountVerificationKeys; + } + + @CustomType.Setter + public Builder aggregationCa(String aggregationCa) { + if (aggregationCa == null) { + throw new MissingRequiredPropertyException("GetClusterUserManagedKeysConfig", "aggregationCa"); + } + this.aggregationCa = aggregationCa; + return this; + } + @CustomType.Setter + public Builder clusterCa(String clusterCa) { + if (clusterCa == null) { + throw new MissingRequiredPropertyException("GetClusterUserManagedKeysConfig", "clusterCa"); + } + this.clusterCa = clusterCa; + return this; + } + @CustomType.Setter + public Builder controlPlaneDiskEncryptionKey(String controlPlaneDiskEncryptionKey) { + if (controlPlaneDiskEncryptionKey == null) { + throw new MissingRequiredPropertyException("GetClusterUserManagedKeysConfig", "controlPlaneDiskEncryptionKey"); + } + this.controlPlaneDiskEncryptionKey = controlPlaneDiskEncryptionKey; + return this; + } + @CustomType.Setter + public Builder etcdApiCa(String etcdApiCa) { + if (etcdApiCa == null) { + throw new MissingRequiredPropertyException("GetClusterUserManagedKeysConfig", "etcdApiCa"); + } + this.etcdApiCa = etcdApiCa; + return this; + } + @CustomType.Setter + public Builder etcdPeerCa(String etcdPeerCa) { + if (etcdPeerCa == null) { + throw new MissingRequiredPropertyException("GetClusterUserManagedKeysConfig", "etcdPeerCa"); + } + this.etcdPeerCa = etcdPeerCa; + return this; + } + @CustomType.Setter + public Builder gkeopsEtcdBackupEncryptionKey(String gkeopsEtcdBackupEncryptionKey) { + if (gkeopsEtcdBackupEncryptionKey == null) { + throw new MissingRequiredPropertyException("GetClusterUserManagedKeysConfig", "gkeopsEtcdBackupEncryptionKey"); + } + this.gkeopsEtcdBackupEncryptionKey = gkeopsEtcdBackupEncryptionKey; + return this; + } + @CustomType.Setter + public Builder serviceAccountSigningKeys(List serviceAccountSigningKeys) { + if (serviceAccountSigningKeys == null) { + throw new MissingRequiredPropertyException("GetClusterUserManagedKeysConfig", "serviceAccountSigningKeys"); + } + this.serviceAccountSigningKeys = serviceAccountSigningKeys; + return this; + } + public Builder serviceAccountSigningKeys(String... serviceAccountSigningKeys) { + return serviceAccountSigningKeys(List.of(serviceAccountSigningKeys)); + } + @CustomType.Setter + public Builder serviceAccountVerificationKeys(List serviceAccountVerificationKeys) { + if (serviceAccountVerificationKeys == null) { + throw new MissingRequiredPropertyException("GetClusterUserManagedKeysConfig", "serviceAccountVerificationKeys"); + } + this.serviceAccountVerificationKeys = serviceAccountVerificationKeys; + return this; + } + public Builder serviceAccountVerificationKeys(String... serviceAccountVerificationKeys) { + return serviceAccountVerificationKeys(List.of(serviceAccountVerificationKeys)); + } + public GetClusterUserManagedKeysConfig build() { + final var _resultValue = new GetClusterUserManagedKeysConfig(); + _resultValue.aggregationCa = aggregationCa; + _resultValue.clusterCa = clusterCa; + _resultValue.controlPlaneDiskEncryptionKey = controlPlaneDiskEncryptionKey; + _resultValue.etcdApiCa = etcdApiCa; + _resultValue.etcdPeerCa = etcdPeerCa; + _resultValue.gkeopsEtcdBackupEncryptionKey = gkeopsEtcdBackupEncryptionKey; + _resultValue.serviceAccountSigningKeys = serviceAccountSigningKeys; + _resultValue.serviceAccountVerificationKeys = serviceAccountVerificationKeys; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/PreventionDiscoveryConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/PreventionDiscoveryConfig.java index 6cf0e049ee..d04aec854c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/PreventionDiscoveryConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/PreventionDiscoveryConfig.java @@ -172,7 +172,7 @@ public Output name() { return this.name; } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -180,7 +180,7 @@ public Output name() { private Output orgConfig; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/PreventionDiscoveryConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/PreventionDiscoveryConfigArgs.java index 32e5a3d0bc..9aa57f8a57 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/PreventionDiscoveryConfigArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/PreventionDiscoveryConfigArgs.java @@ -87,7 +87,7 @@ public Output location() { } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -95,7 +95,7 @@ public Output location() { private @Nullable Output orgConfig; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -299,7 +299,7 @@ public Builder location(String location) { } /** - * @param orgConfig A nested object resource + * @param orgConfig A nested object resource. * Structure is documented below. * * @return builder @@ -311,7 +311,7 @@ public Builder orgConfig(@Nullable Output> name() { } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -157,7 +157,7 @@ public Optional> name() { private @Nullable Output orgConfig; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -478,7 +478,7 @@ public Builder name(String name) { } /** - * @param orgConfig A nested object resource + * @param orgConfig A nested object resource. * Structure is documented below. * * @return builder @@ -490,7 +490,7 @@ public Builder orgConfig(@Nullable Output + * {@code + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.gcp.dataproc.GdcApplicationEnvironment; + * import com.pulumi.gcp.dataproc.GdcApplicationEnvironmentArgs; + * import java.util.List; + * import java.util.ArrayList; + * import java.util.Map; + * import java.io.File; + * import java.nio.file.Files; + * import java.nio.file.Paths; + * + * public class App { + * public static void main(String[] args) { + * Pulumi.run(App::stack); + * } + * + * public static void stack(Context ctx) { + * var application_environment = new GdcApplicationEnvironment("application-environment", GdcApplicationEnvironmentArgs.builder() + * .applicationEnvironmentId("dp-tf-e2e-application-environment-basic") + * .serviceinstance("do-not-delete-dataproc-gdc-instance") + * .project("my-project") + * .location("us-west2") + * .namespace("default") + * .build()); + * + * } + * } + * } + * + * <!--End PulumiCodeChooser --> + * ### Dataprocgdc Applicationenvironment + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.gcp.dataproc.GdcApplicationEnvironment;
+ * import com.pulumi.gcp.dataproc.GdcApplicationEnvironmentArgs;
+ * import com.pulumi.gcp.dataproc.inputs.GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var application_environment = new GdcApplicationEnvironment("application-environment", GdcApplicationEnvironmentArgs.builder()
+ *             .applicationEnvironmentId("dp-tf-e2e-application-environment")
+ *             .serviceinstance("do-not-delete-dataproc-gdc-instance")
+ *             .project("my-project")
+ *             .location("us-west2")
+ *             .namespace("default")
+ *             .displayName("An application environment")
+ *             .labels(Map.of("test-label", "label-value"))
+ *             .annotations(Map.of("an_annotation", "annotation_value"))
+ *             .sparkApplicationEnvironmentConfig(GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs.builder()
+ *                 .defaultProperties(Map.of("spark.executor.memory", "4g"))
+ *                 .defaultVersion("1.2")
+ *                 .build())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * ApplicationEnvironment can be imported using any of these accepted formats: + * + * * `projects/{{project}}/locations/{{location}}/serviceInstances/{{serviceinstance}}/applicationEnvironments/{{application_environment_id}}` + * + * * `{{project}}/{{location}}/{{serviceinstance}}/{{application_environment_id}}` + * + * * `{{location}}/{{serviceinstance}}/{{application_environment_id}}` + * + * When using the `pulumi import` command, ApplicationEnvironment can be imported using one of the formats above. For example: + * + * ```sh + * $ pulumi import gcp:dataproc/gdcApplicationEnvironment:GdcApplicationEnvironment default projects/{{project}}/locations/{{location}}/serviceInstances/{{serviceinstance}}/applicationEnvironments/{{application_environment_id}} + * ``` + * + * ```sh + * $ pulumi import gcp:dataproc/gdcApplicationEnvironment:GdcApplicationEnvironment default {{project}}/{{location}}/{{serviceinstance}}/{{application_environment_id}} + * ``` + * + * ```sh + * $ pulumi import gcp:dataproc/gdcApplicationEnvironment:GdcApplicationEnvironment default {{location}}/{{serviceinstance}}/{{application_environment_id}} + * ``` + * + */ +@ResourceType(type="gcp:dataproc/gdcApplicationEnvironment:GdcApplicationEnvironment") +public class GdcApplicationEnvironment extends com.pulumi.resources.CustomResource { + /** + * The annotations to associate with this application environment. Annotations may be used to store client information, but are not used by the server. + * **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + * Please refer to the field `effective_annotations` for all of the annotations present on the resource. + * + */ + @Export(name="annotations", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> annotations; + + /** + * @return The annotations to associate with this application environment. Annotations may be used to store client information, but are not used by the server. + * **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + * Please refer to the field `effective_annotations` for all of the annotations present on the resource. + * + */ + public Output>> annotations() { + return Codegen.optional(this.annotations); + } + /** + * The id of the application environment + * + */ + @Export(name="applicationEnvironmentId", refs={String.class}, tree="[0]") + private Output applicationEnvironmentId; + + /** + * @return The id of the application environment + * + */ + public Output> applicationEnvironmentId() { + return Codegen.optional(this.applicationEnvironmentId); + } + /** + * The timestamp when the resource was created. + * + */ + @Export(name="createTime", refs={String.class}, tree="[0]") + private Output createTime; + + /** + * @return The timestamp when the resource was created. + * + */ + public Output createTime() { + return this.createTime; + } + /** + * User-provided human-readable name to be used in user interfaces. + * + */ + @Export(name="displayName", refs={String.class}, tree="[0]") + private Output displayName; + + /** + * @return User-provided human-readable name to be used in user interfaces. + * + */ + public Output> displayName() { + return Codegen.optional(this.displayName); + } + @Export(name="effectiveAnnotations", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> effectiveAnnotations; + + public Output> effectiveAnnotations() { + return this.effectiveAnnotations; + } + /** + * All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + * + */ + @Export(name="effectiveLabels", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> effectiveLabels; + + /** + * @return All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + * + */ + public Output> effectiveLabels() { + return this.effectiveLabels; + } + /** + * The labels to associate with this application environment. Labels may be used for filtering and billing tracking. + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effective_labels` for all of the labels present on the resource. + * + */ + @Export(name="labels", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> labels; + + /** + * @return The labels to associate with this application environment. Labels may be used for filtering and billing tracking. + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effective_labels` for all of the labels present on the resource. + * + */ + public Output>> labels() { + return Codegen.optional(this.labels); + } + /** + * The location of the application environment + * + */ + @Export(name="location", refs={String.class}, tree="[0]") + private Output location; + + /** + * @return The location of the application environment + * + */ + public Output location() { + return this.location; + } + /** + * Identifier. The name of the application environment. Format: projects/{project}/locations/{location}/serviceInstances/{service_instance}/applicationEnvironments/{application_environment_id} + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return Identifier. The name of the application environment. Format: projects/{project}/locations/{location}/serviceInstances/{service_instance}/applicationEnvironments/{application_environment_id} + * + */ + public Output name() { + return this.name; + } + /** + * The name of the namespace in which to create this ApplicationEnvironment. This namespace must already exist in the cluster + * + */ + @Export(name="namespace", refs={String.class}, tree="[0]") + private Output namespace; + + /** + * @return The name of the namespace in which to create this ApplicationEnvironment. This namespace must already exist in the cluster + * + */ + public Output> namespace() { + return Codegen.optional(this.namespace); + } + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + @Export(name="project", refs={String.class}, tree="[0]") + private Output project; + + /** + * @return The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + public Output project() { + return this.project; + } + /** + * The combination of labels configured directly on the resource + * and default labels configured on the provider. + * + */ + @Export(name="pulumiLabels", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> pulumiLabels; + + /** + * @return The combination of labels configured directly on the resource + * and default labels configured on the provider. + * + */ + public Output> pulumiLabels() { + return this.pulumiLabels; + } + /** + * The id of the service instance to which this application environment belongs. + * + * *** + * + */ + @Export(name="serviceinstance", refs={String.class}, tree="[0]") + private Output serviceinstance; + + /** + * @return The id of the service instance to which this application environment belongs. + * + * *** + * + */ + public Output serviceinstance() { + return this.serviceinstance; + } + /** + * Represents the SparkApplicationEnvironmentConfig. + * Structure is documented below. + * + */ + @Export(name="sparkApplicationEnvironmentConfig", refs={GdcApplicationEnvironmentSparkApplicationEnvironmentConfig.class}, tree="[0]") + private Output sparkApplicationEnvironmentConfig; + + /** + * @return Represents the SparkApplicationEnvironmentConfig. + * Structure is documented below. + * + */ + public Output> sparkApplicationEnvironmentConfig() { + return Codegen.optional(this.sparkApplicationEnvironmentConfig); + } + /** + * System generated unique identifier for this application environment, formatted as UUID4. + * + */ + @Export(name="uid", refs={String.class}, tree="[0]") + private Output uid; + + /** + * @return System generated unique identifier for this application environment, formatted as UUID4. + * + */ + public Output uid() { + return this.uid; + } + /** + * The timestamp when the resource was most recently updated. + * + */ + @Export(name="updateTime", refs={String.class}, tree="[0]") + private Output updateTime; + + /** + * @return The timestamp when the resource was most recently updated. + * + */ + public Output updateTime() { + return this.updateTime; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public GdcApplicationEnvironment(java.lang.String name) { + this(name, GdcApplicationEnvironmentArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public GdcApplicationEnvironment(java.lang.String name, GdcApplicationEnvironmentArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public GdcApplicationEnvironment(java.lang.String name, GdcApplicationEnvironmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:dataproc/gdcApplicationEnvironment:GdcApplicationEnvironment", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private GdcApplicationEnvironment(java.lang.String name, Output id, @Nullable GdcApplicationEnvironmentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:dataproc/gdcApplicationEnvironment:GdcApplicationEnvironment", name, state, makeResourceOptions(options, id), false); + } + + private static GdcApplicationEnvironmentArgs makeArgs(GdcApplicationEnvironmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? GdcApplicationEnvironmentArgs.Empty : args; + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .additionalSecretOutputs(List.of( + "effectiveLabels", + "pulumiLabels" + )) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static GdcApplicationEnvironment get(java.lang.String name, Output id, @Nullable GdcApplicationEnvironmentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new GdcApplicationEnvironment(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/GdcApplicationEnvironmentArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/GdcApplicationEnvironmentArgs.java new file mode 100644 index 0000000000..816de2695a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/GdcApplicationEnvironmentArgs.java @@ -0,0 +1,420 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataproc; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.gcp.dataproc.inputs.GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GdcApplicationEnvironmentArgs extends com.pulumi.resources.ResourceArgs { + + public static final GdcApplicationEnvironmentArgs Empty = new GdcApplicationEnvironmentArgs(); + + /** + * The annotations to associate with this application environment. Annotations may be used to store client information, but are not used by the server. + * **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + * Please refer to the field `effective_annotations` for all of the annotations present on the resource. + * + */ + @Import(name="annotations") + private @Nullable Output> annotations; + + /** + * @return The annotations to associate with this application environment. Annotations may be used to store client information, but are not used by the server. + * **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + * Please refer to the field `effective_annotations` for all of the annotations present on the resource. + * + */ + public Optional>> annotations() { + return Optional.ofNullable(this.annotations); + } + + /** + * The id of the application environment + * + */ + @Import(name="applicationEnvironmentId") + private @Nullable Output applicationEnvironmentId; + + /** + * @return The id of the application environment + * + */ + public Optional> applicationEnvironmentId() { + return Optional.ofNullable(this.applicationEnvironmentId); + } + + /** + * User-provided human-readable name to be used in user interfaces. + * + */ + @Import(name="displayName") + private @Nullable Output displayName; + + /** + * @return User-provided human-readable name to be used in user interfaces. + * + */ + public Optional> displayName() { + return Optional.ofNullable(this.displayName); + } + + /** + * The labels to associate with this application environment. Labels may be used for filtering and billing tracking. + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effective_labels` for all of the labels present on the resource. + * + */ + @Import(name="labels") + private @Nullable Output> labels; + + /** + * @return The labels to associate with this application environment. Labels may be used for filtering and billing tracking. + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effective_labels` for all of the labels present on the resource. + * + */ + public Optional>> labels() { + return Optional.ofNullable(this.labels); + } + + /** + * The location of the application environment + * + */ + @Import(name="location", required=true) + private Output location; + + /** + * @return The location of the application environment + * + */ + public Output location() { + return this.location; + } + + /** + * The name of the namespace in which to create this ApplicationEnvironment. This namespace must already exist in the cluster + * + */ + @Import(name="namespace") + private @Nullable Output namespace; + + /** + * @return The name of the namespace in which to create this ApplicationEnvironment. This namespace must already exist in the cluster + * + */ + public Optional> namespace() { + return Optional.ofNullable(this.namespace); + } + + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + @Import(name="project") + private @Nullable Output project; + + /** + * @return The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + public Optional> project() { + return Optional.ofNullable(this.project); + } + + /** + * The id of the service instance to which this application environment belongs. + * + * *** + * + */ + @Import(name="serviceinstance", required=true) + private Output serviceinstance; + + /** + * @return The id of the service instance to which this application environment belongs. + * + * *** + * + */ + public Output serviceinstance() { + return this.serviceinstance; + } + + /** + * Represents the SparkApplicationEnvironmentConfig. + * Structure is documented below. + * + */ + @Import(name="sparkApplicationEnvironmentConfig") + private @Nullable Output sparkApplicationEnvironmentConfig; + + /** + * @return Represents the SparkApplicationEnvironmentConfig. + * Structure is documented below. + * + */ + public Optional> sparkApplicationEnvironmentConfig() { + return Optional.ofNullable(this.sparkApplicationEnvironmentConfig); + } + + private GdcApplicationEnvironmentArgs() {} + + private GdcApplicationEnvironmentArgs(GdcApplicationEnvironmentArgs $) { + this.annotations = $.annotations; + this.applicationEnvironmentId = $.applicationEnvironmentId; + this.displayName = $.displayName; + this.labels = $.labels; + this.location = $.location; + this.namespace = $.namespace; + this.project = $.project; + this.serviceinstance = $.serviceinstance; + this.sparkApplicationEnvironmentConfig = $.sparkApplicationEnvironmentConfig; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GdcApplicationEnvironmentArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GdcApplicationEnvironmentArgs $; + + public Builder() { + $ = new GdcApplicationEnvironmentArgs(); + } + + public Builder(GdcApplicationEnvironmentArgs defaults) { + $ = new GdcApplicationEnvironmentArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param annotations The annotations to associate with this application environment. Annotations may be used to store client information, but are not used by the server. + * **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + * Please refer to the field `effective_annotations` for all of the annotations present on the resource. + * + * @return builder + * + */ + public Builder annotations(@Nullable Output> annotations) { + $.annotations = annotations; + return this; + } + + /** + * @param annotations The annotations to associate with this application environment. Annotations may be used to store client information, but are not used by the server. + * **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + * Please refer to the field `effective_annotations` for all of the annotations present on the resource. + * + * @return builder + * + */ + public Builder annotations(Map annotations) { + return annotations(Output.of(annotations)); + } + + /** + * @param applicationEnvironmentId The id of the application environment + * + * @return builder + * + */ + public Builder applicationEnvironmentId(@Nullable Output applicationEnvironmentId) { + $.applicationEnvironmentId = applicationEnvironmentId; + return this; + } + + /** + * @param applicationEnvironmentId The id of the application environment + * + * @return builder + * + */ + public Builder applicationEnvironmentId(String applicationEnvironmentId) { + return applicationEnvironmentId(Output.of(applicationEnvironmentId)); + } + + /** + * @param displayName User-provided human-readable name to be used in user interfaces. + * + * @return builder + * + */ + public Builder displayName(@Nullable Output displayName) { + $.displayName = displayName; + return this; + } + + /** + * @param displayName User-provided human-readable name to be used in user interfaces. + * + * @return builder + * + */ + public Builder displayName(String displayName) { + return displayName(Output.of(displayName)); + } + + /** + * @param labels The labels to associate with this application environment. Labels may be used for filtering and billing tracking. + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effective_labels` for all of the labels present on the resource. + * + * @return builder + * + */ + public Builder labels(@Nullable Output> labels) { + $.labels = labels; + return this; + } + + /** + * @param labels The labels to associate with this application environment. Labels may be used for filtering and billing tracking. + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effective_labels` for all of the labels present on the resource. + * + * @return builder + * + */ + public Builder labels(Map labels) { + return labels(Output.of(labels)); + } + + /** + * @param location The location of the application environment + * + * @return builder + * + */ + public Builder location(Output location) { + $.location = location; + return this; + } + + /** + * @param location The location of the application environment + * + * @return builder + * + */ + public Builder location(String location) { + return location(Output.of(location)); + } + + /** + * @param namespace The name of the namespace in which to create this ApplicationEnvironment. This namespace must already exist in the cluster + * + * @return builder + * + */ + public Builder namespace(@Nullable Output namespace) { + $.namespace = namespace; + return this; + } + + /** + * @param namespace The name of the namespace in which to create this ApplicationEnvironment. This namespace must already exist in the cluster + * + * @return builder + * + */ + public Builder namespace(String namespace) { + return namespace(Output.of(namespace)); + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + * @return builder + * + */ + public Builder project(@Nullable Output project) { + $.project = project; + return this; + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + * @return builder + * + */ + public Builder project(String project) { + return project(Output.of(project)); + } + + /** + * @param serviceinstance The id of the service instance to which this application environment belongs. + * + * *** + * + * @return builder + * + */ + public Builder serviceinstance(Output serviceinstance) { + $.serviceinstance = serviceinstance; + return this; + } + + /** + * @param serviceinstance The id of the service instance to which this application environment belongs. + * + * *** + * + * @return builder + * + */ + public Builder serviceinstance(String serviceinstance) { + return serviceinstance(Output.of(serviceinstance)); + } + + /** + * @param sparkApplicationEnvironmentConfig Represents the SparkApplicationEnvironmentConfig. + * Structure is documented below. + * + * @return builder + * + */ + public Builder sparkApplicationEnvironmentConfig(@Nullable Output sparkApplicationEnvironmentConfig) { + $.sparkApplicationEnvironmentConfig = sparkApplicationEnvironmentConfig; + return this; + } + + /** + * @param sparkApplicationEnvironmentConfig Represents the SparkApplicationEnvironmentConfig. + * Structure is documented below. + * + * @return builder + * + */ + public Builder sparkApplicationEnvironmentConfig(GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs sparkApplicationEnvironmentConfig) { + return sparkApplicationEnvironmentConfig(Output.of(sparkApplicationEnvironmentConfig)); + } + + public GdcApplicationEnvironmentArgs build() { + if ($.location == null) { + throw new MissingRequiredPropertyException("GdcApplicationEnvironmentArgs", "location"); + } + if ($.serviceinstance == null) { + throw new MissingRequiredPropertyException("GdcApplicationEnvironmentArgs", "serviceinstance"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/GdcServiceInstance.java b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/GdcServiceInstance.java new file mode 100644 index 0000000000..d653065aee --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/GdcServiceInstance.java @@ -0,0 +1,480 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataproc; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.gcp.Utilities; +import com.pulumi.gcp.dataproc.GdcServiceInstanceArgs; +import com.pulumi.gcp.dataproc.inputs.GdcServiceInstanceState; +import com.pulumi.gcp.dataproc.outputs.GdcServiceInstanceGdceCluster; +import com.pulumi.gcp.dataproc.outputs.GdcServiceInstanceSparkServiceInstanceConfig; +import java.lang.Boolean; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * A service instance is an instance of the Dataproc operator running on a GDC cluster. + * + * To get more information about ServiceInstance, see: + * + * * [API documentation](https://cloud.google.com/dataproc-gdc/docs/reference/rest/v1/projects.locations.serviceInstances) + * * How-to Guides + * * [Dataproc Intro](https://cloud.google.com/dataproc/) + * + * ## Example Usage + * + * ### Dataprocgdc Serviceinstance + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.gcp.dataproc.GdcServiceInstance;
+ * import com.pulumi.gcp.dataproc.GdcServiceInstanceArgs;
+ * import com.pulumi.gcp.dataproc.inputs.GdcServiceInstanceGdceClusterArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App }{{@code
+ *     public static void main(String[] args) }{{@code
+ *         Pulumi.run(App::stack);
+ *     }}{@code
+ * 
+ *     public static void stack(Context ctx) }{{@code
+ *         var service_instance = new GdcServiceInstance("service-instance", GdcServiceInstanceArgs.builder()
+ *             .serviceInstanceId("tf-e2e-service-instance")
+ *             .project("my-project")
+ *             .location("us-west2")
+ *             .gdceCluster(GdcServiceInstanceGdceClusterArgs.builder()
+ *                 .gdceCluster("projects/gdce-cluster-monitoring/locations/us-west2/clusters/gdce-prism-prober-ord106")
+ *                 .build())
+ *             .displayName("A service instance")
+ *             .labels(Map.of("test-label", "label-value"))
+ *             .serviceAccount("dataprocgdc-cep-workflows}{@literal @}{@code gdce-cluster-monitoring.iam.gserviceaccount.com")
+ *             .build());
+ * 
+ *     }}{@code
+ * }}{@code
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * ServiceInstance can be imported using any of these accepted formats: + * + * * `projects/{{project}}/locations/{{location}}/serviceInstances/{{service_instance_id}}` + * + * * `{{project}}/{{location}}/{{service_instance_id}}` + * + * * `{{location}}/{{service_instance_id}}` + * + * When using the `pulumi import` command, ServiceInstance can be imported using one of the formats above. For example: + * + * ```sh + * $ pulumi import gcp:dataproc/gdcServiceInstance:GdcServiceInstance default projects/{{project}}/locations/{{location}}/serviceInstances/{{service_instance_id}} + * ``` + * + * ```sh + * $ pulumi import gcp:dataproc/gdcServiceInstance:GdcServiceInstance default {{project}}/{{location}}/{{service_instance_id}} + * ``` + * + * ```sh + * $ pulumi import gcp:dataproc/gdcServiceInstance:GdcServiceInstance default {{location}}/{{service_instance_id}} + * ``` + * + */ +@ResourceType(type="gcp:dataproc/gdcServiceInstance:GdcServiceInstance") +public class GdcServiceInstance extends com.pulumi.resources.CustomResource { + /** + * The timestamp when the resource was created. + * + */ + @Export(name="createTime", refs={String.class}, tree="[0]") + private Output createTime; + + /** + * @return The timestamp when the resource was created. + * + */ + public Output createTime() { + return this.createTime; + } + /** + * User-provided human-readable name to be used in user interfaces. + * + */ + @Export(name="displayName", refs={String.class}, tree="[0]") + private Output displayName; + + /** + * @return User-provided human-readable name to be used in user interfaces. + * + */ + public Output> displayName() { + return Codegen.optional(this.displayName); + } + /** + * All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + * + */ + @Export(name="effectiveLabels", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> effectiveLabels; + + /** + * @return All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + * + */ + public Output> effectiveLabels() { + return this.effectiveLabels; + } + /** + * Effective service account associated with ServiceInstance. This will be the service_account if specified. Otherwise, it will be an automatically created per-resource P4SA that also automatically has Fleet Workload. Identity bindings applied. + * + */ + @Export(name="effectiveServiceAccount", refs={String.class}, tree="[0]") + private Output effectiveServiceAccount; + + /** + * @return Effective service account associated with ServiceInstance. This will be the service_account if specified. Otherwise, it will be an automatically created per-resource P4SA that also automatically has Fleet Workload. Identity bindings applied. + * + */ + public Output effectiveServiceAccount() { + return this.effectiveServiceAccount; + } + /** + * Gdce cluster information. + * Structure is documented below. + * + */ + @Export(name="gdceCluster", refs={GdcServiceInstanceGdceCluster.class}, tree="[0]") + private Output gdceCluster; + + /** + * @return Gdce cluster information. + * Structure is documented below. + * + */ + public Output> gdceCluster() { + return Codegen.optional(this.gdceCluster); + } + /** + * The labels to associate with this service instance. Labels may be used for filtering and billing tracking. + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effective_labels` for all of the labels present on the resource. + * + */ + @Export(name="labels", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> labels; + + /** + * @return The labels to associate with this service instance. Labels may be used for filtering and billing tracking. + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effective_labels` for all of the labels present on the resource. + * + */ + public Output>> labels() { + return Codegen.optional(this.labels); + } + /** + * Location of the resource. + * + */ + @Export(name="location", refs={String.class}, tree="[0]") + private Output location; + + /** + * @return Location of the resource. + * + */ + public Output location() { + return this.location; + } + /** + * Identifier. The name of the service instance. + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return Identifier. The name of the service instance. + * + */ + public Output name() { + return this.name; + } + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + @Export(name="project", refs={String.class}, tree="[0]") + private Output project; + + /** + * @return The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + public Output project() { + return this.project; + } + /** + * The combination of labels configured directly on the resource + * and default labels configured on the provider. + * + */ + @Export(name="pulumiLabels", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> pulumiLabels; + + /** + * @return The combination of labels configured directly on the resource + * and default labels configured on the provider. + * + */ + public Output> pulumiLabels() { + return this.pulumiLabels; + } + /** + * Whether the service instance is currently reconciling. True if the current state of the resource does not match the intended state, and the system is working to reconcile them, whether or not the change was user initiated. + * + */ + @Export(name="reconciling", refs={Boolean.class}, tree="[0]") + private Output reconciling; + + /** + * @return Whether the service instance is currently reconciling. True if the current state of the resource does not match the intended state, and the system is working to reconcile them, whether or not the change was user initiated. + * + */ + public Output reconciling() { + return this.reconciling; + } + /** + * The intended state to which the service instance is reconciling. Possible values: + * * `CREATING` + * * `ACTIVE` + * * `DISCONNECTED` + * * `DELETING` + * * `STOPPING` + * * `STOPPED` + * * `STARTING` + * * `UPDATING` + * * `FAILED` + * + */ + @Export(name="requestedState", refs={String.class}, tree="[0]") + private Output requestedState; + + /** + * @return The intended state to which the service instance is reconciling. Possible values: + * * `CREATING` + * * `ACTIVE` + * * `DISCONNECTED` + * * `DELETING` + * * `STOPPING` + * * `STOPPED` + * * `STARTING` + * * `UPDATING` + * * `FAILED` + * + */ + public Output requestedState() { + return this.requestedState; + } + /** + * Requested service account to associate with ServiceInstance. + * + */ + @Export(name="serviceAccount", refs={String.class}, tree="[0]") + private Output serviceAccount; + + /** + * @return Requested service account to associate with ServiceInstance. + * + */ + public Output> serviceAccount() { + return Codegen.optional(this.serviceAccount); + } + /** + * Id of the service instance. + * + * *** + * + */ + @Export(name="serviceInstanceId", refs={String.class}, tree="[0]") + private Output serviceInstanceId; + + /** + * @return Id of the service instance. + * + * *** + * + */ + public Output serviceInstanceId() { + return this.serviceInstanceId; + } + /** + * Spark-specific service instance configuration. + * + */ + @Export(name="sparkServiceInstanceConfig", refs={GdcServiceInstanceSparkServiceInstanceConfig.class}, tree="[0]") + private Output sparkServiceInstanceConfig; + + /** + * @return Spark-specific service instance configuration. + * + */ + public Output> sparkServiceInstanceConfig() { + return Codegen.optional(this.sparkServiceInstanceConfig); + } + /** + * The current state. Possible values: + * * `CREATING` + * * `ACTIVE` + * * `DISCONNECTED` + * * `DELETING` + * * `STOPPING` + * * `STOPPED` + * * `STARTING` + * * `UPDATING` + * * `FAILED` + * + */ + @Export(name="state", refs={String.class}, tree="[0]") + private Output state; + + /** + * @return The current state. Possible values: + * * `CREATING` + * * `ACTIVE` + * * `DISCONNECTED` + * * `DELETING` + * * `STOPPING` + * * `STOPPED` + * * `STARTING` + * * `UPDATING` + * * `FAILED` + * + */ + public Output state() { + return this.state; + } + /** + * A message explaining the current state. + * + */ + @Export(name="stateMessage", refs={String.class}, tree="[0]") + private Output stateMessage; + + /** + * @return A message explaining the current state. + * + */ + public Output stateMessage() { + return this.stateMessage; + } + /** + * System generated unique identifier for this service instance, formatted as UUID4. + * + */ + @Export(name="uid", refs={String.class}, tree="[0]") + private Output uid; + + /** + * @return System generated unique identifier for this service instance, formatted as UUID4. + * + */ + public Output uid() { + return this.uid; + } + /** + * The timestamp when the resource was most recently updated. + * + */ + @Export(name="updateTime", refs={String.class}, tree="[0]") + private Output updateTime; + + /** + * @return The timestamp when the resource was most recently updated. + * + */ + public Output updateTime() { + return this.updateTime; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public GdcServiceInstance(java.lang.String name) { + this(name, GdcServiceInstanceArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public GdcServiceInstance(java.lang.String name, GdcServiceInstanceArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public GdcServiceInstance(java.lang.String name, GdcServiceInstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:dataproc/gdcServiceInstance:GdcServiceInstance", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private GdcServiceInstance(java.lang.String name, Output id, @Nullable GdcServiceInstanceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:dataproc/gdcServiceInstance:GdcServiceInstance", name, state, makeResourceOptions(options, id), false); + } + + private static GdcServiceInstanceArgs makeArgs(GdcServiceInstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? GdcServiceInstanceArgs.Empty : args; + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .additionalSecretOutputs(List.of( + "effectiveLabels", + "pulumiLabels" + )) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static GdcServiceInstance get(java.lang.String name, Output id, @Nullable GdcServiceInstanceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new GdcServiceInstance(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/GdcServiceInstanceArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/GdcServiceInstanceArgs.java new file mode 100644 index 0000000000..306025fb21 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/GdcServiceInstanceArgs.java @@ -0,0 +1,376 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataproc; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.gcp.dataproc.inputs.GdcServiceInstanceGdceClusterArgs; +import com.pulumi.gcp.dataproc.inputs.GdcServiceInstanceSparkServiceInstanceConfigArgs; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GdcServiceInstanceArgs extends com.pulumi.resources.ResourceArgs { + + public static final GdcServiceInstanceArgs Empty = new GdcServiceInstanceArgs(); + + /** + * User-provided human-readable name to be used in user interfaces. + * + */ + @Import(name="displayName") + private @Nullable Output displayName; + + /** + * @return User-provided human-readable name to be used in user interfaces. + * + */ + public Optional> displayName() { + return Optional.ofNullable(this.displayName); + } + + /** + * Gdce cluster information. + * Structure is documented below. + * + */ + @Import(name="gdceCluster") + private @Nullable Output gdceCluster; + + /** + * @return Gdce cluster information. + * Structure is documented below. + * + */ + public Optional> gdceCluster() { + return Optional.ofNullable(this.gdceCluster); + } + + /** + * The labels to associate with this service instance. Labels may be used for filtering and billing tracking. + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effective_labels` for all of the labels present on the resource. + * + */ + @Import(name="labels") + private @Nullable Output> labels; + + /** + * @return The labels to associate with this service instance. Labels may be used for filtering and billing tracking. + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effective_labels` for all of the labels present on the resource. + * + */ + public Optional>> labels() { + return Optional.ofNullable(this.labels); + } + + /** + * Location of the resource. + * + */ + @Import(name="location", required=true) + private Output location; + + /** + * @return Location of the resource. + * + */ + public Output location() { + return this.location; + } + + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + @Import(name="project") + private @Nullable Output project; + + /** + * @return The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + public Optional> project() { + return Optional.ofNullable(this.project); + } + + /** + * Requested service account to associate with ServiceInstance. + * + */ + @Import(name="serviceAccount") + private @Nullable Output serviceAccount; + + /** + * @return Requested service account to associate with ServiceInstance. + * + */ + public Optional> serviceAccount() { + return Optional.ofNullable(this.serviceAccount); + } + + /** + * Id of the service instance. + * + * *** + * + */ + @Import(name="serviceInstanceId", required=true) + private Output serviceInstanceId; + + /** + * @return Id of the service instance. + * + * *** + * + */ + public Output serviceInstanceId() { + return this.serviceInstanceId; + } + + /** + * Spark-specific service instance configuration. + * + */ + @Import(name="sparkServiceInstanceConfig") + private @Nullable Output sparkServiceInstanceConfig; + + /** + * @return Spark-specific service instance configuration. + * + */ + public Optional> sparkServiceInstanceConfig() { + return Optional.ofNullable(this.sparkServiceInstanceConfig); + } + + private GdcServiceInstanceArgs() {} + + private GdcServiceInstanceArgs(GdcServiceInstanceArgs $) { + this.displayName = $.displayName; + this.gdceCluster = $.gdceCluster; + this.labels = $.labels; + this.location = $.location; + this.project = $.project; + this.serviceAccount = $.serviceAccount; + this.serviceInstanceId = $.serviceInstanceId; + this.sparkServiceInstanceConfig = $.sparkServiceInstanceConfig; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GdcServiceInstanceArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GdcServiceInstanceArgs $; + + public Builder() { + $ = new GdcServiceInstanceArgs(); + } + + public Builder(GdcServiceInstanceArgs defaults) { + $ = new GdcServiceInstanceArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param displayName User-provided human-readable name to be used in user interfaces. + * + * @return builder + * + */ + public Builder displayName(@Nullable Output displayName) { + $.displayName = displayName; + return this; + } + + /** + * @param displayName User-provided human-readable name to be used in user interfaces. + * + * @return builder + * + */ + public Builder displayName(String displayName) { + return displayName(Output.of(displayName)); + } + + /** + * @param gdceCluster Gdce cluster information. + * Structure is documented below. + * + * @return builder + * + */ + public Builder gdceCluster(@Nullable Output gdceCluster) { + $.gdceCluster = gdceCluster; + return this; + } + + /** + * @param gdceCluster Gdce cluster information. + * Structure is documented below. + * + * @return builder + * + */ + public Builder gdceCluster(GdcServiceInstanceGdceClusterArgs gdceCluster) { + return gdceCluster(Output.of(gdceCluster)); + } + + /** + * @param labels The labels to associate with this service instance. Labels may be used for filtering and billing tracking. + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effective_labels` for all of the labels present on the resource. + * + * @return builder + * + */ + public Builder labels(@Nullable Output> labels) { + $.labels = labels; + return this; + } + + /** + * @param labels The labels to associate with this service instance. Labels may be used for filtering and billing tracking. + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effective_labels` for all of the labels present on the resource. + * + * @return builder + * + */ + public Builder labels(Map labels) { + return labels(Output.of(labels)); + } + + /** + * @param location Location of the resource. + * + * @return builder + * + */ + public Builder location(Output location) { + $.location = location; + return this; + } + + /** + * @param location Location of the resource. + * + * @return builder + * + */ + public Builder location(String location) { + return location(Output.of(location)); + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + * @return builder + * + */ + public Builder project(@Nullable Output project) { + $.project = project; + return this; + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + * @return builder + * + */ + public Builder project(String project) { + return project(Output.of(project)); + } + + /** + * @param serviceAccount Requested service account to associate with ServiceInstance. + * + * @return builder + * + */ + public Builder serviceAccount(@Nullable Output serviceAccount) { + $.serviceAccount = serviceAccount; + return this; + } + + /** + * @param serviceAccount Requested service account to associate with ServiceInstance. + * + * @return builder + * + */ + public Builder serviceAccount(String serviceAccount) { + return serviceAccount(Output.of(serviceAccount)); + } + + /** + * @param serviceInstanceId Id of the service instance. + * + * *** + * + * @return builder + * + */ + public Builder serviceInstanceId(Output serviceInstanceId) { + $.serviceInstanceId = serviceInstanceId; + return this; + } + + /** + * @param serviceInstanceId Id of the service instance. + * + * *** + * + * @return builder + * + */ + public Builder serviceInstanceId(String serviceInstanceId) { + return serviceInstanceId(Output.of(serviceInstanceId)); + } + + /** + * @param sparkServiceInstanceConfig Spark-specific service instance configuration. + * + * @return builder + * + */ + public Builder sparkServiceInstanceConfig(@Nullable Output sparkServiceInstanceConfig) { + $.sparkServiceInstanceConfig = sparkServiceInstanceConfig; + return this; + } + + /** + * @param sparkServiceInstanceConfig Spark-specific service instance configuration. + * + * @return builder + * + */ + public Builder sparkServiceInstanceConfig(GdcServiceInstanceSparkServiceInstanceConfigArgs sparkServiceInstanceConfig) { + return sparkServiceInstanceConfig(Output.of(sparkServiceInstanceConfig)); + } + + public GdcServiceInstanceArgs build() { + if ($.location == null) { + throw new MissingRequiredPropertyException("GdcServiceInstanceArgs", "location"); + } + if ($.serviceInstanceId == null) { + throw new MissingRequiredPropertyException("GdcServiceInstanceArgs", "serviceInstanceId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/inputs/GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/inputs/GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs.java new file mode 100644 index 0000000000..f460a52c4b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/inputs/GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs.java @@ -0,0 +1,121 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataproc.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs Empty = new GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs(); + + /** + * A map of default Spark properties to apply to workloads in this application environment. These defaults may be overridden by per-application properties. + * + */ + @Import(name="defaultProperties") + private @Nullable Output> defaultProperties; + + /** + * @return A map of default Spark properties to apply to workloads in this application environment. These defaults may be overridden by per-application properties. + * + */ + public Optional>> defaultProperties() { + return Optional.ofNullable(this.defaultProperties); + } + + /** + * The default Dataproc version to use for applications submitted to this application environment + * + */ + @Import(name="defaultVersion") + private @Nullable Output defaultVersion; + + /** + * @return The default Dataproc version to use for applications submitted to this application environment + * + */ + public Optional> defaultVersion() { + return Optional.ofNullable(this.defaultVersion); + } + + private GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs() {} + + private GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs(GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs $) { + this.defaultProperties = $.defaultProperties; + this.defaultVersion = $.defaultVersion; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs $; + + public Builder() { + $ = new GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs(); + } + + public Builder(GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs defaults) { + $ = new GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param defaultProperties A map of default Spark properties to apply to workloads in this application environment. These defaults may be overridden by per-application properties. + * + * @return builder + * + */ + public Builder defaultProperties(@Nullable Output> defaultProperties) { + $.defaultProperties = defaultProperties; + return this; + } + + /** + * @param defaultProperties A map of default Spark properties to apply to workloads in this application environment. These defaults may be overridden by per-application properties. + * + * @return builder + * + */ + public Builder defaultProperties(Map defaultProperties) { + return defaultProperties(Output.of(defaultProperties)); + } + + /** + * @param defaultVersion The default Dataproc version to use for applications submitted to this application environment + * + * @return builder + * + */ + public Builder defaultVersion(@Nullable Output defaultVersion) { + $.defaultVersion = defaultVersion; + return this; + } + + /** + * @param defaultVersion The default Dataproc version to use for applications submitted to this application environment + * + * @return builder + * + */ + public Builder defaultVersion(String defaultVersion) { + return defaultVersion(Output.of(defaultVersion)); + } + + public GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/inputs/GdcApplicationEnvironmentState.java b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/inputs/GdcApplicationEnvironmentState.java new file mode 100644 index 0000000000..89a2b4f463 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/inputs/GdcApplicationEnvironmentState.java @@ -0,0 +1,656 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataproc.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.dataproc.inputs.GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GdcApplicationEnvironmentState extends com.pulumi.resources.ResourceArgs { + + public static final GdcApplicationEnvironmentState Empty = new GdcApplicationEnvironmentState(); + + /** + * The annotations to associate with this application environment. Annotations may be used to store client information, but are not used by the server. + * **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + * Please refer to the field `effective_annotations` for all of the annotations present on the resource. + * + */ + @Import(name="annotations") + private @Nullable Output> annotations; + + /** + * @return The annotations to associate with this application environment. Annotations may be used to store client information, but are not used by the server. + * **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + * Please refer to the field `effective_annotations` for all of the annotations present on the resource. + * + */ + public Optional>> annotations() { + return Optional.ofNullable(this.annotations); + } + + /** + * The id of the application environment + * + */ + @Import(name="applicationEnvironmentId") + private @Nullable Output applicationEnvironmentId; + + /** + * @return The id of the application environment + * + */ + public Optional> applicationEnvironmentId() { + return Optional.ofNullable(this.applicationEnvironmentId); + } + + /** + * The timestamp when the resource was created. + * + */ + @Import(name="createTime") + private @Nullable Output createTime; + + /** + * @return The timestamp when the resource was created. + * + */ + public Optional> createTime() { + return Optional.ofNullable(this.createTime); + } + + /** + * User-provided human-readable name to be used in user interfaces. + * + */ + @Import(name="displayName") + private @Nullable Output displayName; + + /** + * @return User-provided human-readable name to be used in user interfaces. + * + */ + public Optional> displayName() { + return Optional.ofNullable(this.displayName); + } + + @Import(name="effectiveAnnotations") + private @Nullable Output> effectiveAnnotations; + + public Optional>> effectiveAnnotations() { + return Optional.ofNullable(this.effectiveAnnotations); + } + + /** + * All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + * + */ + @Import(name="effectiveLabels") + private @Nullable Output> effectiveLabels; + + /** + * @return All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + * + */ + public Optional>> effectiveLabels() { + return Optional.ofNullable(this.effectiveLabels); + } + + /** + * The labels to associate with this application environment. Labels may be used for filtering and billing tracking. + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effective_labels` for all of the labels present on the resource. + * + */ + @Import(name="labels") + private @Nullable Output> labels; + + /** + * @return The labels to associate with this application environment. Labels may be used for filtering and billing tracking. + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effective_labels` for all of the labels present on the resource. + * + */ + public Optional>> labels() { + return Optional.ofNullable(this.labels); + } + + /** + * The location of the application environment + * + */ + @Import(name="location") + private @Nullable Output location; + + /** + * @return The location of the application environment + * + */ + public Optional> location() { + return Optional.ofNullable(this.location); + } + + /** + * Identifier. The name of the application environment. Format: projects/{project}/locations/{location}/serviceInstances/{service_instance}/applicationEnvironments/{application_environment_id} + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Identifier. The name of the application environment. Format: projects/{project}/locations/{location}/serviceInstances/{service_instance}/applicationEnvironments/{application_environment_id} + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The name of the namespace in which to create this ApplicationEnvironment. This namespace must already exist in the cluster + * + */ + @Import(name="namespace") + private @Nullable Output namespace; + + /** + * @return The name of the namespace in which to create this ApplicationEnvironment. This namespace must already exist in the cluster + * + */ + public Optional> namespace() { + return Optional.ofNullable(this.namespace); + } + + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + @Import(name="project") + private @Nullable Output project; + + /** + * @return The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + public Optional> project() { + return Optional.ofNullable(this.project); + } + + /** + * The combination of labels configured directly on the resource + * and default labels configured on the provider. + * + */ + @Import(name="pulumiLabels") + private @Nullable Output> pulumiLabels; + + /** + * @return The combination of labels configured directly on the resource + * and default labels configured on the provider. + * + */ + public Optional>> pulumiLabels() { + return Optional.ofNullable(this.pulumiLabels); + } + + /** + * The id of the service instance to which this application environment belongs. + * + * *** + * + */ + @Import(name="serviceinstance") + private @Nullable Output serviceinstance; + + /** + * @return The id of the service instance to which this application environment belongs. + * + * *** + * + */ + public Optional> serviceinstance() { + return Optional.ofNullable(this.serviceinstance); + } + + /** + * Represents the SparkApplicationEnvironmentConfig. + * Structure is documented below. + * + */ + @Import(name="sparkApplicationEnvironmentConfig") + private @Nullable Output sparkApplicationEnvironmentConfig; + + /** + * @return Represents the SparkApplicationEnvironmentConfig. + * Structure is documented below. + * + */ + public Optional> sparkApplicationEnvironmentConfig() { + return Optional.ofNullable(this.sparkApplicationEnvironmentConfig); + } + + /** + * System generated unique identifier for this application environment, formatted as UUID4. + * + */ + @Import(name="uid") + private @Nullable Output uid; + + /** + * @return System generated unique identifier for this application environment, formatted as UUID4. + * + */ + public Optional> uid() { + return Optional.ofNullable(this.uid); + } + + /** + * The timestamp when the resource was most recently updated. + * + */ + @Import(name="updateTime") + private @Nullable Output updateTime; + + /** + * @return The timestamp when the resource was most recently updated. + * + */ + public Optional> updateTime() { + return Optional.ofNullable(this.updateTime); + } + + private GdcApplicationEnvironmentState() {} + + private GdcApplicationEnvironmentState(GdcApplicationEnvironmentState $) { + this.annotations = $.annotations; + this.applicationEnvironmentId = $.applicationEnvironmentId; + this.createTime = $.createTime; + this.displayName = $.displayName; + this.effectiveAnnotations = $.effectiveAnnotations; + this.effectiveLabels = $.effectiveLabels; + this.labels = $.labels; + this.location = $.location; + this.name = $.name; + this.namespace = $.namespace; + this.project = $.project; + this.pulumiLabels = $.pulumiLabels; + this.serviceinstance = $.serviceinstance; + this.sparkApplicationEnvironmentConfig = $.sparkApplicationEnvironmentConfig; + this.uid = $.uid; + this.updateTime = $.updateTime; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GdcApplicationEnvironmentState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GdcApplicationEnvironmentState $; + + public Builder() { + $ = new GdcApplicationEnvironmentState(); + } + + public Builder(GdcApplicationEnvironmentState defaults) { + $ = new GdcApplicationEnvironmentState(Objects.requireNonNull(defaults)); + } + + /** + * @param annotations The annotations to associate with this application environment. Annotations may be used to store client information, but are not used by the server. + * **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + * Please refer to the field `effective_annotations` for all of the annotations present on the resource. + * + * @return builder + * + */ + public Builder annotations(@Nullable Output> annotations) { + $.annotations = annotations; + return this; + } + + /** + * @param annotations The annotations to associate with this application environment. Annotations may be used to store client information, but are not used by the server. + * **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + * Please refer to the field `effective_annotations` for all of the annotations present on the resource. + * + * @return builder + * + */ + public Builder annotations(Map annotations) { + return annotations(Output.of(annotations)); + } + + /** + * @param applicationEnvironmentId The id of the application environment + * + * @return builder + * + */ + public Builder applicationEnvironmentId(@Nullable Output applicationEnvironmentId) { + $.applicationEnvironmentId = applicationEnvironmentId; + return this; + } + + /** + * @param applicationEnvironmentId The id of the application environment + * + * @return builder + * + */ + public Builder applicationEnvironmentId(String applicationEnvironmentId) { + return applicationEnvironmentId(Output.of(applicationEnvironmentId)); + } + + /** + * @param createTime The timestamp when the resource was created. + * + * @return builder + * + */ + public Builder createTime(@Nullable Output createTime) { + $.createTime = createTime; + return this; + } + + /** + * @param createTime The timestamp when the resource was created. + * + * @return builder + * + */ + public Builder createTime(String createTime) { + return createTime(Output.of(createTime)); + } + + /** + * @param displayName User-provided human-readable name to be used in user interfaces. + * + * @return builder + * + */ + public Builder displayName(@Nullable Output displayName) { + $.displayName = displayName; + return this; + } + + /** + * @param displayName User-provided human-readable name to be used in user interfaces. + * + * @return builder + * + */ + public Builder displayName(String displayName) { + return displayName(Output.of(displayName)); + } + + public Builder effectiveAnnotations(@Nullable Output> effectiveAnnotations) { + $.effectiveAnnotations = effectiveAnnotations; + return this; + } + + public Builder effectiveAnnotations(Map effectiveAnnotations) { + return effectiveAnnotations(Output.of(effectiveAnnotations)); + } + + /** + * @param effectiveLabels All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + * + * @return builder + * + */ + public Builder effectiveLabels(@Nullable Output> effectiveLabels) { + $.effectiveLabels = effectiveLabels; + return this; + } + + /** + * @param effectiveLabels All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + * + * @return builder + * + */ + public Builder effectiveLabels(Map effectiveLabels) { + return effectiveLabels(Output.of(effectiveLabels)); + } + + /** + * @param labels The labels to associate with this application environment. Labels may be used for filtering and billing tracking. + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effective_labels` for all of the labels present on the resource. + * + * @return builder + * + */ + public Builder labels(@Nullable Output> labels) { + $.labels = labels; + return this; + } + + /** + * @param labels The labels to associate with this application environment. Labels may be used for filtering and billing tracking. + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effective_labels` for all of the labels present on the resource. + * + * @return builder + * + */ + public Builder labels(Map labels) { + return labels(Output.of(labels)); + } + + /** + * @param location The location of the application environment + * + * @return builder + * + */ + public Builder location(@Nullable Output location) { + $.location = location; + return this; + } + + /** + * @param location The location of the application environment + * + * @return builder + * + */ + public Builder location(String location) { + return location(Output.of(location)); + } + + /** + * @param name Identifier. The name of the application environment. Format: projects/{project}/locations/{location}/serviceInstances/{service_instance}/applicationEnvironments/{application_environment_id} + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Identifier. The name of the application environment. Format: projects/{project}/locations/{location}/serviceInstances/{service_instance}/applicationEnvironments/{application_environment_id} + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param namespace The name of the namespace in which to create this ApplicationEnvironment. This namespace must already exist in the cluster + * + * @return builder + * + */ + public Builder namespace(@Nullable Output namespace) { + $.namespace = namespace; + return this; + } + + /** + * @param namespace The name of the namespace in which to create this ApplicationEnvironment. This namespace must already exist in the cluster + * + * @return builder + * + */ + public Builder namespace(String namespace) { + return namespace(Output.of(namespace)); + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + * @return builder + * + */ + public Builder project(@Nullable Output project) { + $.project = project; + return this; + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + * @return builder + * + */ + public Builder project(String project) { + return project(Output.of(project)); + } + + /** + * @param pulumiLabels The combination of labels configured directly on the resource + * and default labels configured on the provider. + * + * @return builder + * + */ + public Builder pulumiLabels(@Nullable Output> pulumiLabels) { + $.pulumiLabels = pulumiLabels; + return this; + } + + /** + * @param pulumiLabels The combination of labels configured directly on the resource + * and default labels configured on the provider. + * + * @return builder + * + */ + public Builder pulumiLabels(Map pulumiLabels) { + return pulumiLabels(Output.of(pulumiLabels)); + } + + /** + * @param serviceinstance The id of the service instance to which this application environment belongs. + * + * *** + * + * @return builder + * + */ + public Builder serviceinstance(@Nullable Output serviceinstance) { + $.serviceinstance = serviceinstance; + return this; + } + + /** + * @param serviceinstance The id of the service instance to which this application environment belongs. + * + * *** + * + * @return builder + * + */ + public Builder serviceinstance(String serviceinstance) { + return serviceinstance(Output.of(serviceinstance)); + } + + /** + * @param sparkApplicationEnvironmentConfig Represents the SparkApplicationEnvironmentConfig. + * Structure is documented below. + * + * @return builder + * + */ + public Builder sparkApplicationEnvironmentConfig(@Nullable Output sparkApplicationEnvironmentConfig) { + $.sparkApplicationEnvironmentConfig = sparkApplicationEnvironmentConfig; + return this; + } + + /** + * @param sparkApplicationEnvironmentConfig Represents the SparkApplicationEnvironmentConfig. + * Structure is documented below. + * + * @return builder + * + */ + public Builder sparkApplicationEnvironmentConfig(GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs sparkApplicationEnvironmentConfig) { + return sparkApplicationEnvironmentConfig(Output.of(sparkApplicationEnvironmentConfig)); + } + + /** + * @param uid System generated unique identifier for this application environment, formatted as UUID4. + * + * @return builder + * + */ + public Builder uid(@Nullable Output uid) { + $.uid = uid; + return this; + } + + /** + * @param uid System generated unique identifier for this application environment, formatted as UUID4. + * + * @return builder + * + */ + public Builder uid(String uid) { + return uid(Output.of(uid)); + } + + /** + * @param updateTime The timestamp when the resource was most recently updated. + * + * @return builder + * + */ + public Builder updateTime(@Nullable Output updateTime) { + $.updateTime = updateTime; + return this; + } + + /** + * @param updateTime The timestamp when the resource was most recently updated. + * + * @return builder + * + */ + public Builder updateTime(String updateTime) { + return updateTime(Output.of(updateTime)); + } + + public GdcApplicationEnvironmentState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/inputs/GdcServiceInstanceGdceClusterArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/inputs/GdcServiceInstanceGdceClusterArgs.java new file mode 100644 index 0000000000..4c27bb4014 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/inputs/GdcServiceInstanceGdceClusterArgs.java @@ -0,0 +1,85 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataproc.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class GdcServiceInstanceGdceClusterArgs extends com.pulumi.resources.ResourceArgs { + + public static final GdcServiceInstanceGdceClusterArgs Empty = new GdcServiceInstanceGdceClusterArgs(); + + /** + * Gdce cluster resource id. + * + */ + @Import(name="gdceCluster", required=true) + private Output gdceCluster; + + /** + * @return Gdce cluster resource id. + * + */ + public Output gdceCluster() { + return this.gdceCluster; + } + + private GdcServiceInstanceGdceClusterArgs() {} + + private GdcServiceInstanceGdceClusterArgs(GdcServiceInstanceGdceClusterArgs $) { + this.gdceCluster = $.gdceCluster; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GdcServiceInstanceGdceClusterArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GdcServiceInstanceGdceClusterArgs $; + + public Builder() { + $ = new GdcServiceInstanceGdceClusterArgs(); + } + + public Builder(GdcServiceInstanceGdceClusterArgs defaults) { + $ = new GdcServiceInstanceGdceClusterArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param gdceCluster Gdce cluster resource id. + * + * @return builder + * + */ + public Builder gdceCluster(Output gdceCluster) { + $.gdceCluster = gdceCluster; + return this; + } + + /** + * @param gdceCluster Gdce cluster resource id. + * + * @return builder + * + */ + public Builder gdceCluster(String gdceCluster) { + return gdceCluster(Output.of(gdceCluster)); + } + + public GdcServiceInstanceGdceClusterArgs build() { + if ($.gdceCluster == null) { + throw new MissingRequiredPropertyException("GdcServiceInstanceGdceClusterArgs", "gdceCluster"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/inputs/GdcServiceInstanceSparkServiceInstanceConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/inputs/GdcServiceInstanceSparkServiceInstanceConfigArgs.java new file mode 100644 index 0000000000..595923f9f2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/inputs/GdcServiceInstanceSparkServiceInstanceConfigArgs.java @@ -0,0 +1,28 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataproc.inputs; + + + + +public final class GdcServiceInstanceSparkServiceInstanceConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final GdcServiceInstanceSparkServiceInstanceConfigArgs Empty = new GdcServiceInstanceSparkServiceInstanceConfigArgs(); + + public static Builder builder() { + return new Builder(); + } + + public static final class Builder { + private GdcServiceInstanceSparkServiceInstanceConfigArgs $; + + public Builder() { + $ = new GdcServiceInstanceSparkServiceInstanceConfigArgs(); + } + public GdcServiceInstanceSparkServiceInstanceConfigArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/inputs/GdcServiceInstanceState.java b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/inputs/GdcServiceInstanceState.java new file mode 100644 index 0000000000..53dcd4d127 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/inputs/GdcServiceInstanceState.java @@ -0,0 +1,853 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataproc.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.dataproc.inputs.GdcServiceInstanceGdceClusterArgs; +import com.pulumi.gcp.dataproc.inputs.GdcServiceInstanceSparkServiceInstanceConfigArgs; +import java.lang.Boolean; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GdcServiceInstanceState extends com.pulumi.resources.ResourceArgs { + + public static final GdcServiceInstanceState Empty = new GdcServiceInstanceState(); + + /** + * The timestamp when the resource was created. + * + */ + @Import(name="createTime") + private @Nullable Output createTime; + + /** + * @return The timestamp when the resource was created. + * + */ + public Optional> createTime() { + return Optional.ofNullable(this.createTime); + } + + /** + * User-provided human-readable name to be used in user interfaces. + * + */ + @Import(name="displayName") + private @Nullable Output displayName; + + /** + * @return User-provided human-readable name to be used in user interfaces. + * + */ + public Optional> displayName() { + return Optional.ofNullable(this.displayName); + } + + /** + * All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + * + */ + @Import(name="effectiveLabels") + private @Nullable Output> effectiveLabels; + + /** + * @return All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + * + */ + public Optional>> effectiveLabels() { + return Optional.ofNullable(this.effectiveLabels); + } + + /** + * Effective service account associated with ServiceInstance. This will be the service_account if specified. Otherwise, it will be an automatically created per-resource P4SA that also automatically has Fleet Workload. Identity bindings applied. + * + */ + @Import(name="effectiveServiceAccount") + private @Nullable Output effectiveServiceAccount; + + /** + * @return Effective service account associated with ServiceInstance. This will be the service_account if specified. Otherwise, it will be an automatically created per-resource P4SA that also automatically has Fleet Workload. Identity bindings applied. + * + */ + public Optional> effectiveServiceAccount() { + return Optional.ofNullable(this.effectiveServiceAccount); + } + + /** + * Gdce cluster information. + * Structure is documented below. + * + */ + @Import(name="gdceCluster") + private @Nullable Output gdceCluster; + + /** + * @return Gdce cluster information. + * Structure is documented below. + * + */ + public Optional> gdceCluster() { + return Optional.ofNullable(this.gdceCluster); + } + + /** + * The labels to associate with this service instance. Labels may be used for filtering and billing tracking. + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effective_labels` for all of the labels present on the resource. + * + */ + @Import(name="labels") + private @Nullable Output> labels; + + /** + * @return The labels to associate with this service instance. Labels may be used for filtering and billing tracking. + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effective_labels` for all of the labels present on the resource. + * + */ + public Optional>> labels() { + return Optional.ofNullable(this.labels); + } + + /** + * Location of the resource. + * + */ + @Import(name="location") + private @Nullable Output location; + + /** + * @return Location of the resource. + * + */ + public Optional> location() { + return Optional.ofNullable(this.location); + } + + /** + * Identifier. The name of the service instance. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Identifier. The name of the service instance. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + @Import(name="project") + private @Nullable Output project; + + /** + * @return The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + public Optional> project() { + return Optional.ofNullable(this.project); + } + + /** + * The combination of labels configured directly on the resource + * and default labels configured on the provider. + * + */ + @Import(name="pulumiLabels") + private @Nullable Output> pulumiLabels; + + /** + * @return The combination of labels configured directly on the resource + * and default labels configured on the provider. + * + */ + public Optional>> pulumiLabels() { + return Optional.ofNullable(this.pulumiLabels); + } + + /** + * Whether the service instance is currently reconciling. True if the current state of the resource does not match the intended state, and the system is working to reconcile them, whether or not the change was user initiated. + * + */ + @Import(name="reconciling") + private @Nullable Output reconciling; + + /** + * @return Whether the service instance is currently reconciling. True if the current state of the resource does not match the intended state, and the system is working to reconcile them, whether or not the change was user initiated. + * + */ + public Optional> reconciling() { + return Optional.ofNullable(this.reconciling); + } + + /** + * The intended state to which the service instance is reconciling. Possible values: + * * `CREATING` + * * `ACTIVE` + * * `DISCONNECTED` + * * `DELETING` + * * `STOPPING` + * * `STOPPED` + * * `STARTING` + * * `UPDATING` + * * `FAILED` + * + */ + @Import(name="requestedState") + private @Nullable Output requestedState; + + /** + * @return The intended state to which the service instance is reconciling. Possible values: + * * `CREATING` + * * `ACTIVE` + * * `DISCONNECTED` + * * `DELETING` + * * `STOPPING` + * * `STOPPED` + * * `STARTING` + * * `UPDATING` + * * `FAILED` + * + */ + public Optional> requestedState() { + return Optional.ofNullable(this.requestedState); + } + + /** + * Requested service account to associate with ServiceInstance. + * + */ + @Import(name="serviceAccount") + private @Nullable Output serviceAccount; + + /** + * @return Requested service account to associate with ServiceInstance. + * + */ + public Optional> serviceAccount() { + return Optional.ofNullable(this.serviceAccount); + } + + /** + * Id of the service instance. + * + * *** + * + */ + @Import(name="serviceInstanceId") + private @Nullable Output serviceInstanceId; + + /** + * @return Id of the service instance. + * + * *** + * + */ + public Optional> serviceInstanceId() { + return Optional.ofNullable(this.serviceInstanceId); + } + + /** + * Spark-specific service instance configuration. + * + */ + @Import(name="sparkServiceInstanceConfig") + private @Nullable Output sparkServiceInstanceConfig; + + /** + * @return Spark-specific service instance configuration. + * + */ + public Optional> sparkServiceInstanceConfig() { + return Optional.ofNullable(this.sparkServiceInstanceConfig); + } + + /** + * The current state. Possible values: + * * `CREATING` + * * `ACTIVE` + * * `DISCONNECTED` + * * `DELETING` + * * `STOPPING` + * * `STOPPED` + * * `STARTING` + * * `UPDATING` + * * `FAILED` + * + */ + @Import(name="state") + private @Nullable Output state; + + /** + * @return The current state. Possible values: + * * `CREATING` + * * `ACTIVE` + * * `DISCONNECTED` + * * `DELETING` + * * `STOPPING` + * * `STOPPED` + * * `STARTING` + * * `UPDATING` + * * `FAILED` + * + */ + public Optional> state() { + return Optional.ofNullable(this.state); + } + + /** + * A message explaining the current state. + * + */ + @Import(name="stateMessage") + private @Nullable Output stateMessage; + + /** + * @return A message explaining the current state. + * + */ + public Optional> stateMessage() { + return Optional.ofNullable(this.stateMessage); + } + + /** + * System generated unique identifier for this service instance, formatted as UUID4. + * + */ + @Import(name="uid") + private @Nullable Output uid; + + /** + * @return System generated unique identifier for this service instance, formatted as UUID4. + * + */ + public Optional> uid() { + return Optional.ofNullable(this.uid); + } + + /** + * The timestamp when the resource was most recently updated. + * + */ + @Import(name="updateTime") + private @Nullable Output updateTime; + + /** + * @return The timestamp when the resource was most recently updated. + * + */ + public Optional> updateTime() { + return Optional.ofNullable(this.updateTime); + } + + private GdcServiceInstanceState() {} + + private GdcServiceInstanceState(GdcServiceInstanceState $) { + this.createTime = $.createTime; + this.displayName = $.displayName; + this.effectiveLabels = $.effectiveLabels; + this.effectiveServiceAccount = $.effectiveServiceAccount; + this.gdceCluster = $.gdceCluster; + this.labels = $.labels; + this.location = $.location; + this.name = $.name; + this.project = $.project; + this.pulumiLabels = $.pulumiLabels; + this.reconciling = $.reconciling; + this.requestedState = $.requestedState; + this.serviceAccount = $.serviceAccount; + this.serviceInstanceId = $.serviceInstanceId; + this.sparkServiceInstanceConfig = $.sparkServiceInstanceConfig; + this.state = $.state; + this.stateMessage = $.stateMessage; + this.uid = $.uid; + this.updateTime = $.updateTime; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GdcServiceInstanceState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GdcServiceInstanceState $; + + public Builder() { + $ = new GdcServiceInstanceState(); + } + + public Builder(GdcServiceInstanceState defaults) { + $ = new GdcServiceInstanceState(Objects.requireNonNull(defaults)); + } + + /** + * @param createTime The timestamp when the resource was created. + * + * @return builder + * + */ + public Builder createTime(@Nullable Output createTime) { + $.createTime = createTime; + return this; + } + + /** + * @param createTime The timestamp when the resource was created. + * + * @return builder + * + */ + public Builder createTime(String createTime) { + return createTime(Output.of(createTime)); + } + + /** + * @param displayName User-provided human-readable name to be used in user interfaces. + * + * @return builder + * + */ + public Builder displayName(@Nullable Output displayName) { + $.displayName = displayName; + return this; + } + + /** + * @param displayName User-provided human-readable name to be used in user interfaces. + * + * @return builder + * + */ + public Builder displayName(String displayName) { + return displayName(Output.of(displayName)); + } + + /** + * @param effectiveLabels All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + * + * @return builder + * + */ + public Builder effectiveLabels(@Nullable Output> effectiveLabels) { + $.effectiveLabels = effectiveLabels; + return this; + } + + /** + * @param effectiveLabels All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + * + * @return builder + * + */ + public Builder effectiveLabels(Map effectiveLabels) { + return effectiveLabels(Output.of(effectiveLabels)); + } + + /** + * @param effectiveServiceAccount Effective service account associated with ServiceInstance. This will be the service_account if specified. Otherwise, it will be an automatically created per-resource P4SA that also automatically has Fleet Workload. Identity bindings applied. + * + * @return builder + * + */ + public Builder effectiveServiceAccount(@Nullable Output effectiveServiceAccount) { + $.effectiveServiceAccount = effectiveServiceAccount; + return this; + } + + /** + * @param effectiveServiceAccount Effective service account associated with ServiceInstance. This will be the service_account if specified. Otherwise, it will be an automatically created per-resource P4SA that also automatically has Fleet Workload. Identity bindings applied. + * + * @return builder + * + */ + public Builder effectiveServiceAccount(String effectiveServiceAccount) { + return effectiveServiceAccount(Output.of(effectiveServiceAccount)); + } + + /** + * @param gdceCluster Gdce cluster information. + * Structure is documented below. + * + * @return builder + * + */ + public Builder gdceCluster(@Nullable Output gdceCluster) { + $.gdceCluster = gdceCluster; + return this; + } + + /** + * @param gdceCluster Gdce cluster information. + * Structure is documented below. + * + * @return builder + * + */ + public Builder gdceCluster(GdcServiceInstanceGdceClusterArgs gdceCluster) { + return gdceCluster(Output.of(gdceCluster)); + } + + /** + * @param labels The labels to associate with this service instance. Labels may be used for filtering and billing tracking. + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effective_labels` for all of the labels present on the resource. + * + * @return builder + * + */ + public Builder labels(@Nullable Output> labels) { + $.labels = labels; + return this; + } + + /** + * @param labels The labels to associate with this service instance. Labels may be used for filtering and billing tracking. + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effective_labels` for all of the labels present on the resource. + * + * @return builder + * + */ + public Builder labels(Map labels) { + return labels(Output.of(labels)); + } + + /** + * @param location Location of the resource. + * + * @return builder + * + */ + public Builder location(@Nullable Output location) { + $.location = location; + return this; + } + + /** + * @param location Location of the resource. + * + * @return builder + * + */ + public Builder location(String location) { + return location(Output.of(location)); + } + + /** + * @param name Identifier. The name of the service instance. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Identifier. The name of the service instance. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + * @return builder + * + */ + public Builder project(@Nullable Output project) { + $.project = project; + return this; + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + * @return builder + * + */ + public Builder project(String project) { + return project(Output.of(project)); + } + + /** + * @param pulumiLabels The combination of labels configured directly on the resource + * and default labels configured on the provider. + * + * @return builder + * + */ + public Builder pulumiLabels(@Nullable Output> pulumiLabels) { + $.pulumiLabels = pulumiLabels; + return this; + } + + /** + * @param pulumiLabels The combination of labels configured directly on the resource + * and default labels configured on the provider. + * + * @return builder + * + */ + public Builder pulumiLabels(Map pulumiLabels) { + return pulumiLabels(Output.of(pulumiLabels)); + } + + /** + * @param reconciling Whether the service instance is currently reconciling. True if the current state of the resource does not match the intended state, and the system is working to reconcile them, whether or not the change was user initiated. + * + * @return builder + * + */ + public Builder reconciling(@Nullable Output reconciling) { + $.reconciling = reconciling; + return this; + } + + /** + * @param reconciling Whether the service instance is currently reconciling. True if the current state of the resource does not match the intended state, and the system is working to reconcile them, whether or not the change was user initiated. + * + * @return builder + * + */ + public Builder reconciling(Boolean reconciling) { + return reconciling(Output.of(reconciling)); + } + + /** + * @param requestedState The intended state to which the service instance is reconciling. Possible values: + * * `CREATING` + * * `ACTIVE` + * * `DISCONNECTED` + * * `DELETING` + * * `STOPPING` + * * `STOPPED` + * * `STARTING` + * * `UPDATING` + * * `FAILED` + * + * @return builder + * + */ + public Builder requestedState(@Nullable Output requestedState) { + $.requestedState = requestedState; + return this; + } + + /** + * @param requestedState The intended state to which the service instance is reconciling. Possible values: + * * `CREATING` + * * `ACTIVE` + * * `DISCONNECTED` + * * `DELETING` + * * `STOPPING` + * * `STOPPED` + * * `STARTING` + * * `UPDATING` + * * `FAILED` + * + * @return builder + * + */ + public Builder requestedState(String requestedState) { + return requestedState(Output.of(requestedState)); + } + + /** + * @param serviceAccount Requested service account to associate with ServiceInstance. + * + * @return builder + * + */ + public Builder serviceAccount(@Nullable Output serviceAccount) { + $.serviceAccount = serviceAccount; + return this; + } + + /** + * @param serviceAccount Requested service account to associate with ServiceInstance. + * + * @return builder + * + */ + public Builder serviceAccount(String serviceAccount) { + return serviceAccount(Output.of(serviceAccount)); + } + + /** + * @param serviceInstanceId Id of the service instance. + * + * *** + * + * @return builder + * + */ + public Builder serviceInstanceId(@Nullable Output serviceInstanceId) { + $.serviceInstanceId = serviceInstanceId; + return this; + } + + /** + * @param serviceInstanceId Id of the service instance. + * + * *** + * + * @return builder + * + */ + public Builder serviceInstanceId(String serviceInstanceId) { + return serviceInstanceId(Output.of(serviceInstanceId)); + } + + /** + * @param sparkServiceInstanceConfig Spark-specific service instance configuration. + * + * @return builder + * + */ + public Builder sparkServiceInstanceConfig(@Nullable Output sparkServiceInstanceConfig) { + $.sparkServiceInstanceConfig = sparkServiceInstanceConfig; + return this; + } + + /** + * @param sparkServiceInstanceConfig Spark-specific service instance configuration. + * + * @return builder + * + */ + public Builder sparkServiceInstanceConfig(GdcServiceInstanceSparkServiceInstanceConfigArgs sparkServiceInstanceConfig) { + return sparkServiceInstanceConfig(Output.of(sparkServiceInstanceConfig)); + } + + /** + * @param state The current state. Possible values: + * * `CREATING` + * * `ACTIVE` + * * `DISCONNECTED` + * * `DELETING` + * * `STOPPING` + * * `STOPPED` + * * `STARTING` + * * `UPDATING` + * * `FAILED` + * + * @return builder + * + */ + public Builder state(@Nullable Output state) { + $.state = state; + return this; + } + + /** + * @param state The current state. Possible values: + * * `CREATING` + * * `ACTIVE` + * * `DISCONNECTED` + * * `DELETING` + * * `STOPPING` + * * `STOPPED` + * * `STARTING` + * * `UPDATING` + * * `FAILED` + * + * @return builder + * + */ + public Builder state(String state) { + return state(Output.of(state)); + } + + /** + * @param stateMessage A message explaining the current state. + * + * @return builder + * + */ + public Builder stateMessage(@Nullable Output stateMessage) { + $.stateMessage = stateMessage; + return this; + } + + /** + * @param stateMessage A message explaining the current state. + * + * @return builder + * + */ + public Builder stateMessage(String stateMessage) { + return stateMessage(Output.of(stateMessage)); + } + + /** + * @param uid System generated unique identifier for this service instance, formatted as UUID4. + * + * @return builder + * + */ + public Builder uid(@Nullable Output uid) { + $.uid = uid; + return this; + } + + /** + * @param uid System generated unique identifier for this service instance, formatted as UUID4. + * + * @return builder + * + */ + public Builder uid(String uid) { + return uid(Output.of(uid)); + } + + /** + * @param updateTime The timestamp when the resource was most recently updated. + * + * @return builder + * + */ + public Builder updateTime(@Nullable Output updateTime) { + $.updateTime = updateTime; + return this; + } + + /** + * @param updateTime The timestamp when the resource was most recently updated. + * + * @return builder + * + */ + public Builder updateTime(String updateTime) { + return updateTime(Output.of(updateTime)); + } + + public GdcServiceInstanceState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/outputs/GdcApplicationEnvironmentSparkApplicationEnvironmentConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/outputs/GdcApplicationEnvironmentSparkApplicationEnvironmentConfig.java new file mode 100644 index 0000000000..894bacc5c3 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/outputs/GdcApplicationEnvironmentSparkApplicationEnvironmentConfig.java @@ -0,0 +1,79 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataproc.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class GdcApplicationEnvironmentSparkApplicationEnvironmentConfig { + /** + * @return A map of default Spark properties to apply to workloads in this application environment. These defaults may be overridden by per-application properties. + * + */ + private @Nullable Map defaultProperties; + /** + * @return The default Dataproc version to use for applications submitted to this application environment + * + */ + private @Nullable String defaultVersion; + + private GdcApplicationEnvironmentSparkApplicationEnvironmentConfig() {} + /** + * @return A map of default Spark properties to apply to workloads in this application environment. These defaults may be overridden by per-application properties. + * + */ + public Map defaultProperties() { + return this.defaultProperties == null ? Map.of() : this.defaultProperties; + } + /** + * @return The default Dataproc version to use for applications submitted to this application environment + * + */ + public Optional defaultVersion() { + return Optional.ofNullable(this.defaultVersion); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GdcApplicationEnvironmentSparkApplicationEnvironmentConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Map defaultProperties; + private @Nullable String defaultVersion; + public Builder() {} + public Builder(GdcApplicationEnvironmentSparkApplicationEnvironmentConfig defaults) { + Objects.requireNonNull(defaults); + this.defaultProperties = defaults.defaultProperties; + this.defaultVersion = defaults.defaultVersion; + } + + @CustomType.Setter + public Builder defaultProperties(@Nullable Map defaultProperties) { + + this.defaultProperties = defaultProperties; + return this; + } + @CustomType.Setter + public Builder defaultVersion(@Nullable String defaultVersion) { + + this.defaultVersion = defaultVersion; + return this; + } + public GdcApplicationEnvironmentSparkApplicationEnvironmentConfig build() { + final var _resultValue = new GdcApplicationEnvironmentSparkApplicationEnvironmentConfig(); + _resultValue.defaultProperties = defaultProperties; + _resultValue.defaultVersion = defaultVersion; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/outputs/GdcServiceInstanceGdceCluster.java b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/outputs/GdcServiceInstanceGdceCluster.java new file mode 100644 index 0000000000..8b3f836998 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/outputs/GdcServiceInstanceGdceCluster.java @@ -0,0 +1,58 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataproc.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GdcServiceInstanceGdceCluster { + /** + * @return Gdce cluster resource id. + * + */ + private String gdceCluster; + + private GdcServiceInstanceGdceCluster() {} + /** + * @return Gdce cluster resource id. + * + */ + public String gdceCluster() { + return this.gdceCluster; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GdcServiceInstanceGdceCluster defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String gdceCluster; + public Builder() {} + public Builder(GdcServiceInstanceGdceCluster defaults) { + Objects.requireNonNull(defaults); + this.gdceCluster = defaults.gdceCluster; + } + + @CustomType.Setter + public Builder gdceCluster(String gdceCluster) { + if (gdceCluster == null) { + throw new MissingRequiredPropertyException("GdcServiceInstanceGdceCluster", "gdceCluster"); + } + this.gdceCluster = gdceCluster; + return this; + } + public GdcServiceInstanceGdceCluster build() { + final var _resultValue = new GdcServiceInstanceGdceCluster(); + _resultValue.gdceCluster = gdceCluster; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/outputs/GdcServiceInstanceSparkServiceInstanceConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/outputs/GdcServiceInstanceSparkServiceInstanceConfig.java new file mode 100644 index 0000000000..3cce124524 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/outputs/GdcServiceInstanceSparkServiceInstanceConfig.java @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataproc.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.util.Objects; + +@CustomType +public final class GdcServiceInstanceSparkServiceInstanceConfig { + private GdcServiceInstanceSparkServiceInstanceConfig() {} + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GdcServiceInstanceSparkServiceInstanceConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + public Builder() {} + public Builder(GdcServiceInstanceSparkServiceInstanceConfig defaults) { + Objects.requireNonNull(defaults); + } + + public GdcServiceInstanceSparkServiceInstanceConfig build() { + final var _resultValue = new GdcServiceInstanceSparkServiceInstanceConfig(); + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/edgecontainer/VpnConnection.java b/sdk/java/src/main/java/com/pulumi/gcp/edgecontainer/VpnConnection.java index 8576e4015e..d881b0bad8 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/edgecontainer/VpnConnection.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/edgecontainer/VpnConnection.java @@ -175,7 +175,7 @@ public Output createTime() { return this.createTime; } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -183,7 +183,7 @@ public Output createTime() { private Output> details; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/edgecontainer/inputs/VpnConnectionState.java b/sdk/java/src/main/java/com/pulumi/gcp/edgecontainer/inputs/VpnConnectionState.java index 05b9726477..b68f40ed10 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/edgecontainer/inputs/VpnConnectionState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/edgecontainer/inputs/VpnConnectionState.java @@ -51,7 +51,7 @@ public Optional> createTime() { } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -59,7 +59,7 @@ public Optional> createTime() { private @Nullable Output> details; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -344,7 +344,7 @@ public Builder createTime(String createTime) { } /** - * @param details A nested object resource + * @param details A nested object resource. * Structure is documented below. * * @return builder @@ -356,7 +356,7 @@ public Builder details(@Nullable Output> details) } /** - * @param details A nested object resource + * @param details A nested object resource. * Structure is documented below. * * @return builder @@ -367,7 +367,7 @@ public Builder details(List details) { } /** - * @param details A nested object resource + * @param details A nested object resource. * Structure is documented below. * * @return builder diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firebase/AndroidApp.java b/sdk/java/src/main/java/com/pulumi/gcp/firebase/AndroidApp.java index 6fd063bb7e..39941716b3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firebase/AndroidApp.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firebase/AndroidApp.java @@ -131,7 +131,7 @@ * When using the `pulumi import` command, AndroidApp can be imported using one of the formats above. For example: * * ```sh - * $ pulumi import gcp:firebase/androidApp:AndroidApp default {{project}} projects/{{project}}/androidApps/{{app_id}} + * $ pulumi import gcp:firebase/androidApp:AndroidApp default "{{project}} projects/{{project}}/androidApps/{{app_id}}" * ``` * * ```sh diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppleApp.java b/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppleApp.java index edf1040d21..5e14da66a2 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppleApp.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppleApp.java @@ -125,7 +125,7 @@ * When using the `pulumi import` command, AppleApp can be imported using one of the formats above. For example: * * ```sh - * $ pulumi import gcp:firebase/appleApp:AppleApp default {{project}} projects/{{project}}/iosApps/{{app_id}} + * $ pulumi import gcp:firebase/appleApp:AppleApp default "{{project}} projects/{{project}}/iosApps/{{app_id}}" * ``` * * ```sh diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firebase/WebApp.java b/sdk/java/src/main/java/com/pulumi/gcp/firebase/WebApp.java index 5bb2602444..c003862b86 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firebase/WebApp.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firebase/WebApp.java @@ -96,7 +96,7 @@ * When using the `pulumi import` command, WebApp can be imported using one of the formats above. For example: * * ```sh - * $ pulumi import gcp:firebase/webApp:WebApp default {{project}} projects/{{project}}/webApps/{{app_id}} + * $ pulumi import gcp:firebase/webApp:WebApp default "{{project}} projects/{{project}}/webApps/{{app_id}}" * ``` * * ```sh diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firestore/Index.java b/sdk/java/src/main/java/com/pulumi/gcp/firestore/Index.java index f5ca7f5aa8..a8cd4890ac 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firestore/Index.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firestore/Index.java @@ -219,6 +219,58 @@ * } * * <!--End PulumiCodeChooser --> + * ### Firestore Index Name Descending + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.gcp.firestore.Database;
+ * import com.pulumi.gcp.firestore.DatabaseArgs;
+ * import com.pulumi.gcp.firestore.Index;
+ * import com.pulumi.gcp.firestore.IndexArgs;
+ * import com.pulumi.gcp.firestore.inputs.IndexFieldArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var database = new Database("database", DatabaseArgs.builder()
+ *             .project("my-project-name")
+ *             .name("database-id")
+ *             .locationId("nam5")
+ *             .type("FIRESTORE_NATIVE")
+ *             .deleteProtectionState("DELETE_PROTECTION_DISABLED")
+ *             .deletionPolicy("DELETE")
+ *             .build());
+ * 
+ *         var my_index = new Index("my-index", IndexArgs.builder()
+ *             .project("my-project-name")
+ *             .database(database.name())
+ *             .collection("atestcollection")
+ *             .fields(IndexFieldArgs.builder()
+ *                 .fieldPath("__name__")
+ *                 .order("DESCENDING")
+ *                 .build())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> * * ## Import * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalAdminClusterLoadBalancerArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalAdminClusterLoadBalancerArgs.java index 786eb6163b..0c698f9808 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalAdminClusterLoadBalancerArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalAdminClusterLoadBalancerArgs.java @@ -19,7 +19,7 @@ public final class BareMetalAdminClusterLoadBalancerArgs extends com.pulumi.reso public static final BareMetalAdminClusterLoadBalancerArgs Empty = new BareMetalAdminClusterLoadBalancerArgs(); /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -27,7 +27,7 @@ public final class BareMetalAdminClusterLoadBalancerArgs extends com.pulumi.reso private @Nullable Output manualLbConfig; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -96,7 +96,7 @@ public Builder(BareMetalAdminClusterLoadBalancerArgs defaults) { } /** - * @param manualLbConfig A nested object resource + * @param manualLbConfig A nested object resource. * Structure is documented below. * * @return builder @@ -108,7 +108,7 @@ public Builder manualLbConfig(@Nullable Output islandModeCidr; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -57,7 +57,7 @@ public Builder(BareMetalAdminClusterNetworkConfigArgs defaults) { } /** - * @param islandModeCidr A nested object resource + * @param islandModeCidr A nested object resource. * Structure is documented below. * * @return builder @@ -69,7 +69,7 @@ public Builder islandModeCidr(@Nullable Output> bgpLbConfig } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -46,7 +46,7 @@ public Optional> bgpLbConfig private @Nullable Output manualLbConfig; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -55,7 +55,7 @@ public Optional> manualLb } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -63,7 +63,7 @@ public Optional> manualLb private @Nullable Output metalLbConfig; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -157,7 +157,7 @@ public Builder bgpLbConfig(BareMetalClusterLoadBalancerBgpLbConfigArgs bgpLbConf } /** - * @param manualLbConfig A nested object resource + * @param manualLbConfig A nested object resource. * Structure is documented below. * * @return builder @@ -169,7 +169,7 @@ public Builder manualLbConfig(@Nullable Output> advancedNetworking() { } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -48,7 +48,7 @@ public Optional> advancedNetworking() { private @Nullable Output islandModeCidr; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -145,7 +145,7 @@ public Builder advancedNetworking(Boolean advancedNetworking) { } /** - * @param islandModeCidr A nested object resource + * @param islandModeCidr A nested object resource. * Structure is documented below. * * @return builder @@ -157,7 +157,7 @@ public Builder islandModeCidr(@Nullable Output bgpLbConfig() { return Optional.ofNullable(this.bgpLbConfig); } /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -65,7 +65,7 @@ public Optional manualLbConfig() { return Optional.ofNullable(this.manualLbConfig); } /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalClusterNetworkConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalClusterNetworkConfig.java index 5702f8cc18..471e9bd66c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalClusterNetworkConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalClusterNetworkConfig.java @@ -23,7 +23,7 @@ public final class BareMetalClusterNetworkConfig { */ private @Nullable Boolean advancedNetworking; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -53,7 +53,7 @@ public Optional advancedNetworking() { return Optional.ofNullable(this.advancedNetworking); } /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/Dataset.java b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/Dataset.java index 79806ed2b2..24fe9bf46c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/Dataset.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/Dataset.java @@ -160,7 +160,7 @@ @ResourceType(type="gcp:healthcare/dataset:Dataset") public class Dataset extends com.pulumi.resources.CustomResource { /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -168,7 +168,7 @@ public class Dataset extends com.pulumi.resources.CustomResource { private Output encryptionSpec; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DatasetArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DatasetArgs.java index 8e64b24b00..004441a533 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DatasetArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DatasetArgs.java @@ -18,7 +18,7 @@ public final class DatasetArgs extends com.pulumi.resources.ResourceArgs { public static final DatasetArgs Empty = new DatasetArgs(); /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -26,7 +26,7 @@ public final class DatasetArgs extends com.pulumi.resources.ResourceArgs { private @Nullable Output encryptionSpec; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -133,7 +133,7 @@ public Builder(DatasetArgs defaults) { } /** - * @param encryptionSpec A nested object resource + * @param encryptionSpec A nested object resource. * Structure is documented below. * * @return builder @@ -145,7 +145,7 @@ public Builder encryptionSpec(@Nullable Output encryp } /** - * @param encryptionSpec A nested object resource + * @param encryptionSpec A nested object resource. * Structure is documented below. * * @return builder diff --git a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DicomStore.java b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DicomStore.java index 564ebc0c4e..7546390c2b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DicomStore.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DicomStore.java @@ -274,7 +274,7 @@ public Output name() { return this.name; } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -282,7 +282,7 @@ public Output name() { private Output notificationConfig; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DicomStoreArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DicomStoreArgs.java index bc9363d2ba..587c667ca0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DicomStoreArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DicomStoreArgs.java @@ -94,7 +94,7 @@ public Optional> name() { } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -102,7 +102,7 @@ public Optional> name() { private @Nullable Output notificationConfig; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -249,7 +249,7 @@ public Builder name(String name) { } /** - * @param notificationConfig A nested object resource + * @param notificationConfig A nested object resource. * Structure is documented below. * * @return builder @@ -261,7 +261,7 @@ public Builder notificationConfig(@Nullable Output name() { } /** * (Optional, Deprecated) - * A nested object resource + * A nested object resource. * Structure is documented below. * * > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. @@ -505,7 +505,7 @@ public Output name() { /** * @return (Optional, Deprecated) - * A nested object resource + * A nested object resource. * Structure is documented below. * * > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/FhirStoreArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/FhirStoreArgs.java index 8f64081cff..07bfece965 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/FhirStoreArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/FhirStoreArgs.java @@ -249,7 +249,7 @@ public Optional> name() { /** * (Optional, Deprecated) - * A nested object resource + * A nested object resource. * Structure is documented below. * * > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. @@ -264,7 +264,7 @@ public Optional> name() { /** * @return (Optional, Deprecated) - * A nested object resource + * A nested object resource. * Structure is documented below. * * > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. @@ -666,7 +666,7 @@ public Builder name(String name) { /** * @param notificationConfig (Optional, Deprecated) - * A nested object resource + * A nested object resource. * Structure is documented below. * * > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. @@ -685,7 +685,7 @@ public Builder notificationConfig(@Nullable Output name() { } /** * (Optional, Deprecated) - * A nested object resource + * A nested object resource. * Structure is documented below. * * > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. @@ -384,7 +384,7 @@ public Output name() { /** * @return (Optional, Deprecated) - * A nested object resource + * A nested object resource. * Structure is documented below. * * > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. @@ -414,7 +414,7 @@ public Output>> notificationConfigs() return Codegen.optional(this.notificationConfigs); } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -422,7 +422,7 @@ public Output>> notificationConfigs() private Output parserConfig; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/Hl7StoreArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/Hl7StoreArgs.java index 0906952a1c..b5cd242b00 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/Hl7StoreArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/Hl7StoreArgs.java @@ -97,7 +97,7 @@ public Optional> name() { /** * (Optional, Deprecated) - * A nested object resource + * A nested object resource. * Structure is documented below. * * > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. @@ -112,7 +112,7 @@ public Optional> name() { /** * @return (Optional, Deprecated) - * A nested object resource + * A nested object resource. * Structure is documented below. * * > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. @@ -148,7 +148,7 @@ public Optional>> notificationConfi } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -156,7 +156,7 @@ public Optional>> notificationConfi private @Nullable Output parserConfig; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -302,7 +302,7 @@ public Builder name(String name) { /** * @param notificationConfig (Optional, Deprecated) - * A nested object resource + * A nested object resource. * Structure is documented below. * * > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. @@ -321,7 +321,7 @@ public Builder notificationConfig(@Nullable Output parserCon } /** - * @param parserConfig A nested object resource + * @param parserConfig A nested object resource. * Structure is documented below. * * @return builder diff --git a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/inputs/DatasetState.java b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/inputs/DatasetState.java index 20c5f0086e..aebe631358 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/inputs/DatasetState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/inputs/DatasetState.java @@ -17,7 +17,7 @@ public final class DatasetState extends com.pulumi.resources.ResourceArgs { public static final DatasetState Empty = new DatasetState(); /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -25,7 +25,7 @@ public final class DatasetState extends com.pulumi.resources.ResourceArgs { private @Nullable Output encryptionSpec; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -148,7 +148,7 @@ public Builder(DatasetState defaults) { } /** - * @param encryptionSpec A nested object resource + * @param encryptionSpec A nested object resource. * Structure is documented below. * * @return builder @@ -160,7 +160,7 @@ public Builder encryptionSpec(@Nullable Output encryp } /** - * @param encryptionSpec A nested object resource + * @param encryptionSpec A nested object resource. * Structure is documented below. * * @return builder diff --git a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/inputs/DicomStoreState.java b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/inputs/DicomStoreState.java index c256d43e63..05b6eee10d 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/inputs/DicomStoreState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/inputs/DicomStoreState.java @@ -108,7 +108,7 @@ public Optional> name() { } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -116,7 +116,7 @@ public Optional> name() { private @Nullable Output notificationConfig; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -319,7 +319,7 @@ public Builder name(String name) { } /** - * @param notificationConfig A nested object resource + * @param notificationConfig A nested object resource. * Structure is documented below. * * @return builder @@ -331,7 +331,7 @@ public Builder notificationConfig(@Nullable Output> name() { /** * (Optional, Deprecated) - * A nested object resource + * A nested object resource. * Structure is documented below. * * > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. @@ -278,7 +278,7 @@ public Optional> name() { /** * @return (Optional, Deprecated) - * A nested object resource + * A nested object resource. * Structure is documented below. * * > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. @@ -736,7 +736,7 @@ public Builder name(String name) { /** * @param notificationConfig (Optional, Deprecated) - * A nested object resource + * A nested object resource. * Structure is documented below. * * > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. @@ -755,7 +755,7 @@ public Builder notificationConfig(@Nullable Output> name() { /** * (Optional, Deprecated) - * A nested object resource + * A nested object resource. * Structure is documented below. * * > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. @@ -126,7 +126,7 @@ public Optional> name() { /** * @return (Optional, Deprecated) - * A nested object resource + * A nested object resource. * Structure is documented below. * * > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. @@ -162,7 +162,7 @@ public Optional>> notificationConfi } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -170,7 +170,7 @@ public Optional>> notificationConfi private @Nullable Output parserConfig; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -372,7 +372,7 @@ public Builder name(String name) { /** * @param notificationConfig (Optional, Deprecated) - * A nested object resource + * A nested object resource. * Structure is documented below. * * > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. @@ -391,7 +391,7 @@ public Builder notificationConfig(@Nullable Output parserCon } /** - * @param parserConfig A nested object resource + * @param parserConfig A nested object resource. * Structure is documented below. * * @return builder diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iam/PrincipalAccessBoundaryPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/iam/PrincipalAccessBoundaryPolicy.java new file mode 100644 index 0000000000..751b4a8d08 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/iam/PrincipalAccessBoundaryPolicy.java @@ -0,0 +1,315 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.iam; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.gcp.Utilities; +import com.pulumi.gcp.iam.PrincipalAccessBoundaryPolicyArgs; +import com.pulumi.gcp.iam.inputs.PrincipalAccessBoundaryPolicyState; +import com.pulumi.gcp.iam.outputs.PrincipalAccessBoundaryPolicyDetails; +import java.lang.String; +import java.util.Map; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * ## Example Usage + * + * ### Iam Principal Access Boundary Policy + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.gcp.iam.PrincipalAccessBoundaryPolicy;
+ * import com.pulumi.gcp.iam.PrincipalAccessBoundaryPolicyArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var my_pab_policy = new PrincipalAccessBoundaryPolicy("my-pab-policy", PrincipalAccessBoundaryPolicyArgs.builder()
+ *             .organization("123456789")
+ *             .location("global")
+ *             .displayName("test pab policy")
+ *             .principalAccessBoundaryPolicyId("test-pab-policy")
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * PrincipalAccessBoundaryPolicy can be imported using any of these accepted formats: + * + * * `organizations/{{organization}}/locations/{{location}}/principalAccessBoundaryPolicies/{{principal_access_boundary_policy_id}}` + * + * * `{{organization}}/{{location}}/{{principal_access_boundary_policy_id}}` + * + * When using the `pulumi import` command, PrincipalAccessBoundaryPolicy can be imported using one of the formats above. For example: + * + * ```sh + * $ pulumi import gcp:iam/principalAccessBoundaryPolicy:PrincipalAccessBoundaryPolicy default organizations/{{organization}}/locations/{{location}}/principalAccessBoundaryPolicies/{{principal_access_boundary_policy_id}} + * ``` + * + * ```sh + * $ pulumi import gcp:iam/principalAccessBoundaryPolicy:PrincipalAccessBoundaryPolicy default {{organization}}/{{location}}/{{principal_access_boundary_policy_id}} + * ``` + * + */ +@ResourceType(type="gcp:iam/principalAccessBoundaryPolicy:PrincipalAccessBoundaryPolicy") +public class PrincipalAccessBoundaryPolicy extends com.pulumi.resources.CustomResource { + /** + * User defined annotations. See https://google.aip.dev/148#annotations + * for more details such as format and size limitations + * + * **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + * Please refer to the field `effective_annotations` for all of the annotations present on the resource. + * + */ + @Export(name="annotations", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> annotations; + + /** + * @return User defined annotations. See https://google.aip.dev/148#annotations + * for more details such as format and size limitations + * + * **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + * Please refer to the field `effective_annotations` for all of the annotations present on the resource. + * + */ + public Output>> annotations() { + return Codegen.optional(this.annotations); + } + /** + * Output only. The time when the principal access boundary policy was created. + * + */ + @Export(name="createTime", refs={String.class}, tree="[0]") + private Output createTime; + + /** + * @return Output only. The time when the principal access boundary policy was created. + * + */ + public Output createTime() { + return this.createTime; + } + /** + * Principal access boundary policy details + * Structure is documented below. + * + */ + @Export(name="details", refs={PrincipalAccessBoundaryPolicyDetails.class}, tree="[0]") + private Output details; + + /** + * @return Principal access boundary policy details + * Structure is documented below. + * + */ + public Output details() { + return this.details; + } + /** + * The description of the principal access boundary policy. Must be less than or equal to 63 characters. + * + */ + @Export(name="displayName", refs={String.class}, tree="[0]") + private Output displayName; + + /** + * @return The description of the principal access boundary policy. Must be less than or equal to 63 characters. + * + */ + public Output> displayName() { + return Codegen.optional(this.displayName); + } + @Export(name="effectiveAnnotations", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> effectiveAnnotations; + + public Output> effectiveAnnotations() { + return this.effectiveAnnotations; + } + /** + * The etag for the principal access boundary. If this is provided on update, it must match the server's etag. + * + */ + @Export(name="etag", refs={String.class}, tree="[0]") + private Output etag; + + /** + * @return The etag for the principal access boundary. If this is provided on update, it must match the server's etag. + * + */ + public Output etag() { + return this.etag; + } + /** + * The location the principal access boundary policy is in. + * + */ + @Export(name="location", refs={String.class}, tree="[0]") + private Output location; + + /** + * @return The location the principal access boundary policy is in. + * + */ + public Output location() { + return this.location; + } + /** + * Identifier. The resource name of the principal access boundary policy. The following format is supported: + * `organizations/{organization_id}/locations/{location}/principalAccessBoundaryPolicies/{policy_id}` + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return Identifier. The resource name of the principal access boundary policy. The following format is supported: + * `organizations/{organization_id}/locations/{location}/principalAccessBoundaryPolicies/{policy_id}` + * + */ + public Output name() { + return this.name; + } + /** + * The parent organization of the principal access boundary policy. + * + */ + @Export(name="organization", refs={String.class}, tree="[0]") + private Output organization; + + /** + * @return The parent organization of the principal access boundary policy. + * + */ + public Output organization() { + return this.organization; + } + /** + * The ID to use to create the principal access boundary policy. + * This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, hyphens, or dots. Pattern, /a-z{2,62}/. + * + * *** + * + */ + @Export(name="principalAccessBoundaryPolicyId", refs={String.class}, tree="[0]") + private Output principalAccessBoundaryPolicyId; + + /** + * @return The ID to use to create the principal access boundary policy. + * This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, hyphens, or dots. Pattern, /a-z{2,62}/. + * + * *** + * + */ + public Output principalAccessBoundaryPolicyId() { + return this.principalAccessBoundaryPolicyId; + } + /** + * Output only. The globally unique ID of the principal access boundary policy. + * + */ + @Export(name="uid", refs={String.class}, tree="[0]") + private Output uid; + + /** + * @return Output only. The globally unique ID of the principal access boundary policy. + * + */ + public Output uid() { + return this.uid; + } + /** + * Output only. The time when the principal access boundary policy was most recently updated. + * + */ + @Export(name="updateTime", refs={String.class}, tree="[0]") + private Output updateTime; + + /** + * @return Output only. The time when the principal access boundary policy was most recently updated. + * + */ + public Output updateTime() { + return this.updateTime; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public PrincipalAccessBoundaryPolicy(java.lang.String name) { + this(name, PrincipalAccessBoundaryPolicyArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public PrincipalAccessBoundaryPolicy(java.lang.String name, PrincipalAccessBoundaryPolicyArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public PrincipalAccessBoundaryPolicy(java.lang.String name, PrincipalAccessBoundaryPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:iam/principalAccessBoundaryPolicy:PrincipalAccessBoundaryPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private PrincipalAccessBoundaryPolicy(java.lang.String name, Output id, @Nullable PrincipalAccessBoundaryPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:iam/principalAccessBoundaryPolicy:PrincipalAccessBoundaryPolicy", name, state, makeResourceOptions(options, id), false); + } + + private static PrincipalAccessBoundaryPolicyArgs makeArgs(PrincipalAccessBoundaryPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? PrincipalAccessBoundaryPolicyArgs.Empty : args; + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static PrincipalAccessBoundaryPolicy get(java.lang.String name, Output id, @Nullable PrincipalAccessBoundaryPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new PrincipalAccessBoundaryPolicy(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iam/PrincipalAccessBoundaryPolicyArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/iam/PrincipalAccessBoundaryPolicyArgs.java new file mode 100644 index 0000000000..659a3b505d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/iam/PrincipalAccessBoundaryPolicyArgs.java @@ -0,0 +1,312 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.iam; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.gcp.iam.inputs.PrincipalAccessBoundaryPolicyDetailsArgs; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class PrincipalAccessBoundaryPolicyArgs extends com.pulumi.resources.ResourceArgs { + + public static final PrincipalAccessBoundaryPolicyArgs Empty = new PrincipalAccessBoundaryPolicyArgs(); + + /** + * User defined annotations. See https://google.aip.dev/148#annotations + * for more details such as format and size limitations + * + * **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + * Please refer to the field `effective_annotations` for all of the annotations present on the resource. + * + */ + @Import(name="annotations") + private @Nullable Output> annotations; + + /** + * @return User defined annotations. See https://google.aip.dev/148#annotations + * for more details such as format and size limitations + * + * **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + * Please refer to the field `effective_annotations` for all of the annotations present on the resource. + * + */ + public Optional>> annotations() { + return Optional.ofNullable(this.annotations); + } + + /** + * Principal access boundary policy details + * Structure is documented below. + * + */ + @Import(name="details") + private @Nullable Output details; + + /** + * @return Principal access boundary policy details + * Structure is documented below. + * + */ + public Optional> details() { + return Optional.ofNullable(this.details); + } + + /** + * The description of the principal access boundary policy. Must be less than or equal to 63 characters. + * + */ + @Import(name="displayName") + private @Nullable Output displayName; + + /** + * @return The description of the principal access boundary policy. Must be less than or equal to 63 characters. + * + */ + public Optional> displayName() { + return Optional.ofNullable(this.displayName); + } + + /** + * The location the principal access boundary policy is in. + * + */ + @Import(name="location", required=true) + private Output location; + + /** + * @return The location the principal access boundary policy is in. + * + */ + public Output location() { + return this.location; + } + + /** + * The parent organization of the principal access boundary policy. + * + */ + @Import(name="organization", required=true) + private Output organization; + + /** + * @return The parent organization of the principal access boundary policy. + * + */ + public Output organization() { + return this.organization; + } + + /** + * The ID to use to create the principal access boundary policy. + * This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, hyphens, or dots. Pattern, /a-z{2,62}/. + * + * *** + * + */ + @Import(name="principalAccessBoundaryPolicyId", required=true) + private Output principalAccessBoundaryPolicyId; + + /** + * @return The ID to use to create the principal access boundary policy. + * This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, hyphens, or dots. Pattern, /a-z{2,62}/. + * + * *** + * + */ + public Output principalAccessBoundaryPolicyId() { + return this.principalAccessBoundaryPolicyId; + } + + private PrincipalAccessBoundaryPolicyArgs() {} + + private PrincipalAccessBoundaryPolicyArgs(PrincipalAccessBoundaryPolicyArgs $) { + this.annotations = $.annotations; + this.details = $.details; + this.displayName = $.displayName; + this.location = $.location; + this.organization = $.organization; + this.principalAccessBoundaryPolicyId = $.principalAccessBoundaryPolicyId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(PrincipalAccessBoundaryPolicyArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private PrincipalAccessBoundaryPolicyArgs $; + + public Builder() { + $ = new PrincipalAccessBoundaryPolicyArgs(); + } + + public Builder(PrincipalAccessBoundaryPolicyArgs defaults) { + $ = new PrincipalAccessBoundaryPolicyArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param annotations User defined annotations. See https://google.aip.dev/148#annotations + * for more details such as format and size limitations + * + * **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + * Please refer to the field `effective_annotations` for all of the annotations present on the resource. + * + * @return builder + * + */ + public Builder annotations(@Nullable Output> annotations) { + $.annotations = annotations; + return this; + } + + /** + * @param annotations User defined annotations. See https://google.aip.dev/148#annotations + * for more details such as format and size limitations + * + * **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + * Please refer to the field `effective_annotations` for all of the annotations present on the resource. + * + * @return builder + * + */ + public Builder annotations(Map annotations) { + return annotations(Output.of(annotations)); + } + + /** + * @param details Principal access boundary policy details + * Structure is documented below. + * + * @return builder + * + */ + public Builder details(@Nullable Output details) { + $.details = details; + return this; + } + + /** + * @param details Principal access boundary policy details + * Structure is documented below. + * + * @return builder + * + */ + public Builder details(PrincipalAccessBoundaryPolicyDetailsArgs details) { + return details(Output.of(details)); + } + + /** + * @param displayName The description of the principal access boundary policy. Must be less than or equal to 63 characters. + * + * @return builder + * + */ + public Builder displayName(@Nullable Output displayName) { + $.displayName = displayName; + return this; + } + + /** + * @param displayName The description of the principal access boundary policy. Must be less than or equal to 63 characters. + * + * @return builder + * + */ + public Builder displayName(String displayName) { + return displayName(Output.of(displayName)); + } + + /** + * @param location The location the principal access boundary policy is in. + * + * @return builder + * + */ + public Builder location(Output location) { + $.location = location; + return this; + } + + /** + * @param location The location the principal access boundary policy is in. + * + * @return builder + * + */ + public Builder location(String location) { + return location(Output.of(location)); + } + + /** + * @param organization The parent organization of the principal access boundary policy. + * + * @return builder + * + */ + public Builder organization(Output organization) { + $.organization = organization; + return this; + } + + /** + * @param organization The parent organization of the principal access boundary policy. + * + * @return builder + * + */ + public Builder organization(String organization) { + return organization(Output.of(organization)); + } + + /** + * @param principalAccessBoundaryPolicyId The ID to use to create the principal access boundary policy. + * This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, hyphens, or dots. Pattern, /a-z{2,62}/. + * + * *** + * + * @return builder + * + */ + public Builder principalAccessBoundaryPolicyId(Output principalAccessBoundaryPolicyId) { + $.principalAccessBoundaryPolicyId = principalAccessBoundaryPolicyId; + return this; + } + + /** + * @param principalAccessBoundaryPolicyId The ID to use to create the principal access boundary policy. + * This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, hyphens, or dots. Pattern, /a-z{2,62}/. + * + * *** + * + * @return builder + * + */ + public Builder principalAccessBoundaryPolicyId(String principalAccessBoundaryPolicyId) { + return principalAccessBoundaryPolicyId(Output.of(principalAccessBoundaryPolicyId)); + } + + public PrincipalAccessBoundaryPolicyArgs build() { + if ($.location == null) { + throw new MissingRequiredPropertyException("PrincipalAccessBoundaryPolicyArgs", "location"); + } + if ($.organization == null) { + throw new MissingRequiredPropertyException("PrincipalAccessBoundaryPolicyArgs", "organization"); + } + if ($.principalAccessBoundaryPolicyId == null) { + throw new MissingRequiredPropertyException("PrincipalAccessBoundaryPolicyArgs", "principalAccessBoundaryPolicyId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iam/inputs/PrincipalAccessBoundaryPolicyDetailsArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/iam/inputs/PrincipalAccessBoundaryPolicyDetailsArgs.java new file mode 100644 index 0000000000..bee6924b36 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/iam/inputs/PrincipalAccessBoundaryPolicyDetailsArgs.java @@ -0,0 +1,153 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.iam.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.gcp.iam.inputs.PrincipalAccessBoundaryPolicyDetailsRuleArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class PrincipalAccessBoundaryPolicyDetailsArgs extends com.pulumi.resources.ResourceArgs { + + public static final PrincipalAccessBoundaryPolicyDetailsArgs Empty = new PrincipalAccessBoundaryPolicyDetailsArgs(); + + /** + * The version number that indicates which Google Cloud services + * are included in the enforcement (e.g. \"latest\", \"1\", ...). If empty, the + * PAB policy version will be set to the current latest version, and this version + * won't get updated when new versions are released. + * + */ + @Import(name="enforcementVersion") + private @Nullable Output enforcementVersion; + + /** + * @return The version number that indicates which Google Cloud services + * are included in the enforcement (e.g. \"latest\", \"1\", ...). If empty, the + * PAB policy version will be set to the current latest version, and this version + * won't get updated when new versions are released. + * + */ + public Optional> enforcementVersion() { + return Optional.ofNullable(this.enforcementVersion); + } + + /** + * A list of principal access boundary policy rules. The number of rules in a policy is limited to 500. + * Structure is documented below. + * + */ + @Import(name="rules", required=true) + private Output> rules; + + /** + * @return A list of principal access boundary policy rules. The number of rules in a policy is limited to 500. + * Structure is documented below. + * + */ + public Output> rules() { + return this.rules; + } + + private PrincipalAccessBoundaryPolicyDetailsArgs() {} + + private PrincipalAccessBoundaryPolicyDetailsArgs(PrincipalAccessBoundaryPolicyDetailsArgs $) { + this.enforcementVersion = $.enforcementVersion; + this.rules = $.rules; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(PrincipalAccessBoundaryPolicyDetailsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private PrincipalAccessBoundaryPolicyDetailsArgs $; + + public Builder() { + $ = new PrincipalAccessBoundaryPolicyDetailsArgs(); + } + + public Builder(PrincipalAccessBoundaryPolicyDetailsArgs defaults) { + $ = new PrincipalAccessBoundaryPolicyDetailsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param enforcementVersion The version number that indicates which Google Cloud services + * are included in the enforcement (e.g. \"latest\", \"1\", ...). If empty, the + * PAB policy version will be set to the current latest version, and this version + * won't get updated when new versions are released. + * + * @return builder + * + */ + public Builder enforcementVersion(@Nullable Output enforcementVersion) { + $.enforcementVersion = enforcementVersion; + return this; + } + + /** + * @param enforcementVersion The version number that indicates which Google Cloud services + * are included in the enforcement (e.g. \"latest\", \"1\", ...). If empty, the + * PAB policy version will be set to the current latest version, and this version + * won't get updated when new versions are released. + * + * @return builder + * + */ + public Builder enforcementVersion(String enforcementVersion) { + return enforcementVersion(Output.of(enforcementVersion)); + } + + /** + * @param rules A list of principal access boundary policy rules. The number of rules in a policy is limited to 500. + * Structure is documented below. + * + * @return builder + * + */ + public Builder rules(Output> rules) { + $.rules = rules; + return this; + } + + /** + * @param rules A list of principal access boundary policy rules. The number of rules in a policy is limited to 500. + * Structure is documented below. + * + * @return builder + * + */ + public Builder rules(List rules) { + return rules(Output.of(rules)); + } + + /** + * @param rules A list of principal access boundary policy rules. The number of rules in a policy is limited to 500. + * Structure is documented below. + * + * @return builder + * + */ + public Builder rules(PrincipalAccessBoundaryPolicyDetailsRuleArgs... rules) { + return rules(List.of(rules)); + } + + public PrincipalAccessBoundaryPolicyDetailsArgs build() { + if ($.rules == null) { + throw new MissingRequiredPropertyException("PrincipalAccessBoundaryPolicyDetailsArgs", "rules"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iam/inputs/PrincipalAccessBoundaryPolicyDetailsRuleArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/iam/inputs/PrincipalAccessBoundaryPolicyDetailsRuleArgs.java new file mode 100644 index 0000000000..3d5b46fcb2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/iam/inputs/PrincipalAccessBoundaryPolicyDetailsRuleArgs.java @@ -0,0 +1,214 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.iam.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class PrincipalAccessBoundaryPolicyDetailsRuleArgs extends com.pulumi.resources.ResourceArgs { + + public static final PrincipalAccessBoundaryPolicyDetailsRuleArgs Empty = new PrincipalAccessBoundaryPolicyDetailsRuleArgs(); + + /** + * The description of the principal access boundary policy rule. Must be less than or equal to 256 characters. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return The description of the principal access boundary policy rule. Must be less than or equal to 256 characters. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * The access relationship of principals to the resources in this rule. + * Possible values: ALLOW + * + */ + @Import(name="effect", required=true) + private Output effect; + + /** + * @return The access relationship of principals to the resources in this rule. + * Possible values: ALLOW + * + */ + public Output effect() { + return this.effect; + } + + /** + * A list of Cloud Resource Manager resources. The resource + * and all the descendants are included. The number of resources in a policy + * is limited to 500 across all rules. + * The following resource types are supported: + * * Organizations, such as `//cloudresourcemanager.googleapis.com/organizations/123`. + * * Folders, such as `//cloudresourcemanager.googleapis.com/folders/123`. + * * Projects, such as `//cloudresourcemanager.googleapis.com/projects/123` + * or `//cloudresourcemanager.googleapis.com/projects/my-project-id`. + * + */ + @Import(name="resources", required=true) + private Output> resources; + + /** + * @return A list of Cloud Resource Manager resources. The resource + * and all the descendants are included. The number of resources in a policy + * is limited to 500 across all rules. + * The following resource types are supported: + * * Organizations, such as `//cloudresourcemanager.googleapis.com/organizations/123`. + * * Folders, such as `//cloudresourcemanager.googleapis.com/folders/123`. + * * Projects, such as `//cloudresourcemanager.googleapis.com/projects/123` + * or `//cloudresourcemanager.googleapis.com/projects/my-project-id`. + * + */ + public Output> resources() { + return this.resources; + } + + private PrincipalAccessBoundaryPolicyDetailsRuleArgs() {} + + private PrincipalAccessBoundaryPolicyDetailsRuleArgs(PrincipalAccessBoundaryPolicyDetailsRuleArgs $) { + this.description = $.description; + this.effect = $.effect; + this.resources = $.resources; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(PrincipalAccessBoundaryPolicyDetailsRuleArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private PrincipalAccessBoundaryPolicyDetailsRuleArgs $; + + public Builder() { + $ = new PrincipalAccessBoundaryPolicyDetailsRuleArgs(); + } + + public Builder(PrincipalAccessBoundaryPolicyDetailsRuleArgs defaults) { + $ = new PrincipalAccessBoundaryPolicyDetailsRuleArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param description The description of the principal access boundary policy rule. Must be less than or equal to 256 characters. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description The description of the principal access boundary policy rule. Must be less than or equal to 256 characters. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param effect The access relationship of principals to the resources in this rule. + * Possible values: ALLOW + * + * @return builder + * + */ + public Builder effect(Output effect) { + $.effect = effect; + return this; + } + + /** + * @param effect The access relationship of principals to the resources in this rule. + * Possible values: ALLOW + * + * @return builder + * + */ + public Builder effect(String effect) { + return effect(Output.of(effect)); + } + + /** + * @param resources A list of Cloud Resource Manager resources. The resource + * and all the descendants are included. The number of resources in a policy + * is limited to 500 across all rules. + * The following resource types are supported: + * * Organizations, such as `//cloudresourcemanager.googleapis.com/organizations/123`. + * * Folders, such as `//cloudresourcemanager.googleapis.com/folders/123`. + * * Projects, such as `//cloudresourcemanager.googleapis.com/projects/123` + * or `//cloudresourcemanager.googleapis.com/projects/my-project-id`. + * + * @return builder + * + */ + public Builder resources(Output> resources) { + $.resources = resources; + return this; + } + + /** + * @param resources A list of Cloud Resource Manager resources. The resource + * and all the descendants are included. The number of resources in a policy + * is limited to 500 across all rules. + * The following resource types are supported: + * * Organizations, such as `//cloudresourcemanager.googleapis.com/organizations/123`. + * * Folders, such as `//cloudresourcemanager.googleapis.com/folders/123`. + * * Projects, such as `//cloudresourcemanager.googleapis.com/projects/123` + * or `//cloudresourcemanager.googleapis.com/projects/my-project-id`. + * + * @return builder + * + */ + public Builder resources(List resources) { + return resources(Output.of(resources)); + } + + /** + * @param resources A list of Cloud Resource Manager resources. The resource + * and all the descendants are included. The number of resources in a policy + * is limited to 500 across all rules. + * The following resource types are supported: + * * Organizations, such as `//cloudresourcemanager.googleapis.com/organizations/123`. + * * Folders, such as `//cloudresourcemanager.googleapis.com/folders/123`. + * * Projects, such as `//cloudresourcemanager.googleapis.com/projects/123` + * or `//cloudresourcemanager.googleapis.com/projects/my-project-id`. + * + * @return builder + * + */ + public Builder resources(String... resources) { + return resources(List.of(resources)); + } + + public PrincipalAccessBoundaryPolicyDetailsRuleArgs build() { + if ($.effect == null) { + throw new MissingRequiredPropertyException("PrincipalAccessBoundaryPolicyDetailsRuleArgs", "effect"); + } + if ($.resources == null) { + throw new MissingRequiredPropertyException("PrincipalAccessBoundaryPolicyDetailsRuleArgs", "resources"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iam/inputs/PrincipalAccessBoundaryPolicyState.java b/sdk/java/src/main/java/com/pulumi/gcp/iam/inputs/PrincipalAccessBoundaryPolicyState.java new file mode 100644 index 0000000000..f575d3bab4 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/iam/inputs/PrincipalAccessBoundaryPolicyState.java @@ -0,0 +1,508 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.iam.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.iam.inputs.PrincipalAccessBoundaryPolicyDetailsArgs; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class PrincipalAccessBoundaryPolicyState extends com.pulumi.resources.ResourceArgs { + + public static final PrincipalAccessBoundaryPolicyState Empty = new PrincipalAccessBoundaryPolicyState(); + + /** + * User defined annotations. See https://google.aip.dev/148#annotations + * for more details such as format and size limitations + * + * **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + * Please refer to the field `effective_annotations` for all of the annotations present on the resource. + * + */ + @Import(name="annotations") + private @Nullable Output> annotations; + + /** + * @return User defined annotations. See https://google.aip.dev/148#annotations + * for more details such as format and size limitations + * + * **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + * Please refer to the field `effective_annotations` for all of the annotations present on the resource. + * + */ + public Optional>> annotations() { + return Optional.ofNullable(this.annotations); + } + + /** + * Output only. The time when the principal access boundary policy was created. + * + */ + @Import(name="createTime") + private @Nullable Output createTime; + + /** + * @return Output only. The time when the principal access boundary policy was created. + * + */ + public Optional> createTime() { + return Optional.ofNullable(this.createTime); + } + + /** + * Principal access boundary policy details + * Structure is documented below. + * + */ + @Import(name="details") + private @Nullable Output details; + + /** + * @return Principal access boundary policy details + * Structure is documented below. + * + */ + public Optional> details() { + return Optional.ofNullable(this.details); + } + + /** + * The description of the principal access boundary policy. Must be less than or equal to 63 characters. + * + */ + @Import(name="displayName") + private @Nullable Output displayName; + + /** + * @return The description of the principal access boundary policy. Must be less than or equal to 63 characters. + * + */ + public Optional> displayName() { + return Optional.ofNullable(this.displayName); + } + + @Import(name="effectiveAnnotations") + private @Nullable Output> effectiveAnnotations; + + public Optional>> effectiveAnnotations() { + return Optional.ofNullable(this.effectiveAnnotations); + } + + /** + * The etag for the principal access boundary. If this is provided on update, it must match the server's etag. + * + */ + @Import(name="etag") + private @Nullable Output etag; + + /** + * @return The etag for the principal access boundary. If this is provided on update, it must match the server's etag. + * + */ + public Optional> etag() { + return Optional.ofNullable(this.etag); + } + + /** + * The location the principal access boundary policy is in. + * + */ + @Import(name="location") + private @Nullable Output location; + + /** + * @return The location the principal access boundary policy is in. + * + */ + public Optional> location() { + return Optional.ofNullable(this.location); + } + + /** + * Identifier. The resource name of the principal access boundary policy. The following format is supported: + * `organizations/{organization_id}/locations/{location}/principalAccessBoundaryPolicies/{policy_id}` + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Identifier. The resource name of the principal access boundary policy. The following format is supported: + * `organizations/{organization_id}/locations/{location}/principalAccessBoundaryPolicies/{policy_id}` + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The parent organization of the principal access boundary policy. + * + */ + @Import(name="organization") + private @Nullable Output organization; + + /** + * @return The parent organization of the principal access boundary policy. + * + */ + public Optional> organization() { + return Optional.ofNullable(this.organization); + } + + /** + * The ID to use to create the principal access boundary policy. + * This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, hyphens, or dots. Pattern, /a-z{2,62}/. + * + * *** + * + */ + @Import(name="principalAccessBoundaryPolicyId") + private @Nullable Output principalAccessBoundaryPolicyId; + + /** + * @return The ID to use to create the principal access boundary policy. + * This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, hyphens, or dots. Pattern, /a-z{2,62}/. + * + * *** + * + */ + public Optional> principalAccessBoundaryPolicyId() { + return Optional.ofNullable(this.principalAccessBoundaryPolicyId); + } + + /** + * Output only. The globally unique ID of the principal access boundary policy. + * + */ + @Import(name="uid") + private @Nullable Output uid; + + /** + * @return Output only. The globally unique ID of the principal access boundary policy. + * + */ + public Optional> uid() { + return Optional.ofNullable(this.uid); + } + + /** + * Output only. The time when the principal access boundary policy was most recently updated. + * + */ + @Import(name="updateTime") + private @Nullable Output updateTime; + + /** + * @return Output only. The time when the principal access boundary policy was most recently updated. + * + */ + public Optional> updateTime() { + return Optional.ofNullable(this.updateTime); + } + + private PrincipalAccessBoundaryPolicyState() {} + + private PrincipalAccessBoundaryPolicyState(PrincipalAccessBoundaryPolicyState $) { + this.annotations = $.annotations; + this.createTime = $.createTime; + this.details = $.details; + this.displayName = $.displayName; + this.effectiveAnnotations = $.effectiveAnnotations; + this.etag = $.etag; + this.location = $.location; + this.name = $.name; + this.organization = $.organization; + this.principalAccessBoundaryPolicyId = $.principalAccessBoundaryPolicyId; + this.uid = $.uid; + this.updateTime = $.updateTime; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(PrincipalAccessBoundaryPolicyState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private PrincipalAccessBoundaryPolicyState $; + + public Builder() { + $ = new PrincipalAccessBoundaryPolicyState(); + } + + public Builder(PrincipalAccessBoundaryPolicyState defaults) { + $ = new PrincipalAccessBoundaryPolicyState(Objects.requireNonNull(defaults)); + } + + /** + * @param annotations User defined annotations. See https://google.aip.dev/148#annotations + * for more details such as format and size limitations + * + * **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + * Please refer to the field `effective_annotations` for all of the annotations present on the resource. + * + * @return builder + * + */ + public Builder annotations(@Nullable Output> annotations) { + $.annotations = annotations; + return this; + } + + /** + * @param annotations User defined annotations. See https://google.aip.dev/148#annotations + * for more details such as format and size limitations + * + * **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + * Please refer to the field `effective_annotations` for all of the annotations present on the resource. + * + * @return builder + * + */ + public Builder annotations(Map annotations) { + return annotations(Output.of(annotations)); + } + + /** + * @param createTime Output only. The time when the principal access boundary policy was created. + * + * @return builder + * + */ + public Builder createTime(@Nullable Output createTime) { + $.createTime = createTime; + return this; + } + + /** + * @param createTime Output only. The time when the principal access boundary policy was created. + * + * @return builder + * + */ + public Builder createTime(String createTime) { + return createTime(Output.of(createTime)); + } + + /** + * @param details Principal access boundary policy details + * Structure is documented below. + * + * @return builder + * + */ + public Builder details(@Nullable Output details) { + $.details = details; + return this; + } + + /** + * @param details Principal access boundary policy details + * Structure is documented below. + * + * @return builder + * + */ + public Builder details(PrincipalAccessBoundaryPolicyDetailsArgs details) { + return details(Output.of(details)); + } + + /** + * @param displayName The description of the principal access boundary policy. Must be less than or equal to 63 characters. + * + * @return builder + * + */ + public Builder displayName(@Nullable Output displayName) { + $.displayName = displayName; + return this; + } + + /** + * @param displayName The description of the principal access boundary policy. Must be less than or equal to 63 characters. + * + * @return builder + * + */ + public Builder displayName(String displayName) { + return displayName(Output.of(displayName)); + } + + public Builder effectiveAnnotations(@Nullable Output> effectiveAnnotations) { + $.effectiveAnnotations = effectiveAnnotations; + return this; + } + + public Builder effectiveAnnotations(Map effectiveAnnotations) { + return effectiveAnnotations(Output.of(effectiveAnnotations)); + } + + /** + * @param etag The etag for the principal access boundary. If this is provided on update, it must match the server's etag. + * + * @return builder + * + */ + public Builder etag(@Nullable Output etag) { + $.etag = etag; + return this; + } + + /** + * @param etag The etag for the principal access boundary. If this is provided on update, it must match the server's etag. + * + * @return builder + * + */ + public Builder etag(String etag) { + return etag(Output.of(etag)); + } + + /** + * @param location The location the principal access boundary policy is in. + * + * @return builder + * + */ + public Builder location(@Nullable Output location) { + $.location = location; + return this; + } + + /** + * @param location The location the principal access boundary policy is in. + * + * @return builder + * + */ + public Builder location(String location) { + return location(Output.of(location)); + } + + /** + * @param name Identifier. The resource name of the principal access boundary policy. The following format is supported: + * `organizations/{organization_id}/locations/{location}/principalAccessBoundaryPolicies/{policy_id}` + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Identifier. The resource name of the principal access boundary policy. The following format is supported: + * `organizations/{organization_id}/locations/{location}/principalAccessBoundaryPolicies/{policy_id}` + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param organization The parent organization of the principal access boundary policy. + * + * @return builder + * + */ + public Builder organization(@Nullable Output organization) { + $.organization = organization; + return this; + } + + /** + * @param organization The parent organization of the principal access boundary policy. + * + * @return builder + * + */ + public Builder organization(String organization) { + return organization(Output.of(organization)); + } + + /** + * @param principalAccessBoundaryPolicyId The ID to use to create the principal access boundary policy. + * This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, hyphens, or dots. Pattern, /a-z{2,62}/. + * + * *** + * + * @return builder + * + */ + public Builder principalAccessBoundaryPolicyId(@Nullable Output principalAccessBoundaryPolicyId) { + $.principalAccessBoundaryPolicyId = principalAccessBoundaryPolicyId; + return this; + } + + /** + * @param principalAccessBoundaryPolicyId The ID to use to create the principal access boundary policy. + * This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, hyphens, or dots. Pattern, /a-z{2,62}/. + * + * *** + * + * @return builder + * + */ + public Builder principalAccessBoundaryPolicyId(String principalAccessBoundaryPolicyId) { + return principalAccessBoundaryPolicyId(Output.of(principalAccessBoundaryPolicyId)); + } + + /** + * @param uid Output only. The globally unique ID of the principal access boundary policy. + * + * @return builder + * + */ + public Builder uid(@Nullable Output uid) { + $.uid = uid; + return this; + } + + /** + * @param uid Output only. The globally unique ID of the principal access boundary policy. + * + * @return builder + * + */ + public Builder uid(String uid) { + return uid(Output.of(uid)); + } + + /** + * @param updateTime Output only. The time when the principal access boundary policy was most recently updated. + * + * @return builder + * + */ + public Builder updateTime(@Nullable Output updateTime) { + $.updateTime = updateTime; + return this; + } + + /** + * @param updateTime Output only. The time when the principal access boundary policy was most recently updated. + * + * @return builder + * + */ + public Builder updateTime(String updateTime) { + return updateTime(Output.of(updateTime)); + } + + public PrincipalAccessBoundaryPolicyState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iam/outputs/PrincipalAccessBoundaryPolicyDetails.java b/sdk/java/src/main/java/com/pulumi/gcp/iam/outputs/PrincipalAccessBoundaryPolicyDetails.java new file mode 100644 index 0000000000..5b428715c6 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/iam/outputs/PrincipalAccessBoundaryPolicyDetails.java @@ -0,0 +1,94 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.iam.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.gcp.iam.outputs.PrincipalAccessBoundaryPolicyDetailsRule; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class PrincipalAccessBoundaryPolicyDetails { + /** + * @return The version number that indicates which Google Cloud services + * are included in the enforcement (e.g. \"latest\", \"1\", ...). If empty, the + * PAB policy version will be set to the current latest version, and this version + * won't get updated when new versions are released. + * + */ + private @Nullable String enforcementVersion; + /** + * @return A list of principal access boundary policy rules. The number of rules in a policy is limited to 500. + * Structure is documented below. + * + */ + private List rules; + + private PrincipalAccessBoundaryPolicyDetails() {} + /** + * @return The version number that indicates which Google Cloud services + * are included in the enforcement (e.g. \"latest\", \"1\", ...). If empty, the + * PAB policy version will be set to the current latest version, and this version + * won't get updated when new versions are released. + * + */ + public Optional enforcementVersion() { + return Optional.ofNullable(this.enforcementVersion); + } + /** + * @return A list of principal access boundary policy rules. The number of rules in a policy is limited to 500. + * Structure is documented below. + * + */ + public List rules() { + return this.rules; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(PrincipalAccessBoundaryPolicyDetails defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String enforcementVersion; + private List rules; + public Builder() {} + public Builder(PrincipalAccessBoundaryPolicyDetails defaults) { + Objects.requireNonNull(defaults); + this.enforcementVersion = defaults.enforcementVersion; + this.rules = defaults.rules; + } + + @CustomType.Setter + public Builder enforcementVersion(@Nullable String enforcementVersion) { + + this.enforcementVersion = enforcementVersion; + return this; + } + @CustomType.Setter + public Builder rules(List rules) { + if (rules == null) { + throw new MissingRequiredPropertyException("PrincipalAccessBoundaryPolicyDetails", "rules"); + } + this.rules = rules; + return this; + } + public Builder rules(PrincipalAccessBoundaryPolicyDetailsRule... rules) { + return rules(List.of(rules)); + } + public PrincipalAccessBoundaryPolicyDetails build() { + final var _resultValue = new PrincipalAccessBoundaryPolicyDetails(); + _resultValue.enforcementVersion = enforcementVersion; + _resultValue.rules = rules; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iam/outputs/PrincipalAccessBoundaryPolicyDetailsRule.java b/sdk/java/src/main/java/com/pulumi/gcp/iam/outputs/PrincipalAccessBoundaryPolicyDetailsRule.java new file mode 100644 index 0000000000..602990070d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/iam/outputs/PrincipalAccessBoundaryPolicyDetailsRule.java @@ -0,0 +1,124 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.iam.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class PrincipalAccessBoundaryPolicyDetailsRule { + /** + * @return The description of the principal access boundary policy rule. Must be less than or equal to 256 characters. + * + */ + private @Nullable String description; + /** + * @return The access relationship of principals to the resources in this rule. + * Possible values: ALLOW + * + */ + private String effect; + /** + * @return A list of Cloud Resource Manager resources. The resource + * and all the descendants are included. The number of resources in a policy + * is limited to 500 across all rules. + * The following resource types are supported: + * * Organizations, such as `//cloudresourcemanager.googleapis.com/organizations/123`. + * * Folders, such as `//cloudresourcemanager.googleapis.com/folders/123`. + * * Projects, such as `//cloudresourcemanager.googleapis.com/projects/123` + * or `//cloudresourcemanager.googleapis.com/projects/my-project-id`. + * + */ + private List resources; + + private PrincipalAccessBoundaryPolicyDetailsRule() {} + /** + * @return The description of the principal access boundary policy rule. Must be less than or equal to 256 characters. + * + */ + public Optional description() { + return Optional.ofNullable(this.description); + } + /** + * @return The access relationship of principals to the resources in this rule. + * Possible values: ALLOW + * + */ + public String effect() { + return this.effect; + } + /** + * @return A list of Cloud Resource Manager resources. The resource + * and all the descendants are included. The number of resources in a policy + * is limited to 500 across all rules. + * The following resource types are supported: + * * Organizations, such as `//cloudresourcemanager.googleapis.com/organizations/123`. + * * Folders, such as `//cloudresourcemanager.googleapis.com/folders/123`. + * * Projects, such as `//cloudresourcemanager.googleapis.com/projects/123` + * or `//cloudresourcemanager.googleapis.com/projects/my-project-id`. + * + */ + public List resources() { + return this.resources; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(PrincipalAccessBoundaryPolicyDetailsRule defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String description; + private String effect; + private List resources; + public Builder() {} + public Builder(PrincipalAccessBoundaryPolicyDetailsRule defaults) { + Objects.requireNonNull(defaults); + this.description = defaults.description; + this.effect = defaults.effect; + this.resources = defaults.resources; + } + + @CustomType.Setter + public Builder description(@Nullable String description) { + + this.description = description; + return this; + } + @CustomType.Setter + public Builder effect(String effect) { + if (effect == null) { + throw new MissingRequiredPropertyException("PrincipalAccessBoundaryPolicyDetailsRule", "effect"); + } + this.effect = effect; + return this; + } + @CustomType.Setter + public Builder resources(List resources) { + if (resources == null) { + throw new MissingRequiredPropertyException("PrincipalAccessBoundaryPolicyDetailsRule", "resources"); + } + this.resources = resources; + return this; + } + public Builder resources(String... resources) { + return resources(List.of(resources)); + } + public PrincipalAccessBoundaryPolicyDetailsRule build() { + final var _resultValue = new PrincipalAccessBoundaryPolicyDetailsRule(); + _resultValue.description = description; + _resultValue.effect = effect; + _resultValue.resources = resources; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/logging/Metric.java b/sdk/java/src/main/java/com/pulumi/gcp/logging/Metric.java index 53cd67bcbc..0ebef41682 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/logging/Metric.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/logging/Metric.java @@ -281,7 +281,7 @@ * When using the `pulumi import` command, Metric can be imported using one of the formats above. For example: * * ```sh - * $ pulumi import gcp:logging/metric:Metric default {{project}} {{name}} + * $ pulumi import gcp:logging/metric:Metric default "{{project}} {{name}}" * ``` * * ```sh diff --git a/sdk/java/src/main/java/com/pulumi/gcp/looker/Instance.java b/sdk/java/src/main/java/com/pulumi/gcp/looker/Instance.java index c779e52156..0a543bd04c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/looker/Instance.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/looker/Instance.java @@ -495,7 +495,6 @@ public class Instance extends com.pulumi.resources.CustomResource { /** * Looker instance Admin settings. - * Structure is documented below. * */ @Export(name="adminSettings", refs={InstanceAdminSettings.class}, tree="[0]") @@ -503,25 +502,22 @@ public class Instance extends com.pulumi.resources.CustomResource { /** * @return Looker instance Admin settings. - * Structure is documented below. * */ public Output> adminSettings() { return Codegen.optional(this.adminSettings); } /** - * Network name in the consumer project in the format of: projects/{project}/global/networks/{network} - * Note that the consumer network may be in a different GCP project than the consumer - * project that is hosting the Looker Instance. + * Network name in the consumer project in the format of: projects/{project}/global/networks/{network} Note that the + * consumer network may be in a different GCP project than the consumer project that is hosting the Looker Instance. * */ @Export(name="consumerNetwork", refs={String.class}, tree="[0]") private Output consumerNetwork; /** - * @return Network name in the consumer project in the format of: projects/{project}/global/networks/{network} - * Note that the consumer network may be in a different GCP project than the consumer - * project that is hosting the Looker Instance. + * @return Network name in the consumer project in the format of: projects/{project}/global/networks/{network} Note that the + * consumer network may be in a different GCP project than the consumer project that is hosting the Looker Instance. * */ public Output> consumerNetwork() { @@ -545,7 +541,6 @@ public Output createTime() { } /** * Custom domain settings for a Looker instance. - * Structure is documented below. * */ @Export(name="customDomain", refs={InstanceCustomDomain.class}, tree="[0]") @@ -553,16 +548,14 @@ public Output createTime() { /** * @return Custom domain settings for a Looker instance. - * Structure is documented below. * */ public Output> customDomain() { return Codegen.optional(this.customDomain); } /** - * Policy to determine if the cluster should be deleted forcefully. - * If setting deletion_policy = "FORCE", the Looker instance will be deleted regardless - * of its nested resources. If set to "DEFAULT", Looker instances that still have + * Policy to determine if the cluster should be deleted forcefully. If setting deletion_policy = "FORCE", the Looker + * instance will be deleted regardless of its nested resources. If set to "DEFAULT", Looker instances that still have * nested resources will return an error. Possible values: DEFAULT, FORCE * */ @@ -570,9 +563,8 @@ public Output> customDomain() { private Output deletionPolicy; /** - * @return Policy to determine if the cluster should be deleted forcefully. - * If setting deletion_policy = "FORCE", the Looker instance will be deleted regardless - * of its nested resources. If set to "DEFAULT", Looker instances that still have + * @return Policy to determine if the cluster should be deleted forcefully. If setting deletion_policy = "FORCE", the Looker + * instance will be deleted regardless of its nested resources. If set to "DEFAULT", Looker instances that still have * nested resources will return an error. Possible values: DEFAULT, FORCE * */ @@ -580,20 +572,16 @@ public Output> deletionPolicy() { return Codegen.optional(this.deletionPolicy); } /** - * Maintenance denial period for this instance. - * You must allow at least 14 days of maintenance availability - * between any two deny maintenance periods. - * Structure is documented below. + * Maintenance denial period for this instance. You must allow at least 14 days of maintenance availability between any two + * deny maintenance periods. * */ @Export(name="denyMaintenancePeriod", refs={InstanceDenyMaintenancePeriod.class}, tree="[0]") private Output denyMaintenancePeriod; /** - * @return Maintenance denial period for this instance. - * You must allow at least 14 days of maintenance availability - * between any two deny maintenance periods. - * Structure is documented below. + * @return Maintenance denial period for this instance. You must allow at least 14 days of maintenance availability between any two + * deny maintenance periods. * */ public Output> denyMaintenancePeriod() { @@ -615,7 +603,6 @@ public Output egressPublicIp() { } /** * Looker instance encryption settings. - * Structure is documented below. * */ @Export(name="encryptionConfig", refs={InstanceEncryptionConfig.class}, tree="[0]") @@ -623,7 +610,6 @@ public Output egressPublicIp() { /** * @return Looker instance encryption settings. - * Structure is documented below. * */ public Output encryptionConfig() { @@ -700,22 +686,16 @@ public Output lookerVersion() { return this.lookerVersion; } /** - * Maintenance window for an instance. - * Maintenance of your instance takes place once a month, and will require - * your instance to be restarted during updates, which will temporarily - * disrupt service. - * Structure is documented below. + * Maintenance window for an instance. Maintenance of your instance takes place once a month, and will require your + * instance to be restarted during updates, which will temporarily disrupt service. * */ @Export(name="maintenanceWindow", refs={InstanceMaintenanceWindow.class}, tree="[0]") private Output maintenanceWindow; /** - * @return Maintenance window for an instance. - * Maintenance of your instance takes place once a month, and will require - * your instance to be restarted during updates, which will temporarily - * disrupt service. - * Structure is documented below. + * @return Maintenance window for an instance. Maintenance of your instance takes place once a month, and will require your + * instance to be restarted during updates, which will temporarily disrupt service. * */ public Output> maintenanceWindow() { @@ -724,8 +704,6 @@ public Output> maintenanceWindow() { /** * The ID of the instance or a fully qualified identifier for the instance. * - * *** - * */ @Export(name="name", refs={String.class}, tree="[0]") private Output name; @@ -733,8 +711,6 @@ public Output> maintenanceWindow() { /** * @return The ID of the instance or a fully qualified identifier for the instance. * - * *** - * */ public Output name() { return this.name; @@ -745,39 +721,35 @@ public Output name() { * */ @Export(name="oauthConfig", refs={InstanceOauthConfig.class}, tree="[0]") - private Output oauthConfig; + private Output oauthConfig; /** * @return Looker Instance OAuth login settings. * Structure is documented below. * */ - public Output> oauthConfig() { - return Codegen.optional(this.oauthConfig); + public Output oauthConfig() { + return this.oauthConfig; } /** - * Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values: - * - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - * - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable) - * - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - * - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - * - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance - * Default value is `LOOKER_CORE_TRIAL`. - * Possible values are: `LOOKER_CORE_TRIAL`, `LOOKER_CORE_STANDARD`, `LOOKER_CORE_STANDARD_ANNUAL`, `LOOKER_CORE_ENTERPRISE_ANNUAL`, `LOOKER_CORE_EMBED_ANNUAL`. + * Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of + * these values: - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - LOOKER_CORE_STANDARD: pay as you go standard + * instance (Currently Unavailable) - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - + * LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance + * Default value: "LOOKER_CORE_TRIAL" Possible values: ["LOOKER_CORE_TRIAL", "LOOKER_CORE_STANDARD", + * "LOOKER_CORE_STANDARD_ANNUAL", "LOOKER_CORE_ENTERPRISE_ANNUAL", "LOOKER_CORE_EMBED_ANNUAL"] * */ @Export(name="platformEdition", refs={String.class}, tree="[0]") private Output platformEdition; /** - * @return Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values: - * - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - * - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable) - * - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - * - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - * - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance - * Default value is `LOOKER_CORE_TRIAL`. - * Possible values are: `LOOKER_CORE_TRIAL`, `LOOKER_CORE_STANDARD`, `LOOKER_CORE_STANDARD_ANNUAL`, `LOOKER_CORE_ENTERPRISE_ANNUAL`, `LOOKER_CORE_EMBED_ANNUAL`. + * @return Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of + * these values: - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - LOOKER_CORE_STANDARD: pay as you go standard + * instance (Currently Unavailable) - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - + * LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance + * Default value: "LOOKER_CORE_TRIAL" Possible values: ["LOOKER_CORE_TRIAL", "LOOKER_CORE_STANDARD", + * "LOOKER_CORE_STANDARD_ANNUAL", "LOOKER_CORE_ENTERPRISE_ANNUAL", "LOOKER_CORE_EMBED_ANNUAL"] * */ public Output> platformEdition() { @@ -797,25 +769,14 @@ public Output> platformEdition() { public Output> privateIpEnabled() { return Codegen.optional(this.privateIpEnabled); } - /** - * The ID of the project in which the resource belongs. - * If it is not provided, the provider project is used. - * - */ @Export(name="project", refs={String.class}, tree="[0]") private Output project; - /** - * @return The ID of the project in which the resource belongs. - * If it is not provided, the provider project is used. - * - */ public Output project() { return this.project; } /** * Information for Private Service Connect (PSC) setup for a Looker instance. - * Structure is documented below. * */ @Export(name="pscConfig", refs={InstancePscConfig.class}, tree="[0]") @@ -823,7 +784,6 @@ public Output project() { /** * @return Information for Private Service Connect (PSC) setup for a Looker instance. - * Structure is documented below. * */ public Output> pscConfig() { @@ -872,16 +832,16 @@ public Output region() { return this.region; } /** - * Name of a reserved IP address range within the consumer network, to be used for - * private service access connection. User may or may not specify this in a request. + * Name of a reserved IP address range within the consumer network, to be used for private service access connection. User + * may or may not specify this in a request. * */ @Export(name="reservedRange", refs={String.class}, tree="[0]") private Output reservedRange; /** - * @return Name of a reserved IP address range within the consumer network, to be used for - * private service access connection. User may or may not specify this in a request. + * @return Name of a reserved IP address range within the consumer network, to be used for private service access connection. User + * may or may not specify this in a request. * */ public Output> reservedRange() { @@ -904,28 +864,22 @@ public Output updateTime() { return this.updateTime; } /** - * Metadata about users for a Looker instance. - * These settings are only available when platform edition LOOKER_CORE_STANDARD is set. - * There are ten Standard and two Developer users included in the cost of the product. - * You can allocate additional Standard, Viewer, and Developer users for this instance. - * It is an optional step and can be modified later. - * With the Standard edition of Looker (Google Cloud core), you can provision up to 50 - * total users, distributed across Viewer, Standard, and Developer. - * Structure is documented below. + * Metadata about users for a Looker instance. These settings are only available when platform edition LOOKER_CORE_STANDARD + * is set. There are ten Standard and two Developer users included in the cost of the product. You can allocate additional + * Standard, Viewer, and Developer users for this instance. It is an optional step and can be modified later. With the + * Standard edition of Looker (Google Cloud core), you can provision up to 50 total users, distributed across Viewer, + * Standard, and Developer. * */ @Export(name="userMetadata", refs={InstanceUserMetadata.class}, tree="[0]") private Output userMetadata; /** - * @return Metadata about users for a Looker instance. - * These settings are only available when platform edition LOOKER_CORE_STANDARD is set. - * There are ten Standard and two Developer users included in the cost of the product. - * You can allocate additional Standard, Viewer, and Developer users for this instance. - * It is an optional step and can be modified later. - * With the Standard edition of Looker (Google Cloud core), you can provision up to 50 - * total users, distributed across Viewer, Standard, and Developer. - * Structure is documented below. + * @return Metadata about users for a Looker instance. These settings are only available when platform edition LOOKER_CORE_STANDARD + * is set. There are ten Standard and two Developer users included in the cost of the product. You can allocate additional + * Standard, Viewer, and Developer users for this instance. It is an optional step and can be modified later. With the + * Standard edition of Looker (Google Cloud core), you can provision up to 50 total users, distributed across Viewer, + * Standard, and Developer. * */ public Output> userMetadata() { @@ -944,7 +898,7 @@ public Instance(java.lang.String name) { * @param name The _unique_ name of the resulting resource. * @param args The arguments to use to populate this resource's properties. */ - public Instance(java.lang.String name, @Nullable InstanceArgs args) { + public Instance(java.lang.String name, InstanceArgs args) { this(name, args, null); } /** @@ -953,7 +907,7 @@ public Instance(java.lang.String name, @Nullable InstanceArgs args) { * @param args The arguments to use to populate this resource's properties. * @param options A bag of options that control this resource's behavior. */ - public Instance(java.lang.String name, @Nullable InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + public Instance(java.lang.String name, InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:looker/instance:Instance", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); } @@ -961,7 +915,7 @@ private Instance(java.lang.String name, Output id, @Nullable I super("gcp:looker/instance:Instance", name, state, makeResourceOptions(options, id), false); } - private static InstanceArgs makeArgs(@Nullable InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + private static InstanceArgs makeArgs(InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { if (options != null && options.getUrn().isPresent()) { return null; } diff --git a/sdk/java/src/main/java/com/pulumi/gcp/looker/InstanceArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/looker/InstanceArgs.java index 5659b4b45d..fccd363059 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/looker/InstanceArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/looker/InstanceArgs.java @@ -5,6 +5,7 @@ import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; import com.pulumi.gcp.looker.inputs.InstanceAdminSettingsArgs; import com.pulumi.gcp.looker.inputs.InstanceCustomDomainArgs; import com.pulumi.gcp.looker.inputs.InstanceDenyMaintenancePeriodArgs; @@ -26,7 +27,6 @@ public final class InstanceArgs extends com.pulumi.resources.ResourceArgs { /** * Looker instance Admin settings. - * Structure is documented below. * */ @Import(name="adminSettings") @@ -34,7 +34,6 @@ public final class InstanceArgs extends com.pulumi.resources.ResourceArgs { /** * @return Looker instance Admin settings. - * Structure is documented below. * */ public Optional> adminSettings() { @@ -42,18 +41,16 @@ public Optional> adminSettings() { } /** - * Network name in the consumer project in the format of: projects/{project}/global/networks/{network} - * Note that the consumer network may be in a different GCP project than the consumer - * project that is hosting the Looker Instance. + * Network name in the consumer project in the format of: projects/{project}/global/networks/{network} Note that the + * consumer network may be in a different GCP project than the consumer project that is hosting the Looker Instance. * */ @Import(name="consumerNetwork") private @Nullable Output consumerNetwork; /** - * @return Network name in the consumer project in the format of: projects/{project}/global/networks/{network} - * Note that the consumer network may be in a different GCP project than the consumer - * project that is hosting the Looker Instance. + * @return Network name in the consumer project in the format of: projects/{project}/global/networks/{network} Note that the + * consumer network may be in a different GCP project than the consumer project that is hosting the Looker Instance. * */ public Optional> consumerNetwork() { @@ -62,7 +59,6 @@ public Optional> consumerNetwork() { /** * Custom domain settings for a Looker instance. - * Structure is documented below. * */ @Import(name="customDomain") @@ -70,7 +66,6 @@ public Optional> consumerNetwork() { /** * @return Custom domain settings for a Looker instance. - * Structure is documented below. * */ public Optional> customDomain() { @@ -78,9 +73,8 @@ public Optional> customDomain() { } /** - * Policy to determine if the cluster should be deleted forcefully. - * If setting deletion_policy = "FORCE", the Looker instance will be deleted regardless - * of its nested resources. If set to "DEFAULT", Looker instances that still have + * Policy to determine if the cluster should be deleted forcefully. If setting deletion_policy = "FORCE", the Looker + * instance will be deleted regardless of its nested resources. If set to "DEFAULT", Looker instances that still have * nested resources will return an error. Possible values: DEFAULT, FORCE * */ @@ -88,9 +82,8 @@ public Optional> customDomain() { private @Nullable Output deletionPolicy; /** - * @return Policy to determine if the cluster should be deleted forcefully. - * If setting deletion_policy = "FORCE", the Looker instance will be deleted regardless - * of its nested resources. If set to "DEFAULT", Looker instances that still have + * @return Policy to determine if the cluster should be deleted forcefully. If setting deletion_policy = "FORCE", the Looker + * instance will be deleted regardless of its nested resources. If set to "DEFAULT", Looker instances that still have * nested resources will return an error. Possible values: DEFAULT, FORCE * */ @@ -99,20 +92,16 @@ public Optional> deletionPolicy() { } /** - * Maintenance denial period for this instance. - * You must allow at least 14 days of maintenance availability - * between any two deny maintenance periods. - * Structure is documented below. + * Maintenance denial period for this instance. You must allow at least 14 days of maintenance availability between any two + * deny maintenance periods. * */ @Import(name="denyMaintenancePeriod") private @Nullable Output denyMaintenancePeriod; /** - * @return Maintenance denial period for this instance. - * You must allow at least 14 days of maintenance availability - * between any two deny maintenance periods. - * Structure is documented below. + * @return Maintenance denial period for this instance. You must allow at least 14 days of maintenance availability between any two + * deny maintenance periods. * */ public Optional> denyMaintenancePeriod() { @@ -121,7 +110,6 @@ public Optional> denyMaintenancePeriod /** * Looker instance encryption settings. - * Structure is documented below. * */ @Import(name="encryptionConfig") @@ -129,7 +117,6 @@ public Optional> denyMaintenancePeriod /** * @return Looker instance encryption settings. - * Structure is documented below. * */ public Optional> encryptionConfig() { @@ -152,22 +139,16 @@ public Optional> fipsEnabled() { } /** - * Maintenance window for an instance. - * Maintenance of your instance takes place once a month, and will require - * your instance to be restarted during updates, which will temporarily - * disrupt service. - * Structure is documented below. + * Maintenance window for an instance. Maintenance of your instance takes place once a month, and will require your + * instance to be restarted during updates, which will temporarily disrupt service. * */ @Import(name="maintenanceWindow") private @Nullable Output maintenanceWindow; /** - * @return Maintenance window for an instance. - * Maintenance of your instance takes place once a month, and will require - * your instance to be restarted during updates, which will temporarily - * disrupt service. - * Structure is documented below. + * @return Maintenance window for an instance. Maintenance of your instance takes place once a month, and will require your + * instance to be restarted during updates, which will temporarily disrupt service. * */ public Optional> maintenanceWindow() { @@ -177,8 +158,6 @@ public Optional> maintenanceWindow() { /** * The ID of the instance or a fully qualified identifier for the instance. * - * *** - * */ @Import(name="name") private @Nullable Output name; @@ -186,8 +165,6 @@ public Optional> maintenanceWindow() { /** * @return The ID of the instance or a fully qualified identifier for the instance. * - * *** - * */ public Optional> name() { return Optional.ofNullable(this.name); @@ -198,41 +175,37 @@ public Optional> name() { * Structure is documented below. * */ - @Import(name="oauthConfig") - private @Nullable Output oauthConfig; + @Import(name="oauthConfig", required=true) + private Output oauthConfig; /** * @return Looker Instance OAuth login settings. * Structure is documented below. * */ - public Optional> oauthConfig() { - return Optional.ofNullable(this.oauthConfig); + public Output oauthConfig() { + return this.oauthConfig; } /** - * Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values: - * - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - * - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable) - * - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - * - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - * - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance - * Default value is `LOOKER_CORE_TRIAL`. - * Possible values are: `LOOKER_CORE_TRIAL`, `LOOKER_CORE_STANDARD`, `LOOKER_CORE_STANDARD_ANNUAL`, `LOOKER_CORE_ENTERPRISE_ANNUAL`, `LOOKER_CORE_EMBED_ANNUAL`. + * Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of + * these values: - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - LOOKER_CORE_STANDARD: pay as you go standard + * instance (Currently Unavailable) - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - + * LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance + * Default value: "LOOKER_CORE_TRIAL" Possible values: ["LOOKER_CORE_TRIAL", "LOOKER_CORE_STANDARD", + * "LOOKER_CORE_STANDARD_ANNUAL", "LOOKER_CORE_ENTERPRISE_ANNUAL", "LOOKER_CORE_EMBED_ANNUAL"] * */ @Import(name="platformEdition") private @Nullable Output platformEdition; /** - * @return Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values: - * - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - * - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable) - * - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - * - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - * - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance - * Default value is `LOOKER_CORE_TRIAL`. - * Possible values are: `LOOKER_CORE_TRIAL`, `LOOKER_CORE_STANDARD`, `LOOKER_CORE_STANDARD_ANNUAL`, `LOOKER_CORE_ENTERPRISE_ANNUAL`, `LOOKER_CORE_EMBED_ANNUAL`. + * @return Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of + * these values: - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - LOOKER_CORE_STANDARD: pay as you go standard + * instance (Currently Unavailable) - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - + * LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance + * Default value: "LOOKER_CORE_TRIAL" Possible values: ["LOOKER_CORE_TRIAL", "LOOKER_CORE_STANDARD", + * "LOOKER_CORE_STANDARD_ANNUAL", "LOOKER_CORE_ENTERPRISE_ANNUAL", "LOOKER_CORE_EMBED_ANNUAL"] * */ public Optional> platformEdition() { @@ -254,26 +227,15 @@ public Optional> privateIpEnabled() { return Optional.ofNullable(this.privateIpEnabled); } - /** - * The ID of the project in which the resource belongs. - * If it is not provided, the provider project is used. - * - */ @Import(name="project") private @Nullable Output project; - /** - * @return The ID of the project in which the resource belongs. - * If it is not provided, the provider project is used. - * - */ public Optional> project() { return Optional.ofNullable(this.project); } /** * Information for Private Service Connect (PSC) setup for a Looker instance. - * Structure is documented below. * */ @Import(name="pscConfig") @@ -281,7 +243,6 @@ public Optional> project() { /** * @return Information for Private Service Connect (PSC) setup for a Looker instance. - * Structure is documented below. * */ public Optional> pscConfig() { @@ -334,16 +295,16 @@ public Optional> region() { } /** - * Name of a reserved IP address range within the consumer network, to be used for - * private service access connection. User may or may not specify this in a request. + * Name of a reserved IP address range within the consumer network, to be used for private service access connection. User + * may or may not specify this in a request. * */ @Import(name="reservedRange") private @Nullable Output reservedRange; /** - * @return Name of a reserved IP address range within the consumer network, to be used for - * private service access connection. User may or may not specify this in a request. + * @return Name of a reserved IP address range within the consumer network, to be used for private service access connection. User + * may or may not specify this in a request. * */ public Optional> reservedRange() { @@ -351,28 +312,22 @@ public Optional> reservedRange() { } /** - * Metadata about users for a Looker instance. - * These settings are only available when platform edition LOOKER_CORE_STANDARD is set. - * There are ten Standard and two Developer users included in the cost of the product. - * You can allocate additional Standard, Viewer, and Developer users for this instance. - * It is an optional step and can be modified later. - * With the Standard edition of Looker (Google Cloud core), you can provision up to 50 - * total users, distributed across Viewer, Standard, and Developer. - * Structure is documented below. + * Metadata about users for a Looker instance. These settings are only available when platform edition LOOKER_CORE_STANDARD + * is set. There are ten Standard and two Developer users included in the cost of the product. You can allocate additional + * Standard, Viewer, and Developer users for this instance. It is an optional step and can be modified later. With the + * Standard edition of Looker (Google Cloud core), you can provision up to 50 total users, distributed across Viewer, + * Standard, and Developer. * */ @Import(name="userMetadata") private @Nullable Output userMetadata; /** - * @return Metadata about users for a Looker instance. - * These settings are only available when platform edition LOOKER_CORE_STANDARD is set. - * There are ten Standard and two Developer users included in the cost of the product. - * You can allocate additional Standard, Viewer, and Developer users for this instance. - * It is an optional step and can be modified later. - * With the Standard edition of Looker (Google Cloud core), you can provision up to 50 - * total users, distributed across Viewer, Standard, and Developer. - * Structure is documented below. + * @return Metadata about users for a Looker instance. These settings are only available when platform edition LOOKER_CORE_STANDARD + * is set. There are ten Standard and two Developer users included in the cost of the product. You can allocate additional + * Standard, Viewer, and Developer users for this instance. It is an optional step and can be modified later. With the + * Standard edition of Looker (Google Cloud core), you can provision up to 50 total users, distributed across Viewer, + * Standard, and Developer. * */ public Optional> userMetadata() { @@ -423,7 +378,6 @@ public Builder(InstanceArgs defaults) { /** * @param adminSettings Looker instance Admin settings. - * Structure is documented below. * * @return builder * @@ -435,7 +389,6 @@ public Builder adminSettings(@Nullable Output adminSe /** * @param adminSettings Looker instance Admin settings. - * Structure is documented below. * * @return builder * @@ -445,9 +398,8 @@ public Builder adminSettings(InstanceAdminSettingsArgs adminSettings) { } /** - * @param consumerNetwork Network name in the consumer project in the format of: projects/{project}/global/networks/{network} - * Note that the consumer network may be in a different GCP project than the consumer - * project that is hosting the Looker Instance. + * @param consumerNetwork Network name in the consumer project in the format of: projects/{project}/global/networks/{network} Note that the + * consumer network may be in a different GCP project than the consumer project that is hosting the Looker Instance. * * @return builder * @@ -458,9 +410,8 @@ public Builder consumerNetwork(@Nullable Output consumerNetwork) { } /** - * @param consumerNetwork Network name in the consumer project in the format of: projects/{project}/global/networks/{network} - * Note that the consumer network may be in a different GCP project than the consumer - * project that is hosting the Looker Instance. + * @param consumerNetwork Network name in the consumer project in the format of: projects/{project}/global/networks/{network} Note that the + * consumer network may be in a different GCP project than the consumer project that is hosting the Looker Instance. * * @return builder * @@ -471,7 +422,6 @@ public Builder consumerNetwork(String consumerNetwork) { /** * @param customDomain Custom domain settings for a Looker instance. - * Structure is documented below. * * @return builder * @@ -483,7 +433,6 @@ public Builder customDomain(@Nullable Output customDom /** * @param customDomain Custom domain settings for a Looker instance. - * Structure is documented below. * * @return builder * @@ -493,9 +442,8 @@ public Builder customDomain(InstanceCustomDomainArgs customDomain) { } /** - * @param deletionPolicy Policy to determine if the cluster should be deleted forcefully. - * If setting deletion_policy = "FORCE", the Looker instance will be deleted regardless - * of its nested resources. If set to "DEFAULT", Looker instances that still have + * @param deletionPolicy Policy to determine if the cluster should be deleted forcefully. If setting deletion_policy = "FORCE", the Looker + * instance will be deleted regardless of its nested resources. If set to "DEFAULT", Looker instances that still have * nested resources will return an error. Possible values: DEFAULT, FORCE * * @return builder @@ -507,9 +455,8 @@ public Builder deletionPolicy(@Nullable Output deletionPolicy) { } /** - * @param deletionPolicy Policy to determine if the cluster should be deleted forcefully. - * If setting deletion_policy = "FORCE", the Looker instance will be deleted regardless - * of its nested resources. If set to "DEFAULT", Looker instances that still have + * @param deletionPolicy Policy to determine if the cluster should be deleted forcefully. If setting deletion_policy = "FORCE", the Looker + * instance will be deleted regardless of its nested resources. If set to "DEFAULT", Looker instances that still have * nested resources will return an error. Possible values: DEFAULT, FORCE * * @return builder @@ -520,10 +467,8 @@ public Builder deletionPolicy(String deletionPolicy) { } /** - * @param denyMaintenancePeriod Maintenance denial period for this instance. - * You must allow at least 14 days of maintenance availability - * between any two deny maintenance periods. - * Structure is documented below. + * @param denyMaintenancePeriod Maintenance denial period for this instance. You must allow at least 14 days of maintenance availability between any two + * deny maintenance periods. * * @return builder * @@ -534,10 +479,8 @@ public Builder denyMaintenancePeriod(@Nullable Output e /** * @param encryptionConfig Looker instance encryption settings. - * Structure is documented below. * * @return builder * @@ -591,11 +532,8 @@ public Builder fipsEnabled(Boolean fipsEnabled) { } /** - * @param maintenanceWindow Maintenance window for an instance. - * Maintenance of your instance takes place once a month, and will require - * your instance to be restarted during updates, which will temporarily - * disrupt service. - * Structure is documented below. + * @param maintenanceWindow Maintenance window for an instance. Maintenance of your instance takes place once a month, and will require your + * instance to be restarted during updates, which will temporarily disrupt service. * * @return builder * @@ -606,11 +544,8 @@ public Builder maintenanceWindow(@Nullable Output } /** - * @param maintenanceWindow Maintenance window for an instance. - * Maintenance of your instance takes place once a month, and will require - * your instance to be restarted during updates, which will temporarily - * disrupt service. - * Structure is documented below. + * @param maintenanceWindow Maintenance window for an instance. Maintenance of your instance takes place once a month, and will require your + * instance to be restarted during updates, which will temporarily disrupt service. * * @return builder * @@ -622,8 +557,6 @@ public Builder maintenanceWindow(InstanceMaintenanceWindowArgs maintenanceWindow /** * @param name The ID of the instance or a fully qualified identifier for the instance. * - * *** - * * @return builder * */ @@ -635,8 +568,6 @@ public Builder name(@Nullable Output name) { /** * @param name The ID of the instance or a fully qualified identifier for the instance. * - * *** - * * @return builder * */ @@ -651,7 +582,7 @@ public Builder name(String name) { * @return builder * */ - public Builder oauthConfig(@Nullable Output oauthConfig) { + public Builder oauthConfig(Output oauthConfig) { $.oauthConfig = oauthConfig; return this; } @@ -668,14 +599,12 @@ public Builder oauthConfig(InstanceOauthConfigArgs oauthConfig) { } /** - * @param platformEdition Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values: - * - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - * - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable) - * - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - * - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - * - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance - * Default value is `LOOKER_CORE_TRIAL`. - * Possible values are: `LOOKER_CORE_TRIAL`, `LOOKER_CORE_STANDARD`, `LOOKER_CORE_STANDARD_ANNUAL`, `LOOKER_CORE_ENTERPRISE_ANNUAL`, `LOOKER_CORE_EMBED_ANNUAL`. + * @param platformEdition Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of + * these values: - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - LOOKER_CORE_STANDARD: pay as you go standard + * instance (Currently Unavailable) - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - + * LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance + * Default value: "LOOKER_CORE_TRIAL" Possible values: ["LOOKER_CORE_TRIAL", "LOOKER_CORE_STANDARD", + * "LOOKER_CORE_STANDARD_ANNUAL", "LOOKER_CORE_ENTERPRISE_ANNUAL", "LOOKER_CORE_EMBED_ANNUAL"] * * @return builder * @@ -686,14 +615,12 @@ public Builder platformEdition(@Nullable Output platformEdition) { } /** - * @param platformEdition Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values: - * - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - * - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable) - * - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - * - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - * - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance - * Default value is `LOOKER_CORE_TRIAL`. - * Possible values are: `LOOKER_CORE_TRIAL`, `LOOKER_CORE_STANDARD`, `LOOKER_CORE_STANDARD_ANNUAL`, `LOOKER_CORE_ENTERPRISE_ANNUAL`, `LOOKER_CORE_EMBED_ANNUAL`. + * @param platformEdition Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of + * these values: - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - LOOKER_CORE_STANDARD: pay as you go standard + * instance (Currently Unavailable) - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - + * LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance + * Default value: "LOOKER_CORE_TRIAL" Possible values: ["LOOKER_CORE_TRIAL", "LOOKER_CORE_STANDARD", + * "LOOKER_CORE_STANDARD_ANNUAL", "LOOKER_CORE_ENTERPRISE_ANNUAL", "LOOKER_CORE_EMBED_ANNUAL"] * * @return builder * @@ -723,32 +650,17 @@ public Builder privateIpEnabled(Boolean privateIpEnabled) { return privateIpEnabled(Output.of(privateIpEnabled)); } - /** - * @param project The ID of the project in which the resource belongs. - * If it is not provided, the provider project is used. - * - * @return builder - * - */ public Builder project(@Nullable Output project) { $.project = project; return this; } - /** - * @param project The ID of the project in which the resource belongs. - * If it is not provided, the provider project is used. - * - * @return builder - * - */ public Builder project(String project) { return project(Output.of(project)); } /** * @param pscConfig Information for Private Service Connect (PSC) setup for a Looker instance. - * Structure is documented below. * * @return builder * @@ -760,7 +672,6 @@ public Builder pscConfig(@Nullable Output pscConfig) { /** * @param pscConfig Information for Private Service Connect (PSC) setup for a Looker instance. - * Structure is documented below. * * @return builder * @@ -833,8 +744,8 @@ public Builder region(String region) { } /** - * @param reservedRange Name of a reserved IP address range within the consumer network, to be used for - * private service access connection. User may or may not specify this in a request. + * @param reservedRange Name of a reserved IP address range within the consumer network, to be used for private service access connection. User + * may or may not specify this in a request. * * @return builder * @@ -845,8 +756,8 @@ public Builder reservedRange(@Nullable Output reservedRange) { } /** - * @param reservedRange Name of a reserved IP address range within the consumer network, to be used for - * private service access connection. User may or may not specify this in a request. + * @param reservedRange Name of a reserved IP address range within the consumer network, to be used for private service access connection. User + * may or may not specify this in a request. * * @return builder * @@ -856,14 +767,11 @@ public Builder reservedRange(String reservedRange) { } /** - * @param userMetadata Metadata about users for a Looker instance. - * These settings are only available when platform edition LOOKER_CORE_STANDARD is set. - * There are ten Standard and two Developer users included in the cost of the product. - * You can allocate additional Standard, Viewer, and Developer users for this instance. - * It is an optional step and can be modified later. - * With the Standard edition of Looker (Google Cloud core), you can provision up to 50 - * total users, distributed across Viewer, Standard, and Developer. - * Structure is documented below. + * @param userMetadata Metadata about users for a Looker instance. These settings are only available when platform edition LOOKER_CORE_STANDARD + * is set. There are ten Standard and two Developer users included in the cost of the product. You can allocate additional + * Standard, Viewer, and Developer users for this instance. It is an optional step and can be modified later. With the + * Standard edition of Looker (Google Cloud core), you can provision up to 50 total users, distributed across Viewer, + * Standard, and Developer. * * @return builder * @@ -874,14 +782,11 @@ public Builder userMetadata(@Nullable Output userMetad } /** - * @param userMetadata Metadata about users for a Looker instance. - * These settings are only available when platform edition LOOKER_CORE_STANDARD is set. - * There are ten Standard and two Developer users included in the cost of the product. - * You can allocate additional Standard, Viewer, and Developer users for this instance. - * It is an optional step and can be modified later. - * With the Standard edition of Looker (Google Cloud core), you can provision up to 50 - * total users, distributed across Viewer, Standard, and Developer. - * Structure is documented below. + * @param userMetadata Metadata about users for a Looker instance. These settings are only available when platform edition LOOKER_CORE_STANDARD + * is set. There are ten Standard and two Developer users included in the cost of the product. You can allocate additional + * Standard, Viewer, and Developer users for this instance. It is an optional step and can be modified later. With the + * Standard edition of Looker (Google Cloud core), you can provision up to 50 total users, distributed across Viewer, + * Standard, and Developer. * * @return builder * @@ -891,6 +796,9 @@ public Builder userMetadata(InstanceUserMetadataArgs userMetadata) { } public InstanceArgs build() { + if ($.oauthConfig == null) { + throw new MissingRequiredPropertyException("InstanceArgs", "oauthConfig"); + } return $; } } diff --git a/sdk/java/src/main/java/com/pulumi/gcp/looker/inputs/InstanceOauthConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/looker/inputs/InstanceOauthConfigArgs.java index 35bfb9ae77..4b55323da3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/looker/inputs/InstanceOauthConfigArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/looker/inputs/InstanceOauthConfigArgs.java @@ -32,6 +32,8 @@ public Output clientId() { /** * The client secret for the Oauth config. * + * *** + * */ @Import(name="clientSecret", required=true) private Output clientSecret; @@ -39,6 +41,8 @@ public Output clientId() { /** * @return The client secret for the Oauth config. * + * *** + * */ public Output clientSecret() { return this.clientSecret; @@ -93,6 +97,8 @@ public Builder clientId(String clientId) { /** * @param clientSecret The client secret for the Oauth config. * + * *** + * * @return builder * */ @@ -104,6 +110,8 @@ public Builder clientSecret(Output clientSecret) { /** * @param clientSecret The client secret for the Oauth config. * + * *** + * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/looker/inputs/InstanceState.java b/sdk/java/src/main/java/com/pulumi/gcp/looker/inputs/InstanceState.java index 9b468c2c37..1eeadc7317 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/looker/inputs/InstanceState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/looker/inputs/InstanceState.java @@ -26,7 +26,6 @@ public final class InstanceState extends com.pulumi.resources.ResourceArgs { /** * Looker instance Admin settings. - * Structure is documented below. * */ @Import(name="adminSettings") @@ -34,7 +33,6 @@ public final class InstanceState extends com.pulumi.resources.ResourceArgs { /** * @return Looker instance Admin settings. - * Structure is documented below. * */ public Optional> adminSettings() { @@ -42,18 +40,16 @@ public Optional> adminSettings() { } /** - * Network name in the consumer project in the format of: projects/{project}/global/networks/{network} - * Note that the consumer network may be in a different GCP project than the consumer - * project that is hosting the Looker Instance. + * Network name in the consumer project in the format of: projects/{project}/global/networks/{network} Note that the + * consumer network may be in a different GCP project than the consumer project that is hosting the Looker Instance. * */ @Import(name="consumerNetwork") private @Nullable Output consumerNetwork; /** - * @return Network name in the consumer project in the format of: projects/{project}/global/networks/{network} - * Note that the consumer network may be in a different GCP project than the consumer - * project that is hosting the Looker Instance. + * @return Network name in the consumer project in the format of: projects/{project}/global/networks/{network} Note that the + * consumer network may be in a different GCP project than the consumer project that is hosting the Looker Instance. * */ public Optional> consumerNetwork() { @@ -79,7 +75,6 @@ public Optional> createTime() { /** * Custom domain settings for a Looker instance. - * Structure is documented below. * */ @Import(name="customDomain") @@ -87,7 +82,6 @@ public Optional> createTime() { /** * @return Custom domain settings for a Looker instance. - * Structure is documented below. * */ public Optional> customDomain() { @@ -95,9 +89,8 @@ public Optional> customDomain() { } /** - * Policy to determine if the cluster should be deleted forcefully. - * If setting deletion_policy = "FORCE", the Looker instance will be deleted regardless - * of its nested resources. If set to "DEFAULT", Looker instances that still have + * Policy to determine if the cluster should be deleted forcefully. If setting deletion_policy = "FORCE", the Looker + * instance will be deleted regardless of its nested resources. If set to "DEFAULT", Looker instances that still have * nested resources will return an error. Possible values: DEFAULT, FORCE * */ @@ -105,9 +98,8 @@ public Optional> customDomain() { private @Nullable Output deletionPolicy; /** - * @return Policy to determine if the cluster should be deleted forcefully. - * If setting deletion_policy = "FORCE", the Looker instance will be deleted regardless - * of its nested resources. If set to "DEFAULT", Looker instances that still have + * @return Policy to determine if the cluster should be deleted forcefully. If setting deletion_policy = "FORCE", the Looker + * instance will be deleted regardless of its nested resources. If set to "DEFAULT", Looker instances that still have * nested resources will return an error. Possible values: DEFAULT, FORCE * */ @@ -116,20 +108,16 @@ public Optional> deletionPolicy() { } /** - * Maintenance denial period for this instance. - * You must allow at least 14 days of maintenance availability - * between any two deny maintenance periods. - * Structure is documented below. + * Maintenance denial period for this instance. You must allow at least 14 days of maintenance availability between any two + * deny maintenance periods. * */ @Import(name="denyMaintenancePeriod") private @Nullable Output denyMaintenancePeriod; /** - * @return Maintenance denial period for this instance. - * You must allow at least 14 days of maintenance availability - * between any two deny maintenance periods. - * Structure is documented below. + * @return Maintenance denial period for this instance. You must allow at least 14 days of maintenance availability between any two + * deny maintenance periods. * */ public Optional> denyMaintenancePeriod() { @@ -153,7 +141,6 @@ public Optional> egressPublicIp() { /** * Looker instance encryption settings. - * Structure is documented below. * */ @Import(name="encryptionConfig") @@ -161,7 +148,6 @@ public Optional> egressPublicIp() { /** * @return Looker instance encryption settings. - * Structure is documented below. * */ public Optional> encryptionConfig() { @@ -244,22 +230,16 @@ public Optional> lookerVersion() { } /** - * Maintenance window for an instance. - * Maintenance of your instance takes place once a month, and will require - * your instance to be restarted during updates, which will temporarily - * disrupt service. - * Structure is documented below. + * Maintenance window for an instance. Maintenance of your instance takes place once a month, and will require your + * instance to be restarted during updates, which will temporarily disrupt service. * */ @Import(name="maintenanceWindow") private @Nullable Output maintenanceWindow; /** - * @return Maintenance window for an instance. - * Maintenance of your instance takes place once a month, and will require - * your instance to be restarted during updates, which will temporarily - * disrupt service. - * Structure is documented below. + * @return Maintenance window for an instance. Maintenance of your instance takes place once a month, and will require your + * instance to be restarted during updates, which will temporarily disrupt service. * */ public Optional> maintenanceWindow() { @@ -269,8 +249,6 @@ public Optional> maintenanceWindow() { /** * The ID of the instance or a fully qualified identifier for the instance. * - * *** - * */ @Import(name="name") private @Nullable Output name; @@ -278,8 +256,6 @@ public Optional> maintenanceWindow() { /** * @return The ID of the instance or a fully qualified identifier for the instance. * - * *** - * */ public Optional> name() { return Optional.ofNullable(this.name); @@ -303,28 +279,24 @@ public Optional> oauthConfig() { } /** - * Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values: - * - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - * - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable) - * - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - * - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - * - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance - * Default value is `LOOKER_CORE_TRIAL`. - * Possible values are: `LOOKER_CORE_TRIAL`, `LOOKER_CORE_STANDARD`, `LOOKER_CORE_STANDARD_ANNUAL`, `LOOKER_CORE_ENTERPRISE_ANNUAL`, `LOOKER_CORE_EMBED_ANNUAL`. + * Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of + * these values: - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - LOOKER_CORE_STANDARD: pay as you go standard + * instance (Currently Unavailable) - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - + * LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance + * Default value: "LOOKER_CORE_TRIAL" Possible values: ["LOOKER_CORE_TRIAL", "LOOKER_CORE_STANDARD", + * "LOOKER_CORE_STANDARD_ANNUAL", "LOOKER_CORE_ENTERPRISE_ANNUAL", "LOOKER_CORE_EMBED_ANNUAL"] * */ @Import(name="platformEdition") private @Nullable Output platformEdition; /** - * @return Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values: - * - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - * - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable) - * - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - * - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - * - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance - * Default value is `LOOKER_CORE_TRIAL`. - * Possible values are: `LOOKER_CORE_TRIAL`, `LOOKER_CORE_STANDARD`, `LOOKER_CORE_STANDARD_ANNUAL`, `LOOKER_CORE_ENTERPRISE_ANNUAL`, `LOOKER_CORE_EMBED_ANNUAL`. + * @return Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of + * these values: - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - LOOKER_CORE_STANDARD: pay as you go standard + * instance (Currently Unavailable) - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - + * LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance + * Default value: "LOOKER_CORE_TRIAL" Possible values: ["LOOKER_CORE_TRIAL", "LOOKER_CORE_STANDARD", + * "LOOKER_CORE_STANDARD_ANNUAL", "LOOKER_CORE_ENTERPRISE_ANNUAL", "LOOKER_CORE_EMBED_ANNUAL"] * */ public Optional> platformEdition() { @@ -346,26 +318,15 @@ public Optional> privateIpEnabled() { return Optional.ofNullable(this.privateIpEnabled); } - /** - * The ID of the project in which the resource belongs. - * If it is not provided, the provider project is used. - * - */ @Import(name="project") private @Nullable Output project; - /** - * @return The ID of the project in which the resource belongs. - * If it is not provided, the provider project is used. - * - */ public Optional> project() { return Optional.ofNullable(this.project); } /** * Information for Private Service Connect (PSC) setup for a Looker instance. - * Structure is documented below. * */ @Import(name="pscConfig") @@ -373,7 +334,6 @@ public Optional> project() { /** * @return Information for Private Service Connect (PSC) setup for a Looker instance. - * Structure is documented below. * */ public Optional> pscConfig() { @@ -426,16 +386,16 @@ public Optional> region() { } /** - * Name of a reserved IP address range within the consumer network, to be used for - * private service access connection. User may or may not specify this in a request. + * Name of a reserved IP address range within the consumer network, to be used for private service access connection. User + * may or may not specify this in a request. * */ @Import(name="reservedRange") private @Nullable Output reservedRange; /** - * @return Name of a reserved IP address range within the consumer network, to be used for - * private service access connection. User may or may not specify this in a request. + * @return Name of a reserved IP address range within the consumer network, to be used for private service access connection. User + * may or may not specify this in a request. * */ public Optional> reservedRange() { @@ -460,28 +420,22 @@ public Optional> updateTime() { } /** - * Metadata about users for a Looker instance. - * These settings are only available when platform edition LOOKER_CORE_STANDARD is set. - * There are ten Standard and two Developer users included in the cost of the product. - * You can allocate additional Standard, Viewer, and Developer users for this instance. - * It is an optional step and can be modified later. - * With the Standard edition of Looker (Google Cloud core), you can provision up to 50 - * total users, distributed across Viewer, Standard, and Developer. - * Structure is documented below. + * Metadata about users for a Looker instance. These settings are only available when platform edition LOOKER_CORE_STANDARD + * is set. There are ten Standard and two Developer users included in the cost of the product. You can allocate additional + * Standard, Viewer, and Developer users for this instance. It is an optional step and can be modified later. With the + * Standard edition of Looker (Google Cloud core), you can provision up to 50 total users, distributed across Viewer, + * Standard, and Developer. * */ @Import(name="userMetadata") private @Nullable Output userMetadata; /** - * @return Metadata about users for a Looker instance. - * These settings are only available when platform edition LOOKER_CORE_STANDARD is set. - * There are ten Standard and two Developer users included in the cost of the product. - * You can allocate additional Standard, Viewer, and Developer users for this instance. - * It is an optional step and can be modified later. - * With the Standard edition of Looker (Google Cloud core), you can provision up to 50 - * total users, distributed across Viewer, Standard, and Developer. - * Structure is documented below. + * @return Metadata about users for a Looker instance. These settings are only available when platform edition LOOKER_CORE_STANDARD + * is set. There are ten Standard and two Developer users included in the cost of the product. You can allocate additional + * Standard, Viewer, and Developer users for this instance. It is an optional step and can be modified later. With the + * Standard edition of Looker (Google Cloud core), you can provision up to 50 total users, distributed across Viewer, + * Standard, and Developer. * */ public Optional> userMetadata() { @@ -539,7 +493,6 @@ public Builder(InstanceState defaults) { /** * @param adminSettings Looker instance Admin settings. - * Structure is documented below. * * @return builder * @@ -551,7 +504,6 @@ public Builder adminSettings(@Nullable Output adminSe /** * @param adminSettings Looker instance Admin settings. - * Structure is documented below. * * @return builder * @@ -561,9 +513,8 @@ public Builder adminSettings(InstanceAdminSettingsArgs adminSettings) { } /** - * @param consumerNetwork Network name in the consumer project in the format of: projects/{project}/global/networks/{network} - * Note that the consumer network may be in a different GCP project than the consumer - * project that is hosting the Looker Instance. + * @param consumerNetwork Network name in the consumer project in the format of: projects/{project}/global/networks/{network} Note that the + * consumer network may be in a different GCP project than the consumer project that is hosting the Looker Instance. * * @return builder * @@ -574,9 +525,8 @@ public Builder consumerNetwork(@Nullable Output consumerNetwork) { } /** - * @param consumerNetwork Network name in the consumer project in the format of: projects/{project}/global/networks/{network} - * Note that the consumer network may be in a different GCP project than the consumer - * project that is hosting the Looker Instance. + * @param consumerNetwork Network name in the consumer project in the format of: projects/{project}/global/networks/{network} Note that the + * consumer network may be in a different GCP project than the consumer project that is hosting the Looker Instance. * * @return builder * @@ -610,7 +560,6 @@ public Builder createTime(String createTime) { /** * @param customDomain Custom domain settings for a Looker instance. - * Structure is documented below. * * @return builder * @@ -622,7 +571,6 @@ public Builder customDomain(@Nullable Output customDom /** * @param customDomain Custom domain settings for a Looker instance. - * Structure is documented below. * * @return builder * @@ -632,9 +580,8 @@ public Builder customDomain(InstanceCustomDomainArgs customDomain) { } /** - * @param deletionPolicy Policy to determine if the cluster should be deleted forcefully. - * If setting deletion_policy = "FORCE", the Looker instance will be deleted regardless - * of its nested resources. If set to "DEFAULT", Looker instances that still have + * @param deletionPolicy Policy to determine if the cluster should be deleted forcefully. If setting deletion_policy = "FORCE", the Looker + * instance will be deleted regardless of its nested resources. If set to "DEFAULT", Looker instances that still have * nested resources will return an error. Possible values: DEFAULT, FORCE * * @return builder @@ -646,9 +593,8 @@ public Builder deletionPolicy(@Nullable Output deletionPolicy) { } /** - * @param deletionPolicy Policy to determine if the cluster should be deleted forcefully. - * If setting deletion_policy = "FORCE", the Looker instance will be deleted regardless - * of its nested resources. If set to "DEFAULT", Looker instances that still have + * @param deletionPolicy Policy to determine if the cluster should be deleted forcefully. If setting deletion_policy = "FORCE", the Looker + * instance will be deleted regardless of its nested resources. If set to "DEFAULT", Looker instances that still have * nested resources will return an error. Possible values: DEFAULT, FORCE * * @return builder @@ -659,10 +605,8 @@ public Builder deletionPolicy(String deletionPolicy) { } /** - * @param denyMaintenancePeriod Maintenance denial period for this instance. - * You must allow at least 14 days of maintenance availability - * between any two deny maintenance periods. - * Structure is documented below. + * @param denyMaintenancePeriod Maintenance denial period for this instance. You must allow at least 14 days of maintenance availability between any two + * deny maintenance periods. * * @return builder * @@ -673,10 +617,8 @@ public Builder denyMaintenancePeriod(@Nullable Output e /** * @param encryptionConfig Looker instance encryption settings. - * Structure is documented below. * * @return builder * @@ -835,11 +775,8 @@ public Builder lookerVersion(String lookerVersion) { } /** - * @param maintenanceWindow Maintenance window for an instance. - * Maintenance of your instance takes place once a month, and will require - * your instance to be restarted during updates, which will temporarily - * disrupt service. - * Structure is documented below. + * @param maintenanceWindow Maintenance window for an instance. Maintenance of your instance takes place once a month, and will require your + * instance to be restarted during updates, which will temporarily disrupt service. * * @return builder * @@ -850,11 +787,8 @@ public Builder maintenanceWindow(@Nullable Output } /** - * @param maintenanceWindow Maintenance window for an instance. - * Maintenance of your instance takes place once a month, and will require - * your instance to be restarted during updates, which will temporarily - * disrupt service. - * Structure is documented below. + * @param maintenanceWindow Maintenance window for an instance. Maintenance of your instance takes place once a month, and will require your + * instance to be restarted during updates, which will temporarily disrupt service. * * @return builder * @@ -866,8 +800,6 @@ public Builder maintenanceWindow(InstanceMaintenanceWindowArgs maintenanceWindow /** * @param name The ID of the instance or a fully qualified identifier for the instance. * - * *** - * * @return builder * */ @@ -879,8 +811,6 @@ public Builder name(@Nullable Output name) { /** * @param name The ID of the instance or a fully qualified identifier for the instance. * - * *** - * * @return builder * */ @@ -912,14 +842,12 @@ public Builder oauthConfig(InstanceOauthConfigArgs oauthConfig) { } /** - * @param platformEdition Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values: - * - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - * - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable) - * - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - * - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - * - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance - * Default value is `LOOKER_CORE_TRIAL`. - * Possible values are: `LOOKER_CORE_TRIAL`, `LOOKER_CORE_STANDARD`, `LOOKER_CORE_STANDARD_ANNUAL`, `LOOKER_CORE_ENTERPRISE_ANNUAL`, `LOOKER_CORE_EMBED_ANNUAL`. + * @param platformEdition Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of + * these values: - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - LOOKER_CORE_STANDARD: pay as you go standard + * instance (Currently Unavailable) - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - + * LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance + * Default value: "LOOKER_CORE_TRIAL" Possible values: ["LOOKER_CORE_TRIAL", "LOOKER_CORE_STANDARD", + * "LOOKER_CORE_STANDARD_ANNUAL", "LOOKER_CORE_ENTERPRISE_ANNUAL", "LOOKER_CORE_EMBED_ANNUAL"] * * @return builder * @@ -930,14 +858,12 @@ public Builder platformEdition(@Nullable Output platformEdition) { } /** - * @param platformEdition Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values: - * - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - * - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable) - * - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - * - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - * - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance - * Default value is `LOOKER_CORE_TRIAL`. - * Possible values are: `LOOKER_CORE_TRIAL`, `LOOKER_CORE_STANDARD`, `LOOKER_CORE_STANDARD_ANNUAL`, `LOOKER_CORE_ENTERPRISE_ANNUAL`, `LOOKER_CORE_EMBED_ANNUAL`. + * @param platformEdition Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of + * these values: - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - LOOKER_CORE_STANDARD: pay as you go standard + * instance (Currently Unavailable) - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - + * LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance + * Default value: "LOOKER_CORE_TRIAL" Possible values: ["LOOKER_CORE_TRIAL", "LOOKER_CORE_STANDARD", + * "LOOKER_CORE_STANDARD_ANNUAL", "LOOKER_CORE_ENTERPRISE_ANNUAL", "LOOKER_CORE_EMBED_ANNUAL"] * * @return builder * @@ -967,32 +893,17 @@ public Builder privateIpEnabled(Boolean privateIpEnabled) { return privateIpEnabled(Output.of(privateIpEnabled)); } - /** - * @param project The ID of the project in which the resource belongs. - * If it is not provided, the provider project is used. - * - * @return builder - * - */ public Builder project(@Nullable Output project) { $.project = project; return this; } - /** - * @param project The ID of the project in which the resource belongs. - * If it is not provided, the provider project is used. - * - * @return builder - * - */ public Builder project(String project) { return project(Output.of(project)); } /** * @param pscConfig Information for Private Service Connect (PSC) setup for a Looker instance. - * Structure is documented below. * * @return builder * @@ -1004,7 +915,6 @@ public Builder pscConfig(@Nullable Output pscConfig) { /** * @param pscConfig Information for Private Service Connect (PSC) setup for a Looker instance. - * Structure is documented below. * * @return builder * @@ -1077,8 +987,8 @@ public Builder region(String region) { } /** - * @param reservedRange Name of a reserved IP address range within the consumer network, to be used for - * private service access connection. User may or may not specify this in a request. + * @param reservedRange Name of a reserved IP address range within the consumer network, to be used for private service access connection. User + * may or may not specify this in a request. * * @return builder * @@ -1089,8 +999,8 @@ public Builder reservedRange(@Nullable Output reservedRange) { } /** - * @param reservedRange Name of a reserved IP address range within the consumer network, to be used for - * private service access connection. User may or may not specify this in a request. + * @param reservedRange Name of a reserved IP address range within the consumer network, to be used for private service access connection. User + * may or may not specify this in a request. * * @return builder * @@ -1123,14 +1033,11 @@ public Builder updateTime(String updateTime) { } /** - * @param userMetadata Metadata about users for a Looker instance. - * These settings are only available when platform edition LOOKER_CORE_STANDARD is set. - * There are ten Standard and two Developer users included in the cost of the product. - * You can allocate additional Standard, Viewer, and Developer users for this instance. - * It is an optional step and can be modified later. - * With the Standard edition of Looker (Google Cloud core), you can provision up to 50 - * total users, distributed across Viewer, Standard, and Developer. - * Structure is documented below. + * @param userMetadata Metadata about users for a Looker instance. These settings are only available when platform edition LOOKER_CORE_STANDARD + * is set. There are ten Standard and two Developer users included in the cost of the product. You can allocate additional + * Standard, Viewer, and Developer users for this instance. It is an optional step and can be modified later. With the + * Standard edition of Looker (Google Cloud core), you can provision up to 50 total users, distributed across Viewer, + * Standard, and Developer. * * @return builder * @@ -1141,14 +1048,11 @@ public Builder userMetadata(@Nullable Output userMetad } /** - * @param userMetadata Metadata about users for a Looker instance. - * These settings are only available when platform edition LOOKER_CORE_STANDARD is set. - * There are ten Standard and two Developer users included in the cost of the product. - * You can allocate additional Standard, Viewer, and Developer users for this instance. - * It is an optional step and can be modified later. - * With the Standard edition of Looker (Google Cloud core), you can provision up to 50 - * total users, distributed across Viewer, Standard, and Developer. - * Structure is documented below. + * @param userMetadata Metadata about users for a Looker instance. These settings are only available when platform edition LOOKER_CORE_STANDARD + * is set. There are ten Standard and two Developer users included in the cost of the product. You can allocate additional + * Standard, Viewer, and Developer users for this instance. It is an optional step and can be modified later. With the + * Standard edition of Looker (Google Cloud core), you can provision up to 50 total users, distributed across Viewer, + * Standard, and Developer. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/looker/outputs/InstanceOauthConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/looker/outputs/InstanceOauthConfig.java index 3f82dc1e89..914ce3c4ea 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/looker/outputs/InstanceOauthConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/looker/outputs/InstanceOauthConfig.java @@ -18,6 +18,8 @@ public final class InstanceOauthConfig { /** * @return The client secret for the Oauth config. * + * *** + * */ private String clientSecret; @@ -32,6 +34,8 @@ public String clientId() { /** * @return The client secret for the Oauth config. * + * *** + * */ public String clientSecret() { return this.clientSecret; diff --git a/sdk/java/src/main/java/com/pulumi/gcp/memorystore/Instance.java b/sdk/java/src/main/java/com/pulumi/gcp/memorystore/Instance.java index 98a257adaf..37e6b5cbc6 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/memorystore/Instance.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/memorystore/Instance.java @@ -27,6 +27,8 @@ import javax.annotation.Nullable; /** + * A Google Cloud Memorystore instance. + * * ## Example Usage * * ### Memorystore Instance Basic diff --git a/sdk/java/src/main/java/com/pulumi/gcp/monitoring/AlertPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/monitoring/AlertPolicy.java index 60c6a808d2..99f8d29c7c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/monitoring/AlertPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/monitoring/AlertPolicy.java @@ -245,11 +245,23 @@ * * AlertPolicy can be imported using any of these accepted formats: * + * * `{{project}}/{{name}}` + * + * * `{{project}} {{name}}` + * * * `{{name}}` * * When using the `pulumi import` command, AlertPolicy can be imported using one of the formats above. For example: * * ```sh + * $ pulumi import gcp:monitoring/alertPolicy:AlertPolicy default {{project}}/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:monitoring/alertPolicy:AlertPolicy default "{{project}} {{name}}" + * ``` + * + * ```sh * $ pulumi import gcp:monitoring/alertPolicy:AlertPolicy default {{name}} * ``` * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/monitoring/CustomService.java b/sdk/java/src/main/java/com/pulumi/gcp/monitoring/CustomService.java index 031caac8d0..45f4bbf916 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/monitoring/CustomService.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/monitoring/CustomService.java @@ -80,11 +80,23 @@ * * Service can be imported using any of these accepted formats: * + * * `{{project}}/{{name}}` + * + * * `{{project}} {{name}}` + * * * `{{name}}` * * When using the `pulumi import` command, Service can be imported using one of the formats above. For example: * * ```sh + * $ pulumi import gcp:monitoring/customService:CustomService default {{project}}/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:monitoring/customService:CustomService default "{{project}} {{name}}" + * ``` + * + * ```sh * $ pulumi import gcp:monitoring/customService:CustomService default {{name}} * ``` * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/monitoring/Group.java b/sdk/java/src/main/java/com/pulumi/gcp/monitoring/Group.java index b5158cd420..4e346d9992 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/monitoring/Group.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/monitoring/Group.java @@ -110,11 +110,23 @@ * * Group can be imported using any of these accepted formats: * + * * `{{project}}/{{name}}` + * + * * `{{project}} {{name}}` + * * * `{{name}}` * * When using the `pulumi import` command, Group can be imported using one of the formats above. For example: * * ```sh + * $ pulumi import gcp:monitoring/group:Group default {{project}}/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:monitoring/group:Group default "{{project}} {{name}}" + * ``` + * + * ```sh * $ pulumi import gcp:monitoring/group:Group default {{name}} * ``` * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/monitoring/MetricDescriptor.java b/sdk/java/src/main/java/com/pulumi/gcp/monitoring/MetricDescriptor.java index 32cd4a6825..c80be54be4 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/monitoring/MetricDescriptor.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/monitoring/MetricDescriptor.java @@ -140,11 +140,23 @@ * * MetricDescriptor can be imported using any of these accepted formats: * + * * `{{project}}/{{name}}` + * + * * `{{project}} {{name}}` + * * * `{{name}}` * * When using the `pulumi import` command, MetricDescriptor can be imported using one of the formats above. For example: * * ```sh + * $ pulumi import gcp:monitoring/metricDescriptor:MetricDescriptor default {{project}}/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:monitoring/metricDescriptor:MetricDescriptor default "{{project}} {{name}}" + * ``` + * + * ```sh * $ pulumi import gcp:monitoring/metricDescriptor:MetricDescriptor default {{name}} * ``` * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/monitoring/Slo.java b/sdk/java/src/main/java/com/pulumi/gcp/monitoring/Slo.java index 578d3da94f..c5e2257ef4 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/monitoring/Slo.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/monitoring/Slo.java @@ -399,11 +399,23 @@ * * Slo can be imported using any of these accepted formats: * + * * `{{project}}/{{name}}` + * + * * `{{project}} {{name}}` + * * * `{{name}}` * * When using the `pulumi import` command, Slo can be imported using one of the formats above. For example: * * ```sh + * $ pulumi import gcp:monitoring/slo:Slo default {{project}}/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:monitoring/slo:Slo default "{{project}} {{name}}" + * ``` + * + * ```sh * $ pulumi import gcp:monitoring/slo:Slo default {{name}} * ``` * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/monitoring/UptimeCheckConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/monitoring/UptimeCheckConfig.java index d459a3f90e..51e68c3ff6 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/monitoring/UptimeCheckConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/monitoring/UptimeCheckConfig.java @@ -382,11 +382,23 @@ * * UptimeCheckConfig can be imported using any of these accepted formats: * + * * `{{project}}/{{name}}` + * + * * `{{project}} {{name}}` + * * * `{{name}}` * * When using the `pulumi import` command, UptimeCheckConfig can be imported using one of the formats above. For example: * * ```sh + * $ pulumi import gcp:monitoring/uptimeCheckConfig:UptimeCheckConfig default {{project}}/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:monitoring/uptimeCheckConfig:UptimeCheckConfig default "{{project}} {{name}}" + * ``` + * + * ```sh * $ pulumi import gcp:monitoring/uptimeCheckConfig:UptimeCheckConfig default {{name}} * ``` * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networkmanagement/VpcFlowLogsConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/networkmanagement/VpcFlowLogsConfig.java new file mode 100644 index 0000000000..cac9e4e9ce --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/networkmanagement/VpcFlowLogsConfig.java @@ -0,0 +1,761 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.networkmanagement; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.gcp.Utilities; +import com.pulumi.gcp.networkmanagement.VpcFlowLogsConfigArgs; +import com.pulumi.gcp.networkmanagement.inputs.VpcFlowLogsConfigState; +import java.lang.Double; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * ## Example Usage + * + * ### Network Management Vpc Flow Logs Config Interconnect Full + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.gcp.organizations.OrganizationsFunctions;
+ * import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
+ * import com.pulumi.gcp.compute.Network;
+ * import com.pulumi.gcp.compute.NetworkArgs;
+ * import com.pulumi.gcp.compute.Router;
+ * import com.pulumi.gcp.compute.RouterArgs;
+ * import com.pulumi.gcp.compute.inputs.RouterBgpArgs;
+ * import com.pulumi.gcp.compute.InterconnectAttachment;
+ * import com.pulumi.gcp.compute.InterconnectAttachmentArgs;
+ * import com.pulumi.gcp.networkmanagement.VpcFlowLogsConfig;
+ * import com.pulumi.gcp.networkmanagement.VpcFlowLogsConfigArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         final var project = OrganizationsFunctions.getProject();
+ * 
+ *         var network = new Network("network", NetworkArgs.builder()
+ *             .name("full-interconnect-test-network")
+ *             .build());
+ * 
+ *         var router = new Router("router", RouterArgs.builder()
+ *             .name("full-interconnect-test-router")
+ *             .network(network.name())
+ *             .bgp(RouterBgpArgs.builder()
+ *                 .asn(16550)
+ *                 .build())
+ *             .build());
+ * 
+ *         var attachment = new InterconnectAttachment("attachment", InterconnectAttachmentArgs.builder()
+ *             .name("full-interconnect-test-id")
+ *             .edgeAvailabilityDomain("AVAILABILITY_DOMAIN_1")
+ *             .type("PARTNER")
+ *             .router(router.id())
+ *             .mtu(1500)
+ *             .build());
+ * 
+ *         var interconnect_test = new VpcFlowLogsConfig("interconnect-test", VpcFlowLogsConfigArgs.builder()
+ *             .vpcFlowLogsConfigId("full-interconnect-test-id")
+ *             .location("global")
+ *             .interconnectAttachment(attachment.name().applyValue(name -> String.format("projects/%s/regions/us-east4/interconnectAttachments/%s", project.applyValue(getProjectResult -> getProjectResult.number()),name)))
+ *             .state("ENABLED")
+ *             .aggregationInterval("INTERVAL_5_SEC")
+ *             .description("VPC Flow Logs over a VPN Gateway.")
+ *             .flowSampling(0.5)
+ *             .metadata("INCLUDE_ALL_METADATA")
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * ### Network Management Vpc Flow Logs Config Interconnect Basic + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.gcp.organizations.OrganizationsFunctions;
+ * import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
+ * import com.pulumi.gcp.compute.Network;
+ * import com.pulumi.gcp.compute.NetworkArgs;
+ * import com.pulumi.gcp.compute.Router;
+ * import com.pulumi.gcp.compute.RouterArgs;
+ * import com.pulumi.gcp.compute.inputs.RouterBgpArgs;
+ * import com.pulumi.gcp.compute.InterconnectAttachment;
+ * import com.pulumi.gcp.compute.InterconnectAttachmentArgs;
+ * import com.pulumi.gcp.networkmanagement.VpcFlowLogsConfig;
+ * import com.pulumi.gcp.networkmanagement.VpcFlowLogsConfigArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         final var project = OrganizationsFunctions.getProject();
+ * 
+ *         var network = new Network("network", NetworkArgs.builder()
+ *             .name("basic-interconnect-test-network")
+ *             .build());
+ * 
+ *         var router = new Router("router", RouterArgs.builder()
+ *             .name("basic-interconnect-test-router")
+ *             .network(network.name())
+ *             .bgp(RouterBgpArgs.builder()
+ *                 .asn(16550)
+ *                 .build())
+ *             .build());
+ * 
+ *         var attachment = new InterconnectAttachment("attachment", InterconnectAttachmentArgs.builder()
+ *             .name("basic-interconnect-test-id")
+ *             .edgeAvailabilityDomain("AVAILABILITY_DOMAIN_1")
+ *             .type("PARTNER")
+ *             .router(router.id())
+ *             .mtu(1500)
+ *             .build());
+ * 
+ *         var interconnect_test = new VpcFlowLogsConfig("interconnect-test", VpcFlowLogsConfigArgs.builder()
+ *             .vpcFlowLogsConfigId("basic-interconnect-test-id")
+ *             .location("global")
+ *             .interconnectAttachment(attachment.name().applyValue(name -> String.format("projects/%s/regions/us-east4/interconnectAttachments/%s", project.applyValue(getProjectResult -> getProjectResult.number()),name)))
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * ### Network Management Vpc Flow Logs Config Vpn Basic + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.gcp.organizations.OrganizationsFunctions;
+ * import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
+ * import com.pulumi.gcp.compute.Network;
+ * import com.pulumi.gcp.compute.NetworkArgs;
+ * import com.pulumi.gcp.compute.VPNGateway;
+ * import com.pulumi.gcp.compute.VPNGatewayArgs;
+ * import com.pulumi.gcp.compute.Address;
+ * import com.pulumi.gcp.compute.AddressArgs;
+ * import com.pulumi.gcp.compute.ForwardingRule;
+ * import com.pulumi.gcp.compute.ForwardingRuleArgs;
+ * import com.pulumi.gcp.compute.VPNTunnel;
+ * import com.pulumi.gcp.compute.VPNTunnelArgs;
+ * import com.pulumi.gcp.networkmanagement.VpcFlowLogsConfig;
+ * import com.pulumi.gcp.networkmanagement.VpcFlowLogsConfigArgs;
+ * import com.pulumi.gcp.compute.Route;
+ * import com.pulumi.gcp.compute.RouteArgs;
+ * import com.pulumi.resources.CustomResourceOptions;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         final var project = OrganizationsFunctions.getProject();
+ * 
+ *         var network = new Network("network", NetworkArgs.builder()
+ *             .name("basic-test-network")
+ *             .build());
+ * 
+ *         var targetGateway = new VPNGateway("targetGateway", VPNGatewayArgs.builder()
+ *             .name("basic-test-gateway")
+ *             .network(network.id())
+ *             .build());
+ * 
+ *         var vpnStaticIp = new Address("vpnStaticIp", AddressArgs.builder()
+ *             .name("basic-test-address")
+ *             .build());
+ * 
+ *         var frEsp = new ForwardingRule("frEsp", ForwardingRuleArgs.builder()
+ *             .name("basic-test-fresp")
+ *             .ipProtocol("ESP")
+ *             .ipAddress(vpnStaticIp.address())
+ *             .target(targetGateway.id())
+ *             .build());
+ * 
+ *         var frUdp500 = new ForwardingRule("frUdp500", ForwardingRuleArgs.builder()
+ *             .name("basic-test-fr500")
+ *             .ipProtocol("UDP")
+ *             .portRange("500")
+ *             .ipAddress(vpnStaticIp.address())
+ *             .target(targetGateway.id())
+ *             .build());
+ * 
+ *         var frUdp4500 = new ForwardingRule("frUdp4500", ForwardingRuleArgs.builder()
+ *             .name("basic-test-fr4500")
+ *             .ipProtocol("UDP")
+ *             .portRange("4500")
+ *             .ipAddress(vpnStaticIp.address())
+ *             .target(targetGateway.id())
+ *             .build());
+ * 
+ *         var tunnel = new VPNTunnel("tunnel", VPNTunnelArgs.builder()
+ *             .name("basic-test-tunnel")
+ *             .peerIp("15.0.0.120")
+ *             .sharedSecret("a secret message")
+ *             .targetVpnGateway(targetGateway.id())
+ *             .build(), CustomResourceOptions.builder()
+ *                 .dependsOn(                
+ *                     frEsp,
+ *                     frUdp500,
+ *                     frUdp4500)
+ *                 .build());
+ * 
+ *         var vpn_test = new VpcFlowLogsConfig("vpn-test", VpcFlowLogsConfigArgs.builder()
+ *             .vpcFlowLogsConfigId("basic-test-id")
+ *             .location("global")
+ *             .vpnTunnel(tunnel.name().applyValue(name -> String.format("projects/%s/regions/us-central1/vpnTunnels/%s", project.applyValue(getProjectResult -> getProjectResult.number()),name)))
+ *             .build());
+ * 
+ *         var route = new Route("route", RouteArgs.builder()
+ *             .name("basic-test-route")
+ *             .network(network.name())
+ *             .destRange("15.0.0.0/24")
+ *             .priority(1000)
+ *             .nextHopVpnTunnel(tunnel.id())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * ### Network Management Vpc Flow Logs Config Vpn Full + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.gcp.organizations.OrganizationsFunctions;
+ * import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
+ * import com.pulumi.gcp.compute.Network;
+ * import com.pulumi.gcp.compute.NetworkArgs;
+ * import com.pulumi.gcp.compute.VPNGateway;
+ * import com.pulumi.gcp.compute.VPNGatewayArgs;
+ * import com.pulumi.gcp.compute.Address;
+ * import com.pulumi.gcp.compute.AddressArgs;
+ * import com.pulumi.gcp.compute.ForwardingRule;
+ * import com.pulumi.gcp.compute.ForwardingRuleArgs;
+ * import com.pulumi.gcp.compute.VPNTunnel;
+ * import com.pulumi.gcp.compute.VPNTunnelArgs;
+ * import com.pulumi.gcp.networkmanagement.VpcFlowLogsConfig;
+ * import com.pulumi.gcp.networkmanagement.VpcFlowLogsConfigArgs;
+ * import com.pulumi.gcp.compute.Route;
+ * import com.pulumi.gcp.compute.RouteArgs;
+ * import com.pulumi.resources.CustomResourceOptions;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         final var project = OrganizationsFunctions.getProject();
+ * 
+ *         var network = new Network("network", NetworkArgs.builder()
+ *             .name("full-test-network")
+ *             .build());
+ * 
+ *         var targetGateway = new VPNGateway("targetGateway", VPNGatewayArgs.builder()
+ *             .name("full-test-gateway")
+ *             .network(network.id())
+ *             .build());
+ * 
+ *         var vpnStaticIp = new Address("vpnStaticIp", AddressArgs.builder()
+ *             .name("full-test-address")
+ *             .build());
+ * 
+ *         var frEsp = new ForwardingRule("frEsp", ForwardingRuleArgs.builder()
+ *             .name("full-test-fresp")
+ *             .ipProtocol("ESP")
+ *             .ipAddress(vpnStaticIp.address())
+ *             .target(targetGateway.id())
+ *             .build());
+ * 
+ *         var frUdp500 = new ForwardingRule("frUdp500", ForwardingRuleArgs.builder()
+ *             .name("full-test-fr500")
+ *             .ipProtocol("UDP")
+ *             .portRange("500")
+ *             .ipAddress(vpnStaticIp.address())
+ *             .target(targetGateway.id())
+ *             .build());
+ * 
+ *         var frUdp4500 = new ForwardingRule("frUdp4500", ForwardingRuleArgs.builder()
+ *             .name("full-test-fr4500")
+ *             .ipProtocol("UDP")
+ *             .portRange("4500")
+ *             .ipAddress(vpnStaticIp.address())
+ *             .target(targetGateway.id())
+ *             .build());
+ * 
+ *         var tunnel = new VPNTunnel("tunnel", VPNTunnelArgs.builder()
+ *             .name("full-test-tunnel")
+ *             .peerIp("15.0.0.120")
+ *             .sharedSecret("a secret message")
+ *             .targetVpnGateway(targetGateway.id())
+ *             .build(), CustomResourceOptions.builder()
+ *                 .dependsOn(                
+ *                     frEsp,
+ *                     frUdp500,
+ *                     frUdp4500)
+ *                 .build());
+ * 
+ *         var vpn_test = new VpcFlowLogsConfig("vpn-test", VpcFlowLogsConfigArgs.builder()
+ *             .vpcFlowLogsConfigId("full-test-id")
+ *             .location("global")
+ *             .vpnTunnel(tunnel.name().applyValue(name -> String.format("projects/%s/regions/us-central1/vpnTunnels/%s", project.applyValue(getProjectResult -> getProjectResult.number()),name)))
+ *             .state("ENABLED")
+ *             .aggregationInterval("INTERVAL_5_SEC")
+ *             .description("VPC Flow Logs over a VPN Gateway.")
+ *             .flowSampling(0.5)
+ *             .metadata("INCLUDE_ALL_METADATA")
+ *             .build());
+ * 
+ *         var route = new Route("route", RouteArgs.builder()
+ *             .name("full-test-route")
+ *             .network(network.name())
+ *             .destRange("15.0.0.0/24")
+ *             .priority(1000)
+ *             .nextHopVpnTunnel(tunnel.id())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * VpcFlowLogsConfig can be imported using any of these accepted formats: + * + * * `projects/{{project}}/locations/{{location}}/vpcFlowLogsConfigs/{{vpc_flow_logs_config_id}}` + * + * * `{{project}}/{{location}}/{{vpc_flow_logs_config_id}}` + * + * * `{{location}}/{{vpc_flow_logs_config_id}}` + * + * When using the `pulumi import` command, VpcFlowLogsConfig can be imported using one of the formats above. For example: + * + * ```sh + * $ pulumi import gcp:networkmanagement/vpcFlowLogsConfig:VpcFlowLogsConfig default projects/{{project}}/locations/{{location}}/vpcFlowLogsConfigs/{{vpc_flow_logs_config_id}} + * ``` + * + * ```sh + * $ pulumi import gcp:networkmanagement/vpcFlowLogsConfig:VpcFlowLogsConfig default {{project}}/{{location}}/{{vpc_flow_logs_config_id}} + * ``` + * + * ```sh + * $ pulumi import gcp:networkmanagement/vpcFlowLogsConfig:VpcFlowLogsConfig default {{location}}/{{vpc_flow_logs_config_id}} + * ``` + * + */ +@ResourceType(type="gcp:networkmanagement/vpcFlowLogsConfig:VpcFlowLogsConfig") +public class VpcFlowLogsConfig extends com.pulumi.resources.CustomResource { + /** + * Optional. The aggregation interval for the logs. Default value is + * INTERVAL_5_SEC. Possible values: AGGREGATION_INTERVAL_UNSPECIFIED INTERVAL_5_SEC INTERVAL_30_SEC INTERVAL_1_MIN INTERVAL_5_MIN INTERVAL_10_MIN INTERVAL_15_MIN" + * + */ + @Export(name="aggregationInterval", refs={String.class}, tree="[0]") + private Output aggregationInterval; + + /** + * @return Optional. The aggregation interval for the logs. Default value is + * INTERVAL_5_SEC. Possible values: AGGREGATION_INTERVAL_UNSPECIFIED INTERVAL_5_SEC INTERVAL_30_SEC INTERVAL_1_MIN INTERVAL_5_MIN INTERVAL_10_MIN INTERVAL_15_MIN" + * + */ + public Output aggregationInterval() { + return this.aggregationInterval; + } + /** + * Output only. The time the config was created. + * + */ + @Export(name="createTime", refs={String.class}, tree="[0]") + private Output createTime; + + /** + * @return Output only. The time the config was created. + * + */ + public Output createTime() { + return this.createTime; + } + /** + * Optional. The user-supplied description of the VPC Flow Logs configuration. Maximum + * of 512 characters. + * + */ + @Export(name="description", refs={String.class}, tree="[0]") + private Output description; + + /** + * @return Optional. The user-supplied description of the VPC Flow Logs configuration. Maximum + * of 512 characters. + * + */ + public Output> description() { + return Codegen.optional(this.description); + } + /** + * All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + * + */ + @Export(name="effectiveLabels", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> effectiveLabels; + + /** + * @return All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + * + */ + public Output> effectiveLabels() { + return this.effectiveLabels; + } + /** + * Optional. Export filter used to define which VPC Flow Logs should be logged. + * + */ + @Export(name="filterExpr", refs={String.class}, tree="[0]") + private Output filterExpr; + + /** + * @return Optional. Export filter used to define which VPC Flow Logs should be logged. + * + */ + public Output> filterExpr() { + return Codegen.optional(this.filterExpr); + } + /** + * Optional. The value of the field must be in (0, 1]. The sampling rate + * of VPC Flow Logs where 1.0 means all collected logs are reported. Setting the + * sampling rate to 0.0 is not allowed. If you want to disable VPC Flow Logs, use + * the state field instead. Default value is 1.0. + * + */ + @Export(name="flowSampling", refs={Double.class}, tree="[0]") + private Output flowSampling; + + /** + * @return Optional. The value of the field must be in (0, 1]. The sampling rate + * of VPC Flow Logs where 1.0 means all collected logs are reported. Setting the + * sampling rate to 0.0 is not allowed. If you want to disable VPC Flow Logs, use + * the state field instead. Default value is 1.0. + * + */ + public Output flowSampling() { + return this.flowSampling; + } + /** + * Traffic will be logged from the Interconnect Attachment. Format: projects/{project_id}/regions/{region}/interconnectAttachments/{name} + * + */ + @Export(name="interconnectAttachment", refs={String.class}, tree="[0]") + private Output interconnectAttachment; + + /** + * @return Traffic will be logged from the Interconnect Attachment. Format: projects/{project_id}/regions/{region}/interconnectAttachments/{name} + * + */ + public Output> interconnectAttachment() { + return Codegen.optional(this.interconnectAttachment); + } + /** + * Optional. Resource labels to represent user-provided metadata. + * + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effective_labels` for all of the labels present on the resource. + * + */ + @Export(name="labels", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> labels; + + /** + * @return Optional. Resource labels to represent user-provided metadata. + * + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effective_labels` for all of the labels present on the resource. + * + */ + public Output>> labels() { + return Codegen.optional(this.labels); + } + /** + * Resource ID segment making up resource `name`. It identifies the resource + * within its parent collection as described in https://google.aip.dev/122. See documentation + * for resource type `networkmanagement.googleapis.com/VpcFlowLogsConfig`. + * + */ + @Export(name="location", refs={String.class}, tree="[0]") + private Output location; + + /** + * @return Resource ID segment making up resource `name`. It identifies the resource + * within its parent collection as described in https://google.aip.dev/122. See documentation + * for resource type `networkmanagement.googleapis.com/VpcFlowLogsConfig`. + * + */ + public Output location() { + return this.location; + } + /** + * Optional. Configures whether all, none or a subset of metadata fields + * should be added to the reported VPC flow logs. Default value is INCLUDE_ALL_METADATA. + * Possible values: METADATA_UNSPECIFIED INCLUDE_ALL_METADATA EXCLUDE_ALL_METADATA CUSTOM_METADATA + * + */ + @Export(name="metadata", refs={String.class}, tree="[0]") + private Output metadata; + + /** + * @return Optional. Configures whether all, none or a subset of metadata fields + * should be added to the reported VPC flow logs. Default value is INCLUDE_ALL_METADATA. + * Possible values: METADATA_UNSPECIFIED INCLUDE_ALL_METADATA EXCLUDE_ALL_METADATA CUSTOM_METADATA + * + */ + public Output metadata() { + return this.metadata; + } + /** + * Optional. Custom metadata fields to include in the reported VPC flow + * logs. Can only be specified if \"metadata\" was set to CUSTOM_METADATA. + * + */ + @Export(name="metadataFields", refs={List.class,String.class}, tree="[0,1]") + private Output> metadataFields; + + /** + * @return Optional. Custom metadata fields to include in the reported VPC flow + * logs. Can only be specified if \"metadata\" was set to CUSTOM_METADATA. + * + */ + public Output>> metadataFields() { + return Codegen.optional(this.metadataFields); + } + /** + * Identifier. Unique name of the configuration using the form: `projects/{project_id}/locations/global/vpcFlowLogsConfigs/{vpc_flow_logs_config_id}` + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return Identifier. Unique name of the configuration using the form: `projects/{project_id}/locations/global/vpcFlowLogsConfigs/{vpc_flow_logs_config_id}` + * + */ + public Output name() { + return this.name; + } + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + @Export(name="project", refs={String.class}, tree="[0]") + private Output project; + + /** + * @return The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + public Output project() { + return this.project; + } + /** + * The combination of labels configured directly on the resource + * and default labels configured on the provider. + * + */ + @Export(name="pulumiLabels", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> pulumiLabels; + + /** + * @return The combination of labels configured directly on the resource + * and default labels configured on the provider. + * + */ + public Output> pulumiLabels() { + return this.pulumiLabels; + } + /** + * Optional. The state of the VPC Flow Log configuration. Default value + * is ENABLED. When creating a new configuration, it must be enabled. Possible + * + */ + @Export(name="state", refs={String.class}, tree="[0]") + private Output state; + + /** + * @return Optional. The state of the VPC Flow Log configuration. Default value + * is ENABLED. When creating a new configuration, it must be enabled. Possible + * + */ + public Output state() { + return this.state; + } + /** + * Output only. The time the config was updated. + * + */ + @Export(name="updateTime", refs={String.class}, tree="[0]") + private Output updateTime; + + /** + * @return Output only. The time the config was updated. + * + */ + public Output updateTime() { + return this.updateTime; + } + /** + * Required. ID of the `VpcFlowLogsConfig`. + * + * *** + * + */ + @Export(name="vpcFlowLogsConfigId", refs={String.class}, tree="[0]") + private Output vpcFlowLogsConfigId; + + /** + * @return Required. ID of the `VpcFlowLogsConfig`. + * + * *** + * + */ + public Output vpcFlowLogsConfigId() { + return this.vpcFlowLogsConfigId; + } + /** + * Traffic will be logged from the VPN Tunnel. Format: projects/{project_id}/regions/{region}/vpnTunnels/{name} + * + */ + @Export(name="vpnTunnel", refs={String.class}, tree="[0]") + private Output vpnTunnel; + + /** + * @return Traffic will be logged from the VPN Tunnel. Format: projects/{project_id}/regions/{region}/vpnTunnels/{name} + * + */ + public Output> vpnTunnel() { + return Codegen.optional(this.vpnTunnel); + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public VpcFlowLogsConfig(java.lang.String name) { + this(name, VpcFlowLogsConfigArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public VpcFlowLogsConfig(java.lang.String name, VpcFlowLogsConfigArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public VpcFlowLogsConfig(java.lang.String name, VpcFlowLogsConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:networkmanagement/vpcFlowLogsConfig:VpcFlowLogsConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private VpcFlowLogsConfig(java.lang.String name, Output id, @Nullable VpcFlowLogsConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:networkmanagement/vpcFlowLogsConfig:VpcFlowLogsConfig", name, state, makeResourceOptions(options, id), false); + } + + private static VpcFlowLogsConfigArgs makeArgs(VpcFlowLogsConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? VpcFlowLogsConfigArgs.Empty : args; + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .additionalSecretOutputs(List.of( + "effectiveLabels", + "pulumiLabels" + )) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static VpcFlowLogsConfig get(java.lang.String name, Output id, @Nullable VpcFlowLogsConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new VpcFlowLogsConfig(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networkmanagement/VpcFlowLogsConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/networkmanagement/VpcFlowLogsConfigArgs.java new file mode 100644 index 0000000000..47a94675ea --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/networkmanagement/VpcFlowLogsConfigArgs.java @@ -0,0 +1,616 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.networkmanagement; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Double; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class VpcFlowLogsConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final VpcFlowLogsConfigArgs Empty = new VpcFlowLogsConfigArgs(); + + /** + * Optional. The aggregation interval for the logs. Default value is + * INTERVAL_5_SEC. Possible values: AGGREGATION_INTERVAL_UNSPECIFIED INTERVAL_5_SEC INTERVAL_30_SEC INTERVAL_1_MIN INTERVAL_5_MIN INTERVAL_10_MIN INTERVAL_15_MIN" + * + */ + @Import(name="aggregationInterval") + private @Nullable Output aggregationInterval; + + /** + * @return Optional. The aggregation interval for the logs. Default value is + * INTERVAL_5_SEC. Possible values: AGGREGATION_INTERVAL_UNSPECIFIED INTERVAL_5_SEC INTERVAL_30_SEC INTERVAL_1_MIN INTERVAL_5_MIN INTERVAL_10_MIN INTERVAL_15_MIN" + * + */ + public Optional> aggregationInterval() { + return Optional.ofNullable(this.aggregationInterval); + } + + /** + * Optional. The user-supplied description of the VPC Flow Logs configuration. Maximum + * of 512 characters. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return Optional. The user-supplied description of the VPC Flow Logs configuration. Maximum + * of 512 characters. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * Optional. Export filter used to define which VPC Flow Logs should be logged. + * + */ + @Import(name="filterExpr") + private @Nullable Output filterExpr; + + /** + * @return Optional. Export filter used to define which VPC Flow Logs should be logged. + * + */ + public Optional> filterExpr() { + return Optional.ofNullable(this.filterExpr); + } + + /** + * Optional. The value of the field must be in (0, 1]. The sampling rate + * of VPC Flow Logs where 1.0 means all collected logs are reported. Setting the + * sampling rate to 0.0 is not allowed. If you want to disable VPC Flow Logs, use + * the state field instead. Default value is 1.0. + * + */ + @Import(name="flowSampling") + private @Nullable Output flowSampling; + + /** + * @return Optional. The value of the field must be in (0, 1]. The sampling rate + * of VPC Flow Logs where 1.0 means all collected logs are reported. Setting the + * sampling rate to 0.0 is not allowed. If you want to disable VPC Flow Logs, use + * the state field instead. Default value is 1.0. + * + */ + public Optional> flowSampling() { + return Optional.ofNullable(this.flowSampling); + } + + /** + * Traffic will be logged from the Interconnect Attachment. Format: projects/{project_id}/regions/{region}/interconnectAttachments/{name} + * + */ + @Import(name="interconnectAttachment") + private @Nullable Output interconnectAttachment; + + /** + * @return Traffic will be logged from the Interconnect Attachment. Format: projects/{project_id}/regions/{region}/interconnectAttachments/{name} + * + */ + public Optional> interconnectAttachment() { + return Optional.ofNullable(this.interconnectAttachment); + } + + /** + * Optional. Resource labels to represent user-provided metadata. + * + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effective_labels` for all of the labels present on the resource. + * + */ + @Import(name="labels") + private @Nullable Output> labels; + + /** + * @return Optional. Resource labels to represent user-provided metadata. + * + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effective_labels` for all of the labels present on the resource. + * + */ + public Optional>> labels() { + return Optional.ofNullable(this.labels); + } + + /** + * Resource ID segment making up resource `name`. It identifies the resource + * within its parent collection as described in https://google.aip.dev/122. See documentation + * for resource type `networkmanagement.googleapis.com/VpcFlowLogsConfig`. + * + */ + @Import(name="location", required=true) + private Output location; + + /** + * @return Resource ID segment making up resource `name`. It identifies the resource + * within its parent collection as described in https://google.aip.dev/122. See documentation + * for resource type `networkmanagement.googleapis.com/VpcFlowLogsConfig`. + * + */ + public Output location() { + return this.location; + } + + /** + * Optional. Configures whether all, none or a subset of metadata fields + * should be added to the reported VPC flow logs. Default value is INCLUDE_ALL_METADATA. + * Possible values: METADATA_UNSPECIFIED INCLUDE_ALL_METADATA EXCLUDE_ALL_METADATA CUSTOM_METADATA + * + */ + @Import(name="metadata") + private @Nullable Output metadata; + + /** + * @return Optional. Configures whether all, none or a subset of metadata fields + * should be added to the reported VPC flow logs. Default value is INCLUDE_ALL_METADATA. + * Possible values: METADATA_UNSPECIFIED INCLUDE_ALL_METADATA EXCLUDE_ALL_METADATA CUSTOM_METADATA + * + */ + public Optional> metadata() { + return Optional.ofNullable(this.metadata); + } + + /** + * Optional. Custom metadata fields to include in the reported VPC flow + * logs. Can only be specified if \"metadata\" was set to CUSTOM_METADATA. + * + */ + @Import(name="metadataFields") + private @Nullable Output> metadataFields; + + /** + * @return Optional. Custom metadata fields to include in the reported VPC flow + * logs. Can only be specified if \"metadata\" was set to CUSTOM_METADATA. + * + */ + public Optional>> metadataFields() { + return Optional.ofNullable(this.metadataFields); + } + + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + @Import(name="project") + private @Nullable Output project; + + /** + * @return The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + public Optional> project() { + return Optional.ofNullable(this.project); + } + + /** + * Optional. The state of the VPC Flow Log configuration. Default value + * is ENABLED. When creating a new configuration, it must be enabled. Possible + * + */ + @Import(name="state") + private @Nullable Output state; + + /** + * @return Optional. The state of the VPC Flow Log configuration. Default value + * is ENABLED. When creating a new configuration, it must be enabled. Possible + * + */ + public Optional> state() { + return Optional.ofNullable(this.state); + } + + /** + * Required. ID of the `VpcFlowLogsConfig`. + * + * *** + * + */ + @Import(name="vpcFlowLogsConfigId", required=true) + private Output vpcFlowLogsConfigId; + + /** + * @return Required. ID of the `VpcFlowLogsConfig`. + * + * *** + * + */ + public Output vpcFlowLogsConfigId() { + return this.vpcFlowLogsConfigId; + } + + /** + * Traffic will be logged from the VPN Tunnel. Format: projects/{project_id}/regions/{region}/vpnTunnels/{name} + * + */ + @Import(name="vpnTunnel") + private @Nullable Output vpnTunnel; + + /** + * @return Traffic will be logged from the VPN Tunnel. Format: projects/{project_id}/regions/{region}/vpnTunnels/{name} + * + */ + public Optional> vpnTunnel() { + return Optional.ofNullable(this.vpnTunnel); + } + + private VpcFlowLogsConfigArgs() {} + + private VpcFlowLogsConfigArgs(VpcFlowLogsConfigArgs $) { + this.aggregationInterval = $.aggregationInterval; + this.description = $.description; + this.filterExpr = $.filterExpr; + this.flowSampling = $.flowSampling; + this.interconnectAttachment = $.interconnectAttachment; + this.labels = $.labels; + this.location = $.location; + this.metadata = $.metadata; + this.metadataFields = $.metadataFields; + this.project = $.project; + this.state = $.state; + this.vpcFlowLogsConfigId = $.vpcFlowLogsConfigId; + this.vpnTunnel = $.vpnTunnel; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(VpcFlowLogsConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private VpcFlowLogsConfigArgs $; + + public Builder() { + $ = new VpcFlowLogsConfigArgs(); + } + + public Builder(VpcFlowLogsConfigArgs defaults) { + $ = new VpcFlowLogsConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param aggregationInterval Optional. The aggregation interval for the logs. Default value is + * INTERVAL_5_SEC. Possible values: AGGREGATION_INTERVAL_UNSPECIFIED INTERVAL_5_SEC INTERVAL_30_SEC INTERVAL_1_MIN INTERVAL_5_MIN INTERVAL_10_MIN INTERVAL_15_MIN" + * + * @return builder + * + */ + public Builder aggregationInterval(@Nullable Output aggregationInterval) { + $.aggregationInterval = aggregationInterval; + return this; + } + + /** + * @param aggregationInterval Optional. The aggregation interval for the logs. Default value is + * INTERVAL_5_SEC. Possible values: AGGREGATION_INTERVAL_UNSPECIFIED INTERVAL_5_SEC INTERVAL_30_SEC INTERVAL_1_MIN INTERVAL_5_MIN INTERVAL_10_MIN INTERVAL_15_MIN" + * + * @return builder + * + */ + public Builder aggregationInterval(String aggregationInterval) { + return aggregationInterval(Output.of(aggregationInterval)); + } + + /** + * @param description Optional. The user-supplied description of the VPC Flow Logs configuration. Maximum + * of 512 characters. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description Optional. The user-supplied description of the VPC Flow Logs configuration. Maximum + * of 512 characters. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param filterExpr Optional. Export filter used to define which VPC Flow Logs should be logged. + * + * @return builder + * + */ + public Builder filterExpr(@Nullable Output filterExpr) { + $.filterExpr = filterExpr; + return this; + } + + /** + * @param filterExpr Optional. Export filter used to define which VPC Flow Logs should be logged. + * + * @return builder + * + */ + public Builder filterExpr(String filterExpr) { + return filterExpr(Output.of(filterExpr)); + } + + /** + * @param flowSampling Optional. The value of the field must be in (0, 1]. The sampling rate + * of VPC Flow Logs where 1.0 means all collected logs are reported. Setting the + * sampling rate to 0.0 is not allowed. If you want to disable VPC Flow Logs, use + * the state field instead. Default value is 1.0. + * + * @return builder + * + */ + public Builder flowSampling(@Nullable Output flowSampling) { + $.flowSampling = flowSampling; + return this; + } + + /** + * @param flowSampling Optional. The value of the field must be in (0, 1]. The sampling rate + * of VPC Flow Logs where 1.0 means all collected logs are reported. Setting the + * sampling rate to 0.0 is not allowed. If you want to disable VPC Flow Logs, use + * the state field instead. Default value is 1.0. + * + * @return builder + * + */ + public Builder flowSampling(Double flowSampling) { + return flowSampling(Output.of(flowSampling)); + } + + /** + * @param interconnectAttachment Traffic will be logged from the Interconnect Attachment. Format: projects/{project_id}/regions/{region}/interconnectAttachments/{name} + * + * @return builder + * + */ + public Builder interconnectAttachment(@Nullable Output interconnectAttachment) { + $.interconnectAttachment = interconnectAttachment; + return this; + } + + /** + * @param interconnectAttachment Traffic will be logged from the Interconnect Attachment. Format: projects/{project_id}/regions/{region}/interconnectAttachments/{name} + * + * @return builder + * + */ + public Builder interconnectAttachment(String interconnectAttachment) { + return interconnectAttachment(Output.of(interconnectAttachment)); + } + + /** + * @param labels Optional. Resource labels to represent user-provided metadata. + * + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effective_labels` for all of the labels present on the resource. + * + * @return builder + * + */ + public Builder labels(@Nullable Output> labels) { + $.labels = labels; + return this; + } + + /** + * @param labels Optional. Resource labels to represent user-provided metadata. + * + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effective_labels` for all of the labels present on the resource. + * + * @return builder + * + */ + public Builder labels(Map labels) { + return labels(Output.of(labels)); + } + + /** + * @param location Resource ID segment making up resource `name`. It identifies the resource + * within its parent collection as described in https://google.aip.dev/122. See documentation + * for resource type `networkmanagement.googleapis.com/VpcFlowLogsConfig`. + * + * @return builder + * + */ + public Builder location(Output location) { + $.location = location; + return this; + } + + /** + * @param location Resource ID segment making up resource `name`. It identifies the resource + * within its parent collection as described in https://google.aip.dev/122. See documentation + * for resource type `networkmanagement.googleapis.com/VpcFlowLogsConfig`. + * + * @return builder + * + */ + public Builder location(String location) { + return location(Output.of(location)); + } + + /** + * @param metadata Optional. Configures whether all, none or a subset of metadata fields + * should be added to the reported VPC flow logs. Default value is INCLUDE_ALL_METADATA. + * Possible values: METADATA_UNSPECIFIED INCLUDE_ALL_METADATA EXCLUDE_ALL_METADATA CUSTOM_METADATA + * + * @return builder + * + */ + public Builder metadata(@Nullable Output metadata) { + $.metadata = metadata; + return this; + } + + /** + * @param metadata Optional. Configures whether all, none or a subset of metadata fields + * should be added to the reported VPC flow logs. Default value is INCLUDE_ALL_METADATA. + * Possible values: METADATA_UNSPECIFIED INCLUDE_ALL_METADATA EXCLUDE_ALL_METADATA CUSTOM_METADATA + * + * @return builder + * + */ + public Builder metadata(String metadata) { + return metadata(Output.of(metadata)); + } + + /** + * @param metadataFields Optional. Custom metadata fields to include in the reported VPC flow + * logs. Can only be specified if \"metadata\" was set to CUSTOM_METADATA. + * + * @return builder + * + */ + public Builder metadataFields(@Nullable Output> metadataFields) { + $.metadataFields = metadataFields; + return this; + } + + /** + * @param metadataFields Optional. Custom metadata fields to include in the reported VPC flow + * logs. Can only be specified if \"metadata\" was set to CUSTOM_METADATA. + * + * @return builder + * + */ + public Builder metadataFields(List metadataFields) { + return metadataFields(Output.of(metadataFields)); + } + + /** + * @param metadataFields Optional. Custom metadata fields to include in the reported VPC flow + * logs. Can only be specified if \"metadata\" was set to CUSTOM_METADATA. + * + * @return builder + * + */ + public Builder metadataFields(String... metadataFields) { + return metadataFields(List.of(metadataFields)); + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + * @return builder + * + */ + public Builder project(@Nullable Output project) { + $.project = project; + return this; + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + * @return builder + * + */ + public Builder project(String project) { + return project(Output.of(project)); + } + + /** + * @param state Optional. The state of the VPC Flow Log configuration. Default value + * is ENABLED. When creating a new configuration, it must be enabled. Possible + * + * @return builder + * + */ + public Builder state(@Nullable Output state) { + $.state = state; + return this; + } + + /** + * @param state Optional. The state of the VPC Flow Log configuration. Default value + * is ENABLED. When creating a new configuration, it must be enabled. Possible + * + * @return builder + * + */ + public Builder state(String state) { + return state(Output.of(state)); + } + + /** + * @param vpcFlowLogsConfigId Required. ID of the `VpcFlowLogsConfig`. + * + * *** + * + * @return builder + * + */ + public Builder vpcFlowLogsConfigId(Output vpcFlowLogsConfigId) { + $.vpcFlowLogsConfigId = vpcFlowLogsConfigId; + return this; + } + + /** + * @param vpcFlowLogsConfigId Required. ID of the `VpcFlowLogsConfig`. + * + * *** + * + * @return builder + * + */ + public Builder vpcFlowLogsConfigId(String vpcFlowLogsConfigId) { + return vpcFlowLogsConfigId(Output.of(vpcFlowLogsConfigId)); + } + + /** + * @param vpnTunnel Traffic will be logged from the VPN Tunnel. Format: projects/{project_id}/regions/{region}/vpnTunnels/{name} + * + * @return builder + * + */ + public Builder vpnTunnel(@Nullable Output vpnTunnel) { + $.vpnTunnel = vpnTunnel; + return this; + } + + /** + * @param vpnTunnel Traffic will be logged from the VPN Tunnel. Format: projects/{project_id}/regions/{region}/vpnTunnels/{name} + * + * @return builder + * + */ + public Builder vpnTunnel(String vpnTunnel) { + return vpnTunnel(Output.of(vpnTunnel)); + } + + public VpcFlowLogsConfigArgs build() { + if ($.location == null) { + throw new MissingRequiredPropertyException("VpcFlowLogsConfigArgs", "location"); + } + if ($.vpcFlowLogsConfigId == null) { + throw new MissingRequiredPropertyException("VpcFlowLogsConfigArgs", "vpcFlowLogsConfigId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networkmanagement/inputs/VpcFlowLogsConfigState.java b/sdk/java/src/main/java/com/pulumi/gcp/networkmanagement/inputs/VpcFlowLogsConfigState.java new file mode 100644 index 0000000000..89b6e7ea84 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/networkmanagement/inputs/VpcFlowLogsConfigState.java @@ -0,0 +1,798 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.networkmanagement.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Double; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class VpcFlowLogsConfigState extends com.pulumi.resources.ResourceArgs { + + public static final VpcFlowLogsConfigState Empty = new VpcFlowLogsConfigState(); + + /** + * Optional. The aggregation interval for the logs. Default value is + * INTERVAL_5_SEC. Possible values: AGGREGATION_INTERVAL_UNSPECIFIED INTERVAL_5_SEC INTERVAL_30_SEC INTERVAL_1_MIN INTERVAL_5_MIN INTERVAL_10_MIN INTERVAL_15_MIN" + * + */ + @Import(name="aggregationInterval") + private @Nullable Output aggregationInterval; + + /** + * @return Optional. The aggregation interval for the logs. Default value is + * INTERVAL_5_SEC. Possible values: AGGREGATION_INTERVAL_UNSPECIFIED INTERVAL_5_SEC INTERVAL_30_SEC INTERVAL_1_MIN INTERVAL_5_MIN INTERVAL_10_MIN INTERVAL_15_MIN" + * + */ + public Optional> aggregationInterval() { + return Optional.ofNullable(this.aggregationInterval); + } + + /** + * Output only. The time the config was created. + * + */ + @Import(name="createTime") + private @Nullable Output createTime; + + /** + * @return Output only. The time the config was created. + * + */ + public Optional> createTime() { + return Optional.ofNullable(this.createTime); + } + + /** + * Optional. The user-supplied description of the VPC Flow Logs configuration. Maximum + * of 512 characters. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return Optional. The user-supplied description of the VPC Flow Logs configuration. Maximum + * of 512 characters. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + * + */ + @Import(name="effectiveLabels") + private @Nullable Output> effectiveLabels; + + /** + * @return All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + * + */ + public Optional>> effectiveLabels() { + return Optional.ofNullable(this.effectiveLabels); + } + + /** + * Optional. Export filter used to define which VPC Flow Logs should be logged. + * + */ + @Import(name="filterExpr") + private @Nullable Output filterExpr; + + /** + * @return Optional. Export filter used to define which VPC Flow Logs should be logged. + * + */ + public Optional> filterExpr() { + return Optional.ofNullable(this.filterExpr); + } + + /** + * Optional. The value of the field must be in (0, 1]. The sampling rate + * of VPC Flow Logs where 1.0 means all collected logs are reported. Setting the + * sampling rate to 0.0 is not allowed. If you want to disable VPC Flow Logs, use + * the state field instead. Default value is 1.0. + * + */ + @Import(name="flowSampling") + private @Nullable Output flowSampling; + + /** + * @return Optional. The value of the field must be in (0, 1]. The sampling rate + * of VPC Flow Logs where 1.0 means all collected logs are reported. Setting the + * sampling rate to 0.0 is not allowed. If you want to disable VPC Flow Logs, use + * the state field instead. Default value is 1.0. + * + */ + public Optional> flowSampling() { + return Optional.ofNullable(this.flowSampling); + } + + /** + * Traffic will be logged from the Interconnect Attachment. Format: projects/{project_id}/regions/{region}/interconnectAttachments/{name} + * + */ + @Import(name="interconnectAttachment") + private @Nullable Output interconnectAttachment; + + /** + * @return Traffic will be logged from the Interconnect Attachment. Format: projects/{project_id}/regions/{region}/interconnectAttachments/{name} + * + */ + public Optional> interconnectAttachment() { + return Optional.ofNullable(this.interconnectAttachment); + } + + /** + * Optional. Resource labels to represent user-provided metadata. + * + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effective_labels` for all of the labels present on the resource. + * + */ + @Import(name="labels") + private @Nullable Output> labels; + + /** + * @return Optional. Resource labels to represent user-provided metadata. + * + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effective_labels` for all of the labels present on the resource. + * + */ + public Optional>> labels() { + return Optional.ofNullable(this.labels); + } + + /** + * Resource ID segment making up resource `name`. It identifies the resource + * within its parent collection as described in https://google.aip.dev/122. See documentation + * for resource type `networkmanagement.googleapis.com/VpcFlowLogsConfig`. + * + */ + @Import(name="location") + private @Nullable Output location; + + /** + * @return Resource ID segment making up resource `name`. It identifies the resource + * within its parent collection as described in https://google.aip.dev/122. See documentation + * for resource type `networkmanagement.googleapis.com/VpcFlowLogsConfig`. + * + */ + public Optional> location() { + return Optional.ofNullable(this.location); + } + + /** + * Optional. Configures whether all, none or a subset of metadata fields + * should be added to the reported VPC flow logs. Default value is INCLUDE_ALL_METADATA. + * Possible values: METADATA_UNSPECIFIED INCLUDE_ALL_METADATA EXCLUDE_ALL_METADATA CUSTOM_METADATA + * + */ + @Import(name="metadata") + private @Nullable Output metadata; + + /** + * @return Optional. Configures whether all, none or a subset of metadata fields + * should be added to the reported VPC flow logs. Default value is INCLUDE_ALL_METADATA. + * Possible values: METADATA_UNSPECIFIED INCLUDE_ALL_METADATA EXCLUDE_ALL_METADATA CUSTOM_METADATA + * + */ + public Optional> metadata() { + return Optional.ofNullable(this.metadata); + } + + /** + * Optional. Custom metadata fields to include in the reported VPC flow + * logs. Can only be specified if \"metadata\" was set to CUSTOM_METADATA. + * + */ + @Import(name="metadataFields") + private @Nullable Output> metadataFields; + + /** + * @return Optional. Custom metadata fields to include in the reported VPC flow + * logs. Can only be specified if \"metadata\" was set to CUSTOM_METADATA. + * + */ + public Optional>> metadataFields() { + return Optional.ofNullable(this.metadataFields); + } + + /** + * Identifier. Unique name of the configuration using the form: `projects/{project_id}/locations/global/vpcFlowLogsConfigs/{vpc_flow_logs_config_id}` + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Identifier. Unique name of the configuration using the form: `projects/{project_id}/locations/global/vpcFlowLogsConfigs/{vpc_flow_logs_config_id}` + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + @Import(name="project") + private @Nullable Output project; + + /** + * @return The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + public Optional> project() { + return Optional.ofNullable(this.project); + } + + /** + * The combination of labels configured directly on the resource + * and default labels configured on the provider. + * + */ + @Import(name="pulumiLabels") + private @Nullable Output> pulumiLabels; + + /** + * @return The combination of labels configured directly on the resource + * and default labels configured on the provider. + * + */ + public Optional>> pulumiLabels() { + return Optional.ofNullable(this.pulumiLabels); + } + + /** + * Optional. The state of the VPC Flow Log configuration. Default value + * is ENABLED. When creating a new configuration, it must be enabled. Possible + * + */ + @Import(name="state") + private @Nullable Output state; + + /** + * @return Optional. The state of the VPC Flow Log configuration. Default value + * is ENABLED. When creating a new configuration, it must be enabled. Possible + * + */ + public Optional> state() { + return Optional.ofNullable(this.state); + } + + /** + * Output only. The time the config was updated. + * + */ + @Import(name="updateTime") + private @Nullable Output updateTime; + + /** + * @return Output only. The time the config was updated. + * + */ + public Optional> updateTime() { + return Optional.ofNullable(this.updateTime); + } + + /** + * Required. ID of the `VpcFlowLogsConfig`. + * + * *** + * + */ + @Import(name="vpcFlowLogsConfigId") + private @Nullable Output vpcFlowLogsConfigId; + + /** + * @return Required. ID of the `VpcFlowLogsConfig`. + * + * *** + * + */ + public Optional> vpcFlowLogsConfigId() { + return Optional.ofNullable(this.vpcFlowLogsConfigId); + } + + /** + * Traffic will be logged from the VPN Tunnel. Format: projects/{project_id}/regions/{region}/vpnTunnels/{name} + * + */ + @Import(name="vpnTunnel") + private @Nullable Output vpnTunnel; + + /** + * @return Traffic will be logged from the VPN Tunnel. Format: projects/{project_id}/regions/{region}/vpnTunnels/{name} + * + */ + public Optional> vpnTunnel() { + return Optional.ofNullable(this.vpnTunnel); + } + + private VpcFlowLogsConfigState() {} + + private VpcFlowLogsConfigState(VpcFlowLogsConfigState $) { + this.aggregationInterval = $.aggregationInterval; + this.createTime = $.createTime; + this.description = $.description; + this.effectiveLabels = $.effectiveLabels; + this.filterExpr = $.filterExpr; + this.flowSampling = $.flowSampling; + this.interconnectAttachment = $.interconnectAttachment; + this.labels = $.labels; + this.location = $.location; + this.metadata = $.metadata; + this.metadataFields = $.metadataFields; + this.name = $.name; + this.project = $.project; + this.pulumiLabels = $.pulumiLabels; + this.state = $.state; + this.updateTime = $.updateTime; + this.vpcFlowLogsConfigId = $.vpcFlowLogsConfigId; + this.vpnTunnel = $.vpnTunnel; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(VpcFlowLogsConfigState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private VpcFlowLogsConfigState $; + + public Builder() { + $ = new VpcFlowLogsConfigState(); + } + + public Builder(VpcFlowLogsConfigState defaults) { + $ = new VpcFlowLogsConfigState(Objects.requireNonNull(defaults)); + } + + /** + * @param aggregationInterval Optional. The aggregation interval for the logs. Default value is + * INTERVAL_5_SEC. Possible values: AGGREGATION_INTERVAL_UNSPECIFIED INTERVAL_5_SEC INTERVAL_30_SEC INTERVAL_1_MIN INTERVAL_5_MIN INTERVAL_10_MIN INTERVAL_15_MIN" + * + * @return builder + * + */ + public Builder aggregationInterval(@Nullable Output aggregationInterval) { + $.aggregationInterval = aggregationInterval; + return this; + } + + /** + * @param aggregationInterval Optional. The aggregation interval for the logs. Default value is + * INTERVAL_5_SEC. Possible values: AGGREGATION_INTERVAL_UNSPECIFIED INTERVAL_5_SEC INTERVAL_30_SEC INTERVAL_1_MIN INTERVAL_5_MIN INTERVAL_10_MIN INTERVAL_15_MIN" + * + * @return builder + * + */ + public Builder aggregationInterval(String aggregationInterval) { + return aggregationInterval(Output.of(aggregationInterval)); + } + + /** + * @param createTime Output only. The time the config was created. + * + * @return builder + * + */ + public Builder createTime(@Nullable Output createTime) { + $.createTime = createTime; + return this; + } + + /** + * @param createTime Output only. The time the config was created. + * + * @return builder + * + */ + public Builder createTime(String createTime) { + return createTime(Output.of(createTime)); + } + + /** + * @param description Optional. The user-supplied description of the VPC Flow Logs configuration. Maximum + * of 512 characters. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description Optional. The user-supplied description of the VPC Flow Logs configuration. Maximum + * of 512 characters. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param effectiveLabels All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + * + * @return builder + * + */ + public Builder effectiveLabels(@Nullable Output> effectiveLabels) { + $.effectiveLabels = effectiveLabels; + return this; + } + + /** + * @param effectiveLabels All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + * + * @return builder + * + */ + public Builder effectiveLabels(Map effectiveLabels) { + return effectiveLabels(Output.of(effectiveLabels)); + } + + /** + * @param filterExpr Optional. Export filter used to define which VPC Flow Logs should be logged. + * + * @return builder + * + */ + public Builder filterExpr(@Nullable Output filterExpr) { + $.filterExpr = filterExpr; + return this; + } + + /** + * @param filterExpr Optional. Export filter used to define which VPC Flow Logs should be logged. + * + * @return builder + * + */ + public Builder filterExpr(String filterExpr) { + return filterExpr(Output.of(filterExpr)); + } + + /** + * @param flowSampling Optional. The value of the field must be in (0, 1]. The sampling rate + * of VPC Flow Logs where 1.0 means all collected logs are reported. Setting the + * sampling rate to 0.0 is not allowed. If you want to disable VPC Flow Logs, use + * the state field instead. Default value is 1.0. + * + * @return builder + * + */ + public Builder flowSampling(@Nullable Output flowSampling) { + $.flowSampling = flowSampling; + return this; + } + + /** + * @param flowSampling Optional. The value of the field must be in (0, 1]. The sampling rate + * of VPC Flow Logs where 1.0 means all collected logs are reported. Setting the + * sampling rate to 0.0 is not allowed. If you want to disable VPC Flow Logs, use + * the state field instead. Default value is 1.0. + * + * @return builder + * + */ + public Builder flowSampling(Double flowSampling) { + return flowSampling(Output.of(flowSampling)); + } + + /** + * @param interconnectAttachment Traffic will be logged from the Interconnect Attachment. Format: projects/{project_id}/regions/{region}/interconnectAttachments/{name} + * + * @return builder + * + */ + public Builder interconnectAttachment(@Nullable Output interconnectAttachment) { + $.interconnectAttachment = interconnectAttachment; + return this; + } + + /** + * @param interconnectAttachment Traffic will be logged from the Interconnect Attachment. Format: projects/{project_id}/regions/{region}/interconnectAttachments/{name} + * + * @return builder + * + */ + public Builder interconnectAttachment(String interconnectAttachment) { + return interconnectAttachment(Output.of(interconnectAttachment)); + } + + /** + * @param labels Optional. Resource labels to represent user-provided metadata. + * + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effective_labels` for all of the labels present on the resource. + * + * @return builder + * + */ + public Builder labels(@Nullable Output> labels) { + $.labels = labels; + return this; + } + + /** + * @param labels Optional. Resource labels to represent user-provided metadata. + * + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effective_labels` for all of the labels present on the resource. + * + * @return builder + * + */ + public Builder labels(Map labels) { + return labels(Output.of(labels)); + } + + /** + * @param location Resource ID segment making up resource `name`. It identifies the resource + * within its parent collection as described in https://google.aip.dev/122. See documentation + * for resource type `networkmanagement.googleapis.com/VpcFlowLogsConfig`. + * + * @return builder + * + */ + public Builder location(@Nullable Output location) { + $.location = location; + return this; + } + + /** + * @param location Resource ID segment making up resource `name`. It identifies the resource + * within its parent collection as described in https://google.aip.dev/122. See documentation + * for resource type `networkmanagement.googleapis.com/VpcFlowLogsConfig`. + * + * @return builder + * + */ + public Builder location(String location) { + return location(Output.of(location)); + } + + /** + * @param metadata Optional. Configures whether all, none or a subset of metadata fields + * should be added to the reported VPC flow logs. Default value is INCLUDE_ALL_METADATA. + * Possible values: METADATA_UNSPECIFIED INCLUDE_ALL_METADATA EXCLUDE_ALL_METADATA CUSTOM_METADATA + * + * @return builder + * + */ + public Builder metadata(@Nullable Output metadata) { + $.metadata = metadata; + return this; + } + + /** + * @param metadata Optional. Configures whether all, none or a subset of metadata fields + * should be added to the reported VPC flow logs. Default value is INCLUDE_ALL_METADATA. + * Possible values: METADATA_UNSPECIFIED INCLUDE_ALL_METADATA EXCLUDE_ALL_METADATA CUSTOM_METADATA + * + * @return builder + * + */ + public Builder metadata(String metadata) { + return metadata(Output.of(metadata)); + } + + /** + * @param metadataFields Optional. Custom metadata fields to include in the reported VPC flow + * logs. Can only be specified if \"metadata\" was set to CUSTOM_METADATA. + * + * @return builder + * + */ + public Builder metadataFields(@Nullable Output> metadataFields) { + $.metadataFields = metadataFields; + return this; + } + + /** + * @param metadataFields Optional. Custom metadata fields to include in the reported VPC flow + * logs. Can only be specified if \"metadata\" was set to CUSTOM_METADATA. + * + * @return builder + * + */ + public Builder metadataFields(List metadataFields) { + return metadataFields(Output.of(metadataFields)); + } + + /** + * @param metadataFields Optional. Custom metadata fields to include in the reported VPC flow + * logs. Can only be specified if \"metadata\" was set to CUSTOM_METADATA. + * + * @return builder + * + */ + public Builder metadataFields(String... metadataFields) { + return metadataFields(List.of(metadataFields)); + } + + /** + * @param name Identifier. Unique name of the configuration using the form: `projects/{project_id}/locations/global/vpcFlowLogsConfigs/{vpc_flow_logs_config_id}` + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Identifier. Unique name of the configuration using the form: `projects/{project_id}/locations/global/vpcFlowLogsConfigs/{vpc_flow_logs_config_id}` + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + * @return builder + * + */ + public Builder project(@Nullable Output project) { + $.project = project; + return this; + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + * @return builder + * + */ + public Builder project(String project) { + return project(Output.of(project)); + } + + /** + * @param pulumiLabels The combination of labels configured directly on the resource + * and default labels configured on the provider. + * + * @return builder + * + */ + public Builder pulumiLabels(@Nullable Output> pulumiLabels) { + $.pulumiLabels = pulumiLabels; + return this; + } + + /** + * @param pulumiLabels The combination of labels configured directly on the resource + * and default labels configured on the provider. + * + * @return builder + * + */ + public Builder pulumiLabels(Map pulumiLabels) { + return pulumiLabels(Output.of(pulumiLabels)); + } + + /** + * @param state Optional. The state of the VPC Flow Log configuration. Default value + * is ENABLED. When creating a new configuration, it must be enabled. Possible + * + * @return builder + * + */ + public Builder state(@Nullable Output state) { + $.state = state; + return this; + } + + /** + * @param state Optional. The state of the VPC Flow Log configuration. Default value + * is ENABLED. When creating a new configuration, it must be enabled. Possible + * + * @return builder + * + */ + public Builder state(String state) { + return state(Output.of(state)); + } + + /** + * @param updateTime Output only. The time the config was updated. + * + * @return builder + * + */ + public Builder updateTime(@Nullable Output updateTime) { + $.updateTime = updateTime; + return this; + } + + /** + * @param updateTime Output only. The time the config was updated. + * + * @return builder + * + */ + public Builder updateTime(String updateTime) { + return updateTime(Output.of(updateTime)); + } + + /** + * @param vpcFlowLogsConfigId Required. ID of the `VpcFlowLogsConfig`. + * + * *** + * + * @return builder + * + */ + public Builder vpcFlowLogsConfigId(@Nullable Output vpcFlowLogsConfigId) { + $.vpcFlowLogsConfigId = vpcFlowLogsConfigId; + return this; + } + + /** + * @param vpcFlowLogsConfigId Required. ID of the `VpcFlowLogsConfig`. + * + * *** + * + * @return builder + * + */ + public Builder vpcFlowLogsConfigId(String vpcFlowLogsConfigId) { + return vpcFlowLogsConfigId(Output.of(vpcFlowLogsConfigId)); + } + + /** + * @param vpnTunnel Traffic will be logged from the VPN Tunnel. Format: projects/{project_id}/regions/{region}/vpnTunnels/{name} + * + * @return builder + * + */ + public Builder vpnTunnel(@Nullable Output vpnTunnel) { + $.vpnTunnel = vpnTunnel; + return this; + } + + /** + * @param vpnTunnel Traffic will be logged from the VPN Tunnel. Format: projects/{project_id}/regions/{region}/vpnTunnels/{name} + * + * @return builder + * + */ + public Builder vpnTunnel(String vpnTunnel) { + return vpnTunnel(Output.of(vpnTunnel)); + } + + public VpcFlowLogsConfigState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/osconfig/PatchDeployment.java b/sdk/java/src/main/java/com/pulumi/gcp/osconfig/PatchDeployment.java index 0a238de37a..25ba746512 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/osconfig/PatchDeployment.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/osconfig/PatchDeployment.java @@ -429,20 +429,20 @@ * * PatchDeployment can be imported using any of these accepted formats: * - * * `projects/{{project}}/patchDeployments/{{name}}` - * * * `{{project}}/{{name}}` * + * * `{{project}} {{name}}` + * * * `{{name}}` * * When using the `pulumi import` command, PatchDeployment can be imported using one of the formats above. For example: * * ```sh - * $ pulumi import gcp:osconfig/patchDeployment:PatchDeployment default projects/{{project}}/patchDeployments/{{name}} + * $ pulumi import gcp:osconfig/patchDeployment:PatchDeployment default {{project}}/{{name}} * ``` * * ```sh - * $ pulumi import gcp:osconfig/patchDeployment:PatchDeployment default {{project}}/{{name}} + * $ pulumi import gcp:osconfig/patchDeployment:PatchDeployment default "{{project}} {{name}}" * ``` * * ```sh diff --git a/sdk/java/src/main/java/com/pulumi/gcp/redis/inputs/ClusterStateInfoArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/redis/inputs/ClusterStateInfoArgs.java index b1cc554119..cafcb64334 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/redis/inputs/ClusterStateInfoArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/redis/inputs/ClusterStateInfoArgs.java @@ -16,7 +16,7 @@ public final class ClusterStateInfoArgs extends com.pulumi.resources.ResourceArg public static final ClusterStateInfoArgs Empty = new ClusterStateInfoArgs(); /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -24,7 +24,7 @@ public final class ClusterStateInfoArgs extends com.pulumi.resources.ResourceArg private @Nullable Output updateInfo; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -57,7 +57,7 @@ public Builder(ClusterStateInfoArgs defaults) { } /** - * @param updateInfo A nested object resource + * @param updateInfo A nested object resource. * Structure is documented below. * * @return builder @@ -69,7 +69,7 @@ public Builder updateInfo(@Nullable Output updat } /** - * @param updateInfo A nested object resource + * @param updateInfo A nested object resource. * Structure is documented below. * * @return builder diff --git a/sdk/java/src/main/java/com/pulumi/gcp/redis/outputs/ClusterStateInfo.java b/sdk/java/src/main/java/com/pulumi/gcp/redis/outputs/ClusterStateInfo.java index d248f1fc59..efbcbcb836 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/redis/outputs/ClusterStateInfo.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/redis/outputs/ClusterStateInfo.java @@ -12,7 +12,7 @@ @CustomType public final class ClusterStateInfo { /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -20,7 +20,7 @@ public final class ClusterStateInfo { private ClusterStateInfo() {} /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/NotificationConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/NotificationConfig.java index ce1f2b6d67..eef734416d 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/NotificationConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/NotificationConfig.java @@ -84,18 +84,12 @@ * * NotificationConfig can be imported using any of these accepted formats: * - * * `organizations/{{organization}}/notificationConfigs/{{name}}` - * - * * `{{organization}}/{{name}}` + * * `{{name}}` * * When using the `pulumi import` command, NotificationConfig can be imported using one of the formats above. For example: * * ```sh - * $ pulumi import gcp:securitycenter/notificationConfig:NotificationConfig default organizations/{{organization}}/notificationConfigs/{{name}} - * ``` - * - * ```sh - * $ pulumi import gcp:securitycenter/notificationConfig:NotificationConfig default {{organization}}/{{name}} + * $ pulumi import gcp:securitycenter/notificationConfig:NotificationConfig default {{name}} * ``` * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/ProjectNotificationConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/ProjectNotificationConfig.java index 816c29f12a..0ba7ec3d7b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/ProjectNotificationConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/ProjectNotificationConfig.java @@ -84,23 +84,11 @@ * * ProjectNotificationConfig can be imported using any of these accepted formats: * - * * `projects/{{project}}/notificationConfigs/{{name}}` - * - * * `{{project}}/{{name}}` - * * * `{{name}}` * * When using the `pulumi import` command, ProjectNotificationConfig can be imported using one of the formats above. For example: * * ```sh - * $ pulumi import gcp:securitycenter/projectNotificationConfig:ProjectNotificationConfig default projects/{{project}}/notificationConfigs/{{name}} - * ``` - * - * ```sh - * $ pulumi import gcp:securitycenter/projectNotificationConfig:ProjectNotificationConfig default {{project}}/{{name}} - * ``` - * - * ```sh * $ pulumi import gcp:securitycenter/projectNotificationConfig:ProjectNotificationConfig default {{name}} * ``` * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/V2OrganizationNotificationConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/V2OrganizationNotificationConfig.java index 54bfd2d632..7fe0f6cbab 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/V2OrganizationNotificationConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/V2OrganizationNotificationConfig.java @@ -85,18 +85,12 @@ * * OrganizationNotificationConfig can be imported using any of these accepted formats: * - * * `organizations/{{organization}}/locations/{{location}}/notificationConfigs/{{name}}` - * - * * `{{organization}}/{{location}}/{{name}}` + * * `{{name}}` * * When using the `pulumi import` command, OrganizationNotificationConfig can be imported using one of the formats above. For example: * * ```sh - * $ pulumi import gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig default organizations/{{organization}}/locations/{{location}}/notificationConfigs/{{name}} - * ``` - * - * ```sh - * $ pulumi import gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig default {{organization}}/{{location}}/{{name}} + * $ pulumi import gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig default {{name}} * ``` * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/spanner/Instance.java b/sdk/java/src/main/java/com/pulumi/gcp/spanner/Instance.java index 2f39ad550e..f08ce854d8 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/spanner/Instance.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/spanner/Instance.java @@ -61,6 +61,7 @@ * .displayName("Test Spanner Instance") * .numNodes(2) * .edition("STANDARD") + * .defaultBackupScheduleType("AUTOMATIC") * .labels(Map.of("foo", "bar")) * .build()); * @@ -266,6 +267,26 @@ public Output> autoscalingConfig() { public Output config() { return this.config; } + /** + * Controls the default backup behavior for new databases within the instance. + * Note that `AUTOMATIC` is not permitted for free instances, as backups and backup schedules are not allowed for free instances. + * if unset or NONE, no default backup schedule will be created for new databases within the instance. + * Possible values are: `NONE`, `AUTOMATIC`. + * + */ + @Export(name="defaultBackupScheduleType", refs={String.class}, tree="[0]") + private Output defaultBackupScheduleType; + + /** + * @return Controls the default backup behavior for new databases within the instance. + * Note that `AUTOMATIC` is not permitted for free instances, as backups and backup schedules are not allowed for free instances. + * if unset or NONE, no default backup schedule will be created for new databases within the instance. + * Possible values are: `NONE`, `AUTOMATIC`. + * + */ + public Output defaultBackupScheduleType() { + return this.defaultBackupScheduleType; + } /** * The descriptive name for this instance as it appears in UIs. Must be * unique per project and between 4 and 30 characters in length. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/spanner/InstanceArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/spanner/InstanceArgs.java index 58b25bc7b8..b4696ae296 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/spanner/InstanceArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/spanner/InstanceArgs.java @@ -68,6 +68,27 @@ public Output config() { return this.config; } + /** + * Controls the default backup behavior for new databases within the instance. + * Note that `AUTOMATIC` is not permitted for free instances, as backups and backup schedules are not allowed for free instances. + * if unset or NONE, no default backup schedule will be created for new databases within the instance. + * Possible values are: `NONE`, `AUTOMATIC`. + * + */ + @Import(name="defaultBackupScheduleType") + private @Nullable Output defaultBackupScheduleType; + + /** + * @return Controls the default backup behavior for new databases within the instance. + * Note that `AUTOMATIC` is not permitted for free instances, as backups and backup schedules are not allowed for free instances. + * if unset or NONE, no default backup schedule will be created for new databases within the instance. + * Possible values are: `NONE`, `AUTOMATIC`. + * + */ + public Optional> defaultBackupScheduleType() { + return Optional.ofNullable(this.defaultBackupScheduleType); + } + /** * The descriptive name for this instance as it appears in UIs. Must be * unique per project and between 4 and 30 characters in length. @@ -203,6 +224,7 @@ private InstanceArgs() {} private InstanceArgs(InstanceArgs $) { this.autoscalingConfig = $.autoscalingConfig; this.config = $.config; + this.defaultBackupScheduleType = $.defaultBackupScheduleType; this.displayName = $.displayName; this.edition = $.edition; this.forceDestroy = $.forceDestroy; @@ -291,6 +313,33 @@ public Builder config(String config) { return config(Output.of(config)); } + /** + * @param defaultBackupScheduleType Controls the default backup behavior for new databases within the instance. + * Note that `AUTOMATIC` is not permitted for free instances, as backups and backup schedules are not allowed for free instances. + * if unset or NONE, no default backup schedule will be created for new databases within the instance. + * Possible values are: `NONE`, `AUTOMATIC`. + * + * @return builder + * + */ + public Builder defaultBackupScheduleType(@Nullable Output defaultBackupScheduleType) { + $.defaultBackupScheduleType = defaultBackupScheduleType; + return this; + } + + /** + * @param defaultBackupScheduleType Controls the default backup behavior for new databases within the instance. + * Note that `AUTOMATIC` is not permitted for free instances, as backups and backup schedules are not allowed for free instances. + * if unset or NONE, no default backup schedule will be created for new databases within the instance. + * Possible values are: `NONE`, `AUTOMATIC`. + * + * @return builder + * + */ + public Builder defaultBackupScheduleType(String defaultBackupScheduleType) { + return defaultBackupScheduleType(Output.of(defaultBackupScheduleType)); + } + /** * @param displayName The descriptive name for this instance as it appears in UIs. Must be * unique per project and between 4 and 30 characters in length. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/spanner/SpannerFunctions.java b/sdk/java/src/main/java/com/pulumi/gcp/spanner/SpannerFunctions.java index 74d858a973..8f6bcb6666 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/spanner/SpannerFunctions.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/spanner/SpannerFunctions.java @@ -8,18 +8,193 @@ import com.pulumi.deployment.Deployment; import com.pulumi.deployment.InvokeOptions; import com.pulumi.gcp.Utilities; +import com.pulumi.gcp.spanner.inputs.GetDatabaseArgs; import com.pulumi.gcp.spanner.inputs.GetDatabaseIamPolicyArgs; import com.pulumi.gcp.spanner.inputs.GetDatabaseIamPolicyPlainArgs; +import com.pulumi.gcp.spanner.inputs.GetDatabasePlainArgs; import com.pulumi.gcp.spanner.inputs.GetInstanceArgs; import com.pulumi.gcp.spanner.inputs.GetInstanceIamPolicyArgs; import com.pulumi.gcp.spanner.inputs.GetInstanceIamPolicyPlainArgs; import com.pulumi.gcp.spanner.inputs.GetInstancePlainArgs; import com.pulumi.gcp.spanner.outputs.GetDatabaseIamPolicyResult; +import com.pulumi.gcp.spanner.outputs.GetDatabaseResult; import com.pulumi.gcp.spanner.outputs.GetInstanceIamPolicyResult; import com.pulumi.gcp.spanner.outputs.GetInstanceResult; import java.util.concurrent.CompletableFuture; public final class SpannerFunctions { + /** + * Get a spanner database from Google Cloud by its name and instance name. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.gcp.spanner.SpannerFunctions;
+     * import com.pulumi.gcp.spanner.inputs.GetDatabaseArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var foo = SpannerFunctions.getDatabase(GetDatabaseArgs.builder()
+     *             .name("foo")
+     *             .instance(instance.name())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getDatabase(GetDatabaseArgs args) { + return getDatabase(args, InvokeOptions.Empty); + } + /** + * Get a spanner database from Google Cloud by its name and instance name. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.gcp.spanner.SpannerFunctions;
+     * import com.pulumi.gcp.spanner.inputs.GetDatabaseArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var foo = SpannerFunctions.getDatabase(GetDatabaseArgs.builder()
+     *             .name("foo")
+     *             .instance(instance.name())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getDatabasePlain(GetDatabasePlainArgs args) { + return getDatabasePlain(args, InvokeOptions.Empty); + } + /** + * Get a spanner database from Google Cloud by its name and instance name. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.gcp.spanner.SpannerFunctions;
+     * import com.pulumi.gcp.spanner.inputs.GetDatabaseArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var foo = SpannerFunctions.getDatabase(GetDatabaseArgs.builder()
+     *             .name("foo")
+     *             .instance(instance.name())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getDatabase(GetDatabaseArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("gcp:spanner/getDatabase:getDatabase", TypeShape.of(GetDatabaseResult.class), args, Utilities.withVersion(options)); + } + /** + * Get a spanner database from Google Cloud by its name and instance name. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.gcp.spanner.SpannerFunctions;
+     * import com.pulumi.gcp.spanner.inputs.GetDatabaseArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var foo = SpannerFunctions.getDatabase(GetDatabaseArgs.builder()
+     *             .name("foo")
+     *             .instance(instance.name())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getDatabasePlain(GetDatabasePlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("gcp:spanner/getDatabase:getDatabase", TypeShape.of(GetDatabaseResult.class), args, Utilities.withVersion(options)); + } /** * Retrieves the current IAM policy data for a Spanner database. * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/spanner/inputs/GetDatabaseArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/spanner/inputs/GetDatabaseArgs.java new file mode 100644 index 0000000000..a78fe8313f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/spanner/inputs/GetDatabaseArgs.java @@ -0,0 +1,176 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.spanner.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GetDatabaseArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetDatabaseArgs Empty = new GetDatabaseArgs(); + + /** + * The name of the database's spanner instance. + * + * *** + * + */ + @Import(name="instance", required=true) + private Output instance; + + /** + * @return The name of the database's spanner instance. + * + * *** + * + */ + public Output instance() { + return this.instance; + } + + /** + * The name of the spanner database. + * + */ + @Import(name="name", required=true) + private Output name; + + /** + * @return The name of the spanner database. + * + */ + public Output name() { + return this.name; + } + + /** + * The project in which the resource belongs. If it + * is not provided, the provider project is used. + * + */ + @Import(name="project") + private @Nullable Output project; + + /** + * @return The project in which the resource belongs. If it + * is not provided, the provider project is used. + * + */ + public Optional> project() { + return Optional.ofNullable(this.project); + } + + private GetDatabaseArgs() {} + + private GetDatabaseArgs(GetDatabaseArgs $) { + this.instance = $.instance; + this.name = $.name; + this.project = $.project; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetDatabaseArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetDatabaseArgs $; + + public Builder() { + $ = new GetDatabaseArgs(); + } + + public Builder(GetDatabaseArgs defaults) { + $ = new GetDatabaseArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param instance The name of the database's spanner instance. + * + * *** + * + * @return builder + * + */ + public Builder instance(Output instance) { + $.instance = instance; + return this; + } + + /** + * @param instance The name of the database's spanner instance. + * + * *** + * + * @return builder + * + */ + public Builder instance(String instance) { + return instance(Output.of(instance)); + } + + /** + * @param name The name of the spanner database. + * + * @return builder + * + */ + public Builder name(Output name) { + $.name = name; + return this; + } + + /** + * @param name The name of the spanner database. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param project The project in which the resource belongs. If it + * is not provided, the provider project is used. + * + * @return builder + * + */ + public Builder project(@Nullable Output project) { + $.project = project; + return this; + } + + /** + * @param project The project in which the resource belongs. If it + * is not provided, the provider project is used. + * + * @return builder + * + */ + public Builder project(String project) { + return project(Output.of(project)); + } + + public GetDatabaseArgs build() { + if ($.instance == null) { + throw new MissingRequiredPropertyException("GetDatabaseArgs", "instance"); + } + if ($.name == null) { + throw new MissingRequiredPropertyException("GetDatabaseArgs", "name"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/spanner/inputs/GetDatabasePlainArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/spanner/inputs/GetDatabasePlainArgs.java new file mode 100644 index 0000000000..f404614c03 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/spanner/inputs/GetDatabasePlainArgs.java @@ -0,0 +1,142 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.spanner.inputs; + +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GetDatabasePlainArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetDatabasePlainArgs Empty = new GetDatabasePlainArgs(); + + /** + * The name of the database's spanner instance. + * + * *** + * + */ + @Import(name="instance", required=true) + private String instance; + + /** + * @return The name of the database's spanner instance. + * + * *** + * + */ + public String instance() { + return this.instance; + } + + /** + * The name of the spanner database. + * + */ + @Import(name="name", required=true) + private String name; + + /** + * @return The name of the spanner database. + * + */ + public String name() { + return this.name; + } + + /** + * The project in which the resource belongs. If it + * is not provided, the provider project is used. + * + */ + @Import(name="project") + private @Nullable String project; + + /** + * @return The project in which the resource belongs. If it + * is not provided, the provider project is used. + * + */ + public Optional project() { + return Optional.ofNullable(this.project); + } + + private GetDatabasePlainArgs() {} + + private GetDatabasePlainArgs(GetDatabasePlainArgs $) { + this.instance = $.instance; + this.name = $.name; + this.project = $.project; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetDatabasePlainArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetDatabasePlainArgs $; + + public Builder() { + $ = new GetDatabasePlainArgs(); + } + + public Builder(GetDatabasePlainArgs defaults) { + $ = new GetDatabasePlainArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param instance The name of the database's spanner instance. + * + * *** + * + * @return builder + * + */ + public Builder instance(String instance) { + $.instance = instance; + return this; + } + + /** + * @param name The name of the spanner database. + * + * @return builder + * + */ + public Builder name(String name) { + $.name = name; + return this; + } + + /** + * @param project The project in which the resource belongs. If it + * is not provided, the provider project is used. + * + * @return builder + * + */ + public Builder project(@Nullable String project) { + $.project = project; + return this; + } + + public GetDatabasePlainArgs build() { + if ($.instance == null) { + throw new MissingRequiredPropertyException("GetDatabasePlainArgs", "instance"); + } + if ($.name == null) { + throw new MissingRequiredPropertyException("GetDatabasePlainArgs", "name"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/spanner/inputs/InstanceAutoscalingConfigAsymmetricAutoscalingOptionArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/spanner/inputs/InstanceAutoscalingConfigAsymmetricAutoscalingOptionArgs.java index 25fabae4d7..cab689bed2 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/spanner/inputs/InstanceAutoscalingConfigAsymmetricAutoscalingOptionArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/spanner/inputs/InstanceAutoscalingConfigAsymmetricAutoscalingOptionArgs.java @@ -16,7 +16,7 @@ public final class InstanceAutoscalingConfigAsymmetricAutoscalingOptionArgs exte public static final InstanceAutoscalingConfigAsymmetricAutoscalingOptionArgs Empty = new InstanceAutoscalingConfigAsymmetricAutoscalingOptionArgs(); /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -24,7 +24,7 @@ public final class InstanceAutoscalingConfigAsymmetricAutoscalingOptionArgs exte private Output overrides; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -33,7 +33,7 @@ public Output } /** - * A nested object resource + * A nested object resource. * Structure is documented below. * */ @@ -41,7 +41,7 @@ public Output private Output replicaSelection; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -75,7 +75,7 @@ public Builder(InstanceAutoscalingConfigAsymmetricAutoscalingOptionArgs defaults } /** - * @param overrides A nested object resource + * @param overrides A nested object resource. * Structure is documented below. * * @return builder @@ -87,7 +87,7 @@ public Builder overrides(Output autoscalingLimits; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -56,7 +56,7 @@ public Builder(InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesArgs } /** - * @param autoscalingLimits A nested object resource + * @param autoscalingLimits A nested object resource. * Structure is documented below. * * @return builder @@ -68,7 +68,7 @@ public Builder autoscalingLimits(Output> config() { return Optional.ofNullable(this.config); } + /** + * Controls the default backup behavior for new databases within the instance. + * Note that `AUTOMATIC` is not permitted for free instances, as backups and backup schedules are not allowed for free instances. + * if unset or NONE, no default backup schedule will be created for new databases within the instance. + * Possible values are: `NONE`, `AUTOMATIC`. + * + */ + @Import(name="defaultBackupScheduleType") + private @Nullable Output defaultBackupScheduleType; + + /** + * @return Controls the default backup behavior for new databases within the instance. + * Note that `AUTOMATIC` is not permitted for free instances, as backups and backup schedules are not allowed for free instances. + * if unset or NONE, no default backup schedule will be created for new databases within the instance. + * Possible values are: `NONE`, `AUTOMATIC`. + * + */ + public Optional> defaultBackupScheduleType() { + return Optional.ofNullable(this.defaultBackupScheduleType); + } + /** * The descriptive name for this instance as it appears in UIs. Must be * unique per project and between 4 and 30 characters in length. @@ -249,6 +270,7 @@ private InstanceState() {} private InstanceState(InstanceState $) { this.autoscalingConfig = $.autoscalingConfig; this.config = $.config; + this.defaultBackupScheduleType = $.defaultBackupScheduleType; this.displayName = $.displayName; this.edition = $.edition; this.effectiveLabels = $.effectiveLabels; @@ -340,6 +362,33 @@ public Builder config(String config) { return config(Output.of(config)); } + /** + * @param defaultBackupScheduleType Controls the default backup behavior for new databases within the instance. + * Note that `AUTOMATIC` is not permitted for free instances, as backups and backup schedules are not allowed for free instances. + * if unset or NONE, no default backup schedule will be created for new databases within the instance. + * Possible values are: `NONE`, `AUTOMATIC`. + * + * @return builder + * + */ + public Builder defaultBackupScheduleType(@Nullable Output defaultBackupScheduleType) { + $.defaultBackupScheduleType = defaultBackupScheduleType; + return this; + } + + /** + * @param defaultBackupScheduleType Controls the default backup behavior for new databases within the instance. + * Note that `AUTOMATIC` is not permitted for free instances, as backups and backup schedules are not allowed for free instances. + * if unset or NONE, no default backup schedule will be created for new databases within the instance. + * Possible values are: `NONE`, `AUTOMATIC`. + * + * @return builder + * + */ + public Builder defaultBackupScheduleType(String defaultBackupScheduleType) { + return defaultBackupScheduleType(Output.of(defaultBackupScheduleType)); + } + /** * @param displayName The descriptive name for this instance as it appears in UIs. Must be * unique per project and between 4 and 30 characters in length. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/spanner/outputs/GetDatabaseEncryptionConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/spanner/outputs/GetDatabaseEncryptionConfig.java new file mode 100644 index 0000000000..792d210646 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/spanner/outputs/GetDatabaseEncryptionConfig.java @@ -0,0 +1,89 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.spanner.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +@CustomType +public final class GetDatabaseEncryptionConfig { + /** + * @return Fully qualified name of the KMS key to use to encrypt this database. This key must exist + * in the same location as the Spanner Database. + * + */ + private String kmsKeyName; + /** + * @return Fully qualified name of the KMS keys to use to encrypt this database. The keys must exist + * in the same locations as the Spanner Database. + * + */ + private List kmsKeyNames; + + private GetDatabaseEncryptionConfig() {} + /** + * @return Fully qualified name of the KMS key to use to encrypt this database. This key must exist + * in the same location as the Spanner Database. + * + */ + public String kmsKeyName() { + return this.kmsKeyName; + } + /** + * @return Fully qualified name of the KMS keys to use to encrypt this database. The keys must exist + * in the same locations as the Spanner Database. + * + */ + public List kmsKeyNames() { + return this.kmsKeyNames; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetDatabaseEncryptionConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String kmsKeyName; + private List kmsKeyNames; + public Builder() {} + public Builder(GetDatabaseEncryptionConfig defaults) { + Objects.requireNonNull(defaults); + this.kmsKeyName = defaults.kmsKeyName; + this.kmsKeyNames = defaults.kmsKeyNames; + } + + @CustomType.Setter + public Builder kmsKeyName(String kmsKeyName) { + if (kmsKeyName == null) { + throw new MissingRequiredPropertyException("GetDatabaseEncryptionConfig", "kmsKeyName"); + } + this.kmsKeyName = kmsKeyName; + return this; + } + @CustomType.Setter + public Builder kmsKeyNames(List kmsKeyNames) { + if (kmsKeyNames == null) { + throw new MissingRequiredPropertyException("GetDatabaseEncryptionConfig", "kmsKeyNames"); + } + this.kmsKeyNames = kmsKeyNames; + return this; + } + public Builder kmsKeyNames(String... kmsKeyNames) { + return kmsKeyNames(List.of(kmsKeyNames)); + } + public GetDatabaseEncryptionConfig build() { + final var _resultValue = new GetDatabaseEncryptionConfig(); + _resultValue.kmsKeyName = kmsKeyName; + _resultValue.kmsKeyNames = kmsKeyNames; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/spanner/outputs/GetDatabaseResult.java b/sdk/java/src/main/java/com/pulumi/gcp/spanner/outputs/GetDatabaseResult.java new file mode 100644 index 0000000000..7dd4754782 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/spanner/outputs/GetDatabaseResult.java @@ -0,0 +1,217 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.spanner.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.gcp.spanner.outputs.GetDatabaseEncryptionConfig; +import java.lang.Boolean; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class GetDatabaseResult { + private String databaseDialect; + private List ddls; + private Boolean deletionProtection; + private Boolean enableDropProtection; + private List encryptionConfigs; + /** + * @return The provider-assigned unique ID for this managed resource. + * + */ + private String id; + private String instance; + private String name; + private @Nullable String project; + private String state; + private String versionRetentionPeriod; + + private GetDatabaseResult() {} + public String databaseDialect() { + return this.databaseDialect; + } + public List ddls() { + return this.ddls; + } + public Boolean deletionProtection() { + return this.deletionProtection; + } + public Boolean enableDropProtection() { + return this.enableDropProtection; + } + public List encryptionConfigs() { + return this.encryptionConfigs; + } + /** + * @return The provider-assigned unique ID for this managed resource. + * + */ + public String id() { + return this.id; + } + public String instance() { + return this.instance; + } + public String name() { + return this.name; + } + public Optional project() { + return Optional.ofNullable(this.project); + } + public String state() { + return this.state; + } + public String versionRetentionPeriod() { + return this.versionRetentionPeriod; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetDatabaseResult defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String databaseDialect; + private List ddls; + private Boolean deletionProtection; + private Boolean enableDropProtection; + private List encryptionConfigs; + private String id; + private String instance; + private String name; + private @Nullable String project; + private String state; + private String versionRetentionPeriod; + public Builder() {} + public Builder(GetDatabaseResult defaults) { + Objects.requireNonNull(defaults); + this.databaseDialect = defaults.databaseDialect; + this.ddls = defaults.ddls; + this.deletionProtection = defaults.deletionProtection; + this.enableDropProtection = defaults.enableDropProtection; + this.encryptionConfigs = defaults.encryptionConfigs; + this.id = defaults.id; + this.instance = defaults.instance; + this.name = defaults.name; + this.project = defaults.project; + this.state = defaults.state; + this.versionRetentionPeriod = defaults.versionRetentionPeriod; + } + + @CustomType.Setter + public Builder databaseDialect(String databaseDialect) { + if (databaseDialect == null) { + throw new MissingRequiredPropertyException("GetDatabaseResult", "databaseDialect"); + } + this.databaseDialect = databaseDialect; + return this; + } + @CustomType.Setter + public Builder ddls(List ddls) { + if (ddls == null) { + throw new MissingRequiredPropertyException("GetDatabaseResult", "ddls"); + } + this.ddls = ddls; + return this; + } + public Builder ddls(String... ddls) { + return ddls(List.of(ddls)); + } + @CustomType.Setter + public Builder deletionProtection(Boolean deletionProtection) { + if (deletionProtection == null) { + throw new MissingRequiredPropertyException("GetDatabaseResult", "deletionProtection"); + } + this.deletionProtection = deletionProtection; + return this; + } + @CustomType.Setter + public Builder enableDropProtection(Boolean enableDropProtection) { + if (enableDropProtection == null) { + throw new MissingRequiredPropertyException("GetDatabaseResult", "enableDropProtection"); + } + this.enableDropProtection = enableDropProtection; + return this; + } + @CustomType.Setter + public Builder encryptionConfigs(List encryptionConfigs) { + if (encryptionConfigs == null) { + throw new MissingRequiredPropertyException("GetDatabaseResult", "encryptionConfigs"); + } + this.encryptionConfigs = encryptionConfigs; + return this; + } + public Builder encryptionConfigs(GetDatabaseEncryptionConfig... encryptionConfigs) { + return encryptionConfigs(List.of(encryptionConfigs)); + } + @CustomType.Setter + public Builder id(String id) { + if (id == null) { + throw new MissingRequiredPropertyException("GetDatabaseResult", "id"); + } + this.id = id; + return this; + } + @CustomType.Setter + public Builder instance(String instance) { + if (instance == null) { + throw new MissingRequiredPropertyException("GetDatabaseResult", "instance"); + } + this.instance = instance; + return this; + } + @CustomType.Setter + public Builder name(String name) { + if (name == null) { + throw new MissingRequiredPropertyException("GetDatabaseResult", "name"); + } + this.name = name; + return this; + } + @CustomType.Setter + public Builder project(@Nullable String project) { + + this.project = project; + return this; + } + @CustomType.Setter + public Builder state(String state) { + if (state == null) { + throw new MissingRequiredPropertyException("GetDatabaseResult", "state"); + } + this.state = state; + return this; + } + @CustomType.Setter + public Builder versionRetentionPeriod(String versionRetentionPeriod) { + if (versionRetentionPeriod == null) { + throw new MissingRequiredPropertyException("GetDatabaseResult", "versionRetentionPeriod"); + } + this.versionRetentionPeriod = versionRetentionPeriod; + return this; + } + public GetDatabaseResult build() { + final var _resultValue = new GetDatabaseResult(); + _resultValue.databaseDialect = databaseDialect; + _resultValue.ddls = ddls; + _resultValue.deletionProtection = deletionProtection; + _resultValue.enableDropProtection = enableDropProtection; + _resultValue.encryptionConfigs = encryptionConfigs; + _resultValue.id = id; + _resultValue.instance = instance; + _resultValue.name = name; + _resultValue.project = project; + _resultValue.state = state; + _resultValue.versionRetentionPeriod = versionRetentionPeriod; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/spanner/outputs/GetInstanceAutoscalingConfigAsymmetricAutoscalingOption.java b/sdk/java/src/main/java/com/pulumi/gcp/spanner/outputs/GetInstanceAutoscalingConfigAsymmetricAutoscalingOption.java index 515cff1a32..a609cdbead 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/spanner/outputs/GetInstanceAutoscalingConfigAsymmetricAutoscalingOption.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/spanner/outputs/GetInstanceAutoscalingConfigAsymmetricAutoscalingOption.java @@ -13,26 +13,26 @@ @CustomType public final class GetInstanceAutoscalingConfigAsymmetricAutoscalingOption { /** - * @return A nested object resource + * @return A nested object resource. * */ private List overrides; /** - * @return A nested object resource + * @return A nested object resource. * */ private List replicaSelections; private GetInstanceAutoscalingConfigAsymmetricAutoscalingOption() {} /** - * @return A nested object resource + * @return A nested object resource. * */ public List overrides() { return this.overrides; } /** - * @return A nested object resource + * @return A nested object resource. * */ public List replicaSelections() { diff --git a/sdk/java/src/main/java/com/pulumi/gcp/spanner/outputs/GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverride.java b/sdk/java/src/main/java/com/pulumi/gcp/spanner/outputs/GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverride.java index 06d3083300..0575f3fd6e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/spanner/outputs/GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverride.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/spanner/outputs/GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverride.java @@ -12,14 +12,14 @@ @CustomType public final class GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverride { /** - * @return A nested object resource + * @return A nested object resource. * */ private List autoscalingLimits; private GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverride() {} /** - * @return A nested object resource + * @return A nested object resource. * */ public List autoscalingLimits() { diff --git a/sdk/java/src/main/java/com/pulumi/gcp/spanner/outputs/GetInstanceResult.java b/sdk/java/src/main/java/com/pulumi/gcp/spanner/outputs/GetInstanceResult.java index 80876c4641..ba02437fe1 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/spanner/outputs/GetInstanceResult.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/spanner/outputs/GetInstanceResult.java @@ -19,6 +19,7 @@ public final class GetInstanceResult { private List autoscalingConfigs; private @Nullable String config; + private String defaultBackupScheduleType; private @Nullable String displayName; private String edition; private Map effectiveLabels; @@ -43,6 +44,9 @@ public List autoscalingConfigs() { public Optional config() { return Optional.ofNullable(this.config); } + public String defaultBackupScheduleType() { + return this.defaultBackupScheduleType; + } public Optional displayName() { return Optional.ofNullable(this.displayName); } @@ -95,6 +99,7 @@ public static Builder builder(GetInstanceResult defaults) { public static final class Builder { private List autoscalingConfigs; private @Nullable String config; + private String defaultBackupScheduleType; private @Nullable String displayName; private String edition; private Map effectiveLabels; @@ -112,6 +117,7 @@ public Builder(GetInstanceResult defaults) { Objects.requireNonNull(defaults); this.autoscalingConfigs = defaults.autoscalingConfigs; this.config = defaults.config; + this.defaultBackupScheduleType = defaults.defaultBackupScheduleType; this.displayName = defaults.displayName; this.edition = defaults.edition; this.effectiveLabels = defaults.effectiveLabels; @@ -144,6 +150,14 @@ public Builder config(@Nullable String config) { return this; } @CustomType.Setter + public Builder defaultBackupScheduleType(String defaultBackupScheduleType) { + if (defaultBackupScheduleType == null) { + throw new MissingRequiredPropertyException("GetInstanceResult", "defaultBackupScheduleType"); + } + this.defaultBackupScheduleType = defaultBackupScheduleType; + return this; + } + @CustomType.Setter public Builder displayName(@Nullable String displayName) { this.displayName = displayName; @@ -239,6 +253,7 @@ public GetInstanceResult build() { final var _resultValue = new GetInstanceResult(); _resultValue.autoscalingConfigs = autoscalingConfigs; _resultValue.config = config; + _resultValue.defaultBackupScheduleType = defaultBackupScheduleType; _resultValue.displayName = displayName; _resultValue.edition = edition; _resultValue.effectiveLabels = effectiveLabels; diff --git a/sdk/java/src/main/java/com/pulumi/gcp/spanner/outputs/InstanceAutoscalingConfigAsymmetricAutoscalingOption.java b/sdk/java/src/main/java/com/pulumi/gcp/spanner/outputs/InstanceAutoscalingConfigAsymmetricAutoscalingOption.java index ac01db91d4..0d453e6e6a 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/spanner/outputs/InstanceAutoscalingConfigAsymmetricAutoscalingOption.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/spanner/outputs/InstanceAutoscalingConfigAsymmetricAutoscalingOption.java @@ -12,13 +12,13 @@ @CustomType public final class InstanceAutoscalingConfigAsymmetricAutoscalingOption { /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ private InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrides overrides; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -26,7 +26,7 @@ public final class InstanceAutoscalingConfigAsymmetricAutoscalingOption { private InstanceAutoscalingConfigAsymmetricAutoscalingOption() {} /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -34,7 +34,7 @@ public InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrides overrides() return this.overrides; } /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/spanner/outputs/InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrides.java b/sdk/java/src/main/java/com/pulumi/gcp/spanner/outputs/InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrides.java index ed8b6df313..8c4756c185 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/spanner/outputs/InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrides.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/spanner/outputs/InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrides.java @@ -11,7 +11,7 @@ @CustomType public final class InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrides { /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -19,7 +19,7 @@ public final class InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrides private InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrides() {} /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/sql/DatabaseInstance.java b/sdk/java/src/main/java/com/pulumi/gcp/sql/DatabaseInstance.java index adf22afe2b..d038d380ce 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/sql/DatabaseInstance.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/sql/DatabaseInstance.java @@ -258,6 +258,39 @@ * * <!--End PulumiCodeChooser --> * + * ## Switchover (SQL Server Only) + * + * Users can perform a switchover on any direct `cascadable` replica by following the steps below. + * + * ~>**WARNING:** Failure to follow these steps can lead to data loss (You will be warned during plan stage). To prevent data loss during a switchover, please verify your plan with the checklist below. + * + * For a more in-depth walkthrough with example code, see the Switchover Guide + * + * ### Steps to Invoke Switchover + * + * Create a `cascadable` replica in a different region from the primary (`cascadable_replica` is set to true in `replica_configuration`) + * + * #### Invoking switchover in the replica resource: + * 1. Change instance_type from `READ_REPLICA_INSTANCE` to `CLOUD_SQL_INSTANCE` + * 2. Remove `master_instance_name` + * 3. Remove `replica_configuration` + * 4. Add current primary's name to the replica's `replica_names` list + * + * #### Updating the primary resource: + * 1. Change `instance_type` from `CLOUD_SQL_INSTANCE` to `READ_REPLICA_INSTANCE` + * 2. Set `master_instance_name` to the original replica (which will be primary after switchover) + * 3. Set `replica_configuration` and set `cascadable_replica` to `true` + * 4. Remove original replica from `replica_names` + * + * > **NOTE**: Do **not** delete the replica_names field, even if it has no replicas remaining. Set replica_names = [ ] to indicate it having no replicas. + * + * #### Plan and verify that: + * - `pulumi preview` outputs **"0 to add, 0 to destroy"** + * - `pulumi preview` does not say **"must be replaced"** for any resource + * - Every resource **"will be updated in-place"** + * - Only the 2 instances involved in switchover have planned changes + * - (Recommended) Use `deletion_protection` on instances as a safety measure + * * ## Import * * Database instances can be imported using one of any of these accepted formats: @@ -386,14 +419,14 @@ public Output> deletionProtection() { return Codegen.optional(this.deletionProtection); } /** - * The dns name of the instance. + * The DNS name of the instance. See [Connect to an instance using Private Service Connect](https://cloud.google.com/sql/docs/mysql/configure-private-service-connect#view-summary-information-cloud-sql-instances-psc-enabled) for more details. * */ @Export(name="dnsName", refs={String.class}, tree="[0]") private Output dnsName; /** - * @return The dns name of the instance. + * @return The DNS name of the instance. See [Connect to an instance using Private Service Connect](https://cloud.google.com/sql/docs/mysql/configure-private-service-connect#view-summary-information-cloud-sql-instances-psc-enabled) for more details. * */ public Output dnsName() { @@ -593,7 +626,7 @@ public Output region() { } /** * The configuration for replication. The - * configuration is detailed below. Valid only for MySQL instances. + * configuration is detailed below. * */ @Export(name="replicaConfiguration", refs={DatabaseInstanceReplicaConfiguration.class}, tree="[0]") @@ -601,12 +634,26 @@ public Output region() { /** * @return The configuration for replication. The - * configuration is detailed below. Valid only for MySQL instances. + * configuration is detailed below. * */ public Output replicaConfiguration() { return this.replicaConfiguration; } + /** + * List of replica names. Can be updated. + * + */ + @Export(name="replicaNames", refs={List.class,String.class}, tree="[0,1]") + private Output> replicaNames; + + /** + * @return List of replica names. Can be updated. + * + */ + public Output> replicaNames() { + return this.replicaNames; + } /** * The context needed to restore the database to a backup run. This field will * cause the provider to trigger the database to restore from the backup run indicated. The configuration is detailed below. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/sql/DatabaseInstanceArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/sql/DatabaseInstanceArgs.java index ee4acacc25..e2365690c5 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/sql/DatabaseInstanceArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/sql/DatabaseInstanceArgs.java @@ -12,6 +12,7 @@ import com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsArgs; import java.lang.Boolean; import java.lang.String; +import java.util.List; import java.util.Objects; import java.util.Optional; import javax.annotation.Nullable; @@ -227,7 +228,7 @@ public Optional> region() { /** * The configuration for replication. The - * configuration is detailed below. Valid only for MySQL instances. + * configuration is detailed below. * */ @Import(name="replicaConfiguration") @@ -235,13 +236,28 @@ public Optional> region() { /** * @return The configuration for replication. The - * configuration is detailed below. Valid only for MySQL instances. + * configuration is detailed below. * */ public Optional> replicaConfiguration() { return Optional.ofNullable(this.replicaConfiguration); } + /** + * List of replica names. Can be updated. + * + */ + @Import(name="replicaNames") + private @Nullable Output> replicaNames; + + /** + * @return List of replica names. Can be updated. + * + */ + public Optional>> replicaNames() { + return Optional.ofNullable(this.replicaNames); + } + /** * The context needed to restore the database to a backup run. This field will * cause the provider to trigger the database to restore from the backup run indicated. The configuration is detailed below. @@ -309,6 +325,7 @@ private DatabaseInstanceArgs(DatabaseInstanceArgs $) { this.project = $.project; this.region = $.region; this.replicaConfiguration = $.replicaConfiguration; + this.replicaNames = $.replicaNames; this.restoreBackupContext = $.restoreBackupContext; this.rootPassword = $.rootPassword; this.settings = $.settings; @@ -598,7 +615,7 @@ public Builder region(String region) { /** * @param replicaConfiguration The configuration for replication. The - * configuration is detailed below. Valid only for MySQL instances. + * configuration is detailed below. * * @return builder * @@ -610,7 +627,7 @@ public Builder replicaConfiguration(@Nullable Output> replicaNames) { + $.replicaNames = replicaNames; + return this; + } + + /** + * @param replicaNames List of replica names. Can be updated. + * + * @return builder + * + */ + public Builder replicaNames(List replicaNames) { + return replicaNames(Output.of(replicaNames)); + } + + /** + * @param replicaNames List of replica names. Can be updated. + * + * @return builder + * + */ + public Builder replicaNames(String... replicaNames) { + return replicaNames(List.of(replicaNames)); + } + /** * @param restoreBackupContext The context needed to restore the database to a backup run. This field will * cause the provider to trigger the database to restore from the backup run indicated. The configuration is detailed below. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/sql/inputs/DatabaseInstanceReplicaConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/sql/inputs/DatabaseInstanceReplicaConfigurationArgs.java index b402ad71a9..d231b5b563 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/sql/inputs/DatabaseInstanceReplicaConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/sql/inputs/DatabaseInstanceReplicaConfigurationArgs.java @@ -34,6 +34,25 @@ public Optional> caCertificate() { return Optional.ofNullable(this.caCertificate); } + /** + * Specifies if the replica is a cascadable replica. If true, instance must be in different region from primary. + * + * > **NOTE:** Only supported for SQL Server database. + * + */ + @Import(name="cascadableReplica") + private @Nullable Output cascadableReplica; + + /** + * @return Specifies if the replica is a cascadable replica. If true, instance must be in different region from primary. + * + * > **NOTE:** Only supported for SQL Server database. + * + */ + public Optional> cascadableReplica() { + return Optional.ofNullable(this.cascadableReplica); + } + /** * PEM representation of the replica's x509 * certificate. @@ -210,6 +229,7 @@ private DatabaseInstanceReplicaConfigurationArgs() {} private DatabaseInstanceReplicaConfigurationArgs(DatabaseInstanceReplicaConfigurationArgs $) { this.caCertificate = $.caCertificate; + this.cascadableReplica = $.cascadableReplica; this.clientCertificate = $.clientCertificate; this.clientKey = $.clientKey; this.connectRetryInterval = $.connectRetryInterval; @@ -263,6 +283,31 @@ public Builder caCertificate(String caCertificate) { return caCertificate(Output.of(caCertificate)); } + /** + * @param cascadableReplica Specifies if the replica is a cascadable replica. If true, instance must be in different region from primary. + * + * > **NOTE:** Only supported for SQL Server database. + * + * @return builder + * + */ + public Builder cascadableReplica(@Nullable Output cascadableReplica) { + $.cascadableReplica = cascadableReplica; + return this; + } + + /** + * @param cascadableReplica Specifies if the replica is a cascadable replica. If true, instance must be in different region from primary. + * + * > **NOTE:** Only supported for SQL Server database. + * + * @return builder + * + */ + public Builder cascadableReplica(Boolean cascadableReplica) { + return cascadableReplica(Output.of(cascadableReplica)); + } + /** * @param clientCertificate PEM representation of the replica's x509 * certificate. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/sql/inputs/DatabaseInstanceState.java b/sdk/java/src/main/java/com/pulumi/gcp/sql/inputs/DatabaseInstanceState.java index 33500f014f..0afc57bde0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/sql/inputs/DatabaseInstanceState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/sql/inputs/DatabaseInstanceState.java @@ -123,14 +123,14 @@ public Optional> deletionProtection() { } /** - * The dns name of the instance. + * The DNS name of the instance. See [Connect to an instance using Private Service Connect](https://cloud.google.com/sql/docs/mysql/configure-private-service-connect#view-summary-information-cloud-sql-instances-psc-enabled) for more details. * */ @Import(name="dnsName") private @Nullable Output dnsName; /** - * @return The dns name of the instance. + * @return The DNS name of the instance. See [Connect to an instance using Private Service Connect](https://cloud.google.com/sql/docs/mysql/configure-private-service-connect#view-summary-information-cloud-sql-instances-psc-enabled) for more details. * */ public Optional> dnsName() { @@ -343,7 +343,7 @@ public Optional> region() { /** * The configuration for replication. The - * configuration is detailed below. Valid only for MySQL instances. + * configuration is detailed below. * */ @Import(name="replicaConfiguration") @@ -351,13 +351,28 @@ public Optional> region() { /** * @return The configuration for replication. The - * configuration is detailed below. Valid only for MySQL instances. + * configuration is detailed below. * */ public Optional> replicaConfiguration() { return Optional.ofNullable(this.replicaConfiguration); } + /** + * List of replica names. Can be updated. + * + */ + @Import(name="replicaNames") + private @Nullable Output> replicaNames; + + /** + * @return List of replica names. Can be updated. + * + */ + public Optional>> replicaNames() { + return Optional.ofNullable(this.replicaNames); + } + /** * The context needed to restore the database to a backup run. This field will * cause the provider to trigger the database to restore from the backup run indicated. The configuration is detailed below. @@ -472,6 +487,7 @@ private DatabaseInstanceState(DatabaseInstanceState $) { this.publicIpAddress = $.publicIpAddress; this.region = $.region; this.replicaConfiguration = $.replicaConfiguration; + this.replicaNames = $.replicaNames; this.restoreBackupContext = $.restoreBackupContext; this.rootPassword = $.rootPassword; this.selfLink = $.selfLink; @@ -638,7 +654,7 @@ public Builder deletionProtection(Boolean deletionProtection) { } /** - * @param dnsName The dns name of the instance. + * @param dnsName The DNS name of the instance. See [Connect to an instance using Private Service Connect](https://cloud.google.com/sql/docs/mysql/configure-private-service-connect#view-summary-information-cloud-sql-instances-psc-enabled) for more details. * * @return builder * @@ -649,7 +665,7 @@ public Builder dnsName(@Nullable Output dnsName) { } /** - * @param dnsName The dns name of the instance. + * @param dnsName The DNS name of the instance. See [Connect to an instance using Private Service Connect](https://cloud.google.com/sql/docs/mysql/configure-private-service-connect#view-summary-information-cloud-sql-instances-psc-enabled) for more details. * * @return builder * @@ -936,7 +952,7 @@ public Builder region(String region) { /** * @param replicaConfiguration The configuration for replication. The - * configuration is detailed below. Valid only for MySQL instances. + * configuration is detailed below. * * @return builder * @@ -948,7 +964,7 @@ public Builder replicaConfiguration(@Nullable Output> replicaNames) { + $.replicaNames = replicaNames; + return this; + } + + /** + * @param replicaNames List of replica names. Can be updated. + * + * @return builder + * + */ + public Builder replicaNames(List replicaNames) { + return replicaNames(Output.of(replicaNames)); + } + + /** + * @param replicaNames List of replica names. Can be updated. + * + * @return builder + * + */ + public Builder replicaNames(String... replicaNames) { + return replicaNames(List.of(replicaNames)); + } + /** * @param restoreBackupContext The context needed to restore the database to a backup run. This field will * cause the provider to trigger the database to restore from the backup run indicated. The configuration is detailed below. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/sql/outputs/DatabaseInstanceReplicaConfiguration.java b/sdk/java/src/main/java/com/pulumi/gcp/sql/outputs/DatabaseInstanceReplicaConfiguration.java index dc77763de8..afb77aefec 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/sql/outputs/DatabaseInstanceReplicaConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/sql/outputs/DatabaseInstanceReplicaConfiguration.java @@ -19,6 +19,13 @@ public final class DatabaseInstanceReplicaConfiguration { * */ private @Nullable String caCertificate; + /** + * @return Specifies if the replica is a cascadable replica. If true, instance must be in different region from primary. + * + * > **NOTE:** Only supported for SQL Server database. + * + */ + private @Nullable Boolean cascadableReplica; /** * @return PEM representation of the replica's x509 * certificate. @@ -90,6 +97,15 @@ private DatabaseInstanceReplicaConfiguration() {} public Optional caCertificate() { return Optional.ofNullable(this.caCertificate); } + /** + * @return Specifies if the replica is a cascadable replica. If true, instance must be in different region from primary. + * + * > **NOTE:** Only supported for SQL Server database. + * + */ + public Optional cascadableReplica() { + return Optional.ofNullable(this.cascadableReplica); + } /** * @return PEM representation of the replica's x509 * certificate. @@ -182,6 +198,7 @@ public static Builder builder(DatabaseInstanceReplicaConfiguration defaults) { @CustomType.Builder public static final class Builder { private @Nullable String caCertificate; + private @Nullable Boolean cascadableReplica; private @Nullable String clientCertificate; private @Nullable String clientKey; private @Nullable Integer connectRetryInterval; @@ -196,6 +213,7 @@ public Builder() {} public Builder(DatabaseInstanceReplicaConfiguration defaults) { Objects.requireNonNull(defaults); this.caCertificate = defaults.caCertificate; + this.cascadableReplica = defaults.cascadableReplica; this.clientCertificate = defaults.clientCertificate; this.clientKey = defaults.clientKey; this.connectRetryInterval = defaults.connectRetryInterval; @@ -215,6 +233,12 @@ public Builder caCertificate(@Nullable String caCertificate) { return this; } @CustomType.Setter + public Builder cascadableReplica(@Nullable Boolean cascadableReplica) { + + this.cascadableReplica = cascadableReplica; + return this; + } + @CustomType.Setter public Builder clientCertificate(@Nullable String clientCertificate) { this.clientCertificate = clientCertificate; @@ -277,6 +301,7 @@ public Builder verifyServerCertificate(@Nullable Boolean verifyServerCertificate public DatabaseInstanceReplicaConfiguration build() { final var _resultValue = new DatabaseInstanceReplicaConfiguration(); _resultValue.caCertificate = caCertificate; + _resultValue.cascadableReplica = cascadableReplica; _resultValue.clientCertificate = clientCertificate; _resultValue.clientKey = clientKey; _resultValue.connectRetryInterval = connectRetryInterval; diff --git a/sdk/java/src/main/java/com/pulumi/gcp/sql/outputs/GetDatabaseInstanceReplicaConfiguration.java b/sdk/java/src/main/java/com/pulumi/gcp/sql/outputs/GetDatabaseInstanceReplicaConfiguration.java index 9e80083327..0d0e715c46 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/sql/outputs/GetDatabaseInstanceReplicaConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/sql/outputs/GetDatabaseInstanceReplicaConfiguration.java @@ -17,6 +17,11 @@ public final class GetDatabaseInstanceReplicaConfiguration { * */ private String caCertificate; + /** + * @return Specifies if a SQL Server replica is a cascadable replica. A cascadable replica is a SQL Server cross region replica that supports replica(s) under it. + * + */ + private Boolean cascadableReplica; /** * @return PEM representation of the replica's x509 certificate. * @@ -76,6 +81,13 @@ private GetDatabaseInstanceReplicaConfiguration() {} public String caCertificate() { return this.caCertificate; } + /** + * @return Specifies if a SQL Server replica is a cascadable replica. A cascadable replica is a SQL Server cross region replica that supports replica(s) under it. + * + */ + public Boolean cascadableReplica() { + return this.cascadableReplica; + } /** * @return PEM representation of the replica's x509 certificate. * @@ -157,6 +169,7 @@ public static Builder builder(GetDatabaseInstanceReplicaConfiguration defaults) @CustomType.Builder public static final class Builder { private String caCertificate; + private Boolean cascadableReplica; private String clientCertificate; private String clientKey; private Integer connectRetryInterval; @@ -171,6 +184,7 @@ public Builder() {} public Builder(GetDatabaseInstanceReplicaConfiguration defaults) { Objects.requireNonNull(defaults); this.caCertificate = defaults.caCertificate; + this.cascadableReplica = defaults.cascadableReplica; this.clientCertificate = defaults.clientCertificate; this.clientKey = defaults.clientKey; this.connectRetryInterval = defaults.connectRetryInterval; @@ -192,6 +206,14 @@ public Builder caCertificate(String caCertificate) { return this; } @CustomType.Setter + public Builder cascadableReplica(Boolean cascadableReplica) { + if (cascadableReplica == null) { + throw new MissingRequiredPropertyException("GetDatabaseInstanceReplicaConfiguration", "cascadableReplica"); + } + this.cascadableReplica = cascadableReplica; + return this; + } + @CustomType.Setter public Builder clientCertificate(String clientCertificate) { if (clientCertificate == null) { throw new MissingRequiredPropertyException("GetDatabaseInstanceReplicaConfiguration", "clientCertificate"); @@ -274,6 +296,7 @@ public Builder verifyServerCertificate(Boolean verifyServerCertificate) { public GetDatabaseInstanceReplicaConfiguration build() { final var _resultValue = new GetDatabaseInstanceReplicaConfiguration(); _resultValue.caCertificate = caCertificate; + _resultValue.cascadableReplica = cascadableReplica; _resultValue.clientCertificate = clientCertificate; _resultValue.clientKey = clientKey; _resultValue.connectRetryInterval = connectRetryInterval; diff --git a/sdk/java/src/main/java/com/pulumi/gcp/sql/outputs/GetDatabaseInstanceResult.java b/sdk/java/src/main/java/com/pulumi/gcp/sql/outputs/GetDatabaseInstanceResult.java index d9f8e4b345..681692b4a9 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/sql/outputs/GetDatabaseInstanceResult.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/sql/outputs/GetDatabaseInstanceResult.java @@ -44,6 +44,7 @@ public final class GetDatabaseInstanceResult { private String publicIpAddress; private String region; private List replicaConfigurations; + private List replicaNames; private List restoreBackupContexts; private String rootPassword; private String selfLink; @@ -116,6 +117,9 @@ public String region() { public List replicaConfigurations() { return this.replicaConfigurations; } + public List replicaNames() { + return this.replicaNames; + } public List restoreBackupContexts() { return this.restoreBackupContexts; } @@ -164,6 +168,7 @@ public static final class Builder { private String publicIpAddress; private String region; private List replicaConfigurations; + private List replicaNames; private List restoreBackupContexts; private String rootPassword; private String selfLink; @@ -193,6 +198,7 @@ public Builder(GetDatabaseInstanceResult defaults) { this.publicIpAddress = defaults.publicIpAddress; this.region = defaults.region; this.replicaConfigurations = defaults.replicaConfigurations; + this.replicaNames = defaults.replicaNames; this.restoreBackupContexts = defaults.restoreBackupContexts; this.rootPassword = defaults.rootPassword; this.selfLink = defaults.selfLink; @@ -372,6 +378,17 @@ public Builder replicaConfigurations(GetDatabaseInstanceReplicaConfiguration... return replicaConfigurations(List.of(replicaConfigurations)); } @CustomType.Setter + public Builder replicaNames(List replicaNames) { + if (replicaNames == null) { + throw new MissingRequiredPropertyException("GetDatabaseInstanceResult", "replicaNames"); + } + this.replicaNames = replicaNames; + return this; + } + public Builder replicaNames(String... replicaNames) { + return replicaNames(List.of(replicaNames)); + } + @CustomType.Setter public Builder restoreBackupContexts(List restoreBackupContexts) { if (restoreBackupContexts == null) { throw new MissingRequiredPropertyException("GetDatabaseInstanceResult", "restoreBackupContexts"); @@ -450,6 +467,7 @@ public GetDatabaseInstanceResult build() { _resultValue.publicIpAddress = publicIpAddress; _resultValue.region = region; _resultValue.replicaConfigurations = replicaConfigurations; + _resultValue.replicaNames = replicaNames; _resultValue.restoreBackupContexts = restoreBackupContexts; _resultValue.rootPassword = rootPassword; _resultValue.selfLink = selfLink; diff --git a/sdk/java/src/main/java/com/pulumi/gcp/sql/outputs/GetDatabaseInstancesInstance.java b/sdk/java/src/main/java/com/pulumi/gcp/sql/outputs/GetDatabaseInstancesInstance.java index 66deb6e95b..258326f8a9 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/sql/outputs/GetDatabaseInstancesInstance.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/sql/outputs/GetDatabaseInstancesInstance.java @@ -85,6 +85,11 @@ public final class GetDatabaseInstancesInstance { * */ private List replicaConfigurations; + /** + * @return The replicas of the instance. + * + */ + private List replicaNames; private List restoreBackupContexts; /** * @return Initial root password. Required for MS SQL Server. @@ -214,6 +219,13 @@ public String region() { public List replicaConfigurations() { return this.replicaConfigurations; } + /** + * @return The replicas of the instance. + * + */ + public List replicaNames() { + return this.replicaNames; + } public List restoreBackupContexts() { return this.restoreBackupContexts; } @@ -277,6 +289,7 @@ public static final class Builder { private String publicIpAddress; private String region; private List replicaConfigurations; + private List replicaNames; private List restoreBackupContexts; private String rootPassword; private String selfLink; @@ -305,6 +318,7 @@ public Builder(GetDatabaseInstancesInstance defaults) { this.publicIpAddress = defaults.publicIpAddress; this.region = defaults.region; this.replicaConfigurations = defaults.replicaConfigurations; + this.replicaNames = defaults.replicaNames; this.restoreBackupContexts = defaults.restoreBackupContexts; this.rootPassword = defaults.rootPassword; this.selfLink = defaults.selfLink; @@ -478,6 +492,17 @@ public Builder replicaConfigurations(GetDatabaseInstancesInstanceReplicaConfigur return replicaConfigurations(List.of(replicaConfigurations)); } @CustomType.Setter + public Builder replicaNames(List replicaNames) { + if (replicaNames == null) { + throw new MissingRequiredPropertyException("GetDatabaseInstancesInstance", "replicaNames"); + } + this.replicaNames = replicaNames; + return this; + } + public Builder replicaNames(String... replicaNames) { + return replicaNames(List.of(replicaNames)); + } + @CustomType.Setter public Builder restoreBackupContexts(List restoreBackupContexts) { if (restoreBackupContexts == null) { throw new MissingRequiredPropertyException("GetDatabaseInstancesInstance", "restoreBackupContexts"); @@ -555,6 +580,7 @@ public GetDatabaseInstancesInstance build() { _resultValue.publicIpAddress = publicIpAddress; _resultValue.region = region; _resultValue.replicaConfigurations = replicaConfigurations; + _resultValue.replicaNames = replicaNames; _resultValue.restoreBackupContexts = restoreBackupContexts; _resultValue.rootPassword = rootPassword; _resultValue.selfLink = selfLink; diff --git a/sdk/java/src/main/java/com/pulumi/gcp/sql/outputs/GetDatabaseInstancesInstanceReplicaConfiguration.java b/sdk/java/src/main/java/com/pulumi/gcp/sql/outputs/GetDatabaseInstancesInstanceReplicaConfiguration.java index bec74d11a1..7635a190af 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/sql/outputs/GetDatabaseInstancesInstanceReplicaConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/sql/outputs/GetDatabaseInstancesInstanceReplicaConfiguration.java @@ -17,6 +17,11 @@ public final class GetDatabaseInstancesInstanceReplicaConfiguration { * */ private String caCertificate; + /** + * @return Specifies if a SQL Server replica is a cascadable replica. A cascadable replica is a SQL Server cross region replica that supports replica(s) under it. + * + */ + private Boolean cascadableReplica; /** * @return PEM representation of the replica's x509 certificate. * @@ -76,6 +81,13 @@ private GetDatabaseInstancesInstanceReplicaConfiguration() {} public String caCertificate() { return this.caCertificate; } + /** + * @return Specifies if a SQL Server replica is a cascadable replica. A cascadable replica is a SQL Server cross region replica that supports replica(s) under it. + * + */ + public Boolean cascadableReplica() { + return this.cascadableReplica; + } /** * @return PEM representation of the replica's x509 certificate. * @@ -157,6 +169,7 @@ public static Builder builder(GetDatabaseInstancesInstanceReplicaConfiguration d @CustomType.Builder public static final class Builder { private String caCertificate; + private Boolean cascadableReplica; private String clientCertificate; private String clientKey; private Integer connectRetryInterval; @@ -171,6 +184,7 @@ public Builder() {} public Builder(GetDatabaseInstancesInstanceReplicaConfiguration defaults) { Objects.requireNonNull(defaults); this.caCertificate = defaults.caCertificate; + this.cascadableReplica = defaults.cascadableReplica; this.clientCertificate = defaults.clientCertificate; this.clientKey = defaults.clientKey; this.connectRetryInterval = defaults.connectRetryInterval; @@ -192,6 +206,14 @@ public Builder caCertificate(String caCertificate) { return this; } @CustomType.Setter + public Builder cascadableReplica(Boolean cascadableReplica) { + if (cascadableReplica == null) { + throw new MissingRequiredPropertyException("GetDatabaseInstancesInstanceReplicaConfiguration", "cascadableReplica"); + } + this.cascadableReplica = cascadableReplica; + return this; + } + @CustomType.Setter public Builder clientCertificate(String clientCertificate) { if (clientCertificate == null) { throw new MissingRequiredPropertyException("GetDatabaseInstancesInstanceReplicaConfiguration", "clientCertificate"); @@ -274,6 +296,7 @@ public Builder verifyServerCertificate(Boolean verifyServerCertificate) { public GetDatabaseInstancesInstanceReplicaConfiguration build() { final var _resultValue = new GetDatabaseInstancesInstanceReplicaConfiguration(); _resultValue.caCertificate = caCertificate; + _resultValue.cascadableReplica = cascadableReplica; _resultValue.clientCertificate = clientCertificate; _resultValue.clientKey = clientKey; _resultValue.connectRetryInterval = connectRetryInterval; diff --git a/sdk/java/src/main/java/com/pulumi/gcp/storage/inputs/InsightsReportConfigObjectMetadataReportOptionsArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/storage/inputs/InsightsReportConfigObjectMetadataReportOptionsArgs.java index 3388bf13ea..da1073b688 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/storage/inputs/InsightsReportConfigObjectMetadataReportOptionsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/storage/inputs/InsightsReportConfigObjectMetadataReportOptionsArgs.java @@ -52,7 +52,7 @@ public Output storageFilters; /** - * @return A nested object resource + * @return A nested object resource. * Structure is documented below. * */ @@ -149,7 +149,7 @@ public Builder storageDestinationOptions(InsightsReportConfigObjectMetadataRepor } /** - * @param storageFilters A nested object resource + * @param storageFilters A nested object resource. * Structure is documented below. * * @return builder @@ -161,7 +161,7 @@ public Builder storageFilters(@Nullable Output String.format("tagKeys/%s", name))) + * .parent(key.id()) * .shortName("valuename") * .description("For valuename resources.") * .build()); * * var binding = new TagBinding("binding", TagBindingArgs.builder() * .parent(project.number().applyValue(number -> String.format("//cloudresourcemanager.googleapis.com/projects/%s", number))) - * .tagValue(value.name().applyValue(name -> String.format("tagValues/%s", name))) + * .tagValue(value.id()) * .build()); * * } diff --git a/sdk/java/src/main/java/com/pulumi/gcp/tags/TagValue.java b/sdk/java/src/main/java/com/pulumi/gcp/tags/TagValue.java index 447d81771f..fa68631228 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/tags/TagValue.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/tags/TagValue.java @@ -59,7 +59,7 @@ * .build()); * * var value = new TagValue("value", TagValueArgs.builder() - * .parent(key.name().applyValue(name -> String.format("tagKeys/%s", name))) + * .parent(key.id()) * .shortName("valuename") * .description("For valuename resources.") * .build()); diff --git a/sdk/java/src/main/java/com/pulumi/gcp/transcoder/Job.java b/sdk/java/src/main/java/com/pulumi/gcp/transcoder/Job.java index ecfb794826..5be27efc38 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/transcoder/Job.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/transcoder/Job.java @@ -945,11 +945,23 @@ * * Job can be imported using any of these accepted formats: * + * * `{{project}}/{{name}}` + * + * * `{{project}} {{name}}` + * * * `{{name}}` * * When using the `pulumi import` command, Job can be imported using one of the formats above. For example: * * ```sh + * $ pulumi import gcp:transcoder/job:Job default {{project}}/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:transcoder/job:Job default "{{project}} {{name}}" + * ``` + * + * ```sh * $ pulumi import gcp:transcoder/job:Job default {{name}} * ``` * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiEndpoint.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiEndpoint.java index 3304086f7b..ff1446fb6f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiEndpoint.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiEndpoint.java @@ -12,6 +12,9 @@ import com.pulumi.gcp.vertex.inputs.AiEndpointState; import com.pulumi.gcp.vertex.outputs.AiEndpointDeployedModel; import com.pulumi.gcp.vertex.outputs.AiEndpointEncryptionSpec; +import com.pulumi.gcp.vertex.outputs.AiEndpointPredictRequestResponseLoggingConfig; +import com.pulumi.gcp.vertex.outputs.AiEndpointPrivateServiceConnectConfig; +import java.lang.Boolean; import java.lang.String; import java.util.List; import java.util.Map; @@ -45,13 +48,18 @@ * import com.pulumi.gcp.compute.GlobalAddressArgs; * import com.pulumi.gcp.servicenetworking.Connection; * import com.pulumi.gcp.servicenetworking.ConnectionArgs; + * import com.pulumi.gcp.bigquery.Dataset; + * import com.pulumi.gcp.bigquery.DatasetArgs; * import com.pulumi.gcp.organizations.OrganizationsFunctions; * import com.pulumi.gcp.organizations.inputs.GetProjectArgs; * import com.pulumi.gcp.vertex.AiEndpoint; * import com.pulumi.gcp.vertex.AiEndpointArgs; * import com.pulumi.gcp.vertex.inputs.AiEndpointEncryptionSpecArgs; + * import com.pulumi.gcp.vertex.inputs.AiEndpointPredictRequestResponseLoggingConfigArgs; + * import com.pulumi.gcp.vertex.inputs.AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs; * import com.pulumi.gcp.kms.CryptoKeyIAMMember; * import com.pulumi.gcp.kms.CryptoKeyIAMMemberArgs; + * import static com.pulumi.codegen.internal.Serialization.*; * import com.pulumi.resources.CustomResourceOptions; * import java.util.List; * import java.util.ArrayList; @@ -84,6 +92,14 @@ * .reservedPeeringRanges(vertexRange.name()) * .build()); * + * var bqDataset = new Dataset("bqDataset", DatasetArgs.builder() + * .datasetId("some_dataset") + * .friendlyName("logging dataset") + * .description("This is a dataset that requests are logged to") + * .location("US") + * .deleteContentsOnDestroy(true) + * .build()); + * * final var project = OrganizationsFunctions.getProject(); * * var endpoint = new AiEndpoint("endpoint", AiEndpointArgs.builder() @@ -97,6 +113,17 @@ * .encryptionSpec(AiEndpointEncryptionSpecArgs.builder() * .kmsKeyName("kms-name") * .build()) + * .predictRequestResponseLoggingConfig(AiEndpointPredictRequestResponseLoggingConfigArgs.builder() + * .bigqueryDestination(AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs.builder() + * .outputUri(bqDataset.datasetId().applyValue(datasetId -> String.format("bq://%s.%s.request_response_logging", project.applyValue(getProjectResult -> getProjectResult.projectId()),datasetId))) + * .build()) + * .enabled(true) + * .samplingRate(0.1) + * .build()) + * .trafficSplit(serializeJson( + * jsonObject( + * jsonProperty("12345", 100) + * ))) * .build(), CustomResourceOptions.builder() * .dependsOn(vertexVpcConnection) * .build()); @@ -112,6 +139,99 @@ * } * * <!--End PulumiCodeChooser --> + * ### Vertex Ai Endpoint Private Service Connect + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.gcp.organizations.OrganizationsFunctions;
+ * import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
+ * import com.pulumi.gcp.vertex.AiEndpoint;
+ * import com.pulumi.gcp.vertex.AiEndpointArgs;
+ * import com.pulumi.gcp.vertex.inputs.AiEndpointPrivateServiceConnectConfigArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         final var project = OrganizationsFunctions.getProject();
+ * 
+ *         var endpoint = new AiEndpoint("endpoint", AiEndpointArgs.builder()
+ *             .name("endpoint-name_69391")
+ *             .displayName("sample-endpoint")
+ *             .description("A sample vertex endpoint")
+ *             .location("us-central1")
+ *             .region("us-central1")
+ *             .labels(Map.of("label-one", "value-one"))
+ *             .privateServiceConnectConfig(AiEndpointPrivateServiceConnectConfigArgs.builder()
+ *                 .enablePrivateServiceConnect(true)
+ *                 .projectAllowlists(project.applyValue(getProjectResult -> getProjectResult.projectId()))
+ *                 .enableSecurePrivateServiceConnect(false)
+ *                 .build())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * ### Vertex Ai Endpoint Dedicated Endpoint + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.gcp.vertex.AiEndpoint;
+ * import com.pulumi.gcp.vertex.AiEndpointArgs;
+ * import com.pulumi.gcp.organizations.OrganizationsFunctions;
+ * import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var endpoint = new AiEndpoint("endpoint", AiEndpointArgs.builder()
+ *             .name("endpoint-name_8270")
+ *             .displayName("sample-endpoint")
+ *             .description("A sample vertex endpoint")
+ *             .location("us-central1")
+ *             .region("us-central1")
+ *             .labels(Map.of("label-one", "value-one"))
+ *             .dedicatedEndpointEnabled(true)
+ *             .build());
+ * 
+ *         final var project = OrganizationsFunctions.getProject();
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> * * ## Import * @@ -156,6 +276,34 @@ public class AiEndpoint extends com.pulumi.resources.CustomResource { public Output createTime() { return this.createTime; } + /** + * Output only. DNS of the dedicated endpoint. Will only be populated if dedicatedEndpointEnabled is true. Format: `https://{endpointId}.{region}-{projectNumber}.prediction.vertexai.goog`. + * + */ + @Export(name="dedicatedEndpointDns", refs={String.class}, tree="[0]") + private Output dedicatedEndpointDns; + + /** + * @return Output only. DNS of the dedicated endpoint. Will only be populated if dedicatedEndpointEnabled is true. Format: `https://{endpointId}.{region}-{projectNumber}.prediction.vertexai.goog`. + * + */ + public Output dedicatedEndpointDns() { + return this.dedicatedEndpointDns; + } + /** + * If true, the endpoint will be exposed through a dedicated DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS will be isolated from other users' traffic and will have better performance and reliability. Note: Once you enabled dedicated endpoint, you won't be able to send request to the shared DNS {region}-aiplatform.googleapis.com. The limitation will be removed soon. + * + */ + @Export(name="dedicatedEndpointEnabled", refs={Boolean.class}, tree="[0]") + private Output dedicatedEndpointEnabled; + + /** + * @return If true, the endpoint will be exposed through a dedicated DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS will be isolated from other users' traffic and will have better performance and reliability. Note: Once you enabled dedicated endpoint, you won't be able to send request to the shared DNS {region}-aiplatform.googleapis.com. The limitation will be removed soon. + * + */ + public Output> dedicatedEndpointEnabled() { + return Codegen.optional(this.dedicatedEndpointEnabled); + } /** * Output only. The models deployed in this Endpoint. To add or remove DeployedModels use EndpointService.DeployModel and EndpointService.UndeployModel respectively. Models can also be deployed and undeployed using the [Cloud Console](https://console.cloud.google.com/vertex-ai/). * Structure is documented below. @@ -309,19 +457,51 @@ public Output name() { return this.name; } /** - * The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. + * The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. Only one of the fields, `network` or `privateServiceConnectConfig`, can be set. * */ @Export(name="network", refs={String.class}, tree="[0]") private Output network; /** - * @return The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. + * @return The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. Only one of the fields, `network` or `privateServiceConnectConfig`, can be set. * */ public Output> network() { return Codegen.optional(this.network); } + /** + * Configures the request-response logging for online prediction. + * Structure is documented below. + * + */ + @Export(name="predictRequestResponseLoggingConfig", refs={AiEndpointPredictRequestResponseLoggingConfig.class}, tree="[0]") + private Output predictRequestResponseLoggingConfig; + + /** + * @return Configures the request-response logging for online prediction. + * Structure is documented below. + * + */ + public Output> predictRequestResponseLoggingConfig() { + return Codegen.optional(this.predictRequestResponseLoggingConfig); + } + /** + * Configuration for private service connect. `network` and `privateServiceConnectConfig` are mutually exclusive. + * Structure is documented below. + * + */ + @Export(name="privateServiceConnectConfig", refs={AiEndpointPrivateServiceConnectConfig.class}, tree="[0]") + private Output privateServiceConnectConfig; + + /** + * @return Configuration for private service connect. `network` and `privateServiceConnectConfig` are mutually exclusive. + * Structure is documented below. + * + */ + public Output> privateServiceConnectConfig() { + return Codegen.optional(this.privateServiceConnectConfig); + } /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. @@ -368,6 +548,32 @@ public Output> pulumiLabels() { public Output> region() { return Codegen.optional(this.region); } + /** + * A map from a DeployedModel's id to the percentage of this Endpoint's traffic that should be forwarded to that DeployedModel. + * If a DeployedModel's id is not listed in this map, then it receives no traffic. + * The traffic percentage values must add up to 100, or map must be empty if the Endpoint is to not accept any traffic at a moment. + * > **Note:** The `traffic_split` setting only applies after a model has been deployed to the endpoint. Re-applying a `gcp.vertex.AiEndpoint` + * resource without updating the `traffic_split` post-deployment may lead to your deployed `traffic_split` being lost; see + * the `deployModel` [example](https://cloud.google.com/vertex-ai/docs/general/deployment#deploy_a_model_to_an_endpoint) and + * [documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1beta1/projects.locations.endpoints/deployModel) for details. + * + */ + @Export(name="trafficSplit", refs={String.class}, tree="[0]") + private Output trafficSplit; + + /** + * @return A map from a DeployedModel's id to the percentage of this Endpoint's traffic that should be forwarded to that DeployedModel. + * If a DeployedModel's id is not listed in this map, then it receives no traffic. + * The traffic percentage values must add up to 100, or map must be empty if the Endpoint is to not accept any traffic at a moment. + * > **Note:** The `traffic_split` setting only applies after a model has been deployed to the endpoint. Re-applying a `gcp.vertex.AiEndpoint` + * resource without updating the `traffic_split` post-deployment may lead to your deployed `traffic_split` being lost; see + * the `deployModel` [example](https://cloud.google.com/vertex-ai/docs/general/deployment#deploy_a_model_to_an_endpoint) and + * [documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1beta1/projects.locations.endpoints/deployModel) for details. + * + */ + public Output> trafficSplit() { + return Codegen.optional(this.trafficSplit); + } /** * Output only. Timestamp when this Endpoint was last updated. * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiEndpointArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiEndpointArgs.java index da6a173f58..ef91a767ff 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiEndpointArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiEndpointArgs.java @@ -7,6 +7,9 @@ import com.pulumi.core.annotations.Import; import com.pulumi.exceptions.MissingRequiredPropertyException; import com.pulumi.gcp.vertex.inputs.AiEndpointEncryptionSpecArgs; +import com.pulumi.gcp.vertex.inputs.AiEndpointPredictRequestResponseLoggingConfigArgs; +import com.pulumi.gcp.vertex.inputs.AiEndpointPrivateServiceConnectConfigArgs; +import java.lang.Boolean; import java.lang.String; import java.util.Map; import java.util.Objects; @@ -18,6 +21,21 @@ public final class AiEndpointArgs extends com.pulumi.resources.ResourceArgs { public static final AiEndpointArgs Empty = new AiEndpointArgs(); + /** + * If true, the endpoint will be exposed through a dedicated DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS will be isolated from other users' traffic and will have better performance and reliability. Note: Once you enabled dedicated endpoint, you won't be able to send request to the shared DNS {region}-aiplatform.googleapis.com. The limitation will be removed soon. + * + */ + @Import(name="dedicatedEndpointEnabled") + private @Nullable Output dedicatedEndpointEnabled; + + /** + * @return If true, the endpoint will be exposed through a dedicated DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS will be isolated from other users' traffic and will have better performance and reliability. Note: Once you enabled dedicated endpoint, you won't be able to send request to the shared DNS {region}-aiplatform.googleapis.com. The limitation will be removed soon. + * + */ + public Optional> dedicatedEndpointEnabled() { + return Optional.ofNullable(this.dedicatedEndpointEnabled); + } + /** * The description of the Endpoint. * @@ -119,20 +137,54 @@ public Optional> name() { } /** - * The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. + * The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. Only one of the fields, `network` or `privateServiceConnectConfig`, can be set. * */ @Import(name="network") private @Nullable Output network; /** - * @return The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. + * @return The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. Only one of the fields, `network` or `privateServiceConnectConfig`, can be set. * */ public Optional> network() { return Optional.ofNullable(this.network); } + /** + * Configures the request-response logging for online prediction. + * Structure is documented below. + * + */ + @Import(name="predictRequestResponseLoggingConfig") + private @Nullable Output predictRequestResponseLoggingConfig; + + /** + * @return Configures the request-response logging for online prediction. + * Structure is documented below. + * + */ + public Optional> predictRequestResponseLoggingConfig() { + return Optional.ofNullable(this.predictRequestResponseLoggingConfig); + } + + /** + * Configuration for private service connect. `network` and `privateServiceConnectConfig` are mutually exclusive. + * Structure is documented below. + * + */ + @Import(name="privateServiceConnectConfig") + private @Nullable Output privateServiceConnectConfig; + + /** + * @return Configuration for private service connect. `network` and `privateServiceConnectConfig` are mutually exclusive. + * Structure is documented below. + * + */ + public Optional> privateServiceConnectConfig() { + return Optional.ofNullable(this.privateServiceConnectConfig); + } + /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. @@ -165,9 +217,37 @@ public Optional> region() { return Optional.ofNullable(this.region); } + /** + * A map from a DeployedModel's id to the percentage of this Endpoint's traffic that should be forwarded to that DeployedModel. + * If a DeployedModel's id is not listed in this map, then it receives no traffic. + * The traffic percentage values must add up to 100, or map must be empty if the Endpoint is to not accept any traffic at a moment. + * > **Note:** The `traffic_split` setting only applies after a model has been deployed to the endpoint. Re-applying a `gcp.vertex.AiEndpoint` + * resource without updating the `traffic_split` post-deployment may lead to your deployed `traffic_split` being lost; see + * the `deployModel` [example](https://cloud.google.com/vertex-ai/docs/general/deployment#deploy_a_model_to_an_endpoint) and + * [documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1beta1/projects.locations.endpoints/deployModel) for details. + * + */ + @Import(name="trafficSplit") + private @Nullable Output trafficSplit; + + /** + * @return A map from a DeployedModel's id to the percentage of this Endpoint's traffic that should be forwarded to that DeployedModel. + * If a DeployedModel's id is not listed in this map, then it receives no traffic. + * The traffic percentage values must add up to 100, or map must be empty if the Endpoint is to not accept any traffic at a moment. + * > **Note:** The `traffic_split` setting only applies after a model has been deployed to the endpoint. Re-applying a `gcp.vertex.AiEndpoint` + * resource without updating the `traffic_split` post-deployment may lead to your deployed `traffic_split` being lost; see + * the `deployModel` [example](https://cloud.google.com/vertex-ai/docs/general/deployment#deploy_a_model_to_an_endpoint) and + * [documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1beta1/projects.locations.endpoints/deployModel) for details. + * + */ + public Optional> trafficSplit() { + return Optional.ofNullable(this.trafficSplit); + } + private AiEndpointArgs() {} private AiEndpointArgs(AiEndpointArgs $) { + this.dedicatedEndpointEnabled = $.dedicatedEndpointEnabled; this.description = $.description; this.displayName = $.displayName; this.encryptionSpec = $.encryptionSpec; @@ -175,8 +255,11 @@ private AiEndpointArgs(AiEndpointArgs $) { this.location = $.location; this.name = $.name; this.network = $.network; + this.predictRequestResponseLoggingConfig = $.predictRequestResponseLoggingConfig; + this.privateServiceConnectConfig = $.privateServiceConnectConfig; this.project = $.project; this.region = $.region; + this.trafficSplit = $.trafficSplit; } public static Builder builder() { @@ -197,6 +280,27 @@ public Builder(AiEndpointArgs defaults) { $ = new AiEndpointArgs(Objects.requireNonNull(defaults)); } + /** + * @param dedicatedEndpointEnabled If true, the endpoint will be exposed through a dedicated DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS will be isolated from other users' traffic and will have better performance and reliability. Note: Once you enabled dedicated endpoint, you won't be able to send request to the shared DNS {region}-aiplatform.googleapis.com. The limitation will be removed soon. + * + * @return builder + * + */ + public Builder dedicatedEndpointEnabled(@Nullable Output dedicatedEndpointEnabled) { + $.dedicatedEndpointEnabled = dedicatedEndpointEnabled; + return this; + } + + /** + * @param dedicatedEndpointEnabled If true, the endpoint will be exposed through a dedicated DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS will be isolated from other users' traffic and will have better performance and reliability. Note: Once you enabled dedicated endpoint, you won't be able to send request to the shared DNS {region}-aiplatform.googleapis.com. The limitation will be removed soon. + * + * @return builder + * + */ + public Builder dedicatedEndpointEnabled(Boolean dedicatedEndpointEnabled) { + return dedicatedEndpointEnabled(Output.of(dedicatedEndpointEnabled)); + } + /** * @param description The description of the Endpoint. * @@ -334,7 +438,7 @@ public Builder name(String name) { } /** - * @param network The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. + * @param network The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. Only one of the fields, `network` or `privateServiceConnectConfig`, can be set. * * @return builder * @@ -345,7 +449,7 @@ public Builder network(@Nullable Output network) { } /** - * @param network The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. + * @param network The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. Only one of the fields, `network` or `privateServiceConnectConfig`, can be set. * * @return builder * @@ -354,6 +458,52 @@ public Builder network(String network) { return network(Output.of(network)); } + /** + * @param predictRequestResponseLoggingConfig Configures the request-response logging for online prediction. + * Structure is documented below. + * + * @return builder + * + */ + public Builder predictRequestResponseLoggingConfig(@Nullable Output predictRequestResponseLoggingConfig) { + $.predictRequestResponseLoggingConfig = predictRequestResponseLoggingConfig; + return this; + } + + /** + * @param predictRequestResponseLoggingConfig Configures the request-response logging for online prediction. + * Structure is documented below. + * + * @return builder + * + */ + public Builder predictRequestResponseLoggingConfig(AiEndpointPredictRequestResponseLoggingConfigArgs predictRequestResponseLoggingConfig) { + return predictRequestResponseLoggingConfig(Output.of(predictRequestResponseLoggingConfig)); + } + + /** + * @param privateServiceConnectConfig Configuration for private service connect. `network` and `privateServiceConnectConfig` are mutually exclusive. + * Structure is documented below. + * + * @return builder + * + */ + public Builder privateServiceConnectConfig(@Nullable Output privateServiceConnectConfig) { + $.privateServiceConnectConfig = privateServiceConnectConfig; + return this; + } + + /** + * @param privateServiceConnectConfig Configuration for private service connect. `network` and `privateServiceConnectConfig` are mutually exclusive. + * Structure is documented below. + * + * @return builder + * + */ + public Builder privateServiceConnectConfig(AiEndpointPrivateServiceConnectConfigArgs privateServiceConnectConfig) { + return privateServiceConnectConfig(Output.of(privateServiceConnectConfig)); + } + /** * @param project The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. @@ -398,6 +548,39 @@ public Builder region(String region) { return region(Output.of(region)); } + /** + * @param trafficSplit A map from a DeployedModel's id to the percentage of this Endpoint's traffic that should be forwarded to that DeployedModel. + * If a DeployedModel's id is not listed in this map, then it receives no traffic. + * The traffic percentage values must add up to 100, or map must be empty if the Endpoint is to not accept any traffic at a moment. + * > **Note:** The `traffic_split` setting only applies after a model has been deployed to the endpoint. Re-applying a `gcp.vertex.AiEndpoint` + * resource without updating the `traffic_split` post-deployment may lead to your deployed `traffic_split` being lost; see + * the `deployModel` [example](https://cloud.google.com/vertex-ai/docs/general/deployment#deploy_a_model_to_an_endpoint) and + * [documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1beta1/projects.locations.endpoints/deployModel) for details. + * + * @return builder + * + */ + public Builder trafficSplit(@Nullable Output trafficSplit) { + $.trafficSplit = trafficSplit; + return this; + } + + /** + * @param trafficSplit A map from a DeployedModel's id to the percentage of this Endpoint's traffic that should be forwarded to that DeployedModel. + * If a DeployedModel's id is not listed in this map, then it receives no traffic. + * The traffic percentage values must add up to 100, or map must be empty if the Endpoint is to not accept any traffic at a moment. + * > **Note:** The `traffic_split` setting only applies after a model has been deployed to the endpoint. Re-applying a `gcp.vertex.AiEndpoint` + * resource without updating the `traffic_split` post-deployment may lead to your deployed `traffic_split` being lost; see + * the `deployModel` [example](https://cloud.google.com/vertex-ai/docs/general/deployment#deploy_a_model_to_an_endpoint) and + * [documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1beta1/projects.locations.endpoints/deployModel) for details. + * + * @return builder + * + */ + public Builder trafficSplit(String trafficSplit) { + return trafficSplit(Output.of(trafficSplit)); + } + public AiEndpointArgs build() { if ($.displayName == null) { throw new MissingRequiredPropertyException("AiEndpointArgs", "displayName"); diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureOnlineStoreFeatureview.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureOnlineStoreFeatureview.java index 46661b061f..68be101850 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureOnlineStoreFeatureview.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureOnlineStoreFeatureview.java @@ -328,8 +328,8 @@ * final var testProject = OrganizationsFunctions.getProject(); * * var project = new Project("project", ProjectArgs.builder() - * .projectId("tf-test_69391") - * .name("tf-test_8270") + * .projectId("tf-test_41150") + * .name("tf-test_89313") * .orgId("123456789") * .billingAccount("000000-0000000-0000000-000000") * .deletionPolicy("DELETE") diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/inputs/AiEndpointPredictRequestResponseLoggingConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/inputs/AiEndpointPredictRequestResponseLoggingConfigArgs.java new file mode 100644 index 0000000000..00f9a6b723 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/inputs/AiEndpointPredictRequestResponseLoggingConfigArgs.java @@ -0,0 +1,163 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.vertex.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.vertex.inputs.AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs; +import java.lang.Boolean; +import java.lang.Double; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class AiEndpointPredictRequestResponseLoggingConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final AiEndpointPredictRequestResponseLoggingConfigArgs Empty = new AiEndpointPredictRequestResponseLoggingConfigArgs(); + + /** + * BigQuery table for logging. If only given a project, a new dataset will be created with name `logging_<endpoint-display-name>_<endpoint-id>` where will be made BigQuery-dataset-name compatible (e.g. most special characters will become underscores). If no table name is given, a new table will be created with name `request_response_logging` + * Structure is documented below. + * + */ + @Import(name="bigqueryDestination") + private @Nullable Output bigqueryDestination; + + /** + * @return BigQuery table for logging. If only given a project, a new dataset will be created with name `logging_<endpoint-display-name>_<endpoint-id>` where will be made BigQuery-dataset-name compatible (e.g. most special characters will become underscores). If no table name is given, a new table will be created with name `request_response_logging` + * Structure is documented below. + * + */ + public Optional> bigqueryDestination() { + return Optional.ofNullable(this.bigqueryDestination); + } + + /** + * If logging is enabled or not. + * + */ + @Import(name="enabled") + private @Nullable Output enabled; + + /** + * @return If logging is enabled or not. + * + */ + public Optional> enabled() { + return Optional.ofNullable(this.enabled); + } + + /** + * Percentage of requests to be logged, expressed as a fraction in range(0,1] + * + */ + @Import(name="samplingRate") + private @Nullable Output samplingRate; + + /** + * @return Percentage of requests to be logged, expressed as a fraction in range(0,1] + * + */ + public Optional> samplingRate() { + return Optional.ofNullable(this.samplingRate); + } + + private AiEndpointPredictRequestResponseLoggingConfigArgs() {} + + private AiEndpointPredictRequestResponseLoggingConfigArgs(AiEndpointPredictRequestResponseLoggingConfigArgs $) { + this.bigqueryDestination = $.bigqueryDestination; + this.enabled = $.enabled; + this.samplingRate = $.samplingRate; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AiEndpointPredictRequestResponseLoggingConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AiEndpointPredictRequestResponseLoggingConfigArgs $; + + public Builder() { + $ = new AiEndpointPredictRequestResponseLoggingConfigArgs(); + } + + public Builder(AiEndpointPredictRequestResponseLoggingConfigArgs defaults) { + $ = new AiEndpointPredictRequestResponseLoggingConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param bigqueryDestination BigQuery table for logging. If only given a project, a new dataset will be created with name `logging_<endpoint-display-name>_<endpoint-id>` where will be made BigQuery-dataset-name compatible (e.g. most special characters will become underscores). If no table name is given, a new table will be created with name `request_response_logging` + * Structure is documented below. + * + * @return builder + * + */ + public Builder bigqueryDestination(@Nullable Output bigqueryDestination) { + $.bigqueryDestination = bigqueryDestination; + return this; + } + + /** + * @param bigqueryDestination BigQuery table for logging. If only given a project, a new dataset will be created with name `logging_<endpoint-display-name>_<endpoint-id>` where will be made BigQuery-dataset-name compatible (e.g. most special characters will become underscores). If no table name is given, a new table will be created with name `request_response_logging` + * Structure is documented below. + * + * @return builder + * + */ + public Builder bigqueryDestination(AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs bigqueryDestination) { + return bigqueryDestination(Output.of(bigqueryDestination)); + } + + /** + * @param enabled If logging is enabled or not. + * + * @return builder + * + */ + public Builder enabled(@Nullable Output enabled) { + $.enabled = enabled; + return this; + } + + /** + * @param enabled If logging is enabled or not. + * + * @return builder + * + */ + public Builder enabled(Boolean enabled) { + return enabled(Output.of(enabled)); + } + + /** + * @param samplingRate Percentage of requests to be logged, expressed as a fraction in range(0,1] + * + * @return builder + * + */ + public Builder samplingRate(@Nullable Output samplingRate) { + $.samplingRate = samplingRate; + return this; + } + + /** + * @param samplingRate Percentage of requests to be logged, expressed as a fraction in range(0,1] + * + * @return builder + * + */ + public Builder samplingRate(Double samplingRate) { + return samplingRate(Output.of(samplingRate)); + } + + public AiEndpointPredictRequestResponseLoggingConfigArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/inputs/AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/inputs/AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs.java new file mode 100644 index 0000000000..0296546563 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/inputs/AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs.java @@ -0,0 +1,83 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.vertex.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs extends com.pulumi.resources.ResourceArgs { + + public static final AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs Empty = new AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs(); + + /** + * BigQuery URI to a project or table, up to 2000 characters long. When only the project is specified, the Dataset and Table is created. When the full table reference is specified, the Dataset must exist and table must not exist. Accepted forms: - BigQuery path. For example: `bq://projectId` or `bq://projectId.bqDatasetId` or `bq://projectId.bqDatasetId.bqTableId`. + * + */ + @Import(name="outputUri") + private @Nullable Output outputUri; + + /** + * @return BigQuery URI to a project or table, up to 2000 characters long. When only the project is specified, the Dataset and Table is created. When the full table reference is specified, the Dataset must exist and table must not exist. Accepted forms: - BigQuery path. For example: `bq://projectId` or `bq://projectId.bqDatasetId` or `bq://projectId.bqDatasetId.bqTableId`. + * + */ + public Optional> outputUri() { + return Optional.ofNullable(this.outputUri); + } + + private AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs() {} + + private AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs(AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs $) { + this.outputUri = $.outputUri; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs $; + + public Builder() { + $ = new AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs(); + } + + public Builder(AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs defaults) { + $ = new AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param outputUri BigQuery URI to a project or table, up to 2000 characters long. When only the project is specified, the Dataset and Table is created. When the full table reference is specified, the Dataset must exist and table must not exist. Accepted forms: - BigQuery path. For example: `bq://projectId` or `bq://projectId.bqDatasetId` or `bq://projectId.bqDatasetId.bqTableId`. + * + * @return builder + * + */ + public Builder outputUri(@Nullable Output outputUri) { + $.outputUri = outputUri; + return this; + } + + /** + * @param outputUri BigQuery URI to a project or table, up to 2000 characters long. When only the project is specified, the Dataset and Table is created. When the full table reference is specified, the Dataset must exist and table must not exist. Accepted forms: - BigQuery path. For example: `bq://projectId` or `bq://projectId.bqDatasetId` or `bq://projectId.bqDatasetId.bqTableId`. + * + * @return builder + * + */ + public Builder outputUri(String outputUri) { + return outputUri(Output.of(outputUri)); + } + + public AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/inputs/AiEndpointPrivateServiceConnectConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/inputs/AiEndpointPrivateServiceConnectConfigArgs.java new file mode 100644 index 0000000000..98357475a9 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/inputs/AiEndpointPrivateServiceConnectConfigArgs.java @@ -0,0 +1,173 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.vertex.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class AiEndpointPrivateServiceConnectConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final AiEndpointPrivateServiceConnectConfigArgs Empty = new AiEndpointPrivateServiceConnectConfigArgs(); + + /** + * Required. If true, expose the IndexEndpoint via private service connect. + * + */ + @Import(name="enablePrivateServiceConnect", required=true) + private Output enablePrivateServiceConnect; + + /** + * @return Required. If true, expose the IndexEndpoint via private service connect. + * + */ + public Output enablePrivateServiceConnect() { + return this.enablePrivateServiceConnect; + } + + /** + * If set to true, enable secure private service connect with IAM authorization. Otherwise, private service connect will be done without authorization. Note latency will be slightly increased if authorization is enabled. + * + */ + @Import(name="enableSecurePrivateServiceConnect") + private @Nullable Output enableSecurePrivateServiceConnect; + + /** + * @return If set to true, enable secure private service connect with IAM authorization. Otherwise, private service connect will be done without authorization. Note latency will be slightly increased if authorization is enabled. + * + */ + public Optional> enableSecurePrivateServiceConnect() { + return Optional.ofNullable(this.enableSecurePrivateServiceConnect); + } + + /** + * A list of Projects from which the forwarding rule will target the service attachment. + * + */ + @Import(name="projectAllowlists") + private @Nullable Output> projectAllowlists; + + /** + * @return A list of Projects from which the forwarding rule will target the service attachment. + * + */ + public Optional>> projectAllowlists() { + return Optional.ofNullable(this.projectAllowlists); + } + + private AiEndpointPrivateServiceConnectConfigArgs() {} + + private AiEndpointPrivateServiceConnectConfigArgs(AiEndpointPrivateServiceConnectConfigArgs $) { + this.enablePrivateServiceConnect = $.enablePrivateServiceConnect; + this.enableSecurePrivateServiceConnect = $.enableSecurePrivateServiceConnect; + this.projectAllowlists = $.projectAllowlists; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AiEndpointPrivateServiceConnectConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AiEndpointPrivateServiceConnectConfigArgs $; + + public Builder() { + $ = new AiEndpointPrivateServiceConnectConfigArgs(); + } + + public Builder(AiEndpointPrivateServiceConnectConfigArgs defaults) { + $ = new AiEndpointPrivateServiceConnectConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param enablePrivateServiceConnect Required. If true, expose the IndexEndpoint via private service connect. + * + * @return builder + * + */ + public Builder enablePrivateServiceConnect(Output enablePrivateServiceConnect) { + $.enablePrivateServiceConnect = enablePrivateServiceConnect; + return this; + } + + /** + * @param enablePrivateServiceConnect Required. If true, expose the IndexEndpoint via private service connect. + * + * @return builder + * + */ + public Builder enablePrivateServiceConnect(Boolean enablePrivateServiceConnect) { + return enablePrivateServiceConnect(Output.of(enablePrivateServiceConnect)); + } + + /** + * @param enableSecurePrivateServiceConnect If set to true, enable secure private service connect with IAM authorization. Otherwise, private service connect will be done without authorization. Note latency will be slightly increased if authorization is enabled. + * + * @return builder + * + */ + public Builder enableSecurePrivateServiceConnect(@Nullable Output enableSecurePrivateServiceConnect) { + $.enableSecurePrivateServiceConnect = enableSecurePrivateServiceConnect; + return this; + } + + /** + * @param enableSecurePrivateServiceConnect If set to true, enable secure private service connect with IAM authorization. Otherwise, private service connect will be done without authorization. Note latency will be slightly increased if authorization is enabled. + * + * @return builder + * + */ + public Builder enableSecurePrivateServiceConnect(Boolean enableSecurePrivateServiceConnect) { + return enableSecurePrivateServiceConnect(Output.of(enableSecurePrivateServiceConnect)); + } + + /** + * @param projectAllowlists A list of Projects from which the forwarding rule will target the service attachment. + * + * @return builder + * + */ + public Builder projectAllowlists(@Nullable Output> projectAllowlists) { + $.projectAllowlists = projectAllowlists; + return this; + } + + /** + * @param projectAllowlists A list of Projects from which the forwarding rule will target the service attachment. + * + * @return builder + * + */ + public Builder projectAllowlists(List projectAllowlists) { + return projectAllowlists(Output.of(projectAllowlists)); + } + + /** + * @param projectAllowlists A list of Projects from which the forwarding rule will target the service attachment. + * + * @return builder + * + */ + public Builder projectAllowlists(String... projectAllowlists) { + return projectAllowlists(List.of(projectAllowlists)); + } + + public AiEndpointPrivateServiceConnectConfigArgs build() { + if ($.enablePrivateServiceConnect == null) { + throw new MissingRequiredPropertyException("AiEndpointPrivateServiceConnectConfigArgs", "enablePrivateServiceConnect"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/inputs/AiEndpointState.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/inputs/AiEndpointState.java index 52dc87cae2..40d47aed04 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vertex/inputs/AiEndpointState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/inputs/AiEndpointState.java @@ -7,6 +7,9 @@ import com.pulumi.core.annotations.Import; import com.pulumi.gcp.vertex.inputs.AiEndpointDeployedModelArgs; import com.pulumi.gcp.vertex.inputs.AiEndpointEncryptionSpecArgs; +import com.pulumi.gcp.vertex.inputs.AiEndpointPredictRequestResponseLoggingConfigArgs; +import com.pulumi.gcp.vertex.inputs.AiEndpointPrivateServiceConnectConfigArgs; +import java.lang.Boolean; import java.lang.String; import java.util.List; import java.util.Map; @@ -36,6 +39,36 @@ public Optional> createTime() { return Optional.ofNullable(this.createTime); } + /** + * Output only. DNS of the dedicated endpoint. Will only be populated if dedicatedEndpointEnabled is true. Format: `https://{endpointId}.{region}-{projectNumber}.prediction.vertexai.goog`. + * + */ + @Import(name="dedicatedEndpointDns") + private @Nullable Output dedicatedEndpointDns; + + /** + * @return Output only. DNS of the dedicated endpoint. Will only be populated if dedicatedEndpointEnabled is true. Format: `https://{endpointId}.{region}-{projectNumber}.prediction.vertexai.goog`. + * + */ + public Optional> dedicatedEndpointDns() { + return Optional.ofNullable(this.dedicatedEndpointDns); + } + + /** + * If true, the endpoint will be exposed through a dedicated DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS will be isolated from other users' traffic and will have better performance and reliability. Note: Once you enabled dedicated endpoint, you won't be able to send request to the shared DNS {region}-aiplatform.googleapis.com. The limitation will be removed soon. + * + */ + @Import(name="dedicatedEndpointEnabled") + private @Nullable Output dedicatedEndpointEnabled; + + /** + * @return If true, the endpoint will be exposed through a dedicated DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS will be isolated from other users' traffic and will have better performance and reliability. Note: Once you enabled dedicated endpoint, you won't be able to send request to the shared DNS {region}-aiplatform.googleapis.com. The limitation will be removed soon. + * + */ + public Optional> dedicatedEndpointEnabled() { + return Optional.ofNullable(this.dedicatedEndpointEnabled); + } + /** * Output only. The models deployed in this Endpoint. To add or remove DeployedModels use EndpointService.DeployModel and EndpointService.UndeployModel respectively. Models can also be deployed and undeployed using the [Cloud Console](https://console.cloud.google.com/vertex-ai/). * Structure is documented below. @@ -199,20 +232,54 @@ public Optional> name() { } /** - * The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. + * The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. Only one of the fields, `network` or `privateServiceConnectConfig`, can be set. * */ @Import(name="network") private @Nullable Output network; /** - * @return The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. + * @return The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. Only one of the fields, `network` or `privateServiceConnectConfig`, can be set. * */ public Optional> network() { return Optional.ofNullable(this.network); } + /** + * Configures the request-response logging for online prediction. + * Structure is documented below. + * + */ + @Import(name="predictRequestResponseLoggingConfig") + private @Nullable Output predictRequestResponseLoggingConfig; + + /** + * @return Configures the request-response logging for online prediction. + * Structure is documented below. + * + */ + public Optional> predictRequestResponseLoggingConfig() { + return Optional.ofNullable(this.predictRequestResponseLoggingConfig); + } + + /** + * Configuration for private service connect. `network` and `privateServiceConnectConfig` are mutually exclusive. + * Structure is documented below. + * + */ + @Import(name="privateServiceConnectConfig") + private @Nullable Output privateServiceConnectConfig; + + /** + * @return Configuration for private service connect. `network` and `privateServiceConnectConfig` are mutually exclusive. + * Structure is documented below. + * + */ + public Optional> privateServiceConnectConfig() { + return Optional.ofNullable(this.privateServiceConnectConfig); + } + /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. @@ -262,6 +329,33 @@ public Optional> region() { return Optional.ofNullable(this.region); } + /** + * A map from a DeployedModel's id to the percentage of this Endpoint's traffic that should be forwarded to that DeployedModel. + * If a DeployedModel's id is not listed in this map, then it receives no traffic. + * The traffic percentage values must add up to 100, or map must be empty if the Endpoint is to not accept any traffic at a moment. + * > **Note:** The `traffic_split` setting only applies after a model has been deployed to the endpoint. Re-applying a `gcp.vertex.AiEndpoint` + * resource without updating the `traffic_split` post-deployment may lead to your deployed `traffic_split` being lost; see + * the `deployModel` [example](https://cloud.google.com/vertex-ai/docs/general/deployment#deploy_a_model_to_an_endpoint) and + * [documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1beta1/projects.locations.endpoints/deployModel) for details. + * + */ + @Import(name="trafficSplit") + private @Nullable Output trafficSplit; + + /** + * @return A map from a DeployedModel's id to the percentage of this Endpoint's traffic that should be forwarded to that DeployedModel. + * If a DeployedModel's id is not listed in this map, then it receives no traffic. + * The traffic percentage values must add up to 100, or map must be empty if the Endpoint is to not accept any traffic at a moment. + * > **Note:** The `traffic_split` setting only applies after a model has been deployed to the endpoint. Re-applying a `gcp.vertex.AiEndpoint` + * resource without updating the `traffic_split` post-deployment may lead to your deployed `traffic_split` being lost; see + * the `deployModel` [example](https://cloud.google.com/vertex-ai/docs/general/deployment#deploy_a_model_to_an_endpoint) and + * [documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1beta1/projects.locations.endpoints/deployModel) for details. + * + */ + public Optional> trafficSplit() { + return Optional.ofNullable(this.trafficSplit); + } + /** * Output only. Timestamp when this Endpoint was last updated. * @@ -281,6 +375,8 @@ private AiEndpointState() {} private AiEndpointState(AiEndpointState $) { this.createTime = $.createTime; + this.dedicatedEndpointDns = $.dedicatedEndpointDns; + this.dedicatedEndpointEnabled = $.dedicatedEndpointEnabled; this.deployedModels = $.deployedModels; this.description = $.description; this.displayName = $.displayName; @@ -292,9 +388,12 @@ private AiEndpointState(AiEndpointState $) { this.modelDeploymentMonitoringJob = $.modelDeploymentMonitoringJob; this.name = $.name; this.network = $.network; + this.predictRequestResponseLoggingConfig = $.predictRequestResponseLoggingConfig; + this.privateServiceConnectConfig = $.privateServiceConnectConfig; this.project = $.project; this.pulumiLabels = $.pulumiLabels; this.region = $.region; + this.trafficSplit = $.trafficSplit; this.updateTime = $.updateTime; } @@ -339,6 +438,48 @@ public Builder createTime(String createTime) { return createTime(Output.of(createTime)); } + /** + * @param dedicatedEndpointDns Output only. DNS of the dedicated endpoint. Will only be populated if dedicatedEndpointEnabled is true. Format: `https://{endpointId}.{region}-{projectNumber}.prediction.vertexai.goog`. + * + * @return builder + * + */ + public Builder dedicatedEndpointDns(@Nullable Output dedicatedEndpointDns) { + $.dedicatedEndpointDns = dedicatedEndpointDns; + return this; + } + + /** + * @param dedicatedEndpointDns Output only. DNS of the dedicated endpoint. Will only be populated if dedicatedEndpointEnabled is true. Format: `https://{endpointId}.{region}-{projectNumber}.prediction.vertexai.goog`. + * + * @return builder + * + */ + public Builder dedicatedEndpointDns(String dedicatedEndpointDns) { + return dedicatedEndpointDns(Output.of(dedicatedEndpointDns)); + } + + /** + * @param dedicatedEndpointEnabled If true, the endpoint will be exposed through a dedicated DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS will be isolated from other users' traffic and will have better performance and reliability. Note: Once you enabled dedicated endpoint, you won't be able to send request to the shared DNS {region}-aiplatform.googleapis.com. The limitation will be removed soon. + * + * @return builder + * + */ + public Builder dedicatedEndpointEnabled(@Nullable Output dedicatedEndpointEnabled) { + $.dedicatedEndpointEnabled = dedicatedEndpointEnabled; + return this; + } + + /** + * @param dedicatedEndpointEnabled If true, the endpoint will be exposed through a dedicated DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS will be isolated from other users' traffic and will have better performance and reliability. Note: Once you enabled dedicated endpoint, you won't be able to send request to the shared DNS {region}-aiplatform.googleapis.com. The limitation will be removed soon. + * + * @return builder + * + */ + public Builder dedicatedEndpointEnabled(Boolean dedicatedEndpointEnabled) { + return dedicatedEndpointEnabled(Output.of(dedicatedEndpointEnabled)); + } + /** * @param deployedModels Output only. The models deployed in this Endpoint. To add or remove DeployedModels use EndpointService.DeployModel and EndpointService.UndeployModel respectively. Models can also be deployed and undeployed using the [Cloud Console](https://console.cloud.google.com/vertex-ai/). * Structure is documented below. @@ -573,7 +714,7 @@ public Builder name(String name) { } /** - * @param network The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. + * @param network The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. Only one of the fields, `network` or `privateServiceConnectConfig`, can be set. * * @return builder * @@ -584,7 +725,7 @@ public Builder network(@Nullable Output network) { } /** - * @param network The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. + * @param network The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. Only one of the fields, `network` or `privateServiceConnectConfig`, can be set. * * @return builder * @@ -593,6 +734,52 @@ public Builder network(String network) { return network(Output.of(network)); } + /** + * @param predictRequestResponseLoggingConfig Configures the request-response logging for online prediction. + * Structure is documented below. + * + * @return builder + * + */ + public Builder predictRequestResponseLoggingConfig(@Nullable Output predictRequestResponseLoggingConfig) { + $.predictRequestResponseLoggingConfig = predictRequestResponseLoggingConfig; + return this; + } + + /** + * @param predictRequestResponseLoggingConfig Configures the request-response logging for online prediction. + * Structure is documented below. + * + * @return builder + * + */ + public Builder predictRequestResponseLoggingConfig(AiEndpointPredictRequestResponseLoggingConfigArgs predictRequestResponseLoggingConfig) { + return predictRequestResponseLoggingConfig(Output.of(predictRequestResponseLoggingConfig)); + } + + /** + * @param privateServiceConnectConfig Configuration for private service connect. `network` and `privateServiceConnectConfig` are mutually exclusive. + * Structure is documented below. + * + * @return builder + * + */ + public Builder privateServiceConnectConfig(@Nullable Output privateServiceConnectConfig) { + $.privateServiceConnectConfig = privateServiceConnectConfig; + return this; + } + + /** + * @param privateServiceConnectConfig Configuration for private service connect. `network` and `privateServiceConnectConfig` are mutually exclusive. + * Structure is documented below. + * + * @return builder + * + */ + public Builder privateServiceConnectConfig(AiEndpointPrivateServiceConnectConfigArgs privateServiceConnectConfig) { + return privateServiceConnectConfig(Output.of(privateServiceConnectConfig)); + } + /** * @param project The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. @@ -660,6 +847,39 @@ public Builder region(String region) { return region(Output.of(region)); } + /** + * @param trafficSplit A map from a DeployedModel's id to the percentage of this Endpoint's traffic that should be forwarded to that DeployedModel. + * If a DeployedModel's id is not listed in this map, then it receives no traffic. + * The traffic percentage values must add up to 100, or map must be empty if the Endpoint is to not accept any traffic at a moment. + * > **Note:** The `traffic_split` setting only applies after a model has been deployed to the endpoint. Re-applying a `gcp.vertex.AiEndpoint` + * resource without updating the `traffic_split` post-deployment may lead to your deployed `traffic_split` being lost; see + * the `deployModel` [example](https://cloud.google.com/vertex-ai/docs/general/deployment#deploy_a_model_to_an_endpoint) and + * [documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1beta1/projects.locations.endpoints/deployModel) for details. + * + * @return builder + * + */ + public Builder trafficSplit(@Nullable Output trafficSplit) { + $.trafficSplit = trafficSplit; + return this; + } + + /** + * @param trafficSplit A map from a DeployedModel's id to the percentage of this Endpoint's traffic that should be forwarded to that DeployedModel. + * If a DeployedModel's id is not listed in this map, then it receives no traffic. + * The traffic percentage values must add up to 100, or map must be empty if the Endpoint is to not accept any traffic at a moment. + * > **Note:** The `traffic_split` setting only applies after a model has been deployed to the endpoint. Re-applying a `gcp.vertex.AiEndpoint` + * resource without updating the `traffic_split` post-deployment may lead to your deployed `traffic_split` being lost; see + * the `deployModel` [example](https://cloud.google.com/vertex-ai/docs/general/deployment#deploy_a_model_to_an_endpoint) and + * [documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1beta1/projects.locations.endpoints/deployModel) for details. + * + * @return builder + * + */ + public Builder trafficSplit(String trafficSplit) { + return trafficSplit(Output.of(trafficSplit)); + } + /** * @param updateTime Output only. Timestamp when this Endpoint was last updated. * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/outputs/AiEndpointPredictRequestResponseLoggingConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/outputs/AiEndpointPredictRequestResponseLoggingConfig.java new file mode 100644 index 0000000000..fe9224ba10 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/outputs/AiEndpointPredictRequestResponseLoggingConfig.java @@ -0,0 +1,103 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.vertex.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.vertex.outputs.AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination; +import java.lang.Boolean; +import java.lang.Double; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class AiEndpointPredictRequestResponseLoggingConfig { + /** + * @return BigQuery table for logging. If only given a project, a new dataset will be created with name `logging_<endpoint-display-name>_<endpoint-id>` where will be made BigQuery-dataset-name compatible (e.g. most special characters will become underscores). If no table name is given, a new table will be created with name `request_response_logging` + * Structure is documented below. + * + */ + private @Nullable AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination bigqueryDestination; + /** + * @return If logging is enabled or not. + * + */ + private @Nullable Boolean enabled; + /** + * @return Percentage of requests to be logged, expressed as a fraction in range(0,1] + * + */ + private @Nullable Double samplingRate; + + private AiEndpointPredictRequestResponseLoggingConfig() {} + /** + * @return BigQuery table for logging. If only given a project, a new dataset will be created with name `logging_<endpoint-display-name>_<endpoint-id>` where will be made BigQuery-dataset-name compatible (e.g. most special characters will become underscores). If no table name is given, a new table will be created with name `request_response_logging` + * Structure is documented below. + * + */ + public Optional bigqueryDestination() { + return Optional.ofNullable(this.bigqueryDestination); + } + /** + * @return If logging is enabled or not. + * + */ + public Optional enabled() { + return Optional.ofNullable(this.enabled); + } + /** + * @return Percentage of requests to be logged, expressed as a fraction in range(0,1] + * + */ + public Optional samplingRate() { + return Optional.ofNullable(this.samplingRate); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(AiEndpointPredictRequestResponseLoggingConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination bigqueryDestination; + private @Nullable Boolean enabled; + private @Nullable Double samplingRate; + public Builder() {} + public Builder(AiEndpointPredictRequestResponseLoggingConfig defaults) { + Objects.requireNonNull(defaults); + this.bigqueryDestination = defaults.bigqueryDestination; + this.enabled = defaults.enabled; + this.samplingRate = defaults.samplingRate; + } + + @CustomType.Setter + public Builder bigqueryDestination(@Nullable AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination bigqueryDestination) { + + this.bigqueryDestination = bigqueryDestination; + return this; + } + @CustomType.Setter + public Builder enabled(@Nullable Boolean enabled) { + + this.enabled = enabled; + return this; + } + @CustomType.Setter + public Builder samplingRate(@Nullable Double samplingRate) { + + this.samplingRate = samplingRate; + return this; + } + public AiEndpointPredictRequestResponseLoggingConfig build() { + final var _resultValue = new AiEndpointPredictRequestResponseLoggingConfig(); + _resultValue.bigqueryDestination = bigqueryDestination; + _resultValue.enabled = enabled; + _resultValue.samplingRate = samplingRate; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/outputs/AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/outputs/AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination.java new file mode 100644 index 0000000000..0f6d46363d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/outputs/AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination.java @@ -0,0 +1,57 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.vertex.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination { + /** + * @return BigQuery URI to a project or table, up to 2000 characters long. When only the project is specified, the Dataset and Table is created. When the full table reference is specified, the Dataset must exist and table must not exist. Accepted forms: - BigQuery path. For example: `bq://projectId` or `bq://projectId.bqDatasetId` or `bq://projectId.bqDatasetId.bqTableId`. + * + */ + private @Nullable String outputUri; + + private AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination() {} + /** + * @return BigQuery URI to a project or table, up to 2000 characters long. When only the project is specified, the Dataset and Table is created. When the full table reference is specified, the Dataset must exist and table must not exist. Accepted forms: - BigQuery path. For example: `bq://projectId` or `bq://projectId.bqDatasetId` or `bq://projectId.bqDatasetId.bqTableId`. + * + */ + public Optional outputUri() { + return Optional.ofNullable(this.outputUri); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String outputUri; + public Builder() {} + public Builder(AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination defaults) { + Objects.requireNonNull(defaults); + this.outputUri = defaults.outputUri; + } + + @CustomType.Setter + public Builder outputUri(@Nullable String outputUri) { + + this.outputUri = outputUri; + return this; + } + public AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination build() { + final var _resultValue = new AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination(); + _resultValue.outputUri = outputUri; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/outputs/AiEndpointPrivateServiceConnectConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/outputs/AiEndpointPrivateServiceConnectConfig.java new file mode 100644 index 0000000000..496a1f7d4d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/outputs/AiEndpointPrivateServiceConnectConfig.java @@ -0,0 +1,107 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.vertex.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class AiEndpointPrivateServiceConnectConfig { + /** + * @return Required. If true, expose the IndexEndpoint via private service connect. + * + */ + private Boolean enablePrivateServiceConnect; + /** + * @return If set to true, enable secure private service connect with IAM authorization. Otherwise, private service connect will be done without authorization. Note latency will be slightly increased if authorization is enabled. + * + */ + private @Nullable Boolean enableSecurePrivateServiceConnect; + /** + * @return A list of Projects from which the forwarding rule will target the service attachment. + * + */ + private @Nullable List projectAllowlists; + + private AiEndpointPrivateServiceConnectConfig() {} + /** + * @return Required. If true, expose the IndexEndpoint via private service connect. + * + */ + public Boolean enablePrivateServiceConnect() { + return this.enablePrivateServiceConnect; + } + /** + * @return If set to true, enable secure private service connect with IAM authorization. Otherwise, private service connect will be done without authorization. Note latency will be slightly increased if authorization is enabled. + * + */ + public Optional enableSecurePrivateServiceConnect() { + return Optional.ofNullable(this.enableSecurePrivateServiceConnect); + } + /** + * @return A list of Projects from which the forwarding rule will target the service attachment. + * + */ + public List projectAllowlists() { + return this.projectAllowlists == null ? List.of() : this.projectAllowlists; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(AiEndpointPrivateServiceConnectConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private Boolean enablePrivateServiceConnect; + private @Nullable Boolean enableSecurePrivateServiceConnect; + private @Nullable List projectAllowlists; + public Builder() {} + public Builder(AiEndpointPrivateServiceConnectConfig defaults) { + Objects.requireNonNull(defaults); + this.enablePrivateServiceConnect = defaults.enablePrivateServiceConnect; + this.enableSecurePrivateServiceConnect = defaults.enableSecurePrivateServiceConnect; + this.projectAllowlists = defaults.projectAllowlists; + } + + @CustomType.Setter + public Builder enablePrivateServiceConnect(Boolean enablePrivateServiceConnect) { + if (enablePrivateServiceConnect == null) { + throw new MissingRequiredPropertyException("AiEndpointPrivateServiceConnectConfig", "enablePrivateServiceConnect"); + } + this.enablePrivateServiceConnect = enablePrivateServiceConnect; + return this; + } + @CustomType.Setter + public Builder enableSecurePrivateServiceConnect(@Nullable Boolean enableSecurePrivateServiceConnect) { + + this.enableSecurePrivateServiceConnect = enableSecurePrivateServiceConnect; + return this; + } + @CustomType.Setter + public Builder projectAllowlists(@Nullable List projectAllowlists) { + + this.projectAllowlists = projectAllowlists; + return this; + } + public Builder projectAllowlists(String... projectAllowlists) { + return projectAllowlists(List.of(projectAllowlists)); + } + public AiEndpointPrivateServiceConnectConfig build() { + final var _resultValue = new AiEndpointPrivateServiceConnectConfig(); + _resultValue.enablePrivateServiceConnect = enablePrivateServiceConnect; + _resultValue.enableSecurePrivateServiceConnect = enableSecurePrivateServiceConnect; + _resultValue.projectAllowlists = projectAllowlists; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/workbench/Instance.java b/sdk/java/src/main/java/com/pulumi/gcp/workbench/Instance.java index 7403b77d0e..90dc130252 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/workbench/Instance.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/workbench/Instance.java @@ -481,7 +481,9 @@ public Output> instanceId() { /** * 'Optional. Input only. The owner of this instance after creation. Format: * `alias{@literal @}example.com` Currently supports one owner only. If not specified, all of - * the service account users of your VM instance''s service account can use the instance.' + * the service account users of your VM instance''s service account can use the instance. + * If specified, sets the access mode to `Single user`. For more details, see + * https://cloud.google.com/vertex-ai/docs/workbench/instances/manage-access-jupyterlab' * */ @Export(name="instanceOwners", refs={List.class,String.class}, tree="[0,1]") @@ -490,7 +492,9 @@ public Output> instanceId() { /** * @return 'Optional. Input only. The owner of this instance after creation. Format: * `alias{@literal @}example.com` Currently supports one owner only. If not specified, all of - * the service account users of your VM instance''s service account can use the instance.' + * the service account users of your VM instance''s service account can use the instance. + * If specified, sets the access mode to `Single user`. For more details, see + * https://cloud.google.com/vertex-ai/docs/workbench/instances/manage-access-jupyterlab' * */ public Output>> instanceOwners() { diff --git a/sdk/java/src/main/java/com/pulumi/gcp/workbench/InstanceArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/workbench/InstanceArgs.java index 73446c2754..cfff1c962f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/workbench/InstanceArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/workbench/InstanceArgs.java @@ -85,7 +85,9 @@ public Optional> instanceId() { /** * 'Optional. Input only. The owner of this instance after creation. Format: * `alias{@literal @}example.com` Currently supports one owner only. If not specified, all of - * the service account users of your VM instance''s service account can use the instance.' + * the service account users of your VM instance''s service account can use the instance. + * If specified, sets the access mode to `Single user`. For more details, see + * https://cloud.google.com/vertex-ai/docs/workbench/instances/manage-access-jupyterlab' * */ @Import(name="instanceOwners") @@ -94,7 +96,9 @@ public Optional> instanceId() { /** * @return 'Optional. Input only. The owner of this instance after creation. Format: * `alias{@literal @}example.com` Currently supports one owner only. If not specified, all of - * the service account users of your VM instance''s service account can use the instance.' + * the service account users of your VM instance''s service account can use the instance. + * If specified, sets the access mode to `Single user`. For more details, see + * https://cloud.google.com/vertex-ai/docs/workbench/instances/manage-access-jupyterlab' * */ public Optional>> instanceOwners() { @@ -296,7 +300,9 @@ public Builder instanceId(String instanceId) { /** * @param instanceOwners 'Optional. Input only. The owner of this instance after creation. Format: * `alias{@literal @}example.com` Currently supports one owner only. If not specified, all of - * the service account users of your VM instance''s service account can use the instance.' + * the service account users of your VM instance''s service account can use the instance. + * If specified, sets the access mode to `Single user`. For more details, see + * https://cloud.google.com/vertex-ai/docs/workbench/instances/manage-access-jupyterlab' * * @return builder * @@ -309,7 +315,9 @@ public Builder instanceOwners(@Nullable Output> instanceOwners) { /** * @param instanceOwners 'Optional. Input only. The owner of this instance after creation. Format: * `alias{@literal @}example.com` Currently supports one owner only. If not specified, all of - * the service account users of your VM instance''s service account can use the instance.' + * the service account users of your VM instance''s service account can use the instance. + * If specified, sets the access mode to `Single user`. For more details, see + * https://cloud.google.com/vertex-ai/docs/workbench/instances/manage-access-jupyterlab' * * @return builder * @@ -321,7 +329,9 @@ public Builder instanceOwners(List instanceOwners) { /** * @param instanceOwners 'Optional. Input only. The owner of this instance after creation. Format: * `alias{@literal @}example.com` Currently supports one owner only. If not specified, all of - * the service account users of your VM instance''s service account can use the instance.' + * the service account users of your VM instance''s service account can use the instance. + * If specified, sets the access mode to `Single user`. For more details, see + * https://cloud.google.com/vertex-ai/docs/workbench/instances/manage-access-jupyterlab' * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/workbench/inputs/InstanceState.java b/sdk/java/src/main/java/com/pulumi/gcp/workbench/inputs/InstanceState.java index a014b6ddc2..2448ab533a 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/workbench/inputs/InstanceState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/workbench/inputs/InstanceState.java @@ -167,7 +167,9 @@ public Optional> instanceId() { /** * 'Optional. Input only. The owner of this instance after creation. Format: * `alias{@literal @}example.com` Currently supports one owner only. If not specified, all of - * the service account users of your VM instance''s service account can use the instance.' + * the service account users of your VM instance''s service account can use the instance. + * If specified, sets the access mode to `Single user`. For more details, see + * https://cloud.google.com/vertex-ai/docs/workbench/instances/manage-access-jupyterlab' * */ @Import(name="instanceOwners") @@ -176,7 +178,9 @@ public Optional> instanceId() { /** * @return 'Optional. Input only. The owner of this instance after creation. Format: * `alias{@literal @}example.com` Currently supports one owner only. If not specified, all of - * the service account users of your VM instance''s service account can use the instance.' + * the service account users of your VM instance''s service account can use the instance. + * If specified, sets the access mode to `Single user`. For more details, see + * https://cloud.google.com/vertex-ai/docs/workbench/instances/manage-access-jupyterlab' * */ public Optional>> instanceOwners() { @@ -594,7 +598,9 @@ public Builder instanceId(String instanceId) { /** * @param instanceOwners 'Optional. Input only. The owner of this instance after creation. Format: * `alias{@literal @}example.com` Currently supports one owner only. If not specified, all of - * the service account users of your VM instance''s service account can use the instance.' + * the service account users of your VM instance''s service account can use the instance. + * If specified, sets the access mode to `Single user`. For more details, see + * https://cloud.google.com/vertex-ai/docs/workbench/instances/manage-access-jupyterlab' * * @return builder * @@ -607,7 +613,9 @@ public Builder instanceOwners(@Nullable Output> instanceOwners) { /** * @param instanceOwners 'Optional. Input only. The owner of this instance after creation. Format: * `alias{@literal @}example.com` Currently supports one owner only. If not specified, all of - * the service account users of your VM instance''s service account can use the instance.' + * the service account users of your VM instance''s service account can use the instance. + * If specified, sets the access mode to `Single user`. For more details, see + * https://cloud.google.com/vertex-ai/docs/workbench/instances/manage-access-jupyterlab' * * @return builder * @@ -619,7 +627,9 @@ public Builder instanceOwners(List instanceOwners) { /** * @param instanceOwners 'Optional. Input only. The owner of this instance after creation. Format: * `alias{@literal @}example.com` Currently supports one owner only. If not specified, all of - * the service account users of your VM instance''s service account can use the instance.' + * the service account users of your VM instance''s service account can use the instance. + * If specified, sets the access mode to `Single user`. For more details, see + * https://cloud.google.com/vertex-ai/docs/workbench/instances/manage-access-jupyterlab' * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/workflows/Workflow.java b/sdk/java/src/main/java/com/pulumi/gcp/workflows/Workflow.java index 487259c128..0f4bbb4c04 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/workflows/Workflow.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/workflows/Workflow.java @@ -10,6 +10,7 @@ import com.pulumi.gcp.Utilities; import com.pulumi.gcp.workflows.WorkflowArgs; import com.pulumi.gcp.workflows.inputs.WorkflowState; +import java.lang.Boolean; import java.lang.String; import java.util.List; import java.util.Map; @@ -67,6 +68,7 @@ * .callLogLevel("LOG_ERRORS_ONLY") * .labels(Map.of("env", "test")) * .userEnvVars(Map.of("url", "https://timeapi.io/api/Time/current/zone?timeZone=Europe/Amsterdam")) + * .deletionProtection(false) * .sourceContents(""" * # This is a sample workflow. You can replace it with your source code. * # @@ -160,6 +162,12 @@ public Output createTime() { public Output> cryptoKeyName() { return Codegen.optional(this.cryptoKeyName); } + @Export(name="deletionProtection", refs={Boolean.class}, tree="[0]") + private Output deletionProtection; + + public Output> deletionProtection() { + return Codegen.optional(this.deletionProtection); + } /** * Description of the workflow provided by the user. Must be at most 1000 unicode characters long. * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/workflows/WorkflowArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/workflows/WorkflowArgs.java index 2793618c72..9083bc3b5f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/workflows/WorkflowArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/workflows/WorkflowArgs.java @@ -5,6 +5,7 @@ import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; +import java.lang.Boolean; import java.lang.String; import java.util.Map; import java.util.Objects; @@ -54,6 +55,13 @@ public Optional> cryptoKeyName() { return Optional.ofNullable(this.cryptoKeyName); } + @Import(name="deletionProtection") + private @Nullable Output deletionProtection; + + public Optional> deletionProtection() { + return Optional.ofNullable(this.deletionProtection); + } + /** * Description of the workflow provided by the user. Must be at most 1000 unicode characters long. * @@ -216,6 +224,7 @@ private WorkflowArgs() {} private WorkflowArgs(WorkflowArgs $) { this.callLogLevel = $.callLogLevel; this.cryptoKeyName = $.cryptoKeyName; + this.deletionProtection = $.deletionProtection; this.description = $.description; this.labels = $.labels; this.name = $.name; @@ -295,6 +304,15 @@ public Builder cryptoKeyName(String cryptoKeyName) { return cryptoKeyName(Output.of(cryptoKeyName)); } + public Builder deletionProtection(@Nullable Output deletionProtection) { + $.deletionProtection = deletionProtection; + return this; + } + + public Builder deletionProtection(Boolean deletionProtection) { + return deletionProtection(Output.of(deletionProtection)); + } + /** * @param description Description of the workflow provided by the user. Must be at most 1000 unicode characters long. * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/workflows/inputs/WorkflowState.java b/sdk/java/src/main/java/com/pulumi/gcp/workflows/inputs/WorkflowState.java index 669811e769..a800482175 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/workflows/inputs/WorkflowState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/workflows/inputs/WorkflowState.java @@ -5,6 +5,7 @@ import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; +import java.lang.Boolean; import java.lang.String; import java.util.Map; import java.util.Objects; @@ -69,6 +70,13 @@ public Optional> cryptoKeyName() { return Optional.ofNullable(this.cryptoKeyName); } + @Import(name="deletionProtection") + private @Nullable Output deletionProtection; + + public Optional> deletionProtection() { + return Optional.ofNullable(this.deletionProtection); + } + /** * Description of the workflow provided by the user. Must be at most 1000 unicode characters long. * @@ -309,6 +317,7 @@ private WorkflowState(WorkflowState $) { this.callLogLevel = $.callLogLevel; this.createTime = $.createTime; this.cryptoKeyName = $.cryptoKeyName; + this.deletionProtection = $.deletionProtection; this.description = $.description; this.effectiveLabels = $.effectiveLabels; this.labels = $.labels; @@ -414,6 +423,15 @@ public Builder cryptoKeyName(String cryptoKeyName) { return cryptoKeyName(Output.of(cryptoKeyName)); } + public Builder deletionProtection(@Nullable Output deletionProtection) { + $.deletionProtection = deletionProtection; + return this; + } + + public Builder deletionProtection(Boolean deletionProtection) { + return deletionProtection(Output.of(deletionProtection)); + } + /** * @param description Description of the workflow provided by the user. Must be at most 1000 unicode characters long. * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationConfig.java index 52cab038d1..e50f239f27 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationConfig.java @@ -72,7 +72,7 @@ * .build()); * * var tagValue1 = new TagValue("tagValue1", TagValueArgs.builder() - * .parent(tagKey1.name().applyValue(name -> String.format("tagKeys/%s", name))) + * .parent(tagKey1.id()) * .shortName("valuename") * .build()); * @@ -115,10 +115,10 @@ * .bootDiskSizeGb(35) * .disablePublicIpAddresses(true) * .disableSsh(false) - * .vmTags(Output.tuple(tagKey1.name(), tagValue1.name()).applyValue(values -> { - * var tagKey1Name = values.t1; - * var tagValue1Name = values.t2; - * return Map.of(String.format("tagKeys/%s", tagKey1Name), String.format("tagValues/%s", tagValue1Name)); + * .vmTags(Output.tuple(tagKey1.id(), tagValue1.id()).applyValue(values -> { + * var tagKey1Id = values.t1; + * var tagValue1Id = values.t2; + * return Map.of(tagKey1Id, tagValue1Id); * })) * .build()) * .build()) diff --git a/sdk/nodejs/activedirectory/domain.ts b/sdk/nodejs/activedirectory/domain.ts index 03c55785fc..8029d848e8 100644 --- a/sdk/nodejs/activedirectory/domain.ts +++ b/sdk/nodejs/activedirectory/domain.ts @@ -33,11 +33,23 @@ import * as utilities from "../utilities"; * * Domain can be imported using any of these accepted formats: * + * * `{{project}}/{{name}}` + * + * * `{{project}} {{name}}` + * * * `{{name}}` * * When using the `pulumi import` command, Domain can be imported using one of the formats above. For example: * * ```sh + * $ pulumi import gcp:activedirectory/domain:Domain default {{project}}/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:activedirectory/domain:Domain default "{{project}} {{name}}" + * ``` + * + * ```sh * $ pulumi import gcp:activedirectory/domain:Domain default {{name}} * ``` */ diff --git a/sdk/nodejs/apigee/api.ts b/sdk/nodejs/apigee/api.ts new file mode 100644 index 0000000000..03efd16095 --- /dev/null +++ b/sdk/nodejs/apigee/api.ts @@ -0,0 +1,195 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as utilities from "../utilities"; + +/** + * To get more information about API proxies see, see: + * + * * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.apis) + * * How-to Guides + * * [API proxies](https://cloud.google.com/apigee/docs/resources) + * + * ## Import + * + * An API proxy can be imported using any of these accepted formats: + * + * * `{{org_id}}/apis/{{name}}` + * + * * `{{org_id}}/{{name}}` + * + * When using the `pulumi import` command, API proxy can be imported using one of the formats above. For example: + * + * ```sh + * $ pulumi import gcp:apigee/api:Api default {{org_id}}/apis/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:apigee/api:Api default {{org_id}}/{{name}} + * ``` + */ +export class Api extends pulumi.CustomResource { + /** + * Get an existing Api resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: ApiState, opts?: pulumi.CustomResourceOptions): Api { + return new Api(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'gcp:apigee/api:Api'; + + /** + * Returns true if the given object is an instance of Api. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is Api { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Api.__pulumiType; + } + + /** + * Path to the config zip bundle. + * + * - - - + */ + public readonly configBundle!: pulumi.Output; + public readonly detectMd5hash!: pulumi.Output; + /** + * The id of the most recently created revision for this API proxy. + */ + public /*out*/ readonly latestRevisionId!: pulumi.Output; + /** + * (Computed) Base 64 MD5 hash of the uploaded data. It is speculative as remote does not return hash of the bundle. Remote changes are detected using returned lastModified timestamp. + */ + public /*out*/ readonly md5hash!: pulumi.Output; + /** + * Metadata describing the API proxy. + * Structure is documented below. + */ + public /*out*/ readonly metaDatas!: pulumi.Output; + /** + * The ID of the API proxy. + */ + public readonly name!: pulumi.Output; + /** + * The Apigee Organization name associated with the Apigee instance. + */ + public readonly orgId!: pulumi.Output; + /** + * A list of revisions of this API proxy. + */ + public /*out*/ readonly revisions!: pulumi.Output; + + /** + * Create a Api resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: ApiArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: ApiArgs | ApiState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as ApiState | undefined; + resourceInputs["configBundle"] = state ? state.configBundle : undefined; + resourceInputs["detectMd5hash"] = state ? state.detectMd5hash : undefined; + resourceInputs["latestRevisionId"] = state ? state.latestRevisionId : undefined; + resourceInputs["md5hash"] = state ? state.md5hash : undefined; + resourceInputs["metaDatas"] = state ? state.metaDatas : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["orgId"] = state ? state.orgId : undefined; + resourceInputs["revisions"] = state ? state.revisions : undefined; + } else { + const args = argsOrState as ApiArgs | undefined; + if ((!args || args.configBundle === undefined) && !opts.urn) { + throw new Error("Missing required property 'configBundle'"); + } + if ((!args || args.orgId === undefined) && !opts.urn) { + throw new Error("Missing required property 'orgId'"); + } + resourceInputs["configBundle"] = args ? args.configBundle : undefined; + resourceInputs["detectMd5hash"] = args ? args.detectMd5hash : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["orgId"] = args ? args.orgId : undefined; + resourceInputs["latestRevisionId"] = undefined /*out*/; + resourceInputs["md5hash"] = undefined /*out*/; + resourceInputs["metaDatas"] = undefined /*out*/; + resourceInputs["revisions"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(Api.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering Api resources. + */ +export interface ApiState { + /** + * Path to the config zip bundle. + * + * - - - + */ + configBundle?: pulumi.Input; + detectMd5hash?: pulumi.Input; + /** + * The id of the most recently created revision for this API proxy. + */ + latestRevisionId?: pulumi.Input; + /** + * (Computed) Base 64 MD5 hash of the uploaded data. It is speculative as remote does not return hash of the bundle. Remote changes are detected using returned lastModified timestamp. + */ + md5hash?: pulumi.Input; + /** + * Metadata describing the API proxy. + * Structure is documented below. + */ + metaDatas?: pulumi.Input[]>; + /** + * The ID of the API proxy. + */ + name?: pulumi.Input; + /** + * The Apigee Organization name associated with the Apigee instance. + */ + orgId?: pulumi.Input; + /** + * A list of revisions of this API proxy. + */ + revisions?: pulumi.Input[]>; +} + +/** + * The set of arguments for constructing a Api resource. + */ +export interface ApiArgs { + /** + * Path to the config zip bundle. + * + * - - - + */ + configBundle: pulumi.Input; + detectMd5hash?: pulumi.Input; + /** + * The ID of the API proxy. + */ + name?: pulumi.Input; + /** + * The Apigee Organization name associated with the Apigee instance. + */ + orgId: pulumi.Input; +} diff --git a/sdk/nodejs/apigee/index.ts b/sdk/nodejs/apigee/index.ts index b547ea650d..105190b885 100644 --- a/sdk/nodejs/apigee/index.ts +++ b/sdk/nodejs/apigee/index.ts @@ -10,6 +10,11 @@ export type AddonsConfig = import("./addonsConfig").AddonsConfig; export const AddonsConfig: typeof import("./addonsConfig").AddonsConfig = null as any; utilities.lazyLoad(exports, ["AddonsConfig"], () => require("./addonsConfig")); +export { ApiArgs, ApiState } from "./api"; +export type Api = import("./api").Api; +export const Api: typeof import("./api").Api = null as any; +utilities.lazyLoad(exports, ["Api"], () => require("./api")); + export { AppGroupArgs, AppGroupState } from "./appGroup"; export type AppGroup = import("./appGroup").AppGroup; export const AppGroup: typeof import("./appGroup").AppGroup = null as any; @@ -147,6 +152,8 @@ const _module = { switch (type) { case "gcp:apigee/addonsConfig:AddonsConfig": return new AddonsConfig(name, undefined, { urn }) + case "gcp:apigee/api:Api": + return new Api(name, undefined, { urn }) case "gcp:apigee/appGroup:AppGroup": return new AppGroup(name, undefined, { urn }) case "gcp:apigee/developer:Developer": @@ -203,6 +210,7 @@ const _module = { }, }; pulumi.runtime.registerResourceModule("gcp", "apigee/addonsConfig", _module) +pulumi.runtime.registerResourceModule("gcp", "apigee/api", _module) pulumi.runtime.registerResourceModule("gcp", "apigee/appGroup", _module) pulumi.runtime.registerResourceModule("gcp", "apigee/developer", _module) pulumi.runtime.registerResourceModule("gcp", "apigee/endpointAttachment", _module) diff --git a/sdk/nodejs/applicationintegration/authConfig.ts b/sdk/nodejs/applicationintegration/authConfig.ts index 68b73b284f..0d3dc4af7a 100644 --- a/sdk/nodejs/applicationintegration/authConfig.ts +++ b/sdk/nodejs/applicationintegration/authConfig.ts @@ -45,11 +45,23 @@ import * as utilities from "../utilities"; * * AuthConfig can be imported using any of these accepted formats: * + * * `{{project}}/{{name}}` + * + * * `{{project}} {{name}}` + * * * `{{name}}` * * When using the `pulumi import` command, AuthConfig can be imported using one of the formats above. For example: * * ```sh + * $ pulumi import gcp:applicationintegration/authConfig:AuthConfig default {{project}}/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:applicationintegration/authConfig:AuthConfig default "{{project}} {{name}}" + * ``` + * + * ```sh * $ pulumi import gcp:applicationintegration/authConfig:AuthConfig default {{name}} * ``` */ diff --git a/sdk/nodejs/backupdisasterrecovery/backupPlan.ts b/sdk/nodejs/backupdisasterrecovery/backupPlan.ts new file mode 100644 index 0000000000..331126f21a --- /dev/null +++ b/sdk/nodejs/backupdisasterrecovery/backupPlan.ts @@ -0,0 +1,275 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as utilities from "../utilities"; + +/** + * ## Example Usage + * + * ### Backup Dr Backup Plan Simple + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * + * const myBackupVault = new gcp.backupdisasterrecovery.BackupVault("my_backup_vault", { + * location: "us-central1", + * backupVaultId: "bv-bp-test", + * backupMinimumEnforcedRetentionDuration: "100000s", + * }); + * const my_backup_plan_1 = new gcp.backupdisasterrecovery.BackupPlan("my-backup-plan-1", { + * location: "us-central1", + * backupPlanId: "backup-plan-simple-test", + * resourceType: "compute.googleapis.com/Instance", + * backupVault: myBackupVault.id, + * backupRules: [{ + * ruleId: "rule-1", + * backupRetentionDays: 5, + * standardSchedule: { + * recurrenceType: "HOURLY", + * hourlyFrequency: 6, + * timeZone: "UTC", + * backupWindow: { + * startHourOfDay: 0, + * endHourOfDay: 24, + * }, + * }, + * }], + * }); + * ``` + * + * ## Import + * + * BackupPlan can be imported using any of these accepted formats: + * + * * `projects/{{project}}/locations/{{location}}/backupPlans/{{backup_plan_id}}` + * + * * `{{project}}/{{location}}/{{backup_plan_id}}` + * + * * `{{location}}/{{backup_plan_id}}` + * + * When using the `pulumi import` command, BackupPlan can be imported using one of the formats above. For example: + * + * ```sh + * $ pulumi import gcp:backupdisasterrecovery/backupPlan:BackupPlan default projects/{{project}}/locations/{{location}}/backupPlans/{{backup_plan_id}} + * ``` + * + * ```sh + * $ pulumi import gcp:backupdisasterrecovery/backupPlan:BackupPlan default {{project}}/{{location}}/{{backup_plan_id}} + * ``` + * + * ```sh + * $ pulumi import gcp:backupdisasterrecovery/backupPlan:BackupPlan default {{location}}/{{backup_plan_id}} + * ``` + */ +export class BackupPlan extends pulumi.CustomResource { + /** + * Get an existing BackupPlan resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: BackupPlanState, opts?: pulumi.CustomResourceOptions): BackupPlan { + return new BackupPlan(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'gcp:backupdisasterrecovery/backupPlan:BackupPlan'; + + /** + * Returns true if the given object is an instance of BackupPlan. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is BackupPlan { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === BackupPlan.__pulumiType; + } + + /** + * The ID of the backup plan + */ + public readonly backupPlanId!: pulumi.Output; + /** + * The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message. + * Structure is documented below. + */ + public readonly backupRules!: pulumi.Output; + /** + * Backup vault where the backups gets stored using this Backup plan. + */ + public readonly backupVault!: pulumi.Output; + /** + * The Google Cloud Platform Service Account to be used by the BackupVault for taking backups. + */ + public /*out*/ readonly backupVaultServiceAccount!: pulumi.Output; + /** + * When the `BackupPlan` was created. + */ + public /*out*/ readonly createTime!: pulumi.Output; + /** + * The description allows for additional details about 'BackupPlan' and its use cases to be provided. + */ + public readonly description!: pulumi.Output; + /** + * The location for the backup plan + */ + public readonly location!: pulumi.Output; + /** + * The name of backup plan resource created + */ + public /*out*/ readonly name!: pulumi.Output; + public readonly project!: pulumi.Output; + /** + * The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket". + */ + public readonly resourceType!: pulumi.Output; + /** + * When the `BackupPlan` was last updated. + */ + public /*out*/ readonly updateTime!: pulumi.Output; + + /** + * Create a BackupPlan resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: BackupPlanArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: BackupPlanArgs | BackupPlanState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as BackupPlanState | undefined; + resourceInputs["backupPlanId"] = state ? state.backupPlanId : undefined; + resourceInputs["backupRules"] = state ? state.backupRules : undefined; + resourceInputs["backupVault"] = state ? state.backupVault : undefined; + resourceInputs["backupVaultServiceAccount"] = state ? state.backupVaultServiceAccount : undefined; + resourceInputs["createTime"] = state ? state.createTime : undefined; + resourceInputs["description"] = state ? state.description : undefined; + resourceInputs["location"] = state ? state.location : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["project"] = state ? state.project : undefined; + resourceInputs["resourceType"] = state ? state.resourceType : undefined; + resourceInputs["updateTime"] = state ? state.updateTime : undefined; + } else { + const args = argsOrState as BackupPlanArgs | undefined; + if ((!args || args.backupPlanId === undefined) && !opts.urn) { + throw new Error("Missing required property 'backupPlanId'"); + } + if ((!args || args.backupRules === undefined) && !opts.urn) { + throw new Error("Missing required property 'backupRules'"); + } + if ((!args || args.backupVault === undefined) && !opts.urn) { + throw new Error("Missing required property 'backupVault'"); + } + if ((!args || args.location === undefined) && !opts.urn) { + throw new Error("Missing required property 'location'"); + } + if ((!args || args.resourceType === undefined) && !opts.urn) { + throw new Error("Missing required property 'resourceType'"); + } + resourceInputs["backupPlanId"] = args ? args.backupPlanId : undefined; + resourceInputs["backupRules"] = args ? args.backupRules : undefined; + resourceInputs["backupVault"] = args ? args.backupVault : undefined; + resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["location"] = args ? args.location : undefined; + resourceInputs["project"] = args ? args.project : undefined; + resourceInputs["resourceType"] = args ? args.resourceType : undefined; + resourceInputs["backupVaultServiceAccount"] = undefined /*out*/; + resourceInputs["createTime"] = undefined /*out*/; + resourceInputs["name"] = undefined /*out*/; + resourceInputs["updateTime"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(BackupPlan.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering BackupPlan resources. + */ +export interface BackupPlanState { + /** + * The ID of the backup plan + */ + backupPlanId?: pulumi.Input; + /** + * The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message. + * Structure is documented below. + */ + backupRules?: pulumi.Input[]>; + /** + * Backup vault where the backups gets stored using this Backup plan. + */ + backupVault?: pulumi.Input; + /** + * The Google Cloud Platform Service Account to be used by the BackupVault for taking backups. + */ + backupVaultServiceAccount?: pulumi.Input; + /** + * When the `BackupPlan` was created. + */ + createTime?: pulumi.Input; + /** + * The description allows for additional details about 'BackupPlan' and its use cases to be provided. + */ + description?: pulumi.Input; + /** + * The location for the backup plan + */ + location?: pulumi.Input; + /** + * The name of backup plan resource created + */ + name?: pulumi.Input; + project?: pulumi.Input; + /** + * The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket". + */ + resourceType?: pulumi.Input; + /** + * When the `BackupPlan` was last updated. + */ + updateTime?: pulumi.Input; +} + +/** + * The set of arguments for constructing a BackupPlan resource. + */ +export interface BackupPlanArgs { + /** + * The ID of the backup plan + */ + backupPlanId: pulumi.Input; + /** + * The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message. + * Structure is documented below. + */ + backupRules: pulumi.Input[]>; + /** + * Backup vault where the backups gets stored using this Backup plan. + */ + backupVault: pulumi.Input; + /** + * The description allows for additional details about 'BackupPlan' and its use cases to be provided. + */ + description?: pulumi.Input; + /** + * The location for the backup plan + */ + location: pulumi.Input; + project?: pulumi.Input; + /** + * The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket". + */ + resourceType: pulumi.Input; +} diff --git a/sdk/nodejs/backupdisasterrecovery/backupPlanAssociation.ts b/sdk/nodejs/backupdisasterrecovery/backupPlanAssociation.ts new file mode 100644 index 0000000000..e4c3d05122 --- /dev/null +++ b/sdk/nodejs/backupdisasterrecovery/backupPlanAssociation.ts @@ -0,0 +1,337 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as utilities from "../utilities"; + +/** + * ## Example Usage + * + * ### Backup Dr Bpa + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * + * const mySA = new gcp.serviceaccount.Account("mySA", { + * accountId: "my-custom", + * displayName: "Custom SA for VM Instance", + * }); + * const myinstance = new gcp.compute.Instance("myinstance", { + * networkInterfaces: [{ + * accessConfigs: [{}], + * network: "default", + * }], + * name: "test-instance", + * machineType: "n2-standard-2", + * zone: "us-central1-a", + * bootDisk: { + * initializeParams: { + * image: "debian-cloud/debian-11", + * labels: { + * my_label: "value", + * }, + * }, + * }, + * scratchDisks: [{ + * "interface": "NVME", + * }], + * serviceAccount: { + * email: mySA.email, + * scopes: ["cloud-platform"], + * }, + * }); + * const bv1 = new gcp.backupdisasterrecovery.BackupVault("bv1", { + * location: "us-central1", + * backupVaultId: "bv-bpa", + * backupMinimumEnforcedRetentionDuration: "100000s", + * forceDelete: true, + * }); + * const bp1 = new gcp.backupdisasterrecovery.BackupPlan("bp1", { + * location: "us-central1", + * backupPlanId: "bp-bpa-test", + * resourceType: "compute.googleapis.com/Instance", + * backupVault: bv1.id, + * backupRules: [{ + * ruleId: "rule-1", + * backupRetentionDays: 2, + * standardSchedule: { + * recurrenceType: "HOURLY", + * hourlyFrequency: 6, + * timeZone: "UTC", + * backupWindow: { + * startHourOfDay: 12, + * endHourOfDay: 18, + * }, + * }, + * }], + * }); + * const my_backup_plan_association = new gcp.backupdisasterrecovery.BackupPlanAssociation("my-backup-plan-association", { + * location: "us-central1", + * resourceType: "compute.googleapis.com/Instance", + * backupPlanAssociationId: "my-bpa", + * resource: myinstance.id, + * backupPlan: bp1.name, + * }); + * ``` + * + * ## Import + * + * BackupPlanAssociation can be imported using any of these accepted formats: + * + * * `projects/{{project}}/locations/{{location}}/backupPlanAssociations/{{backup_plan_association_id}}` + * + * * `{{project}}/{{location}}/{{backup_plan_association_id}}` + * + * * `{{location}}/{{backup_plan_association_id}}` + * + * When using the `pulumi import` command, BackupPlanAssociation can be imported using one of the formats above. For example: + * + * ```sh + * $ pulumi import gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation default projects/{{project}}/locations/{{location}}/backupPlanAssociations/{{backup_plan_association_id}} + * ``` + * + * ```sh + * $ pulumi import gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation default {{project}}/{{location}}/{{backup_plan_association_id}} + * ``` + * + * ```sh + * $ pulumi import gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation default {{location}}/{{backup_plan_association_id}} + * ``` + */ +export class BackupPlanAssociation extends pulumi.CustomResource { + /** + * Get an existing BackupPlanAssociation resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: BackupPlanAssociationState, opts?: pulumi.CustomResourceOptions): BackupPlanAssociation { + return new BackupPlanAssociation(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation'; + + /** + * Returns true if the given object is an instance of BackupPlanAssociation. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is BackupPlanAssociation { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === BackupPlanAssociation.__pulumiType; + } + + /** + * The BP with which resource needs to be created + */ + public readonly backupPlan!: pulumi.Output; + /** + * The id of backupplan association + * + * + * - - - + */ + public readonly backupPlanAssociationId!: pulumi.Output; + /** + * The time when the instance was created + */ + public /*out*/ readonly createTime!: pulumi.Output; + /** + * Resource name of data source which will be used as storage location for backups taken + */ + public /*out*/ readonly dataSource!: pulumi.Output; + /** + * The point in time when the last successful backup was captured from the source + */ + public /*out*/ readonly lastSuccessfulBackupConsistencyTime!: pulumi.Output; + /** + * The location for the backupplan association + */ + public readonly location!: pulumi.Output; + /** + * The name of backup plan association resource created + */ + public /*out*/ readonly name!: pulumi.Output; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + */ + public readonly project!: pulumi.Output; + /** + * The resource for which BPA needs to be created + */ + public readonly resource!: pulumi.Output; + /** + * The resource type of workload on which backupplan is applied + */ + public readonly resourceType!: pulumi.Output; + /** + * Message for rules config info + * Structure is documented below. + */ + public /*out*/ readonly rulesConfigInfos!: pulumi.Output; + /** + * The time when the instance was updated. + */ + public /*out*/ readonly updateTime!: pulumi.Output; + + /** + * Create a BackupPlanAssociation resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: BackupPlanAssociationArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: BackupPlanAssociationArgs | BackupPlanAssociationState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as BackupPlanAssociationState | undefined; + resourceInputs["backupPlan"] = state ? state.backupPlan : undefined; + resourceInputs["backupPlanAssociationId"] = state ? state.backupPlanAssociationId : undefined; + resourceInputs["createTime"] = state ? state.createTime : undefined; + resourceInputs["dataSource"] = state ? state.dataSource : undefined; + resourceInputs["lastSuccessfulBackupConsistencyTime"] = state ? state.lastSuccessfulBackupConsistencyTime : undefined; + resourceInputs["location"] = state ? state.location : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["project"] = state ? state.project : undefined; + resourceInputs["resource"] = state ? state.resource : undefined; + resourceInputs["resourceType"] = state ? state.resourceType : undefined; + resourceInputs["rulesConfigInfos"] = state ? state.rulesConfigInfos : undefined; + resourceInputs["updateTime"] = state ? state.updateTime : undefined; + } else { + const args = argsOrState as BackupPlanAssociationArgs | undefined; + if ((!args || args.backupPlan === undefined) && !opts.urn) { + throw new Error("Missing required property 'backupPlan'"); + } + if ((!args || args.backupPlanAssociationId === undefined) && !opts.urn) { + throw new Error("Missing required property 'backupPlanAssociationId'"); + } + if ((!args || args.location === undefined) && !opts.urn) { + throw new Error("Missing required property 'location'"); + } + if ((!args || args.resource === undefined) && !opts.urn) { + throw new Error("Missing required property 'resource'"); + } + if ((!args || args.resourceType === undefined) && !opts.urn) { + throw new Error("Missing required property 'resourceType'"); + } + resourceInputs["backupPlan"] = args ? args.backupPlan : undefined; + resourceInputs["backupPlanAssociationId"] = args ? args.backupPlanAssociationId : undefined; + resourceInputs["location"] = args ? args.location : undefined; + resourceInputs["project"] = args ? args.project : undefined; + resourceInputs["resource"] = args ? args.resource : undefined; + resourceInputs["resourceType"] = args ? args.resourceType : undefined; + resourceInputs["createTime"] = undefined /*out*/; + resourceInputs["dataSource"] = undefined /*out*/; + resourceInputs["lastSuccessfulBackupConsistencyTime"] = undefined /*out*/; + resourceInputs["name"] = undefined /*out*/; + resourceInputs["rulesConfigInfos"] = undefined /*out*/; + resourceInputs["updateTime"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(BackupPlanAssociation.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering BackupPlanAssociation resources. + */ +export interface BackupPlanAssociationState { + /** + * The BP with which resource needs to be created + */ + backupPlan?: pulumi.Input; + /** + * The id of backupplan association + * + * + * - - - + */ + backupPlanAssociationId?: pulumi.Input; + /** + * The time when the instance was created + */ + createTime?: pulumi.Input; + /** + * Resource name of data source which will be used as storage location for backups taken + */ + dataSource?: pulumi.Input; + /** + * The point in time when the last successful backup was captured from the source + */ + lastSuccessfulBackupConsistencyTime?: pulumi.Input; + /** + * The location for the backupplan association + */ + location?: pulumi.Input; + /** + * The name of backup plan association resource created + */ + name?: pulumi.Input; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + */ + project?: pulumi.Input; + /** + * The resource for which BPA needs to be created + */ + resource?: pulumi.Input; + /** + * The resource type of workload on which backupplan is applied + */ + resourceType?: pulumi.Input; + /** + * Message for rules config info + * Structure is documented below. + */ + rulesConfigInfos?: pulumi.Input[]>; + /** + * The time when the instance was updated. + */ + updateTime?: pulumi.Input; +} + +/** + * The set of arguments for constructing a BackupPlanAssociation resource. + */ +export interface BackupPlanAssociationArgs { + /** + * The BP with which resource needs to be created + */ + backupPlan: pulumi.Input; + /** + * The id of backupplan association + * + * + * - - - + */ + backupPlanAssociationId: pulumi.Input; + /** + * The location for the backupplan association + */ + location: pulumi.Input; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + */ + project?: pulumi.Input; + /** + * The resource for which BPA needs to be created + */ + resource: pulumi.Input; + /** + * The resource type of workload on which backupplan is applied + */ + resourceType: pulumi.Input; +} diff --git a/sdk/nodejs/backupdisasterrecovery/backupVault.ts b/sdk/nodejs/backupdisasterrecovery/backupVault.ts index fe7b1e8509..6b08224c18 100644 --- a/sdk/nodejs/backupdisasterrecovery/backupVault.ts +++ b/sdk/nodejs/backupdisasterrecovery/backupVault.ts @@ -27,7 +27,8 @@ import * as utilities from "../utilities"; * annotations2: "baz1", * }, * forceUpdate: true, - * forceDelete: true, + * ignoreInactiveDatasources: true, + * ignoreBackupPlanReferences: true, * allowMissing: true, * }); * ``` @@ -136,9 +137,14 @@ export class BackupVault extends pulumi.CustomResource { */ public /*out*/ readonly etag!: pulumi.Output; /** + * (Optional, Deprecated) * If set, the following restrictions against deletion of the backup vault instance can be overridden: * * deletion of a backup vault instance containing no backups, but still containing empty datasources. * * deletion of a backup vault instance that is being referenced by an active backup plan. + * + * > **Warning:** `forceDelete` is deprecated and will be removed in a future major release. Use `ignoreInactiveDatasources` instead. + * + * @deprecated `forceDelete` is deprecated and will be removed in a future major release. Use `ignoreInactiveDatasources` instead. */ public readonly forceDelete!: pulumi.Output; /** @@ -148,6 +154,16 @@ export class BackupVault extends pulumi.CustomResource { * retention set by the backup vault. */ public readonly forceUpdate!: pulumi.Output; + /** + * If set, the following restrictions against deletion of the backup vault instance can be overridden: + * * deletion of a backup vault instance that is being referenced by an active backup plan. + */ + public readonly ignoreBackupPlanReferences!: pulumi.Output; + /** + * If set, the following restrictions against deletion of the backup vault instance can be overridden: + * * deletion of a backup vault instance containing no backups, but still containing empty datasources. + */ + public readonly ignoreInactiveDatasources!: pulumi.Output; /** * Optional. Resource labels to represent user provided metadata. * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. @@ -226,6 +242,8 @@ export class BackupVault extends pulumi.CustomResource { resourceInputs["etag"] = state ? state.etag : undefined; resourceInputs["forceDelete"] = state ? state.forceDelete : undefined; resourceInputs["forceUpdate"] = state ? state.forceUpdate : undefined; + resourceInputs["ignoreBackupPlanReferences"] = state ? state.ignoreBackupPlanReferences : undefined; + resourceInputs["ignoreInactiveDatasources"] = state ? state.ignoreInactiveDatasources : undefined; resourceInputs["labels"] = state ? state.labels : undefined; resourceInputs["location"] = state ? state.location : undefined; resourceInputs["name"] = state ? state.name : undefined; @@ -255,6 +273,8 @@ export class BackupVault extends pulumi.CustomResource { resourceInputs["effectiveTime"] = args ? args.effectiveTime : undefined; resourceInputs["forceDelete"] = args ? args.forceDelete : undefined; resourceInputs["forceUpdate"] = args ? args.forceUpdate : undefined; + resourceInputs["ignoreBackupPlanReferences"] = args ? args.ignoreBackupPlanReferences : undefined; + resourceInputs["ignoreInactiveDatasources"] = args ? args.ignoreInactiveDatasources : undefined; resourceInputs["labels"] = args ? args.labels : undefined; resourceInputs["location"] = args ? args.location : undefined; resourceInputs["project"] = args ? args.project : undefined; @@ -335,9 +355,14 @@ export interface BackupVaultState { */ etag?: pulumi.Input; /** + * (Optional, Deprecated) * If set, the following restrictions against deletion of the backup vault instance can be overridden: * * deletion of a backup vault instance containing no backups, but still containing empty datasources. * * deletion of a backup vault instance that is being referenced by an active backup plan. + * + * > **Warning:** `forceDelete` is deprecated and will be removed in a future major release. Use `ignoreInactiveDatasources` instead. + * + * @deprecated `forceDelete` is deprecated and will be removed in a future major release. Use `ignoreInactiveDatasources` instead. */ forceDelete?: pulumi.Input; /** @@ -347,6 +372,16 @@ export interface BackupVaultState { * retention set by the backup vault. */ forceUpdate?: pulumi.Input; + /** + * If set, the following restrictions against deletion of the backup vault instance can be overridden: + * * deletion of a backup vault instance that is being referenced by an active backup plan. + */ + ignoreBackupPlanReferences?: pulumi.Input; + /** + * If set, the following restrictions against deletion of the backup vault instance can be overridden: + * * deletion of a backup vault instance containing no backups, but still containing empty datasources. + */ + ignoreInactiveDatasources?: pulumi.Input; /** * Optional. Resource labels to represent user provided metadata. * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. @@ -434,9 +469,14 @@ export interface BackupVaultArgs { */ effectiveTime?: pulumi.Input; /** + * (Optional, Deprecated) * If set, the following restrictions against deletion of the backup vault instance can be overridden: * * deletion of a backup vault instance containing no backups, but still containing empty datasources. * * deletion of a backup vault instance that is being referenced by an active backup plan. + * + * > **Warning:** `forceDelete` is deprecated and will be removed in a future major release. Use `ignoreInactiveDatasources` instead. + * + * @deprecated `forceDelete` is deprecated and will be removed in a future major release. Use `ignoreInactiveDatasources` instead. */ forceDelete?: pulumi.Input; /** @@ -446,6 +486,16 @@ export interface BackupVaultArgs { * retention set by the backup vault. */ forceUpdate?: pulumi.Input; + /** + * If set, the following restrictions against deletion of the backup vault instance can be overridden: + * * deletion of a backup vault instance that is being referenced by an active backup plan. + */ + ignoreBackupPlanReferences?: pulumi.Input; + /** + * If set, the following restrictions against deletion of the backup vault instance can be overridden: + * * deletion of a backup vault instance containing no backups, but still containing empty datasources. + */ + ignoreInactiveDatasources?: pulumi.Input; /** * Optional. Resource labels to represent user provided metadata. * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. diff --git a/sdk/nodejs/backupdisasterrecovery/getBackupPlan.ts b/sdk/nodejs/backupdisasterrecovery/getBackupPlan.ts new file mode 100644 index 0000000000..d03a93bc9c --- /dev/null +++ b/sdk/nodejs/backupdisasterrecovery/getBackupPlan.ts @@ -0,0 +1,63 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as utilities from "../utilities"; + +export function getBackupPlan(args: GetBackupPlanArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("gcp:backupdisasterrecovery/getBackupPlan:getBackupPlan", { + "backupPlanId": args.backupPlanId, + "location": args.location, + "project": args.project, + }, opts); +} + +/** + * A collection of arguments for invoking getBackupPlan. + */ +export interface GetBackupPlanArgs { + backupPlanId: string; + location: string; + project?: string; +} + +/** + * A collection of values returned by getBackupPlan. + */ +export interface GetBackupPlanResult { + readonly backupPlanId: string; + readonly backupRules: outputs.backupdisasterrecovery.GetBackupPlanBackupRule[]; + readonly backupVault: string; + readonly backupVaultServiceAccount: string; + readonly createTime: string; + readonly description: string; + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + readonly location: string; + readonly name: string; + readonly project?: string; + readonly resourceType: string; + readonly updateTime: string; +} +export function getBackupPlanOutput(args: GetBackupPlanOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("gcp:backupdisasterrecovery/getBackupPlan:getBackupPlan", { + "backupPlanId": args.backupPlanId, + "location": args.location, + "project": args.project, + }, opts); +} + +/** + * A collection of arguments for invoking getBackupPlan. + */ +export interface GetBackupPlanOutputArgs { + backupPlanId: pulumi.Input; + location: pulumi.Input; + project?: pulumi.Input; +} diff --git a/sdk/nodejs/backupdisasterrecovery/getBackupPlanAssociation.ts b/sdk/nodejs/backupdisasterrecovery/getBackupPlanAssociation.ts new file mode 100644 index 0000000000..950e3e338b --- /dev/null +++ b/sdk/nodejs/backupdisasterrecovery/getBackupPlanAssociation.ts @@ -0,0 +1,106 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as utilities from "../utilities"; + +/** + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * + * const my-backupplan-association = gcp.backupdisasterrecovery.getBackupPlanAssociation({ + * location: "us-central1", + * backupPlanAssociationId: "bpa-id", + * }); + * ``` + */ +export function getBackupPlanAssociation(args: GetBackupPlanAssociationArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("gcp:backupdisasterrecovery/getBackupPlanAssociation:getBackupPlanAssociation", { + "backupPlanAssociationId": args.backupPlanAssociationId, + "location": args.location, + "project": args.project, + }, opts); +} + +/** + * A collection of arguments for invoking getBackupPlanAssociation. + */ +export interface GetBackupPlanAssociationArgs { + /** + * The id of Backupplan association resource. + * + * - - - + */ + backupPlanAssociationId: string; + /** + * The location in which the Backupplan association resource belongs. + */ + location: string; + project?: string; +} + +/** + * A collection of values returned by getBackupPlanAssociation. + */ +export interface GetBackupPlanAssociationResult { + readonly backupPlan: string; + readonly backupPlanAssociationId: string; + readonly createTime: string; + readonly dataSource: string; + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + readonly lastSuccessfulBackupConsistencyTime: string; + readonly location: string; + readonly name: string; + readonly project?: string; + readonly resource: string; + readonly resourceType: string; + readonly rulesConfigInfos: outputs.backupdisasterrecovery.GetBackupPlanAssociationRulesConfigInfo[]; + readonly updateTime: string; +} +/** + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * + * const my-backupplan-association = gcp.backupdisasterrecovery.getBackupPlanAssociation({ + * location: "us-central1", + * backupPlanAssociationId: "bpa-id", + * }); + * ``` + */ +export function getBackupPlanAssociationOutput(args: GetBackupPlanAssociationOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("gcp:backupdisasterrecovery/getBackupPlanAssociation:getBackupPlanAssociation", { + "backupPlanAssociationId": args.backupPlanAssociationId, + "location": args.location, + "project": args.project, + }, opts); +} + +/** + * A collection of arguments for invoking getBackupPlanAssociation. + */ +export interface GetBackupPlanAssociationOutputArgs { + /** + * The id of Backupplan association resource. + * + * - - - + */ + backupPlanAssociationId: pulumi.Input; + /** + * The location in which the Backupplan association resource belongs. + */ + location: pulumi.Input; + project?: pulumi.Input; +} diff --git a/sdk/nodejs/backupdisasterrecovery/index.ts b/sdk/nodejs/backupdisasterrecovery/index.ts index dd08a6051e..2626399347 100644 --- a/sdk/nodejs/backupdisasterrecovery/index.ts +++ b/sdk/nodejs/backupdisasterrecovery/index.ts @@ -5,11 +5,31 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "../utilities"; // Export members: +export { BackupPlanArgs, BackupPlanState } from "./backupPlan"; +export type BackupPlan = import("./backupPlan").BackupPlan; +export const BackupPlan: typeof import("./backupPlan").BackupPlan = null as any; +utilities.lazyLoad(exports, ["BackupPlan"], () => require("./backupPlan")); + +export { BackupPlanAssociationArgs, BackupPlanAssociationState } from "./backupPlanAssociation"; +export type BackupPlanAssociation = import("./backupPlanAssociation").BackupPlanAssociation; +export const BackupPlanAssociation: typeof import("./backupPlanAssociation").BackupPlanAssociation = null as any; +utilities.lazyLoad(exports, ["BackupPlanAssociation"], () => require("./backupPlanAssociation")); + export { BackupVaultArgs, BackupVaultState } from "./backupVault"; export type BackupVault = import("./backupVault").BackupVault; export const BackupVault: typeof import("./backupVault").BackupVault = null as any; utilities.lazyLoad(exports, ["BackupVault"], () => require("./backupVault")); +export { GetBackupPlanArgs, GetBackupPlanResult, GetBackupPlanOutputArgs } from "./getBackupPlan"; +export const getBackupPlan: typeof import("./getBackupPlan").getBackupPlan = null as any; +export const getBackupPlanOutput: typeof import("./getBackupPlan").getBackupPlanOutput = null as any; +utilities.lazyLoad(exports, ["getBackupPlan","getBackupPlanOutput"], () => require("./getBackupPlan")); + +export { GetBackupPlanAssociationArgs, GetBackupPlanAssociationResult, GetBackupPlanAssociationOutputArgs } from "./getBackupPlanAssociation"; +export const getBackupPlanAssociation: typeof import("./getBackupPlanAssociation").getBackupPlanAssociation = null as any; +export const getBackupPlanAssociationOutput: typeof import("./getBackupPlanAssociation").getBackupPlanAssociationOutput = null as any; +utilities.lazyLoad(exports, ["getBackupPlanAssociation","getBackupPlanAssociationOutput"], () => require("./getBackupPlanAssociation")); + export { GetManagementServerArgs, GetManagementServerResult, GetManagementServerOutputArgs } from "./getManagementServer"; export const getManagementServer: typeof import("./getManagementServer").getManagementServer = null as any; export const getManagementServerOutput: typeof import("./getManagementServer").getManagementServerOutput = null as any; @@ -25,6 +45,10 @@ const _module = { version: utilities.getVersion(), construct: (name: string, type: string, urn: string): pulumi.Resource => { switch (type) { + case "gcp:backupdisasterrecovery/backupPlan:BackupPlan": + return new BackupPlan(name, undefined, { urn }) + case "gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation": + return new BackupPlanAssociation(name, undefined, { urn }) case "gcp:backupdisasterrecovery/backupVault:BackupVault": return new BackupVault(name, undefined, { urn }) case "gcp:backupdisasterrecovery/managementServer:ManagementServer": @@ -34,5 +58,7 @@ const _module = { } }, }; +pulumi.runtime.registerResourceModule("gcp", "backupdisasterrecovery/backupPlan", _module) +pulumi.runtime.registerResourceModule("gcp", "backupdisasterrecovery/backupPlanAssociation", _module) pulumi.runtime.registerResourceModule("gcp", "backupdisasterrecovery/backupVault", _module) pulumi.runtime.registerResourceModule("gcp", "backupdisasterrecovery/managementServer", _module) diff --git a/sdk/nodejs/bigquery/dataTransferConfig.ts b/sdk/nodejs/bigquery/dataTransferConfig.ts index fd4677ea84..85d1bfa35e 100644 --- a/sdk/nodejs/bigquery/dataTransferConfig.ts +++ b/sdk/nodejs/bigquery/dataTransferConfig.ts @@ -130,11 +130,23 @@ import * as utilities from "../utilities"; * * Config can be imported using any of these accepted formats: * + * * `{{project}}/{{name}}` + * + * * `{{project}} {{name}}` + * * * `{{name}}` * * When using the `pulumi import` command, Config can be imported using one of the formats above. For example: * * ```sh + * $ pulumi import gcp:bigquery/dataTransferConfig:DataTransferConfig default {{project}}/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:bigquery/dataTransferConfig:DataTransferConfig default "{{project}} {{name}}" + * ``` + * + * ```sh * $ pulumi import gcp:bigquery/dataTransferConfig:DataTransferConfig default {{name}} * ``` */ diff --git a/sdk/nodejs/cloudrunv2/job.ts b/sdk/nodejs/cloudrunv2/job.ts index 36c0e39977..575a9cca34 100644 --- a/sdk/nodejs/cloudrunv2/job.ts +++ b/sdk/nodejs/cloudrunv2/job.ts @@ -274,7 +274,6 @@ import * as utilities from "../utilities"; * name: "cloudrun-job", * location: "us-central1", * deletionProtection: false, - * launchStage: "BETA", * template: { * template: { * containers: [{ diff --git a/sdk/nodejs/cloudrunv2/service.ts b/sdk/nodejs/cloudrunv2/service.ts index 7b30194d9d..57682762ec 100644 --- a/sdk/nodejs/cloudrunv2/service.ts +++ b/sdk/nodejs/cloudrunv2/service.ts @@ -335,7 +335,6 @@ import * as utilities from "../utilities"; * name: "cloudrun-service", * location: "us-central1", * deletionProtection: false, - * launchStage: "BETA", * ingress: "INGRESS_TRAFFIC_ALL", * template: { * containers: [ diff --git a/sdk/nodejs/compute/disk.ts b/sdk/nodejs/compute/disk.ts index 2dc1870d95..026e466514 100644 --- a/sdk/nodejs/compute/disk.ts +++ b/sdk/nodejs/compute/disk.ts @@ -166,7 +166,7 @@ export class Disk extends pulumi.CustomResource { */ public readonly accessMode!: pulumi.Output; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ public readonly asyncPrimaryDisk!: pulumi.Output; @@ -518,7 +518,7 @@ export interface DiskState { */ accessMode?: pulumi.Input; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ asyncPrimaryDisk?: pulumi.Input; @@ -774,7 +774,7 @@ export interface DiskArgs { */ accessMode?: pulumi.Input; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ asyncPrimaryDisk?: pulumi.Input; diff --git a/sdk/nodejs/compute/firewallPolicyRule.ts b/sdk/nodejs/compute/firewallPolicyRule.ts index 1238490a2d..328d169667 100644 --- a/sdk/nodejs/compute/firewallPolicyRule.ts +++ b/sdk/nodejs/compute/firewallPolicyRule.ts @@ -7,17 +7,16 @@ import * as outputs from "../types/output"; import * as utilities from "../utilities"; /** - * The Compute FirewallPolicyRule resource - * * ## Example Usage * - * ### Basic_fir_sec_rule + * ### Firewall Policy Rule + * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const basicGlobalNetworksecurityAddressGroup = new gcp.networksecurity.AddressGroup("basic_global_networksecurity_address_group", { - * name: "policy", + * name: "address", * parent: "organizations/123456789", * description: "Sample global networksecurity_address_group", * location: "global", @@ -26,7 +25,7 @@ import * as utilities from "../utilities"; * capacity: 100, * }); * const folder = new gcp.organizations.Folder("folder", { - * displayName: "policy", + * displayName: "folder", * parent: "organizations/123456789", * deletionProtection: false, * }); @@ -35,7 +34,7 @@ import * as utilities from "../utilities"; * shortName: "policy", * description: "Resource created for Terraform acceptance testing", * }); - * const primary = new gcp.compute.FirewallPolicyRule("primary", { + * const policyRule = new gcp.compute.FirewallPolicyRule("policy_rule", { * firewallPolicy: _default.name, * description: "Resource created for Terraform acceptance testing", * priority: 9000, @@ -115,12 +114,17 @@ export class FirewallPolicyRule extends pulumi.CustomResource { * The Action to perform when the client connection triggers the rule. Valid actions are "allow", "deny", "gotoNext" and "applySecurityProfileGroup". */ public readonly action!: pulumi.Output; + /** + * Creation timestamp in RFC3339 text format. + */ + public /*out*/ readonly creationTimestamp!: pulumi.Output; /** * An optional description for this resource. */ public readonly description!: pulumi.Output; /** - * The direction in which this rule applies. Possible values: INGRESS, EGRESS + * The direction in which this rule applies. + * Possible values are: `INGRESS`, `EGRESS`. */ public readonly direction!: pulumi.Output; /** @@ -144,10 +148,13 @@ export class FirewallPolicyRule extends pulumi.CustomResource { public /*out*/ readonly kind!: pulumi.Output; /** * A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. + * Structure is documented below. */ public readonly match!: pulumi.Output; /** - * An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. + * An integer indicating the priority of a rule in the list. + * The priority must be a positive value between 0 and 2147483647. + * Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. */ public readonly priority!: pulumi.Output; /** @@ -155,9 +162,9 @@ export class FirewallPolicyRule extends pulumi.CustomResource { */ public /*out*/ readonly ruleTupleCount!: pulumi.Output; /** - * A fully-qualified URL of a SecurityProfileGroup resource. Example: - * https://networksecurity.googleapis.com/v1/organizations/{organizationId}/locations/global/securityProfileGroups/my-security-profile-group. - * It must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. + * A fully-qualified URL of a SecurityProfile resource instance. Example: + * https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group + * Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. */ public readonly securityProfileGroup!: pulumi.Output; /** @@ -170,7 +177,7 @@ export class FirewallPolicyRule extends pulumi.CustomResource { */ public readonly targetServiceAccounts!: pulumi.Output; /** - * Boolean flag indicating if the traffic should be TLS decrypted. It can be set only if action = + * Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = * 'apply_security_profile_group' and cannot be set for other actions. */ public readonly tlsInspect!: pulumi.Output; @@ -189,6 +196,7 @@ export class FirewallPolicyRule extends pulumi.CustomResource { if (opts.id) { const state = argsOrState as FirewallPolicyRuleState | undefined; resourceInputs["action"] = state ? state.action : undefined; + resourceInputs["creationTimestamp"] = state ? state.creationTimestamp : undefined; resourceInputs["description"] = state ? state.description : undefined; resourceInputs["direction"] = state ? state.direction : undefined; resourceInputs["disabled"] = state ? state.disabled : undefined; @@ -231,6 +239,7 @@ export class FirewallPolicyRule extends pulumi.CustomResource { resourceInputs["targetResources"] = args ? args.targetResources : undefined; resourceInputs["targetServiceAccounts"] = args ? args.targetServiceAccounts : undefined; resourceInputs["tlsInspect"] = args ? args.tlsInspect : undefined; + resourceInputs["creationTimestamp"] = undefined /*out*/; resourceInputs["kind"] = undefined /*out*/; resourceInputs["ruleTupleCount"] = undefined /*out*/; } @@ -247,12 +256,17 @@ export interface FirewallPolicyRuleState { * The Action to perform when the client connection triggers the rule. Valid actions are "allow", "deny", "gotoNext" and "applySecurityProfileGroup". */ action?: pulumi.Input; + /** + * Creation timestamp in RFC3339 text format. + */ + creationTimestamp?: pulumi.Input; /** * An optional description for this resource. */ description?: pulumi.Input; /** - * The direction in which this rule applies. Possible values: INGRESS, EGRESS + * The direction in which this rule applies. + * Possible values are: `INGRESS`, `EGRESS`. */ direction?: pulumi.Input; /** @@ -276,10 +290,13 @@ export interface FirewallPolicyRuleState { kind?: pulumi.Input; /** * A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. + * Structure is documented below. */ match?: pulumi.Input; /** - * An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. + * An integer indicating the priority of a rule in the list. + * The priority must be a positive value between 0 and 2147483647. + * Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. */ priority?: pulumi.Input; /** @@ -287,9 +304,9 @@ export interface FirewallPolicyRuleState { */ ruleTupleCount?: pulumi.Input; /** - * A fully-qualified URL of a SecurityProfileGroup resource. Example: - * https://networksecurity.googleapis.com/v1/organizations/{organizationId}/locations/global/securityProfileGroups/my-security-profile-group. - * It must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. + * A fully-qualified URL of a SecurityProfile resource instance. Example: + * https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group + * Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. */ securityProfileGroup?: pulumi.Input; /** @@ -302,7 +319,7 @@ export interface FirewallPolicyRuleState { */ targetServiceAccounts?: pulumi.Input[]>; /** - * Boolean flag indicating if the traffic should be TLS decrypted. It can be set only if action = + * Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = * 'apply_security_profile_group' and cannot be set for other actions. */ tlsInspect?: pulumi.Input; @@ -321,7 +338,8 @@ export interface FirewallPolicyRuleArgs { */ description?: pulumi.Input; /** - * The direction in which this rule applies. Possible values: INGRESS, EGRESS + * The direction in which this rule applies. + * Possible values are: `INGRESS`, `EGRESS`. */ direction: pulumi.Input; /** @@ -341,16 +359,19 @@ export interface FirewallPolicyRuleArgs { firewallPolicy: pulumi.Input; /** * A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. + * Structure is documented below. */ match: pulumi.Input; /** - * An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. + * An integer indicating the priority of a rule in the list. + * The priority must be a positive value between 0 and 2147483647. + * Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. */ priority: pulumi.Input; /** - * A fully-qualified URL of a SecurityProfileGroup resource. Example: - * https://networksecurity.googleapis.com/v1/organizations/{organizationId}/locations/global/securityProfileGroups/my-security-profile-group. - * It must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. + * A fully-qualified URL of a SecurityProfile resource instance. Example: + * https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group + * Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. */ securityProfileGroup?: pulumi.Input; /** @@ -363,7 +384,7 @@ export interface FirewallPolicyRuleArgs { */ targetServiceAccounts?: pulumi.Input[]>; /** - * Boolean flag indicating if the traffic should be TLS decrypted. It can be set only if action = + * Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = * 'apply_security_profile_group' and cannot be set for other actions. */ tlsInspect?: pulumi.Input; diff --git a/sdk/nodejs/compute/getRegionInstanceGroupManager.ts b/sdk/nodejs/compute/getRegionInstanceGroupManager.ts index a4c4996a99..bfb27e0958 100644 --- a/sdk/nodejs/compute/getRegionInstanceGroupManager.ts +++ b/sdk/nodejs/compute/getRegionInstanceGroupManager.ts @@ -71,6 +71,7 @@ export interface GetRegionInstanceGroupManagerResult { * The provider-assigned unique ID for this managed resource. */ readonly id: string; + readonly instanceFlexibilityPolicies: outputs.compute.GetRegionInstanceGroupManagerInstanceFlexibilityPolicy[]; readonly instanceGroup: string; readonly instanceLifecyclePolicies: outputs.compute.GetRegionInstanceGroupManagerInstanceLifecyclePolicy[]; readonly listManagedInstancesResults: string; diff --git a/sdk/nodejs/compute/healthCheck.ts b/sdk/nodejs/compute/healthCheck.ts index 22da083cf8..5fa2c274cc 100644 --- a/sdk/nodejs/compute/healthCheck.ts +++ b/sdk/nodejs/compute/healthCheck.ts @@ -397,7 +397,7 @@ export class HealthCheck extends pulumi.CustomResource { */ public readonly description!: pulumi.Output; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ public readonly grpcHealthCheck!: pulumi.Output; @@ -407,17 +407,17 @@ export class HealthCheck extends pulumi.CustomResource { */ public readonly healthyThreshold!: pulumi.Output; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ public readonly http2HealthCheck!: pulumi.Output; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ public readonly httpHealthCheck!: pulumi.Output; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ public readonly httpsHealthCheck!: pulumi.Output; @@ -464,12 +464,12 @@ export class HealthCheck extends pulumi.CustomResource { */ public readonly sourceRegions!: pulumi.Output; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ public readonly sslHealthCheck!: pulumi.Output; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ public readonly tcpHealthCheck!: pulumi.Output; @@ -565,7 +565,7 @@ export interface HealthCheckState { */ description?: pulumi.Input; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ grpcHealthCheck?: pulumi.Input; @@ -575,17 +575,17 @@ export interface HealthCheckState { */ healthyThreshold?: pulumi.Input; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ http2HealthCheck?: pulumi.Input; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ httpHealthCheck?: pulumi.Input; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ httpsHealthCheck?: pulumi.Input; @@ -632,12 +632,12 @@ export interface HealthCheckState { */ sourceRegions?: pulumi.Input[]>; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ sslHealthCheck?: pulumi.Input; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ tcpHealthCheck?: pulumi.Input; @@ -673,7 +673,7 @@ export interface HealthCheckArgs { */ description?: pulumi.Input; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ grpcHealthCheck?: pulumi.Input; @@ -683,17 +683,17 @@ export interface HealthCheckArgs { */ healthyThreshold?: pulumi.Input; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ http2HealthCheck?: pulumi.Input; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ httpHealthCheck?: pulumi.Input; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ httpsHealthCheck?: pulumi.Input; @@ -736,12 +736,12 @@ export interface HealthCheckArgs { */ sourceRegions?: pulumi.Input[]>; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ sslHealthCheck?: pulumi.Input; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ tcpHealthCheck?: pulumi.Input; diff --git a/sdk/nodejs/compute/index.ts b/sdk/nodejs/compute/index.ts index c69aac51f7..f6c2df9ba2 100644 --- a/sdk/nodejs/compute/index.ts +++ b/sdk/nodejs/compute/index.ts @@ -815,6 +815,11 @@ export type RegionPerInstanceConfig = import("./regionPerInstanceConfig").Region export const RegionPerInstanceConfig: typeof import("./regionPerInstanceConfig").RegionPerInstanceConfig = null as any; utilities.lazyLoad(exports, ["RegionPerInstanceConfig"], () => require("./regionPerInstanceConfig")); +export { RegionResizeRequestArgs, RegionResizeRequestState } from "./regionResizeRequest"; +export type RegionResizeRequest = import("./regionResizeRequest").RegionResizeRequest; +export const RegionResizeRequest: typeof import("./regionResizeRequest").RegionResizeRequest = null as any; +utilities.lazyLoad(exports, ["RegionResizeRequest"], () => require("./regionResizeRequest")); + export { RegionSecurityPolicyArgs, RegionSecurityPolicyState } from "./regionSecurityPolicy"; export type RegionSecurityPolicy = import("./regionSecurityPolicy").RegionSecurityPolicy; export const RegionSecurityPolicy: typeof import("./regionSecurityPolicy").RegionSecurityPolicy = null as any; @@ -1255,6 +1260,8 @@ const _module = { return new RegionNetworkFirewallPolicyWithRules(name, undefined, { urn }) case "gcp:compute/regionPerInstanceConfig:RegionPerInstanceConfig": return new RegionPerInstanceConfig(name, undefined, { urn }) + case "gcp:compute/regionResizeRequest:RegionResizeRequest": + return new RegionResizeRequest(name, undefined, { urn }) case "gcp:compute/regionSecurityPolicy:RegionSecurityPolicy": return new RegionSecurityPolicy(name, undefined, { urn }) case "gcp:compute/regionSecurityPolicyRule:RegionSecurityPolicyRule": @@ -1453,6 +1460,7 @@ pulumi.runtime.registerResourceModule("gcp", "compute/regionNetworkFirewallPolic pulumi.runtime.registerResourceModule("gcp", "compute/regionNetworkFirewallPolicyRule", _module) pulumi.runtime.registerResourceModule("gcp", "compute/regionNetworkFirewallPolicyWithRules", _module) pulumi.runtime.registerResourceModule("gcp", "compute/regionPerInstanceConfig", _module) +pulumi.runtime.registerResourceModule("gcp", "compute/regionResizeRequest", _module) pulumi.runtime.registerResourceModule("gcp", "compute/regionSecurityPolicy", _module) pulumi.runtime.registerResourceModule("gcp", "compute/regionSecurityPolicyRule", _module) pulumi.runtime.registerResourceModule("gcp", "compute/regionSslCertificate", _module) diff --git a/sdk/nodejs/compute/networkFirewallPolicyRule.ts b/sdk/nodejs/compute/networkFirewallPolicyRule.ts index 3eb58e6d71..a8ac982fed 100644 --- a/sdk/nodejs/compute/networkFirewallPolicyRule.ts +++ b/sdk/nodejs/compute/networkFirewallPolicyRule.ts @@ -47,7 +47,7 @@ import * as utilities from "../utilities"; * }); * const basicValue = new gcp.tags.TagValue("basic_value", { * description: "For valuename resources.", - * parent: pulumi.interpolate`tagKeys/${basicKey.name}`, + * parent: basicKey.id, * shortName: "tagvalue", * }); * const primary = new gcp.compute.NetworkFirewallPolicyRule("primary", { @@ -66,7 +66,7 @@ import * as utilities from "../utilities"; * srcRegionCodes: ["US"], * srcThreatIntelligences: ["iplist-known-malicious-ips"], * srcSecureTags: [{ - * name: pulumi.interpolate`tagValues/${basicValue.name}`, + * name: basicValue.id, * }], * layer4Configs: [{ * ipProtocol: "all", diff --git a/sdk/nodejs/compute/networkFirewallPolicyWithRules.ts b/sdk/nodejs/compute/networkFirewallPolicyWithRules.ts index aa3cb12ac4..cfd60cd92f 100644 --- a/sdk/nodejs/compute/networkFirewallPolicyWithRules.ts +++ b/sdk/nodejs/compute/networkFirewallPolicyWithRules.ts @@ -18,7 +18,7 @@ import * as utilities from "../utilities"; * const project = gcp.organizations.getProject({}); * const addressGroup1 = new gcp.networksecurity.AddressGroup("address_group_1", { * name: "tf-address-group", - * parent: project.then(project => `projects/${project.name}`), + * parent: project.then(project => project.id), * description: "Global address group", * location: "global", * items: ["208.80.154.224/32"], @@ -27,7 +27,7 @@ import * as utilities from "../utilities"; * }); * const secureTagKey1 = new gcp.tags.TagKey("secure_tag_key_1", { * description: "Tag key", - * parent: project.then(project => `projects/${project.name}`), + * parent: project.then(project => project.id), * purpose: "GCE_FIREWALL", * shortName: "tf-tag-key", * purposeData: { @@ -36,7 +36,7 @@ import * as utilities from "../utilities"; * }); * const secureTagValue1 = new gcp.tags.TagValue("secure_tag_value_1", { * description: "Tag value", - * parent: pulumi.interpolate`tagKeys/${secureTagKey1.name}`, + * parent: secureTagKey1.id, * shortName: "tf-tag-value", * }); * const securityProfile1 = new gcp.networksecurity.SecurityProfile("security_profile_1", { @@ -85,7 +85,7 @@ import * as utilities from "../utilities"; * destAddressGroups: [addressGroup1.id], * }, * targetSecureTags: [{ - * name: pulumi.interpolate`tagValues/${secureTagValue1.name}`, + * name: secureTagValue1.id, * }], * }, * { @@ -113,7 +113,7 @@ import * as utilities from "../utilities"; * ], * srcAddressGroups: [addressGroup1.id], * srcSecureTags: [{ - * name: pulumi.interpolate`tagValues/${secureTagValue1.name}`, + * name: secureTagValue1.id, * }], * }, * disabled: true, diff --git a/sdk/nodejs/compute/nodeTemplate.ts b/sdk/nodejs/compute/nodeTemplate.ts index 2d36e9fb3b..6c7fec1e11 100644 --- a/sdk/nodejs/compute/nodeTemplate.ts +++ b/sdk/nodejs/compute/nodeTemplate.ts @@ -71,6 +71,26 @@ import * as utilities from "../utilities"; * }], * }); * ``` + * ### Node Template Disks + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * + * const central1a = gcp.compute.getNodeTypes({ + * zone: "us-central1-a", + * }); + * const template = new gcp.compute.NodeTemplate("template", { + * name: "soletenant-with-disks", + * region: "us-central1", + * nodeType: "n2-node-80-640", + * disks: [{ + * diskCount: 16, + * diskSizeGb: 375, + * diskType: "local-ssd", + * }], + * }); + * ``` * * ## Import * @@ -150,6 +170,12 @@ export class NodeTemplate extends pulumi.CustomResource { * An optional textual description of the resource. */ public readonly description!: pulumi.Output; + /** + * List of the type, size and count of disks attached to the + * node template + * Structure is documented below. + */ + public readonly disks!: pulumi.Output; /** * Name of the resource. */ @@ -210,6 +236,7 @@ export class NodeTemplate extends pulumi.CustomResource { resourceInputs["cpuOvercommitType"] = state ? state.cpuOvercommitType : undefined; resourceInputs["creationTimestamp"] = state ? state.creationTimestamp : undefined; resourceInputs["description"] = state ? state.description : undefined; + resourceInputs["disks"] = state ? state.disks : undefined; resourceInputs["name"] = state ? state.name : undefined; resourceInputs["nodeAffinityLabels"] = state ? state.nodeAffinityLabels : undefined; resourceInputs["nodeType"] = state ? state.nodeType : undefined; @@ -223,6 +250,7 @@ export class NodeTemplate extends pulumi.CustomResource { resourceInputs["accelerators"] = args ? args.accelerators : undefined; resourceInputs["cpuOvercommitType"] = args ? args.cpuOvercommitType : undefined; resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["disks"] = args ? args.disks : undefined; resourceInputs["name"] = args ? args.name : undefined; resourceInputs["nodeAffinityLabels"] = args ? args.nodeAffinityLabels : undefined; resourceInputs["nodeType"] = args ? args.nodeType : undefined; @@ -262,6 +290,12 @@ export interface NodeTemplateState { * An optional textual description of the resource. */ description?: pulumi.Input; + /** + * List of the type, size and count of disks attached to the + * node template + * Structure is documented below. + */ + disks?: pulumi.Input[]>; /** * Name of the resource. */ @@ -326,6 +360,12 @@ export interface NodeTemplateArgs { * An optional textual description of the resource. */ description?: pulumi.Input; + /** + * List of the type, size and count of disks attached to the + * node template + * Structure is documented below. + */ + disks?: pulumi.Input[]>; /** * Name of the resource. */ diff --git a/sdk/nodejs/compute/regionDisk.ts b/sdk/nodejs/compute/regionDisk.ts index dfbbac0213..8f13791fe1 100644 --- a/sdk/nodejs/compute/regionDisk.ts +++ b/sdk/nodejs/compute/regionDisk.ts @@ -180,7 +180,7 @@ export class RegionDisk extends pulumi.CustomResource { } /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ public readonly asyncPrimaryDisk!: pulumi.Output; @@ -439,7 +439,7 @@ export class RegionDisk extends pulumi.CustomResource { */ export interface RegionDiskState { /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ asyncPrimaryDisk?: pulumi.Input; @@ -619,7 +619,7 @@ export interface RegionDiskState { */ export interface RegionDiskArgs { /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ asyncPrimaryDisk?: pulumi.Input; diff --git a/sdk/nodejs/compute/regionHealthCheck.ts b/sdk/nodejs/compute/regionHealthCheck.ts index a2aa2a1bbb..7ac1290f18 100644 --- a/sdk/nodejs/compute/regionHealthCheck.ts +++ b/sdk/nodejs/compute/regionHealthCheck.ts @@ -339,7 +339,7 @@ export class RegionHealthCheck extends pulumi.CustomResource { */ public readonly description!: pulumi.Output; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ public readonly grpcHealthCheck!: pulumi.Output; @@ -349,17 +349,17 @@ export class RegionHealthCheck extends pulumi.CustomResource { */ public readonly healthyThreshold!: pulumi.Output; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ public readonly http2HealthCheck!: pulumi.Output; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ public readonly httpHealthCheck!: pulumi.Output; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ public readonly httpsHealthCheck!: pulumi.Output; @@ -396,12 +396,12 @@ export class RegionHealthCheck extends pulumi.CustomResource { */ public /*out*/ readonly selfLink!: pulumi.Output; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ public readonly sslHealthCheck!: pulumi.Output; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ public readonly tcpHealthCheck!: pulumi.Output; @@ -497,7 +497,7 @@ export interface RegionHealthCheckState { */ description?: pulumi.Input; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ grpcHealthCheck?: pulumi.Input; @@ -507,17 +507,17 @@ export interface RegionHealthCheckState { */ healthyThreshold?: pulumi.Input; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ http2HealthCheck?: pulumi.Input; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ httpHealthCheck?: pulumi.Input; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ httpsHealthCheck?: pulumi.Input; @@ -554,12 +554,12 @@ export interface RegionHealthCheckState { */ selfLink?: pulumi.Input; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ sslHealthCheck?: pulumi.Input; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ tcpHealthCheck?: pulumi.Input; @@ -595,7 +595,7 @@ export interface RegionHealthCheckArgs { */ description?: pulumi.Input; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ grpcHealthCheck?: pulumi.Input; @@ -605,17 +605,17 @@ export interface RegionHealthCheckArgs { */ healthyThreshold?: pulumi.Input; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ http2HealthCheck?: pulumi.Input; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ httpHealthCheck?: pulumi.Input; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ httpsHealthCheck?: pulumi.Input; @@ -648,12 +648,12 @@ export interface RegionHealthCheckArgs { */ region?: pulumi.Input; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ sslHealthCheck?: pulumi.Input; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ tcpHealthCheck?: pulumi.Input; diff --git a/sdk/nodejs/compute/regionInstanceGroupManager.ts b/sdk/nodejs/compute/regionInstanceGroupManager.ts index 40849fe705..a5d078df3b 100644 --- a/sdk/nodejs/compute/regionInstanceGroupManager.ts +++ b/sdk/nodejs/compute/regionInstanceGroupManager.ts @@ -199,6 +199,11 @@ export class RegionInstanceGroupManager extends pulumi.CustomResource { * The fingerprint of the instance group manager. */ public /*out*/ readonly fingerprint!: pulumi.Output; + /** + * The flexibility policy for managed instance group. Instance flexibility allows managed instance group to create VMs from multiple types of machines. Instance flexibility configuration on managed instance group overrides instance template configuration. Structure is documented below. + * - - - + */ + public readonly instanceFlexibilityPolicy!: pulumi.Output; /** * The full URL of the instance group created by the manager. */ @@ -230,8 +235,6 @@ export class RegionInstanceGroupManager extends pulumi.CustomResource { public readonly namedPorts!: pulumi.Output; /** * Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert). - * - * - - - */ public readonly params!: pulumi.Output; /** @@ -333,6 +336,7 @@ export class RegionInstanceGroupManager extends pulumi.CustomResource { resourceInputs["distributionPolicyTargetShape"] = state ? state.distributionPolicyTargetShape : undefined; resourceInputs["distributionPolicyZones"] = state ? state.distributionPolicyZones : undefined; resourceInputs["fingerprint"] = state ? state.fingerprint : undefined; + resourceInputs["instanceFlexibilityPolicy"] = state ? state.instanceFlexibilityPolicy : undefined; resourceInputs["instanceGroup"] = state ? state.instanceGroup : undefined; resourceInputs["instanceLifecyclePolicy"] = state ? state.instanceLifecyclePolicy : undefined; resourceInputs["listManagedInstancesResults"] = state ? state.listManagedInstancesResults : undefined; @@ -369,6 +373,7 @@ export class RegionInstanceGroupManager extends pulumi.CustomResource { resourceInputs["description"] = args ? args.description : undefined; resourceInputs["distributionPolicyTargetShape"] = args ? args.distributionPolicyTargetShape : undefined; resourceInputs["distributionPolicyZones"] = args ? args.distributionPolicyZones : undefined; + resourceInputs["instanceFlexibilityPolicy"] = args ? args.instanceFlexibilityPolicy : undefined; resourceInputs["instanceLifecyclePolicy"] = args ? args.instanceLifecyclePolicy : undefined; resourceInputs["listManagedInstancesResults"] = args ? args.listManagedInstancesResults : undefined; resourceInputs["name"] = args ? args.name : undefined; @@ -445,6 +450,11 @@ export interface RegionInstanceGroupManagerState { * The fingerprint of the instance group manager. */ fingerprint?: pulumi.Input; + /** + * The flexibility policy for managed instance group. Instance flexibility allows managed instance group to create VMs from multiple types of machines. Instance flexibility configuration on managed instance group overrides instance template configuration. Structure is documented below. + * - - - + */ + instanceFlexibilityPolicy?: pulumi.Input; /** * The full URL of the instance group created by the manager. */ @@ -476,8 +486,6 @@ export interface RegionInstanceGroupManagerState { namedPorts?: pulumi.Input[]>; /** * Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert). - * - * - - - */ params?: pulumi.Input; /** @@ -597,6 +605,11 @@ export interface RegionInstanceGroupManagerArgs { * group. You can specify one or more values. For more information, see the [official documentation](https://cloud.google.com/compute/docs/instance-groups/distributing-instances-with-regional-instance-groups#selectingzones). */ distributionPolicyZones?: pulumi.Input[]>; + /** + * The flexibility policy for managed instance group. Instance flexibility allows managed instance group to create VMs from multiple types of machines. Instance flexibility configuration on managed instance group overrides instance template configuration. Structure is documented below. + * - - - + */ + instanceFlexibilityPolicy?: pulumi.Input; /** * The instance lifecycle policy for this managed instance group. */ @@ -624,8 +637,6 @@ export interface RegionInstanceGroupManagerArgs { namedPorts?: pulumi.Input[]>; /** * Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert). - * - * - - - */ params?: pulumi.Input; /** diff --git a/sdk/nodejs/compute/regionNetworkFirewallPolicyRule.ts b/sdk/nodejs/compute/regionNetworkFirewallPolicyRule.ts index 4682598c75..96b3e4bca1 100644 --- a/sdk/nodejs/compute/regionNetworkFirewallPolicyRule.ts +++ b/sdk/nodejs/compute/regionNetworkFirewallPolicyRule.ts @@ -48,7 +48,7 @@ import * as utilities from "../utilities"; * }); * const basicValue = new gcp.tags.TagValue("basic_value", { * description: "For valuename resources.", - * parent: pulumi.interpolate`tagKeys/${basicKey.name}`, + * parent: basicKey.id, * shortName: "tagvalue", * }); * const primary = new gcp.compute.RegionNetworkFirewallPolicyRule("primary", { @@ -71,7 +71,7 @@ import * as utilities from "../utilities"; * ipProtocol: "all", * }], * srcSecureTags: [{ - * name: pulumi.interpolate`tagValues/${basicValue.name}`, + * name: basicValue.id, * }], * srcAddressGroups: [basicRegionalNetworksecurityAddressGroup.id], * }, diff --git a/sdk/nodejs/compute/regionNetworkFirewallPolicyWithRules.ts b/sdk/nodejs/compute/regionNetworkFirewallPolicyWithRules.ts index 31f66cf243..ab4f52c4e9 100644 --- a/sdk/nodejs/compute/regionNetworkFirewallPolicyWithRules.ts +++ b/sdk/nodejs/compute/regionNetworkFirewallPolicyWithRules.ts @@ -18,7 +18,7 @@ import * as utilities from "../utilities"; * const project = gcp.organizations.getProject({}); * const addressGroup1 = new gcp.networksecurity.AddressGroup("address_group_1", { * name: "tf-address-group", - * parent: project.then(project => `projects/${project.name}`), + * parent: project.then(project => project.id), * description: "Regional address group", * location: "us-west2", * items: ["208.80.154.224/32"], @@ -27,7 +27,7 @@ import * as utilities from "../utilities"; * }); * const secureTagKey1 = new gcp.tags.TagKey("secure_tag_key_1", { * description: "Tag key", - * parent: project.then(project => `projects/${project.name}`), + * parent: project.then(project => project.id), * purpose: "GCE_FIREWALL", * shortName: "tf-tag-key", * purposeData: { @@ -36,7 +36,7 @@ import * as utilities from "../utilities"; * }); * const secureTagValue1 = new gcp.tags.TagValue("secure_tag_value_1", { * description: "Tag value", - * parent: pulumi.interpolate`tagKeys/${secureTagKey1.name}`, + * parent: secureTagKey1.id, * shortName: "tf-tag-value", * }); * const region_network_firewall_policy_with_rules = new gcp.compute.RegionNetworkFirewallPolicyWithRules("region-network-firewall-policy-with-rules", { @@ -74,7 +74,7 @@ import * as utilities from "../utilities"; * destAddressGroups: [addressGroup1.id], * }, * targetSecureTags: [{ - * name: pulumi.interpolate`tagValues/${secureTagValue1.name}`, + * name: secureTagValue1.id, * }], * }, * { @@ -103,7 +103,7 @@ import * as utilities from "../utilities"; * ], * srcAddressGroups: [addressGroup1.id], * srcSecureTags: [{ - * name: pulumi.interpolate`tagValues/${secureTagValue1.name}`, + * name: secureTagValue1.id, * }], * }, * disabled: true, diff --git a/sdk/nodejs/compute/regionResizeRequest.ts b/sdk/nodejs/compute/regionResizeRequest.ts new file mode 100644 index 0000000000..261c36aae8 --- /dev/null +++ b/sdk/nodejs/compute/regionResizeRequest.ts @@ -0,0 +1,335 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as utilities from "../utilities"; + +/** + * ## Example Usage + * + * ### Compute Rmig Resize Request + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * + * const a3Dws = new gcp.compute.RegionInstanceTemplate("a3_dws", { + * name: "a3-dws", + * region: "us-central1", + * description: "This template is used to create a mig instance that is compatible with DWS resize requests.", + * instanceDescription: "A3 GPU", + * machineType: "a3-highgpu-8g", + * canIpForward: false, + * scheduling: { + * automaticRestart: false, + * onHostMaintenance: "TERMINATE", + * }, + * disks: [{ + * sourceImage: "cos-cloud/cos-105-lts", + * autoDelete: true, + * boot: true, + * diskType: "pd-ssd", + * diskSizeGb: 960, + * mode: "READ_WRITE", + * }], + * guestAccelerators: [{ + * type: "nvidia-h100-80gb", + * count: 8, + * }], + * reservationAffinity: { + * type: "NO_RESERVATION", + * }, + * shieldedInstanceConfig: { + * enableVtpm: true, + * enableIntegrityMonitoring: true, + * }, + * networkInterfaces: [{ + * network: "default", + * }], + * }); + * const a3DwsRegionInstanceGroupManager = new gcp.compute.RegionInstanceGroupManager("a3_dws", { + * name: "a3-dws", + * baseInstanceName: "a3-dws", + * region: "us-central1", + * versions: [{ + * instanceTemplate: a3Dws.selfLink, + * }], + * instanceLifecyclePolicy: { + * defaultActionOnFailure: "DO_NOTHING", + * }, + * distributionPolicyTargetShape: "ANY_SINGLE_ZONE", + * distributionPolicyZones: [ + * "us-central1-a", + * "us-central1-b", + * "us-central1-c", + * "us-central1-f", + * ], + * updatePolicy: { + * instanceRedistributionType: "NONE", + * type: "OPPORTUNISTIC", + * minimalAction: "REPLACE", + * maxSurgeFixed: 0, + * maxUnavailableFixed: 6, + * }, + * waitForInstances: false, + * }); + * const a3ResizeRequest = new gcp.compute.RegionResizeRequest("a3_resize_request", { + * name: "a3-dws", + * instanceGroupManager: a3DwsRegionInstanceGroupManager.name, + * region: "us-central1", + * description: "Test resize request resource", + * resizeBy: 2, + * requestedRunDuration: { + * seconds: "14400", + * nanos: 0, + * }, + * }); + * ``` + * + * ## Import + * + * RegionResizeRequest can be imported using any of these accepted formats: + * + * * `projects/{{project}}/regions/{{region}}/instanceGroupManagers/{{instance_group_manager}}/resizeRequests/{{name}}` + * + * * `{{project}}/{{region}}/{{instance_group_manager}}/{{name}}` + * + * * `{{region}}/{{instance_group_manager}}/{{name}}` + * + * * `{{instance_group_manager}}/{{name}}` + * + * When using the `pulumi import` command, RegionResizeRequest can be imported using one of the formats above. For example: + * + * ```sh + * $ pulumi import gcp:compute/regionResizeRequest:RegionResizeRequest default projects/{{project}}/regions/{{region}}/instanceGroupManagers/{{instance_group_manager}}/resizeRequests/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:compute/regionResizeRequest:RegionResizeRequest default {{project}}/{{region}}/{{instance_group_manager}}/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:compute/regionResizeRequest:RegionResizeRequest default {{region}}/{{instance_group_manager}}/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:compute/regionResizeRequest:RegionResizeRequest default {{instance_group_manager}}/{{name}} + * ``` + */ +export class RegionResizeRequest extends pulumi.CustomResource { + /** + * Get an existing RegionResizeRequest resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: RegionResizeRequestState, opts?: pulumi.CustomResourceOptions): RegionResizeRequest { + return new RegionResizeRequest(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'gcp:compute/regionResizeRequest:RegionResizeRequest'; + + /** + * Returns true if the given object is an instance of RegionResizeRequest. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is RegionResizeRequest { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === RegionResizeRequest.__pulumiType; + } + + /** + * The creation timestamp for this resize request in RFC3339 text format. + */ + public /*out*/ readonly creationTimestamp!: pulumi.Output; + /** + * An optional description of this resize-request. + */ + public readonly description!: pulumi.Output; + /** + * The reference of the regional instance group manager this ResizeRequest is a part of. + * + * + * - - - + */ + public readonly instanceGroupManager!: pulumi.Output; + /** + * The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + */ + public readonly name!: pulumi.Output; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + */ + public readonly project!: pulumi.Output; + /** + * The reference of the compute region scoping this request. + */ + public readonly region!: pulumi.Output; + /** + * Requested run duration for instances that will be created by this request. At the end of the run duration instances will be deleted. + * Structure is documented below. + */ + public readonly requestedRunDuration!: pulumi.Output; + /** + * The number of instances to be created by this resize request. The group's target size will be increased by this number. + */ + public readonly resizeBy!: pulumi.Output; + /** + * Current state of the request. + */ + public /*out*/ readonly state!: pulumi.Output; + /** + * Status of the request. + * Structure is documented below. + */ + public /*out*/ readonly statuses!: pulumi.Output; + + /** + * Create a RegionResizeRequest resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: RegionResizeRequestArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: RegionResizeRequestArgs | RegionResizeRequestState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as RegionResizeRequestState | undefined; + resourceInputs["creationTimestamp"] = state ? state.creationTimestamp : undefined; + resourceInputs["description"] = state ? state.description : undefined; + resourceInputs["instanceGroupManager"] = state ? state.instanceGroupManager : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["project"] = state ? state.project : undefined; + resourceInputs["region"] = state ? state.region : undefined; + resourceInputs["requestedRunDuration"] = state ? state.requestedRunDuration : undefined; + resourceInputs["resizeBy"] = state ? state.resizeBy : undefined; + resourceInputs["state"] = state ? state.state : undefined; + resourceInputs["statuses"] = state ? state.statuses : undefined; + } else { + const args = argsOrState as RegionResizeRequestArgs | undefined; + if ((!args || args.instanceGroupManager === undefined) && !opts.urn) { + throw new Error("Missing required property 'instanceGroupManager'"); + } + if ((!args || args.region === undefined) && !opts.urn) { + throw new Error("Missing required property 'region'"); + } + if ((!args || args.resizeBy === undefined) && !opts.urn) { + throw new Error("Missing required property 'resizeBy'"); + } + resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["instanceGroupManager"] = args ? args.instanceGroupManager : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["project"] = args ? args.project : undefined; + resourceInputs["region"] = args ? args.region : undefined; + resourceInputs["requestedRunDuration"] = args ? args.requestedRunDuration : undefined; + resourceInputs["resizeBy"] = args ? args.resizeBy : undefined; + resourceInputs["creationTimestamp"] = undefined /*out*/; + resourceInputs["state"] = undefined /*out*/; + resourceInputs["statuses"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(RegionResizeRequest.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering RegionResizeRequest resources. + */ +export interface RegionResizeRequestState { + /** + * The creation timestamp for this resize request in RFC3339 text format. + */ + creationTimestamp?: pulumi.Input; + /** + * An optional description of this resize-request. + */ + description?: pulumi.Input; + /** + * The reference of the regional instance group manager this ResizeRequest is a part of. + * + * + * - - - + */ + instanceGroupManager?: pulumi.Input; + /** + * The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + */ + name?: pulumi.Input; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + */ + project?: pulumi.Input; + /** + * The reference of the compute region scoping this request. + */ + region?: pulumi.Input; + /** + * Requested run duration for instances that will be created by this request. At the end of the run duration instances will be deleted. + * Structure is documented below. + */ + requestedRunDuration?: pulumi.Input; + /** + * The number of instances to be created by this resize request. The group's target size will be increased by this number. + */ + resizeBy?: pulumi.Input; + /** + * Current state of the request. + */ + state?: pulumi.Input; + /** + * Status of the request. + * Structure is documented below. + */ + statuses?: pulumi.Input[]>; +} + +/** + * The set of arguments for constructing a RegionResizeRequest resource. + */ +export interface RegionResizeRequestArgs { + /** + * An optional description of this resize-request. + */ + description?: pulumi.Input; + /** + * The reference of the regional instance group manager this ResizeRequest is a part of. + * + * + * - - - + */ + instanceGroupManager: pulumi.Input; + /** + * The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + */ + name?: pulumi.Input; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + */ + project?: pulumi.Input; + /** + * The reference of the compute region scoping this request. + */ + region: pulumi.Input; + /** + * Requested run duration for instances that will be created by this request. At the end of the run duration instances will be deleted. + * Structure is documented below. + */ + requestedRunDuration?: pulumi.Input; + /** + * The number of instances to be created by this resize request. The group's target size will be increased by this number. + */ + resizeBy: pulumi.Input; +} diff --git a/sdk/nodejs/compute/regionSecurityPolicy.ts b/sdk/nodejs/compute/regionSecurityPolicy.ts index bec8310994..0ee48e858c 100644 --- a/sdk/nodejs/compute/regionSecurityPolicy.ts +++ b/sdk/nodejs/compute/regionSecurityPolicy.ts @@ -64,6 +64,40 @@ import * as utilities from "../utilities"; * ], * }); * ``` + * ### Region Security Policy With Rules + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * + * const region_sec_policy_with_rules = new gcp.compute.RegionSecurityPolicy("region-sec-policy-with-rules", { + * name: "my-sec-policy-with-rules", + * description: "basic region security policy with multiple rules", + * type: "CLOUD_ARMOR", + * rules: [ + * { + * action: "deny", + * priority: 1000, + * match: { + * expr: { + * expression: "request.path.matches(\"/login.html\") && token.recaptcha_session.score < 0.2", + * }, + * }, + * }, + * { + * action: "deny", + * priority: 2147483647, + * match: { + * versionedExpr: "SRC_IPS_V1", + * config: { + * srcIpRanges: ["*"], + * }, + * }, + * description: "default rule", + * }, + * ], + * }); + * ``` * * ## Import * @@ -159,6 +193,11 @@ export class RegionSecurityPolicy extends pulumi.CustomResource { * If it is not provided, the provider region is used. */ public readonly region!: pulumi.Output; + /** + * The set of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added. + * Structure is documented below. + */ + public readonly rules!: pulumi.Output; /** * Server-defined URL for the resource. */ @@ -204,6 +243,7 @@ export class RegionSecurityPolicy extends pulumi.CustomResource { resourceInputs["policyId"] = state ? state.policyId : undefined; resourceInputs["project"] = state ? state.project : undefined; resourceInputs["region"] = state ? state.region : undefined; + resourceInputs["rules"] = state ? state.rules : undefined; resourceInputs["selfLink"] = state ? state.selfLink : undefined; resourceInputs["selfLinkWithPolicyId"] = state ? state.selfLinkWithPolicyId : undefined; resourceInputs["type"] = state ? state.type : undefined; @@ -215,6 +255,7 @@ export class RegionSecurityPolicy extends pulumi.CustomResource { resourceInputs["name"] = args ? args.name : undefined; resourceInputs["project"] = args ? args.project : undefined; resourceInputs["region"] = args ? args.region : undefined; + resourceInputs["rules"] = args ? args.rules : undefined; resourceInputs["type"] = args ? args.type : undefined; resourceInputs["userDefinedFields"] = args ? args.userDefinedFields : undefined; resourceInputs["fingerprint"] = undefined /*out*/; @@ -267,6 +308,11 @@ export interface RegionSecurityPolicyState { * If it is not provided, the provider region is used. */ region?: pulumi.Input; + /** + * The set of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added. + * Structure is documented below. + */ + rules?: pulumi.Input[]>; /** * Server-defined URL for the resource. */ @@ -324,6 +370,11 @@ export interface RegionSecurityPolicyArgs { * If it is not provided, the provider region is used. */ region?: pulumi.Input; + /** + * The set of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added. + * Structure is documented below. + */ + rules?: pulumi.Input[]>; /** * The type indicates the intended use of the security policy. * - CLOUD_ARMOR: Cloud Armor backend security policies can be configured to filter incoming HTTP requests targeting backend services. They filter requests before they hit the origin servers. diff --git a/sdk/nodejs/compute/routerPeer.ts b/sdk/nodejs/compute/routerPeer.ts index 7e5f2f1c6d..26da394d4b 100644 --- a/sdk/nodejs/compute/routerPeer.ts +++ b/sdk/nodejs/compute/routerPeer.ts @@ -411,14 +411,17 @@ export class RouterPeer extends pulumi.CustomResource { */ public readonly bfd!: pulumi.Output; /** - * The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a - * subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + * The custom learned route IP address range. Must be a valid CIDR-formatted prefix. + * If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, + * a /32 singular IP address range, and, for IPv6, /128. + * Structure is documented below. */ public readonly customLearnedIpRanges!: pulumi.Output; /** - * The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route - * ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a - * priority of 100 to the ranges. + * The user-defined custom learned route priority for a BGP session. + * This value is applied to all custom learned route ranges for the session. + * You can choose a value from 0 to 65335. If you don't provide a value, + * Google Cloud assigns a priority of 100 to the ranges. */ public readonly customLearnedRoutePriority!: pulumi.Output; /** @@ -667,14 +670,17 @@ export interface RouterPeerState { */ bfd?: pulumi.Input; /** - * The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a - * subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + * The custom learned route IP address range. Must be a valid CIDR-formatted prefix. + * If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, + * a /32 singular IP address range, and, for IPv6, /128. + * Structure is documented below. */ customLearnedIpRanges?: pulumi.Input[]>; /** - * The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route - * ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a - * priority of 100 to the ranges. + * The user-defined custom learned route priority for a BGP session. + * This value is applied to all custom learned route ranges for the session. + * You can choose a value from 0 to 65335. If you don't provide a value, + * Google Cloud assigns a priority of 100 to the ranges. */ customLearnedRoutePriority?: pulumi.Input; /** @@ -840,14 +846,17 @@ export interface RouterPeerArgs { */ bfd?: pulumi.Input; /** - * The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a - * subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + * The custom learned route IP address range. Must be a valid CIDR-formatted prefix. + * If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, + * a /32 singular IP address range, and, for IPv6, /128. + * Structure is documented below. */ customLearnedIpRanges?: pulumi.Input[]>; /** - * The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route - * ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a - * priority of 100 to the ranges. + * The user-defined custom learned route priority for a BGP session. + * This value is applied to all custom learned route ranges for the session. + * You can choose a value from 0 to 65335. If you don't provide a value, + * Google Cloud assigns a priority of 100 to the ranges. */ customLearnedRoutePriority?: pulumi.Input; /** diff --git a/sdk/nodejs/compute/securityScanConfig.ts b/sdk/nodejs/compute/securityScanConfig.ts index dd8c1e80a3..98ee05395b 100644 --- a/sdk/nodejs/compute/securityScanConfig.ts +++ b/sdk/nodejs/compute/securityScanConfig.ts @@ -35,20 +35,20 @@ import * as utilities from "../utilities"; * * ScanConfig can be imported using any of these accepted formats: * - * * `projects/{{project}}/scanConfigs/{{name}}` - * * * `{{project}}/{{name}}` * + * * `{{project}} {{name}}` + * * * `{{name}}` * * When using the `pulumi import` command, ScanConfig can be imported using one of the formats above. For example: * * ```sh - * $ pulumi import gcp:compute/securityScanConfig:SecurityScanConfig default projects/{{project}}/scanConfigs/{{name}} + * $ pulumi import gcp:compute/securityScanConfig:SecurityScanConfig default {{project}}/{{name}} * ``` * * ```sh - * $ pulumi import gcp:compute/securityScanConfig:SecurityScanConfig default {{project}}/{{name}} + * $ pulumi import gcp:compute/securityScanConfig:SecurityScanConfig default "{{project}} {{name}}" * ``` * * ```sh diff --git a/sdk/nodejs/config/vars.ts b/sdk/nodejs/config/vars.ts index e2c440c549..4577850f64 100644 --- a/sdk/nodejs/config/vars.ts +++ b/sdk/nodejs/config/vars.ts @@ -521,6 +521,14 @@ Object.defineProperty(exports, "dataprocCustomEndpoint", { enumerable: true, }); +export declare const dataprocGdcCustomEndpoint: string | undefined; +Object.defineProperty(exports, "dataprocGdcCustomEndpoint", { + get() { + return __config.get("dataprocGdcCustomEndpoint"); + }, + enumerable: true, +}); + export declare const dataprocMetastoreCustomEndpoint: string | undefined; Object.defineProperty(exports, "dataprocMetastoreCustomEndpoint", { get() { @@ -785,6 +793,14 @@ Object.defineProperty(exports, "iam2CustomEndpoint", { enumerable: true, }); +export declare const iam3CustomEndpoint: string | undefined; +Object.defineProperty(exports, "iam3CustomEndpoint", { + get() { + return __config.get("iam3CustomEndpoint"); + }, + enumerable: true, +}); + export declare const iamBetaCustomEndpoint: string | undefined; Object.defineProperty(exports, "iamBetaCustomEndpoint", { get() { diff --git a/sdk/nodejs/container/cluster.ts b/sdk/nodejs/container/cluster.ts index 1722b74b18..f176094153 100644 --- a/sdk/nodejs/container/cluster.ts +++ b/sdk/nodejs/container/cluster.ts @@ -209,6 +209,11 @@ export class Cluster extends pulumi.CustomResource { * Configuration for [Confidential Nodes](https://cloud.google.com/kubernetes-engine/docs/how-to/confidential-gke-nodes) feature. Structure is documented below documented below. */ public readonly confidentialNodes!: pulumi.Output; + /** + * Configuration for all of the cluster's control plane endpoints. + * Structure is documented below. + */ + public readonly controlPlaneEndpointsConfig!: pulumi.Output; /** * Configuration for the * [Cost Allocation](https://cloud.google.com/kubernetes-engine/docs/how-to/cost-allocations) feature. @@ -600,6 +605,10 @@ export class Cluster extends pulumi.CustomResource { * notation (e.g. `1.2.3.4/29`). */ public /*out*/ readonly tpuIpv4CidrBlock!: pulumi.Output; + /** + * The custom keys configuration of the cluster. + */ + public readonly userManagedKeysConfig!: pulumi.Output; /** * Vertical Pod Autoscaling automatically adjusts the resources of pods controlled by it. * Structure is documented below. @@ -639,6 +648,7 @@ export class Cluster extends pulumi.CustomResource { resourceInputs["clusterIpv4Cidr"] = state ? state.clusterIpv4Cidr : undefined; resourceInputs["clusterTelemetry"] = state ? state.clusterTelemetry : undefined; resourceInputs["confidentialNodes"] = state ? state.confidentialNodes : undefined; + resourceInputs["controlPlaneEndpointsConfig"] = state ? state.controlPlaneEndpointsConfig : undefined; resourceInputs["costManagementConfig"] = state ? state.costManagementConfig : undefined; resourceInputs["databaseEncryption"] = state ? state.databaseEncryption : undefined; resourceInputs["datapathProvider"] = state ? state.datapathProvider : undefined; @@ -707,6 +717,7 @@ export class Cluster extends pulumi.CustomResource { resourceInputs["subnetwork"] = state ? state.subnetwork : undefined; resourceInputs["tpuConfig"] = state ? state.tpuConfig : undefined; resourceInputs["tpuIpv4CidrBlock"] = state ? state.tpuIpv4CidrBlock : undefined; + resourceInputs["userManagedKeysConfig"] = state ? state.userManagedKeysConfig : undefined; resourceInputs["verticalPodAutoscaling"] = state ? state.verticalPodAutoscaling : undefined; resourceInputs["workloadAltsConfig"] = state ? state.workloadAltsConfig : undefined; resourceInputs["workloadIdentityConfig"] = state ? state.workloadIdentityConfig : undefined; @@ -720,6 +731,7 @@ export class Cluster extends pulumi.CustomResource { resourceInputs["clusterIpv4Cidr"] = args ? args.clusterIpv4Cidr : undefined; resourceInputs["clusterTelemetry"] = args ? args.clusterTelemetry : undefined; resourceInputs["confidentialNodes"] = args ? args.confidentialNodes : undefined; + resourceInputs["controlPlaneEndpointsConfig"] = args ? args.controlPlaneEndpointsConfig : undefined; resourceInputs["costManagementConfig"] = args ? args.costManagementConfig : undefined; resourceInputs["databaseEncryption"] = args ? args.databaseEncryption : undefined; resourceInputs["datapathProvider"] = args ? args.datapathProvider : undefined; @@ -779,6 +791,7 @@ export class Cluster extends pulumi.CustomResource { resourceInputs["serviceExternalIpsConfig"] = args ? args.serviceExternalIpsConfig : undefined; resourceInputs["subnetwork"] = args ? args.subnetwork : undefined; resourceInputs["tpuConfig"] = args ? args.tpuConfig : undefined; + resourceInputs["userManagedKeysConfig"] = args ? args.userManagedKeysConfig : undefined; resourceInputs["verticalPodAutoscaling"] = args ? args.verticalPodAutoscaling : undefined; resourceInputs["workloadAltsConfig"] = args ? args.workloadAltsConfig : undefined; resourceInputs["workloadIdentityConfig"] = args ? args.workloadIdentityConfig : undefined; @@ -850,6 +863,11 @@ export interface ClusterState { * Configuration for [Confidential Nodes](https://cloud.google.com/kubernetes-engine/docs/how-to/confidential-gke-nodes) feature. Structure is documented below documented below. */ confidentialNodes?: pulumi.Input; + /** + * Configuration for all of the cluster's control plane endpoints. + * Structure is documented below. + */ + controlPlaneEndpointsConfig?: pulumi.Input; /** * Configuration for the * [Cost Allocation](https://cloud.google.com/kubernetes-engine/docs/how-to/cost-allocations) feature. @@ -1241,6 +1259,10 @@ export interface ClusterState { * notation (e.g. `1.2.3.4/29`). */ tpuIpv4CidrBlock?: pulumi.Input; + /** + * The custom keys configuration of the cluster. + */ + userManagedKeysConfig?: pulumi.Input; /** * Vertical Pod Autoscaling automatically adjusts the resources of pods controlled by it. * Structure is documented below. @@ -1311,6 +1333,11 @@ export interface ClusterArgs { * Configuration for [Confidential Nodes](https://cloud.google.com/kubernetes-engine/docs/how-to/confidential-gke-nodes) feature. Structure is documented below documented below. */ confidentialNodes?: pulumi.Input; + /** + * Configuration for all of the cluster's control plane endpoints. + * Structure is documented below. + */ + controlPlaneEndpointsConfig?: pulumi.Input; /** * Configuration for the * [Cost Allocation](https://cloud.google.com/kubernetes-engine/docs/how-to/cost-allocations) feature. @@ -1662,6 +1689,10 @@ export interface ClusterArgs { * TPU configuration for the cluster. */ tpuConfig?: pulumi.Input; + /** + * The custom keys configuration of the cluster. + */ + userManagedKeysConfig?: pulumi.Input; /** * Vertical Pod Autoscaling automatically adjusts the resources of pods controlled by it. * Structure is documented below. diff --git a/sdk/nodejs/container/getCluster.ts b/sdk/nodejs/container/getCluster.ts index fd35517c12..a2ded722b3 100644 --- a/sdk/nodejs/container/getCluster.ts +++ b/sdk/nodejs/container/getCluster.ts @@ -67,6 +67,7 @@ export interface GetClusterResult { readonly clusterIpv4Cidr: string; readonly clusterTelemetries: outputs.container.GetClusterClusterTelemetry[]; readonly confidentialNodes: outputs.container.GetClusterConfidentialNode[]; + readonly controlPlaneEndpointsConfigs: outputs.container.GetClusterControlPlaneEndpointsConfig[]; readonly costManagementConfigs: outputs.container.GetClusterCostManagementConfig[]; readonly databaseEncryptions: outputs.container.GetClusterDatabaseEncryption[]; readonly datapathProvider: string; @@ -139,6 +140,7 @@ export interface GetClusterResult { readonly subnetwork: string; readonly tpuConfigs: outputs.container.GetClusterTpuConfig[]; readonly tpuIpv4CidrBlock: string; + readonly userManagedKeysConfigs: outputs.container.GetClusterUserManagedKeysConfig[]; readonly verticalPodAutoscalings: outputs.container.GetClusterVerticalPodAutoscaling[]; readonly workloadAltsConfigs: outputs.container.GetClusterWorkloadAltsConfig[]; readonly workloadIdentityConfigs: outputs.container.GetClusterWorkloadIdentityConfig[]; diff --git a/sdk/nodejs/dataloss/preventionDiscoveryConfig.ts b/sdk/nodejs/dataloss/preventionDiscoveryConfig.ts index cbf222ff9a..ff42b74966 100644 --- a/sdk/nodejs/dataloss/preventionDiscoveryConfig.ts +++ b/sdk/nodejs/dataloss/preventionDiscoveryConfig.ts @@ -101,7 +101,7 @@ export class PreventionDiscoveryConfig extends pulumi.CustomResource { */ public /*out*/ readonly name!: pulumi.Output; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ public readonly orgConfig!: pulumi.Output; @@ -221,7 +221,7 @@ export interface PreventionDiscoveryConfigState { */ name?: pulumi.Input; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ orgConfig?: pulumi.Input; @@ -272,7 +272,7 @@ export interface PreventionDiscoveryConfigArgs { */ location: pulumi.Input; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ orgConfig?: pulumi.Input; diff --git a/sdk/nodejs/dataproc/gdcApplicationEnvironment.ts b/sdk/nodejs/dataproc/gdcApplicationEnvironment.ts new file mode 100644 index 0000000000..01a5f195f1 --- /dev/null +++ b/sdk/nodejs/dataproc/gdcApplicationEnvironment.ts @@ -0,0 +1,373 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as utilities from "../utilities"; + +/** + * An ApplicationEnvironment contains shared configuration that may be referenced by multiple SparkApplications. + * + * To get more information about ApplicationEnvironment, see: + * + * * [API documentation](https://cloud.google.com/dataproc-gdc/docs/reference/rest/v1/projects.locations.applicationEnvironments) + * * How-to Guides + * * [Dataproc Intro](https://cloud.google.com/dataproc/) + * + * ## Example Usage + * + * ### Dataprocgdc Applicationenvironment Basic + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * + * const application_environment = new gcp.dataproc.GdcApplicationEnvironment("application-environment", { + * applicationEnvironmentId: "dp-tf-e2e-application-environment-basic", + * serviceinstance: "do-not-delete-dataproc-gdc-instance", + * project: "my-project", + * location: "us-west2", + * namespace: "default", + * }); + * ``` + * ### Dataprocgdc Applicationenvironment + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * + * const application_environment = new gcp.dataproc.GdcApplicationEnvironment("application-environment", { + * applicationEnvironmentId: "dp-tf-e2e-application-environment", + * serviceinstance: "do-not-delete-dataproc-gdc-instance", + * project: "my-project", + * location: "us-west2", + * namespace: "default", + * displayName: "An application environment", + * labels: { + * "test-label": "label-value", + * }, + * annotations: { + * an_annotation: "annotation_value", + * }, + * sparkApplicationEnvironmentConfig: { + * defaultProperties: { + * "spark.executor.memory": "4g", + * }, + * defaultVersion: "1.2", + * }, + * }); + * ``` + * + * ## Import + * + * ApplicationEnvironment can be imported using any of these accepted formats: + * + * * `projects/{{project}}/locations/{{location}}/serviceInstances/{{serviceinstance}}/applicationEnvironments/{{application_environment_id}}` + * + * * `{{project}}/{{location}}/{{serviceinstance}}/{{application_environment_id}}` + * + * * `{{location}}/{{serviceinstance}}/{{application_environment_id}}` + * + * When using the `pulumi import` command, ApplicationEnvironment can be imported using one of the formats above. For example: + * + * ```sh + * $ pulumi import gcp:dataproc/gdcApplicationEnvironment:GdcApplicationEnvironment default projects/{{project}}/locations/{{location}}/serviceInstances/{{serviceinstance}}/applicationEnvironments/{{application_environment_id}} + * ``` + * + * ```sh + * $ pulumi import gcp:dataproc/gdcApplicationEnvironment:GdcApplicationEnvironment default {{project}}/{{location}}/{{serviceinstance}}/{{application_environment_id}} + * ``` + * + * ```sh + * $ pulumi import gcp:dataproc/gdcApplicationEnvironment:GdcApplicationEnvironment default {{location}}/{{serviceinstance}}/{{application_environment_id}} + * ``` + */ +export class GdcApplicationEnvironment extends pulumi.CustomResource { + /** + * Get an existing GdcApplicationEnvironment resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: GdcApplicationEnvironmentState, opts?: pulumi.CustomResourceOptions): GdcApplicationEnvironment { + return new GdcApplicationEnvironment(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'gcp:dataproc/gdcApplicationEnvironment:GdcApplicationEnvironment'; + + /** + * Returns true if the given object is an instance of GdcApplicationEnvironment. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is GdcApplicationEnvironment { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === GdcApplicationEnvironment.__pulumiType; + } + + /** + * The annotations to associate with this application environment. Annotations may be used to store client information, but are not used by the server. + * **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + * Please refer to the field `effectiveAnnotations` for all of the annotations present on the resource. + */ + public readonly annotations!: pulumi.Output<{[key: string]: string} | undefined>; + /** + * The id of the application environment + */ + public readonly applicationEnvironmentId!: pulumi.Output; + /** + * The timestamp when the resource was created. + */ + public /*out*/ readonly createTime!: pulumi.Output; + /** + * User-provided human-readable name to be used in user interfaces. + */ + public readonly displayName!: pulumi.Output; + public /*out*/ readonly effectiveAnnotations!: pulumi.Output<{[key: string]: string}>; + /** + * All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + */ + public /*out*/ readonly effectiveLabels!: pulumi.Output<{[key: string]: string}>; + /** + * The labels to associate with this application environment. Labels may be used for filtering and billing tracking. + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effectiveLabels` for all of the labels present on the resource. + */ + public readonly labels!: pulumi.Output<{[key: string]: string} | undefined>; + /** + * The location of the application environment + */ + public readonly location!: pulumi.Output; + /** + * Identifier. The name of the application environment. Format: projects/{project}/locations/{location}/serviceInstances/{service_instance}/applicationEnvironments/{application_environment_id} + */ + public /*out*/ readonly name!: pulumi.Output; + /** + * The name of the namespace in which to create this ApplicationEnvironment. This namespace must already exist in the cluster + */ + public readonly namespace!: pulumi.Output; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + */ + public readonly project!: pulumi.Output; + /** + * The combination of labels configured directly on the resource + * and default labels configured on the provider. + */ + public /*out*/ readonly pulumiLabels!: pulumi.Output<{[key: string]: string}>; + /** + * The id of the service instance to which this application environment belongs. + * + * + * - - - + */ + public readonly serviceinstance!: pulumi.Output; + /** + * Represents the SparkApplicationEnvironmentConfig. + * Structure is documented below. + */ + public readonly sparkApplicationEnvironmentConfig!: pulumi.Output; + /** + * System generated unique identifier for this application environment, formatted as UUID4. + */ + public /*out*/ readonly uid!: pulumi.Output; + /** + * The timestamp when the resource was most recently updated. + */ + public /*out*/ readonly updateTime!: pulumi.Output; + + /** + * Create a GdcApplicationEnvironment resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: GdcApplicationEnvironmentArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: GdcApplicationEnvironmentArgs | GdcApplicationEnvironmentState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as GdcApplicationEnvironmentState | undefined; + resourceInputs["annotations"] = state ? state.annotations : undefined; + resourceInputs["applicationEnvironmentId"] = state ? state.applicationEnvironmentId : undefined; + resourceInputs["createTime"] = state ? state.createTime : undefined; + resourceInputs["displayName"] = state ? state.displayName : undefined; + resourceInputs["effectiveAnnotations"] = state ? state.effectiveAnnotations : undefined; + resourceInputs["effectiveLabels"] = state ? state.effectiveLabels : undefined; + resourceInputs["labels"] = state ? state.labels : undefined; + resourceInputs["location"] = state ? state.location : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["namespace"] = state ? state.namespace : undefined; + resourceInputs["project"] = state ? state.project : undefined; + resourceInputs["pulumiLabels"] = state ? state.pulumiLabels : undefined; + resourceInputs["serviceinstance"] = state ? state.serviceinstance : undefined; + resourceInputs["sparkApplicationEnvironmentConfig"] = state ? state.sparkApplicationEnvironmentConfig : undefined; + resourceInputs["uid"] = state ? state.uid : undefined; + resourceInputs["updateTime"] = state ? state.updateTime : undefined; + } else { + const args = argsOrState as GdcApplicationEnvironmentArgs | undefined; + if ((!args || args.location === undefined) && !opts.urn) { + throw new Error("Missing required property 'location'"); + } + if ((!args || args.serviceinstance === undefined) && !opts.urn) { + throw new Error("Missing required property 'serviceinstance'"); + } + resourceInputs["annotations"] = args ? args.annotations : undefined; + resourceInputs["applicationEnvironmentId"] = args ? args.applicationEnvironmentId : undefined; + resourceInputs["displayName"] = args ? args.displayName : undefined; + resourceInputs["labels"] = args ? args.labels : undefined; + resourceInputs["location"] = args ? args.location : undefined; + resourceInputs["namespace"] = args ? args.namespace : undefined; + resourceInputs["project"] = args ? args.project : undefined; + resourceInputs["serviceinstance"] = args ? args.serviceinstance : undefined; + resourceInputs["sparkApplicationEnvironmentConfig"] = args ? args.sparkApplicationEnvironmentConfig : undefined; + resourceInputs["createTime"] = undefined /*out*/; + resourceInputs["effectiveAnnotations"] = undefined /*out*/; + resourceInputs["effectiveLabels"] = undefined /*out*/; + resourceInputs["name"] = undefined /*out*/; + resourceInputs["pulumiLabels"] = undefined /*out*/; + resourceInputs["uid"] = undefined /*out*/; + resourceInputs["updateTime"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const secretOpts = { additionalSecretOutputs: ["effectiveLabels", "pulumiLabels"] }; + opts = pulumi.mergeOptions(opts, secretOpts); + super(GdcApplicationEnvironment.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering GdcApplicationEnvironment resources. + */ +export interface GdcApplicationEnvironmentState { + /** + * The annotations to associate with this application environment. Annotations may be used to store client information, but are not used by the server. + * **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + * Please refer to the field `effectiveAnnotations` for all of the annotations present on the resource. + */ + annotations?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * The id of the application environment + */ + applicationEnvironmentId?: pulumi.Input; + /** + * The timestamp when the resource was created. + */ + createTime?: pulumi.Input; + /** + * User-provided human-readable name to be used in user interfaces. + */ + displayName?: pulumi.Input; + effectiveAnnotations?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + */ + effectiveLabels?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * The labels to associate with this application environment. Labels may be used for filtering and billing tracking. + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effectiveLabels` for all of the labels present on the resource. + */ + labels?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * The location of the application environment + */ + location?: pulumi.Input; + /** + * Identifier. The name of the application environment. Format: projects/{project}/locations/{location}/serviceInstances/{service_instance}/applicationEnvironments/{application_environment_id} + */ + name?: pulumi.Input; + /** + * The name of the namespace in which to create this ApplicationEnvironment. This namespace must already exist in the cluster + */ + namespace?: pulumi.Input; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + */ + project?: pulumi.Input; + /** + * The combination of labels configured directly on the resource + * and default labels configured on the provider. + */ + pulumiLabels?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * The id of the service instance to which this application environment belongs. + * + * + * - - - + */ + serviceinstance?: pulumi.Input; + /** + * Represents the SparkApplicationEnvironmentConfig. + * Structure is documented below. + */ + sparkApplicationEnvironmentConfig?: pulumi.Input; + /** + * System generated unique identifier for this application environment, formatted as UUID4. + */ + uid?: pulumi.Input; + /** + * The timestamp when the resource was most recently updated. + */ + updateTime?: pulumi.Input; +} + +/** + * The set of arguments for constructing a GdcApplicationEnvironment resource. + */ +export interface GdcApplicationEnvironmentArgs { + /** + * The annotations to associate with this application environment. Annotations may be used to store client information, but are not used by the server. + * **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + * Please refer to the field `effectiveAnnotations` for all of the annotations present on the resource. + */ + annotations?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * The id of the application environment + */ + applicationEnvironmentId?: pulumi.Input; + /** + * User-provided human-readable name to be used in user interfaces. + */ + displayName?: pulumi.Input; + /** + * The labels to associate with this application environment. Labels may be used for filtering and billing tracking. + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effectiveLabels` for all of the labels present on the resource. + */ + labels?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * The location of the application environment + */ + location: pulumi.Input; + /** + * The name of the namespace in which to create this ApplicationEnvironment. This namespace must already exist in the cluster + */ + namespace?: pulumi.Input; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + */ + project?: pulumi.Input; + /** + * The id of the service instance to which this application environment belongs. + * + * + * - - - + */ + serviceinstance: pulumi.Input; + /** + * Represents the SparkApplicationEnvironmentConfig. + * Structure is documented below. + */ + sparkApplicationEnvironmentConfig?: pulumi.Input; +} diff --git a/sdk/nodejs/dataproc/gdcServiceInstance.ts b/sdk/nodejs/dataproc/gdcServiceInstance.ts new file mode 100644 index 0000000000..db897ddb5d --- /dev/null +++ b/sdk/nodejs/dataproc/gdcServiceInstance.ts @@ -0,0 +1,414 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as utilities from "../utilities"; + +/** + * A service instance is an instance of the Dataproc operator running on a GDC cluster. + * + * To get more information about ServiceInstance, see: + * + * * [API documentation](https://cloud.google.com/dataproc-gdc/docs/reference/rest/v1/projects.locations.serviceInstances) + * * How-to Guides + * * [Dataproc Intro](https://cloud.google.com/dataproc/) + * + * ## Example Usage + * + * ### Dataprocgdc Serviceinstance + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * + * const service_instance = new gcp.dataproc.GdcServiceInstance("service-instance", { + * serviceInstanceId: "tf-e2e-service-instance", + * project: "my-project", + * location: "us-west2", + * gdceCluster: { + * gdceCluster: "projects/gdce-cluster-monitoring/locations/us-west2/clusters/gdce-prism-prober-ord106", + * }, + * displayName: "A service instance", + * labels: { + * "test-label": "label-value", + * }, + * serviceAccount: "dataprocgdc-cep-workflows@gdce-cluster-monitoring.iam.gserviceaccount.com", + * }); + * ``` + * + * ## Import + * + * ServiceInstance can be imported using any of these accepted formats: + * + * * `projects/{{project}}/locations/{{location}}/serviceInstances/{{service_instance_id}}` + * + * * `{{project}}/{{location}}/{{service_instance_id}}` + * + * * `{{location}}/{{service_instance_id}}` + * + * When using the `pulumi import` command, ServiceInstance can be imported using one of the formats above. For example: + * + * ```sh + * $ pulumi import gcp:dataproc/gdcServiceInstance:GdcServiceInstance default projects/{{project}}/locations/{{location}}/serviceInstances/{{service_instance_id}} + * ``` + * + * ```sh + * $ pulumi import gcp:dataproc/gdcServiceInstance:GdcServiceInstance default {{project}}/{{location}}/{{service_instance_id}} + * ``` + * + * ```sh + * $ pulumi import gcp:dataproc/gdcServiceInstance:GdcServiceInstance default {{location}}/{{service_instance_id}} + * ``` + */ +export class GdcServiceInstance extends pulumi.CustomResource { + /** + * Get an existing GdcServiceInstance resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: GdcServiceInstanceState, opts?: pulumi.CustomResourceOptions): GdcServiceInstance { + return new GdcServiceInstance(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'gcp:dataproc/gdcServiceInstance:GdcServiceInstance'; + + /** + * Returns true if the given object is an instance of GdcServiceInstance. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is GdcServiceInstance { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === GdcServiceInstance.__pulumiType; + } + + /** + * The timestamp when the resource was created. + */ + public /*out*/ readonly createTime!: pulumi.Output; + /** + * User-provided human-readable name to be used in user interfaces. + */ + public readonly displayName!: pulumi.Output; + /** + * All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + */ + public /*out*/ readonly effectiveLabels!: pulumi.Output<{[key: string]: string}>; + /** + * Effective service account associated with ServiceInstance. This will be the serviceAccount if specified. Otherwise, it will be an automatically created per-resource P4SA that also automatically has Fleet Workload. Identity bindings applied. + */ + public /*out*/ readonly effectiveServiceAccount!: pulumi.Output; + /** + * Gdce cluster information. + * Structure is documented below. + */ + public readonly gdceCluster!: pulumi.Output; + /** + * The labels to associate with this service instance. Labels may be used for filtering and billing tracking. + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effectiveLabels` for all of the labels present on the resource. + */ + public readonly labels!: pulumi.Output<{[key: string]: string} | undefined>; + /** + * Location of the resource. + */ + public readonly location!: pulumi.Output; + /** + * Identifier. The name of the service instance. + */ + public /*out*/ readonly name!: pulumi.Output; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + */ + public readonly project!: pulumi.Output; + /** + * The combination of labels configured directly on the resource + * and default labels configured on the provider. + */ + public /*out*/ readonly pulumiLabels!: pulumi.Output<{[key: string]: string}>; + /** + * Whether the service instance is currently reconciling. True if the current state of the resource does not match the intended state, and the system is working to reconcile them, whether or not the change was user initiated. + */ + public /*out*/ readonly reconciling!: pulumi.Output; + /** + * The intended state to which the service instance is reconciling. Possible values: + * * `CREATING` + * * `ACTIVE` + * * `DISCONNECTED` + * * `DELETING` + * * `STOPPING` + * * `STOPPED` + * * `STARTING` + * * `UPDATING` + * * `FAILED` + */ + public /*out*/ readonly requestedState!: pulumi.Output; + /** + * Requested service account to associate with ServiceInstance. + */ + public readonly serviceAccount!: pulumi.Output; + /** + * Id of the service instance. + * + * + * - - - + */ + public readonly serviceInstanceId!: pulumi.Output; + /** + * Spark-specific service instance configuration. + */ + public readonly sparkServiceInstanceConfig!: pulumi.Output; + /** + * The current state. Possible values: + * * `CREATING` + * * `ACTIVE` + * * `DISCONNECTED` + * * `DELETING` + * * `STOPPING` + * * `STOPPED` + * * `STARTING` + * * `UPDATING` + * * `FAILED` + */ + public /*out*/ readonly state!: pulumi.Output; + /** + * A message explaining the current state. + */ + public /*out*/ readonly stateMessage!: pulumi.Output; + /** + * System generated unique identifier for this service instance, formatted as UUID4. + */ + public /*out*/ readonly uid!: pulumi.Output; + /** + * The timestamp when the resource was most recently updated. + */ + public /*out*/ readonly updateTime!: pulumi.Output; + + /** + * Create a GdcServiceInstance resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: GdcServiceInstanceArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: GdcServiceInstanceArgs | GdcServiceInstanceState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as GdcServiceInstanceState | undefined; + resourceInputs["createTime"] = state ? state.createTime : undefined; + resourceInputs["displayName"] = state ? state.displayName : undefined; + resourceInputs["effectiveLabels"] = state ? state.effectiveLabels : undefined; + resourceInputs["effectiveServiceAccount"] = state ? state.effectiveServiceAccount : undefined; + resourceInputs["gdceCluster"] = state ? state.gdceCluster : undefined; + resourceInputs["labels"] = state ? state.labels : undefined; + resourceInputs["location"] = state ? state.location : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["project"] = state ? state.project : undefined; + resourceInputs["pulumiLabels"] = state ? state.pulumiLabels : undefined; + resourceInputs["reconciling"] = state ? state.reconciling : undefined; + resourceInputs["requestedState"] = state ? state.requestedState : undefined; + resourceInputs["serviceAccount"] = state ? state.serviceAccount : undefined; + resourceInputs["serviceInstanceId"] = state ? state.serviceInstanceId : undefined; + resourceInputs["sparkServiceInstanceConfig"] = state ? state.sparkServiceInstanceConfig : undefined; + resourceInputs["state"] = state ? state.state : undefined; + resourceInputs["stateMessage"] = state ? state.stateMessage : undefined; + resourceInputs["uid"] = state ? state.uid : undefined; + resourceInputs["updateTime"] = state ? state.updateTime : undefined; + } else { + const args = argsOrState as GdcServiceInstanceArgs | undefined; + if ((!args || args.location === undefined) && !opts.urn) { + throw new Error("Missing required property 'location'"); + } + if ((!args || args.serviceInstanceId === undefined) && !opts.urn) { + throw new Error("Missing required property 'serviceInstanceId'"); + } + resourceInputs["displayName"] = args ? args.displayName : undefined; + resourceInputs["gdceCluster"] = args ? args.gdceCluster : undefined; + resourceInputs["labels"] = args ? args.labels : undefined; + resourceInputs["location"] = args ? args.location : undefined; + resourceInputs["project"] = args ? args.project : undefined; + resourceInputs["serviceAccount"] = args ? args.serviceAccount : undefined; + resourceInputs["serviceInstanceId"] = args ? args.serviceInstanceId : undefined; + resourceInputs["sparkServiceInstanceConfig"] = args ? args.sparkServiceInstanceConfig : undefined; + resourceInputs["createTime"] = undefined /*out*/; + resourceInputs["effectiveLabels"] = undefined /*out*/; + resourceInputs["effectiveServiceAccount"] = undefined /*out*/; + resourceInputs["name"] = undefined /*out*/; + resourceInputs["pulumiLabels"] = undefined /*out*/; + resourceInputs["reconciling"] = undefined /*out*/; + resourceInputs["requestedState"] = undefined /*out*/; + resourceInputs["state"] = undefined /*out*/; + resourceInputs["stateMessage"] = undefined /*out*/; + resourceInputs["uid"] = undefined /*out*/; + resourceInputs["updateTime"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const secretOpts = { additionalSecretOutputs: ["effectiveLabels", "pulumiLabels"] }; + opts = pulumi.mergeOptions(opts, secretOpts); + super(GdcServiceInstance.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering GdcServiceInstance resources. + */ +export interface GdcServiceInstanceState { + /** + * The timestamp when the resource was created. + */ + createTime?: pulumi.Input; + /** + * User-provided human-readable name to be used in user interfaces. + */ + displayName?: pulumi.Input; + /** + * All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + */ + effectiveLabels?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Effective service account associated with ServiceInstance. This will be the serviceAccount if specified. Otherwise, it will be an automatically created per-resource P4SA that also automatically has Fleet Workload. Identity bindings applied. + */ + effectiveServiceAccount?: pulumi.Input; + /** + * Gdce cluster information. + * Structure is documented below. + */ + gdceCluster?: pulumi.Input; + /** + * The labels to associate with this service instance. Labels may be used for filtering and billing tracking. + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effectiveLabels` for all of the labels present on the resource. + */ + labels?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Location of the resource. + */ + location?: pulumi.Input; + /** + * Identifier. The name of the service instance. + */ + name?: pulumi.Input; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + */ + project?: pulumi.Input; + /** + * The combination of labels configured directly on the resource + * and default labels configured on the provider. + */ + pulumiLabels?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Whether the service instance is currently reconciling. True if the current state of the resource does not match the intended state, and the system is working to reconcile them, whether or not the change was user initiated. + */ + reconciling?: pulumi.Input; + /** + * The intended state to which the service instance is reconciling. Possible values: + * * `CREATING` + * * `ACTIVE` + * * `DISCONNECTED` + * * `DELETING` + * * `STOPPING` + * * `STOPPED` + * * `STARTING` + * * `UPDATING` + * * `FAILED` + */ + requestedState?: pulumi.Input; + /** + * Requested service account to associate with ServiceInstance. + */ + serviceAccount?: pulumi.Input; + /** + * Id of the service instance. + * + * + * - - - + */ + serviceInstanceId?: pulumi.Input; + /** + * Spark-specific service instance configuration. + */ + sparkServiceInstanceConfig?: pulumi.Input; + /** + * The current state. Possible values: + * * `CREATING` + * * `ACTIVE` + * * `DISCONNECTED` + * * `DELETING` + * * `STOPPING` + * * `STOPPED` + * * `STARTING` + * * `UPDATING` + * * `FAILED` + */ + state?: pulumi.Input; + /** + * A message explaining the current state. + */ + stateMessage?: pulumi.Input; + /** + * System generated unique identifier for this service instance, formatted as UUID4. + */ + uid?: pulumi.Input; + /** + * The timestamp when the resource was most recently updated. + */ + updateTime?: pulumi.Input; +} + +/** + * The set of arguments for constructing a GdcServiceInstance resource. + */ +export interface GdcServiceInstanceArgs { + /** + * User-provided human-readable name to be used in user interfaces. + */ + displayName?: pulumi.Input; + /** + * Gdce cluster information. + * Structure is documented below. + */ + gdceCluster?: pulumi.Input; + /** + * The labels to associate with this service instance. Labels may be used for filtering and billing tracking. + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effectiveLabels` for all of the labels present on the resource. + */ + labels?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Location of the resource. + */ + location: pulumi.Input; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + */ + project?: pulumi.Input; + /** + * Requested service account to associate with ServiceInstance. + */ + serviceAccount?: pulumi.Input; + /** + * Id of the service instance. + * + * + * - - - + */ + serviceInstanceId: pulumi.Input; + /** + * Spark-specific service instance configuration. + */ + sparkServiceInstanceConfig?: pulumi.Input; +} diff --git a/sdk/nodejs/dataproc/index.ts b/sdk/nodejs/dataproc/index.ts index 73e663ef2d..a65ddd094b 100644 --- a/sdk/nodejs/dataproc/index.ts +++ b/sdk/nodejs/dataproc/index.ts @@ -50,6 +50,16 @@ export type ClusterIAMPolicy = import("./clusterIAMPolicy").ClusterIAMPolicy; export const ClusterIAMPolicy: typeof import("./clusterIAMPolicy").ClusterIAMPolicy = null as any; utilities.lazyLoad(exports, ["ClusterIAMPolicy"], () => require("./clusterIAMPolicy")); +export { GdcApplicationEnvironmentArgs, GdcApplicationEnvironmentState } from "./gdcApplicationEnvironment"; +export type GdcApplicationEnvironment = import("./gdcApplicationEnvironment").GdcApplicationEnvironment; +export const GdcApplicationEnvironment: typeof import("./gdcApplicationEnvironment").GdcApplicationEnvironment = null as any; +utilities.lazyLoad(exports, ["GdcApplicationEnvironment"], () => require("./gdcApplicationEnvironment")); + +export { GdcServiceInstanceArgs, GdcServiceInstanceState } from "./gdcServiceInstance"; +export type GdcServiceInstance = import("./gdcServiceInstance").GdcServiceInstance; +export const GdcServiceInstance: typeof import("./gdcServiceInstance").GdcServiceInstance = null as any; +utilities.lazyLoad(exports, ["GdcServiceInstance"], () => require("./gdcServiceInstance")); + export { GetAutoscalingPolicyIamPolicyArgs, GetAutoscalingPolicyIamPolicyResult, GetAutoscalingPolicyIamPolicyOutputArgs } from "./getAutoscalingPolicyIamPolicy"; export const getAutoscalingPolicyIamPolicy: typeof import("./getAutoscalingPolicyIamPolicy").getAutoscalingPolicyIamPolicy = null as any; export const getAutoscalingPolicyIamPolicyOutput: typeof import("./getAutoscalingPolicyIamPolicy").getAutoscalingPolicyIamPolicyOutput = null as any; @@ -168,6 +178,10 @@ const _module = { return new ClusterIAMMember(name, undefined, { urn }) case "gcp:dataproc/clusterIAMPolicy:ClusterIAMPolicy": return new ClusterIAMPolicy(name, undefined, { urn }) + case "gcp:dataproc/gdcApplicationEnvironment:GdcApplicationEnvironment": + return new GdcApplicationEnvironment(name, undefined, { urn }) + case "gcp:dataproc/gdcServiceInstance:GdcServiceInstance": + return new GdcServiceInstance(name, undefined, { urn }) case "gcp:dataproc/job:Job": return new Job(name, undefined, { urn }) case "gcp:dataproc/jobIAMBinding:JobIAMBinding": @@ -208,6 +222,8 @@ pulumi.runtime.registerResourceModule("gcp", "dataproc/cluster", _module) pulumi.runtime.registerResourceModule("gcp", "dataproc/clusterIAMBinding", _module) pulumi.runtime.registerResourceModule("gcp", "dataproc/clusterIAMMember", _module) pulumi.runtime.registerResourceModule("gcp", "dataproc/clusterIAMPolicy", _module) +pulumi.runtime.registerResourceModule("gcp", "dataproc/gdcApplicationEnvironment", _module) +pulumi.runtime.registerResourceModule("gcp", "dataproc/gdcServiceInstance", _module) pulumi.runtime.registerResourceModule("gcp", "dataproc/job", _module) pulumi.runtime.registerResourceModule("gcp", "dataproc/jobIAMBinding", _module) pulumi.runtime.registerResourceModule("gcp", "dataproc/jobIAMMember", _module) diff --git a/sdk/nodejs/edgecontainer/vpnConnection.ts b/sdk/nodejs/edgecontainer/vpnConnection.ts index 3c43dfdccf..845cc0c153 100644 --- a/sdk/nodejs/edgecontainer/vpnConnection.ts +++ b/sdk/nodejs/edgecontainer/vpnConnection.ts @@ -124,7 +124,7 @@ export class VpnConnection extends pulumi.CustomResource { */ public /*out*/ readonly createTime!: pulumi.Output; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ public /*out*/ readonly details!: pulumi.Output; @@ -258,7 +258,7 @@ export interface VpnConnectionState { */ createTime?: pulumi.Input; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ details?: pulumi.Input[]>; diff --git a/sdk/nodejs/firebase/androidApp.ts b/sdk/nodejs/firebase/androidApp.ts index 3301480cda..a9825c6b8f 100644 --- a/sdk/nodejs/firebase/androidApp.ts +++ b/sdk/nodejs/firebase/androidApp.ts @@ -67,7 +67,7 @@ import * as utilities from "../utilities"; * When using the `pulumi import` command, AndroidApp can be imported using one of the formats above. For example: * * ```sh - * $ pulumi import gcp:firebase/androidApp:AndroidApp default {{project}} projects/{{project}}/androidApps/{{app_id}} + * $ pulumi import gcp:firebase/androidApp:AndroidApp default "{{project}} projects/{{project}}/androidApps/{{app_id}}" * ``` * * ```sh diff --git a/sdk/nodejs/firebase/appleApp.ts b/sdk/nodejs/firebase/appleApp.ts index f693f7fcc2..fb7b318e28 100644 --- a/sdk/nodejs/firebase/appleApp.ts +++ b/sdk/nodejs/firebase/appleApp.ts @@ -62,7 +62,7 @@ import * as utilities from "../utilities"; * When using the `pulumi import` command, AppleApp can be imported using one of the formats above. For example: * * ```sh - * $ pulumi import gcp:firebase/appleApp:AppleApp default {{project}} projects/{{project}}/iosApps/{{app_id}} + * $ pulumi import gcp:firebase/appleApp:AppleApp default "{{project}} projects/{{project}}/iosApps/{{app_id}}" * ``` * * ```sh diff --git a/sdk/nodejs/firebase/webApp.ts b/sdk/nodejs/firebase/webApp.ts index ca21bb63ba..f3e8b2cafe 100644 --- a/sdk/nodejs/firebase/webApp.ts +++ b/sdk/nodejs/firebase/webApp.ts @@ -56,7 +56,7 @@ import * as utilities from "../utilities"; * When using the `pulumi import` command, WebApp can be imported using one of the formats above. For example: * * ```sh - * $ pulumi import gcp:firebase/webApp:WebApp default {{project}} projects/{{project}}/webApps/{{app_id}} + * $ pulumi import gcp:firebase/webApp:WebApp default "{{project}} projects/{{project}}/webApps/{{app_id}}" * ``` * * ```sh diff --git a/sdk/nodejs/firestore/index_.ts b/sdk/nodejs/firestore/index_.ts index ddf6a96a07..e0a06f0250 100644 --- a/sdk/nodejs/firestore/index_.ts +++ b/sdk/nodejs/firestore/index_.ts @@ -126,6 +126,30 @@ import * as utilities from "../utilities"; * ], * }); * ``` + * ### Firestore Index Name Descending + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * + * const database = new gcp.firestore.Database("database", { + * project: "my-project-name", + * name: "database-id", + * locationId: "nam5", + * type: "FIRESTORE_NATIVE", + * deleteProtectionState: "DELETE_PROTECTION_DISABLED", + * deletionPolicy: "DELETE", + * }); + * const my_index = new gcp.firestore.Index("my-index", { + * project: "my-project-name", + * database: database.name, + * collection: "atestcollection", + * fields: [{ + * fieldPath: "__name__", + * order: "DESCENDING", + * }], + * }); + * ``` * * ## Import * diff --git a/sdk/nodejs/healthcare/dataset.ts b/sdk/nodejs/healthcare/dataset.ts index 32c0ddd8a3..2df261be77 100644 --- a/sdk/nodejs/healthcare/dataset.ts +++ b/sdk/nodejs/healthcare/dataset.ts @@ -115,7 +115,7 @@ export class Dataset extends pulumi.CustomResource { } /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ public readonly encryptionSpec!: pulumi.Output; @@ -187,7 +187,7 @@ export class Dataset extends pulumi.CustomResource { */ export interface DatasetState { /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ encryptionSpec?: pulumi.Input; @@ -224,7 +224,7 @@ export interface DatasetState { */ export interface DatasetArgs { /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ encryptionSpec?: pulumi.Input; diff --git a/sdk/nodejs/healthcare/dicomStore.ts b/sdk/nodejs/healthcare/dicomStore.ts index f0f4785f15..b2ebe016eb 100644 --- a/sdk/nodejs/healthcare/dicomStore.ts +++ b/sdk/nodejs/healthcare/dicomStore.ts @@ -159,7 +159,7 @@ export class DicomStore extends pulumi.CustomResource { */ public readonly name!: pulumi.Output; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ public readonly notificationConfig!: pulumi.Output; @@ -257,7 +257,7 @@ export interface DicomStoreState { */ name?: pulumi.Input; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ notificationConfig?: pulumi.Input; @@ -310,7 +310,7 @@ export interface DicomStoreArgs { */ name?: pulumi.Input; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ notificationConfig?: pulumi.Input; diff --git a/sdk/nodejs/healthcare/fhirStore.ts b/sdk/nodejs/healthcare/fhirStore.ts index ebdc3ee284..60751828f5 100644 --- a/sdk/nodejs/healthcare/fhirStore.ts +++ b/sdk/nodejs/healthcare/fhirStore.ts @@ -252,7 +252,7 @@ export class FhirStore extends pulumi.CustomResource { public readonly name!: pulumi.Output; /** * (Optional, Deprecated) - * A nested object resource + * A nested object resource. * Structure is documented below. * * > **Warning:** `notificationConfig` is deprecated and will be removed in a future major release. Use `notificationConfigs` instead. @@ -440,7 +440,7 @@ export interface FhirStoreState { name?: pulumi.Input; /** * (Optional, Deprecated) - * A nested object resource + * A nested object resource. * Structure is documented below. * * > **Warning:** `notificationConfig` is deprecated and will be removed in a future major release. Use `notificationConfigs` instead. @@ -565,7 +565,7 @@ export interface FhirStoreArgs { name?: pulumi.Input; /** * (Optional, Deprecated) - * A nested object resource + * A nested object resource. * Structure is documented below. * * > **Warning:** `notificationConfig` is deprecated and will be removed in a future major release. Use `notificationConfigs` instead. diff --git a/sdk/nodejs/healthcare/hl7Store.ts b/sdk/nodejs/healthcare/hl7Store.ts index 84ee12c66d..af3f6d609a 100644 --- a/sdk/nodejs/healthcare/hl7Store.ts +++ b/sdk/nodejs/healthcare/hl7Store.ts @@ -239,7 +239,7 @@ export class Hl7Store extends pulumi.CustomResource { public readonly name!: pulumi.Output; /** * (Optional, Deprecated) - * A nested object resource + * A nested object resource. * Structure is documented below. * * > **Warning:** `notificationConfig` is deprecated and will be removed in a future major release. Use `notificationConfigs` instead. @@ -255,7 +255,7 @@ export class Hl7Store extends pulumi.CustomResource { */ public readonly notificationConfigs!: pulumi.Output; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ public readonly parserConfig!: pulumi.Output; @@ -356,7 +356,7 @@ export interface Hl7StoreState { name?: pulumi.Input; /** * (Optional, Deprecated) - * A nested object resource + * A nested object resource. * Structure is documented below. * * > **Warning:** `notificationConfig` is deprecated and will be removed in a future major release. Use `notificationConfigs` instead. @@ -372,7 +372,7 @@ export interface Hl7StoreState { */ notificationConfigs?: pulumi.Input[]>; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ parserConfig?: pulumi.Input; @@ -424,7 +424,7 @@ export interface Hl7StoreArgs { name?: pulumi.Input; /** * (Optional, Deprecated) - * A nested object resource + * A nested object resource. * Structure is documented below. * * > **Warning:** `notificationConfig` is deprecated and will be removed in a future major release. Use `notificationConfigs` instead. @@ -440,7 +440,7 @@ export interface Hl7StoreArgs { */ notificationConfigs?: pulumi.Input[]>; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ parserConfig?: pulumi.Input; diff --git a/sdk/nodejs/iam/index.ts b/sdk/nodejs/iam/index.ts index 903f776553..b4a20f1731 100644 --- a/sdk/nodejs/iam/index.ts +++ b/sdk/nodejs/iam/index.ts @@ -35,6 +35,11 @@ export const getWorkloadIdentityPoolProvider: typeof import("./getWorkloadIdenti export const getWorkloadIdentityPoolProviderOutput: typeof import("./getWorkloadIdentityPoolProvider").getWorkloadIdentityPoolProviderOutput = null as any; utilities.lazyLoad(exports, ["getWorkloadIdentityPoolProvider","getWorkloadIdentityPoolProviderOutput"], () => require("./getWorkloadIdentityPoolProvider")); +export { PrincipalAccessBoundaryPolicyArgs, PrincipalAccessBoundaryPolicyState } from "./principalAccessBoundaryPolicy"; +export type PrincipalAccessBoundaryPolicy = import("./principalAccessBoundaryPolicy").PrincipalAccessBoundaryPolicy; +export const PrincipalAccessBoundaryPolicy: typeof import("./principalAccessBoundaryPolicy").PrincipalAccessBoundaryPolicy = null as any; +utilities.lazyLoad(exports, ["PrincipalAccessBoundaryPolicy"], () => require("./principalAccessBoundaryPolicy")); + export { WorkforcePoolArgs, WorkforcePoolState } from "./workforcePool"; export type WorkforcePool = import("./workforcePool").WorkforcePool; export const WorkforcePool: typeof import("./workforcePool").WorkforcePool = null as any; @@ -64,6 +69,8 @@ const _module = { return new AccessBoundaryPolicy(name, undefined, { urn }) case "gcp:iam/denyPolicy:DenyPolicy": return new DenyPolicy(name, undefined, { urn }) + case "gcp:iam/principalAccessBoundaryPolicy:PrincipalAccessBoundaryPolicy": + return new PrincipalAccessBoundaryPolicy(name, undefined, { urn }) case "gcp:iam/workforcePool:WorkforcePool": return new WorkforcePool(name, undefined, { urn }) case "gcp:iam/workforcePoolProvider:WorkforcePoolProvider": @@ -79,6 +86,7 @@ const _module = { }; pulumi.runtime.registerResourceModule("gcp", "iam/accessBoundaryPolicy", _module) pulumi.runtime.registerResourceModule("gcp", "iam/denyPolicy", _module) +pulumi.runtime.registerResourceModule("gcp", "iam/principalAccessBoundaryPolicy", _module) pulumi.runtime.registerResourceModule("gcp", "iam/workforcePool", _module) pulumi.runtime.registerResourceModule("gcp", "iam/workforcePoolProvider", _module) pulumi.runtime.registerResourceModule("gcp", "iam/workloadIdentityPool", _module) diff --git a/sdk/nodejs/iam/principalAccessBoundaryPolicy.ts b/sdk/nodejs/iam/principalAccessBoundaryPolicy.ts new file mode 100644 index 0000000000..fcd40f3fec --- /dev/null +++ b/sdk/nodejs/iam/principalAccessBoundaryPolicy.ts @@ -0,0 +1,280 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as utilities from "../utilities"; + +/** + * ## Example Usage + * + * ### Iam Principal Access Boundary Policy + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * + * const my_pab_policy = new gcp.iam.PrincipalAccessBoundaryPolicy("my-pab-policy", { + * organization: "123456789", + * location: "global", + * displayName: "test pab policy", + * principalAccessBoundaryPolicyId: "test-pab-policy", + * }); + * ``` + * + * ## Import + * + * PrincipalAccessBoundaryPolicy can be imported using any of these accepted formats: + * + * * `organizations/{{organization}}/locations/{{location}}/principalAccessBoundaryPolicies/{{principal_access_boundary_policy_id}}` + * + * * `{{organization}}/{{location}}/{{principal_access_boundary_policy_id}}` + * + * When using the `pulumi import` command, PrincipalAccessBoundaryPolicy can be imported using one of the formats above. For example: + * + * ```sh + * $ pulumi import gcp:iam/principalAccessBoundaryPolicy:PrincipalAccessBoundaryPolicy default organizations/{{organization}}/locations/{{location}}/principalAccessBoundaryPolicies/{{principal_access_boundary_policy_id}} + * ``` + * + * ```sh + * $ pulumi import gcp:iam/principalAccessBoundaryPolicy:PrincipalAccessBoundaryPolicy default {{organization}}/{{location}}/{{principal_access_boundary_policy_id}} + * ``` + */ +export class PrincipalAccessBoundaryPolicy extends pulumi.CustomResource { + /** + * Get an existing PrincipalAccessBoundaryPolicy resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: PrincipalAccessBoundaryPolicyState, opts?: pulumi.CustomResourceOptions): PrincipalAccessBoundaryPolicy { + return new PrincipalAccessBoundaryPolicy(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'gcp:iam/principalAccessBoundaryPolicy:PrincipalAccessBoundaryPolicy'; + + /** + * Returns true if the given object is an instance of PrincipalAccessBoundaryPolicy. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is PrincipalAccessBoundaryPolicy { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === PrincipalAccessBoundaryPolicy.__pulumiType; + } + + /** + * User defined annotations. See https://google.aip.dev/148#annotations + * for more details such as format and size limitations + * + * **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + * Please refer to the field `effectiveAnnotations` for all of the annotations present on the resource. + */ + public readonly annotations!: pulumi.Output<{[key: string]: string} | undefined>; + /** + * Output only. The time when the principal access boundary policy was created. + */ + public /*out*/ readonly createTime!: pulumi.Output; + /** + * Principal access boundary policy details + * Structure is documented below. + */ + public readonly details!: pulumi.Output; + /** + * The description of the principal access boundary policy. Must be less than or equal to 63 characters. + */ + public readonly displayName!: pulumi.Output; + public /*out*/ readonly effectiveAnnotations!: pulumi.Output<{[key: string]: string}>; + /** + * The etag for the principal access boundary. If this is provided on update, it must match the server's etag. + */ + public /*out*/ readonly etag!: pulumi.Output; + /** + * The location the principal access boundary policy is in. + */ + public readonly location!: pulumi.Output; + /** + * Identifier. The resource name of the principal access boundary policy. The following format is supported: + * `organizations/{organization_id}/locations/{location}/principalAccessBoundaryPolicies/{policy_id}` + */ + public /*out*/ readonly name!: pulumi.Output; + /** + * The parent organization of the principal access boundary policy. + */ + public readonly organization!: pulumi.Output; + /** + * The ID to use to create the principal access boundary policy. + * This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, hyphens, or dots. Pattern, /a-z{2,62}/. + * + * + * - - - + */ + public readonly principalAccessBoundaryPolicyId!: pulumi.Output; + /** + * Output only. The globally unique ID of the principal access boundary policy. + */ + public /*out*/ readonly uid!: pulumi.Output; + /** + * Output only. The time when the principal access boundary policy was most recently updated. + */ + public /*out*/ readonly updateTime!: pulumi.Output; + + /** + * Create a PrincipalAccessBoundaryPolicy resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: PrincipalAccessBoundaryPolicyArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: PrincipalAccessBoundaryPolicyArgs | PrincipalAccessBoundaryPolicyState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as PrincipalAccessBoundaryPolicyState | undefined; + resourceInputs["annotations"] = state ? state.annotations : undefined; + resourceInputs["createTime"] = state ? state.createTime : undefined; + resourceInputs["details"] = state ? state.details : undefined; + resourceInputs["displayName"] = state ? state.displayName : undefined; + resourceInputs["effectiveAnnotations"] = state ? state.effectiveAnnotations : undefined; + resourceInputs["etag"] = state ? state.etag : undefined; + resourceInputs["location"] = state ? state.location : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["organization"] = state ? state.organization : undefined; + resourceInputs["principalAccessBoundaryPolicyId"] = state ? state.principalAccessBoundaryPolicyId : undefined; + resourceInputs["uid"] = state ? state.uid : undefined; + resourceInputs["updateTime"] = state ? state.updateTime : undefined; + } else { + const args = argsOrState as PrincipalAccessBoundaryPolicyArgs | undefined; + if ((!args || args.location === undefined) && !opts.urn) { + throw new Error("Missing required property 'location'"); + } + if ((!args || args.organization === undefined) && !opts.urn) { + throw new Error("Missing required property 'organization'"); + } + if ((!args || args.principalAccessBoundaryPolicyId === undefined) && !opts.urn) { + throw new Error("Missing required property 'principalAccessBoundaryPolicyId'"); + } + resourceInputs["annotations"] = args ? args.annotations : undefined; + resourceInputs["details"] = args ? args.details : undefined; + resourceInputs["displayName"] = args ? args.displayName : undefined; + resourceInputs["location"] = args ? args.location : undefined; + resourceInputs["organization"] = args ? args.organization : undefined; + resourceInputs["principalAccessBoundaryPolicyId"] = args ? args.principalAccessBoundaryPolicyId : undefined; + resourceInputs["createTime"] = undefined /*out*/; + resourceInputs["effectiveAnnotations"] = undefined /*out*/; + resourceInputs["etag"] = undefined /*out*/; + resourceInputs["name"] = undefined /*out*/; + resourceInputs["uid"] = undefined /*out*/; + resourceInputs["updateTime"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(PrincipalAccessBoundaryPolicy.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering PrincipalAccessBoundaryPolicy resources. + */ +export interface PrincipalAccessBoundaryPolicyState { + /** + * User defined annotations. See https://google.aip.dev/148#annotations + * for more details such as format and size limitations + * + * **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + * Please refer to the field `effectiveAnnotations` for all of the annotations present on the resource. + */ + annotations?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Output only. The time when the principal access boundary policy was created. + */ + createTime?: pulumi.Input; + /** + * Principal access boundary policy details + * Structure is documented below. + */ + details?: pulumi.Input; + /** + * The description of the principal access boundary policy. Must be less than or equal to 63 characters. + */ + displayName?: pulumi.Input; + effectiveAnnotations?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * The etag for the principal access boundary. If this is provided on update, it must match the server's etag. + */ + etag?: pulumi.Input; + /** + * The location the principal access boundary policy is in. + */ + location?: pulumi.Input; + /** + * Identifier. The resource name of the principal access boundary policy. The following format is supported: + * `organizations/{organization_id}/locations/{location}/principalAccessBoundaryPolicies/{policy_id}` + */ + name?: pulumi.Input; + /** + * The parent organization of the principal access boundary policy. + */ + organization?: pulumi.Input; + /** + * The ID to use to create the principal access boundary policy. + * This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, hyphens, or dots. Pattern, /a-z{2,62}/. + * + * + * - - - + */ + principalAccessBoundaryPolicyId?: pulumi.Input; + /** + * Output only. The globally unique ID of the principal access boundary policy. + */ + uid?: pulumi.Input; + /** + * Output only. The time when the principal access boundary policy was most recently updated. + */ + updateTime?: pulumi.Input; +} + +/** + * The set of arguments for constructing a PrincipalAccessBoundaryPolicy resource. + */ +export interface PrincipalAccessBoundaryPolicyArgs { + /** + * User defined annotations. See https://google.aip.dev/148#annotations + * for more details such as format and size limitations + * + * **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + * Please refer to the field `effectiveAnnotations` for all of the annotations present on the resource. + */ + annotations?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Principal access boundary policy details + * Structure is documented below. + */ + details?: pulumi.Input; + /** + * The description of the principal access boundary policy. Must be less than or equal to 63 characters. + */ + displayName?: pulumi.Input; + /** + * The location the principal access boundary policy is in. + */ + location: pulumi.Input; + /** + * The parent organization of the principal access boundary policy. + */ + organization: pulumi.Input; + /** + * The ID to use to create the principal access boundary policy. + * This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, hyphens, or dots. Pattern, /a-z{2,62}/. + * + * + * - - - + */ + principalAccessBoundaryPolicyId: pulumi.Input; +} diff --git a/sdk/nodejs/logging/metric.ts b/sdk/nodejs/logging/metric.ts index 53471a1f46..2fb43eea5c 100644 --- a/sdk/nodejs/logging/metric.ts +++ b/sdk/nodejs/logging/metric.ts @@ -143,7 +143,7 @@ import * as utilities from "../utilities"; * When using the `pulumi import` command, Metric can be imported using one of the formats above. For example: * * ```sh - * $ pulumi import gcp:logging/metric:Metric default {{project}} {{name}} + * $ pulumi import gcp:logging/metric:Metric default "{{project}} {{name}}" * ``` * * ```sh diff --git a/sdk/nodejs/looker/instance.ts b/sdk/nodejs/looker/instance.ts index 73a132eb27..8bc02206de 100644 --- a/sdk/nodejs/looker/instance.ts +++ b/sdk/nodejs/looker/instance.ts @@ -293,13 +293,11 @@ export class Instance extends pulumi.CustomResource { /** * Looker instance Admin settings. - * Structure is documented below. */ public readonly adminSettings!: pulumi.Output; /** - * Network name in the consumer project in the format of: projects/{project}/global/networks/{network} - * Note that the consumer network may be in a different GCP project than the consumer - * project that is hosting the Looker Instance. + * Network name in the consumer project in the format of: projects/{project}/global/networks/{network} Note that the + * consumer network may be in a different GCP project than the consumer project that is hosting the Looker Instance. */ public readonly consumerNetwork!: pulumi.Output; /** @@ -309,21 +307,17 @@ export class Instance extends pulumi.CustomResource { public /*out*/ readonly createTime!: pulumi.Output; /** * Custom domain settings for a Looker instance. - * Structure is documented below. */ public readonly customDomain!: pulumi.Output; /** - * Policy to determine if the cluster should be deleted forcefully. - * If setting deletionPolicy = "FORCE", the Looker instance will be deleted regardless - * of its nested resources. If set to "DEFAULT", Looker instances that still have + * Policy to determine if the cluster should be deleted forcefully. If setting deletionPolicy = "FORCE", the Looker + * instance will be deleted regardless of its nested resources. If set to "DEFAULT", Looker instances that still have * nested resources will return an error. Possible values: DEFAULT, FORCE */ public readonly deletionPolicy!: pulumi.Output; /** - * Maintenance denial period for this instance. - * You must allow at least 14 days of maintenance availability - * between any two deny maintenance periods. - * Structure is documented below. + * Maintenance denial period for this instance. You must allow at least 14 days of maintenance availability between any two + * deny maintenance periods. */ public readonly denyMaintenancePeriod!: pulumi.Output; /** @@ -332,7 +326,6 @@ export class Instance extends pulumi.CustomResource { public /*out*/ readonly egressPublicIp!: pulumi.Output; /** * Looker instance encryption settings. - * Structure is documented below. */ public readonly encryptionConfig!: pulumi.Output; /** @@ -356,48 +349,35 @@ export class Instance extends pulumi.CustomResource { */ public /*out*/ readonly lookerVersion!: pulumi.Output; /** - * Maintenance window for an instance. - * Maintenance of your instance takes place once a month, and will require - * your instance to be restarted during updates, which will temporarily - * disrupt service. - * Structure is documented below. + * Maintenance window for an instance. Maintenance of your instance takes place once a month, and will require your + * instance to be restarted during updates, which will temporarily disrupt service. */ public readonly maintenanceWindow!: pulumi.Output; /** * The ID of the instance or a fully qualified identifier for the instance. - * - * - * - - - */ public readonly name!: pulumi.Output; /** * Looker Instance OAuth login settings. * Structure is documented below. */ - public readonly oauthConfig!: pulumi.Output; + public readonly oauthConfig!: pulumi.Output; /** - * Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values: - * - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - * - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable) - * - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - * - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - * - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance - * Default value is `LOOKER_CORE_TRIAL`. - * Possible values are: `LOOKER_CORE_TRIAL`, `LOOKER_CORE_STANDARD`, `LOOKER_CORE_STANDARD_ANNUAL`, `LOOKER_CORE_ENTERPRISE_ANNUAL`, `LOOKER_CORE_EMBED_ANNUAL`. + * Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of + * these values: - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - LOOKER_CORE_STANDARD: pay as you go standard + * instance (Currently Unavailable) - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - + * LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance + * Default value: "LOOKER_CORE_TRIAL" Possible values: ["LOOKER_CORE_TRIAL", "LOOKER_CORE_STANDARD", + * "LOOKER_CORE_STANDARD_ANNUAL", "LOOKER_CORE_ENTERPRISE_ANNUAL", "LOOKER_CORE_EMBED_ANNUAL"] */ public readonly platformEdition!: pulumi.Output; /** * Whether private IP is enabled on the Looker instance. */ public readonly privateIpEnabled!: pulumi.Output; - /** - * The ID of the project in which the resource belongs. - * If it is not provided, the provider project is used. - */ public readonly project!: pulumi.Output; /** * Information for Private Service Connect (PSC) setup for a Looker instance. - * Structure is documented below. */ public readonly pscConfig!: pulumi.Output; /** @@ -413,8 +393,8 @@ export class Instance extends pulumi.CustomResource { */ public readonly region!: pulumi.Output; /** - * Name of a reserved IP address range within the consumer network, to be used for - * private service access connection. User may or may not specify this in a request. + * Name of a reserved IP address range within the consumer network, to be used for private service access connection. User + * may or may not specify this in a request. */ public readonly reservedRange!: pulumi.Output; /** @@ -423,14 +403,11 @@ export class Instance extends pulumi.CustomResource { */ public /*out*/ readonly updateTime!: pulumi.Output; /** - * Metadata about users for a Looker instance. - * These settings are only available when platform edition LOOKER_CORE_STANDARD is set. - * There are ten Standard and two Developer users included in the cost of the product. - * You can allocate additional Standard, Viewer, and Developer users for this instance. - * It is an optional step and can be modified later. - * With the Standard edition of Looker (Google Cloud core), you can provision up to 50 - * total users, distributed across Viewer, Standard, and Developer. - * Structure is documented below. + * Metadata about users for a Looker instance. These settings are only available when platform edition LOOKER_CORE_STANDARD + * is set. There are ten Standard and two Developer users included in the cost of the product. You can allocate additional + * Standard, Viewer, and Developer users for this instance. It is an optional step and can be modified later. With the + * Standard edition of Looker (Google Cloud core), you can provision up to 50 total users, distributed across Viewer, + * Standard, and Developer. */ public readonly userMetadata!: pulumi.Output; @@ -441,7 +418,7 @@ export class Instance extends pulumi.CustomResource { * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ - constructor(name: string, args?: InstanceArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, args: InstanceArgs, opts?: pulumi.CustomResourceOptions) constructor(name: string, argsOrState?: InstanceArgs | InstanceState, opts?: pulumi.CustomResourceOptions) { let resourceInputs: pulumi.Inputs = {}; opts = opts || {}; @@ -475,6 +452,9 @@ export class Instance extends pulumi.CustomResource { resourceInputs["userMetadata"] = state ? state.userMetadata : undefined; } else { const args = argsOrState as InstanceArgs | undefined; + if ((!args || args.oauthConfig === undefined) && !opts.urn) { + throw new Error("Missing required property 'oauthConfig'"); + } resourceInputs["adminSettings"] = args ? args.adminSettings : undefined; resourceInputs["consumerNetwork"] = args ? args.consumerNetwork : undefined; resourceInputs["customDomain"] = args ? args.customDomain : undefined; @@ -513,13 +493,11 @@ export class Instance extends pulumi.CustomResource { export interface InstanceState { /** * Looker instance Admin settings. - * Structure is documented below. */ adminSettings?: pulumi.Input; /** - * Network name in the consumer project in the format of: projects/{project}/global/networks/{network} - * Note that the consumer network may be in a different GCP project than the consumer - * project that is hosting the Looker Instance. + * Network name in the consumer project in the format of: projects/{project}/global/networks/{network} Note that the + * consumer network may be in a different GCP project than the consumer project that is hosting the Looker Instance. */ consumerNetwork?: pulumi.Input; /** @@ -529,21 +507,17 @@ export interface InstanceState { createTime?: pulumi.Input; /** * Custom domain settings for a Looker instance. - * Structure is documented below. */ customDomain?: pulumi.Input; /** - * Policy to determine if the cluster should be deleted forcefully. - * If setting deletionPolicy = "FORCE", the Looker instance will be deleted regardless - * of its nested resources. If set to "DEFAULT", Looker instances that still have + * Policy to determine if the cluster should be deleted forcefully. If setting deletionPolicy = "FORCE", the Looker + * instance will be deleted regardless of its nested resources. If set to "DEFAULT", Looker instances that still have * nested resources will return an error. Possible values: DEFAULT, FORCE */ deletionPolicy?: pulumi.Input; /** - * Maintenance denial period for this instance. - * You must allow at least 14 days of maintenance availability - * between any two deny maintenance periods. - * Structure is documented below. + * Maintenance denial period for this instance. You must allow at least 14 days of maintenance availability between any two + * deny maintenance periods. */ denyMaintenancePeriod?: pulumi.Input; /** @@ -552,7 +526,6 @@ export interface InstanceState { egressPublicIp?: pulumi.Input; /** * Looker instance encryption settings. - * Structure is documented below. */ encryptionConfig?: pulumi.Input; /** @@ -576,18 +549,12 @@ export interface InstanceState { */ lookerVersion?: pulumi.Input; /** - * Maintenance window for an instance. - * Maintenance of your instance takes place once a month, and will require - * your instance to be restarted during updates, which will temporarily - * disrupt service. - * Structure is documented below. + * Maintenance window for an instance. Maintenance of your instance takes place once a month, and will require your + * instance to be restarted during updates, which will temporarily disrupt service. */ maintenanceWindow?: pulumi.Input; /** * The ID of the instance or a fully qualified identifier for the instance. - * - * - * - - - */ name?: pulumi.Input; /** @@ -596,28 +563,21 @@ export interface InstanceState { */ oauthConfig?: pulumi.Input; /** - * Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values: - * - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - * - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable) - * - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - * - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - * - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance - * Default value is `LOOKER_CORE_TRIAL`. - * Possible values are: `LOOKER_CORE_TRIAL`, `LOOKER_CORE_STANDARD`, `LOOKER_CORE_STANDARD_ANNUAL`, `LOOKER_CORE_ENTERPRISE_ANNUAL`, `LOOKER_CORE_EMBED_ANNUAL`. + * Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of + * these values: - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - LOOKER_CORE_STANDARD: pay as you go standard + * instance (Currently Unavailable) - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - + * LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance + * Default value: "LOOKER_CORE_TRIAL" Possible values: ["LOOKER_CORE_TRIAL", "LOOKER_CORE_STANDARD", + * "LOOKER_CORE_STANDARD_ANNUAL", "LOOKER_CORE_ENTERPRISE_ANNUAL", "LOOKER_CORE_EMBED_ANNUAL"] */ platformEdition?: pulumi.Input; /** * Whether private IP is enabled on the Looker instance. */ privateIpEnabled?: pulumi.Input; - /** - * The ID of the project in which the resource belongs. - * If it is not provided, the provider project is used. - */ project?: pulumi.Input; /** * Information for Private Service Connect (PSC) setup for a Looker instance. - * Structure is documented below. */ pscConfig?: pulumi.Input; /** @@ -633,8 +593,8 @@ export interface InstanceState { */ region?: pulumi.Input; /** - * Name of a reserved IP address range within the consumer network, to be used for - * private service access connection. User may or may not specify this in a request. + * Name of a reserved IP address range within the consumer network, to be used for private service access connection. User + * may or may not specify this in a request. */ reservedRange?: pulumi.Input; /** @@ -643,14 +603,11 @@ export interface InstanceState { */ updateTime?: pulumi.Input; /** - * Metadata about users for a Looker instance. - * These settings are only available when platform edition LOOKER_CORE_STANDARD is set. - * There are ten Standard and two Developer users included in the cost of the product. - * You can allocate additional Standard, Viewer, and Developer users for this instance. - * It is an optional step and can be modified later. - * With the Standard edition of Looker (Google Cloud core), you can provision up to 50 - * total users, distributed across Viewer, Standard, and Developer. - * Structure is documented below. + * Metadata about users for a Looker instance. These settings are only available when platform edition LOOKER_CORE_STANDARD + * is set. There are ten Standard and two Developer users included in the cost of the product. You can allocate additional + * Standard, Viewer, and Developer users for this instance. It is an optional step and can be modified later. With the + * Standard edition of Looker (Google Cloud core), you can provision up to 50 total users, distributed across Viewer, + * Standard, and Developer. */ userMetadata?: pulumi.Input; } @@ -661,37 +618,30 @@ export interface InstanceState { export interface InstanceArgs { /** * Looker instance Admin settings. - * Structure is documented below. */ adminSettings?: pulumi.Input; /** - * Network name in the consumer project in the format of: projects/{project}/global/networks/{network} - * Note that the consumer network may be in a different GCP project than the consumer - * project that is hosting the Looker Instance. + * Network name in the consumer project in the format of: projects/{project}/global/networks/{network} Note that the + * consumer network may be in a different GCP project than the consumer project that is hosting the Looker Instance. */ consumerNetwork?: pulumi.Input; /** * Custom domain settings for a Looker instance. - * Structure is documented below. */ customDomain?: pulumi.Input; /** - * Policy to determine if the cluster should be deleted forcefully. - * If setting deletionPolicy = "FORCE", the Looker instance will be deleted regardless - * of its nested resources. If set to "DEFAULT", Looker instances that still have + * Policy to determine if the cluster should be deleted forcefully. If setting deletionPolicy = "FORCE", the Looker + * instance will be deleted regardless of its nested resources. If set to "DEFAULT", Looker instances that still have * nested resources will return an error. Possible values: DEFAULT, FORCE */ deletionPolicy?: pulumi.Input; /** - * Maintenance denial period for this instance. - * You must allow at least 14 days of maintenance availability - * between any two deny maintenance periods. - * Structure is documented below. + * Maintenance denial period for this instance. You must allow at least 14 days of maintenance availability between any two + * deny maintenance periods. */ denyMaintenancePeriod?: pulumi.Input; /** * Looker instance encryption settings. - * Structure is documented below. */ encryptionConfig?: pulumi.Input; /** @@ -699,48 +649,35 @@ export interface InstanceArgs { */ fipsEnabled?: pulumi.Input; /** - * Maintenance window for an instance. - * Maintenance of your instance takes place once a month, and will require - * your instance to be restarted during updates, which will temporarily - * disrupt service. - * Structure is documented below. + * Maintenance window for an instance. Maintenance of your instance takes place once a month, and will require your + * instance to be restarted during updates, which will temporarily disrupt service. */ maintenanceWindow?: pulumi.Input; /** * The ID of the instance or a fully qualified identifier for the instance. - * - * - * - - - */ name?: pulumi.Input; /** * Looker Instance OAuth login settings. * Structure is documented below. */ - oauthConfig?: pulumi.Input; + oauthConfig: pulumi.Input; /** - * Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values: - * - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - * - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable) - * - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - * - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - * - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance - * Default value is `LOOKER_CORE_TRIAL`. - * Possible values are: `LOOKER_CORE_TRIAL`, `LOOKER_CORE_STANDARD`, `LOOKER_CORE_STANDARD_ANNUAL`, `LOOKER_CORE_ENTERPRISE_ANNUAL`, `LOOKER_CORE_EMBED_ANNUAL`. + * Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of + * these values: - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - LOOKER_CORE_STANDARD: pay as you go standard + * instance (Currently Unavailable) - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - + * LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance + * Default value: "LOOKER_CORE_TRIAL" Possible values: ["LOOKER_CORE_TRIAL", "LOOKER_CORE_STANDARD", + * "LOOKER_CORE_STANDARD_ANNUAL", "LOOKER_CORE_ENTERPRISE_ANNUAL", "LOOKER_CORE_EMBED_ANNUAL"] */ platformEdition?: pulumi.Input; /** * Whether private IP is enabled on the Looker instance. */ privateIpEnabled?: pulumi.Input; - /** - * The ID of the project in which the resource belongs. - * If it is not provided, the provider project is used. - */ project?: pulumi.Input; /** * Information for Private Service Connect (PSC) setup for a Looker instance. - * Structure is documented below. */ pscConfig?: pulumi.Input; /** @@ -756,19 +693,16 @@ export interface InstanceArgs { */ region?: pulumi.Input; /** - * Name of a reserved IP address range within the consumer network, to be used for - * private service access connection. User may or may not specify this in a request. + * Name of a reserved IP address range within the consumer network, to be used for private service access connection. User + * may or may not specify this in a request. */ reservedRange?: pulumi.Input; /** - * Metadata about users for a Looker instance. - * These settings are only available when platform edition LOOKER_CORE_STANDARD is set. - * There are ten Standard and two Developer users included in the cost of the product. - * You can allocate additional Standard, Viewer, and Developer users for this instance. - * It is an optional step and can be modified later. - * With the Standard edition of Looker (Google Cloud core), you can provision up to 50 - * total users, distributed across Viewer, Standard, and Developer. - * Structure is documented below. + * Metadata about users for a Looker instance. These settings are only available when platform edition LOOKER_CORE_STANDARD + * is set. There are ten Standard and two Developer users included in the cost of the product. You can allocate additional + * Standard, Viewer, and Developer users for this instance. It is an optional step and can be modified later. With the + * Standard edition of Looker (Google Cloud core), you can provision up to 50 total users, distributed across Viewer, + * Standard, and Developer. */ userMetadata?: pulumi.Input; } diff --git a/sdk/nodejs/memorystore/instance.ts b/sdk/nodejs/memorystore/instance.ts index c4de4314e0..a6568a5f76 100644 --- a/sdk/nodejs/memorystore/instance.ts +++ b/sdk/nodejs/memorystore/instance.ts @@ -7,6 +7,8 @@ import * as outputs from "../types/output"; import * as utilities from "../utilities"; /** + * A Google Cloud Memorystore instance. + * * ## Example Usage * * ### Memorystore Instance Basic diff --git a/sdk/nodejs/monitoring/alertPolicy.ts b/sdk/nodejs/monitoring/alertPolicy.ts index 5ae0aa2004..a89c3c0556 100644 --- a/sdk/nodejs/monitoring/alertPolicy.ts +++ b/sdk/nodejs/monitoring/alertPolicy.ts @@ -130,11 +130,23 @@ import * as utilities from "../utilities"; * * AlertPolicy can be imported using any of these accepted formats: * + * * `{{project}}/{{name}}` + * + * * `{{project}} {{name}}` + * * * `{{name}}` * * When using the `pulumi import` command, AlertPolicy can be imported using one of the formats above. For example: * * ```sh + * $ pulumi import gcp:monitoring/alertPolicy:AlertPolicy default {{project}}/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:monitoring/alertPolicy:AlertPolicy default "{{project}} {{name}}" + * ``` + * + * ```sh * $ pulumi import gcp:monitoring/alertPolicy:AlertPolicy default {{name}} * ``` */ diff --git a/sdk/nodejs/monitoring/customService.ts b/sdk/nodejs/monitoring/customService.ts index 76f6626a85..08725da367 100644 --- a/sdk/nodejs/monitoring/customService.ts +++ b/sdk/nodejs/monitoring/customService.ts @@ -45,11 +45,23 @@ import * as utilities from "../utilities"; * * Service can be imported using any of these accepted formats: * + * * `{{project}}/{{name}}` + * + * * `{{project}} {{name}}` + * * * `{{name}}` * * When using the `pulumi import` command, Service can be imported using one of the formats above. For example: * * ```sh + * $ pulumi import gcp:monitoring/customService:CustomService default {{project}}/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:monitoring/customService:CustomService default "{{project}} {{name}}" + * ``` + * + * ```sh * $ pulumi import gcp:monitoring/customService:CustomService default {{name}} * ``` */ diff --git a/sdk/nodejs/monitoring/group.ts b/sdk/nodejs/monitoring/group.ts index 846c591793..413c1087af 100644 --- a/sdk/nodejs/monitoring/group.ts +++ b/sdk/nodejs/monitoring/group.ts @@ -50,11 +50,23 @@ import * as utilities from "../utilities"; * * Group can be imported using any of these accepted formats: * + * * `{{project}}/{{name}}` + * + * * `{{project}} {{name}}` + * * * `{{name}}` * * When using the `pulumi import` command, Group can be imported using one of the formats above. For example: * * ```sh + * $ pulumi import gcp:monitoring/group:Group default {{project}}/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:monitoring/group:Group default "{{project}} {{name}}" + * ``` + * + * ```sh * $ pulumi import gcp:monitoring/group:Group default {{name}} * ``` */ diff --git a/sdk/nodejs/monitoring/metricDescriptor.ts b/sdk/nodejs/monitoring/metricDescriptor.ts index 661e889fce..f99639120f 100644 --- a/sdk/nodejs/monitoring/metricDescriptor.ts +++ b/sdk/nodejs/monitoring/metricDescriptor.ts @@ -74,11 +74,23 @@ import * as utilities from "../utilities"; * * MetricDescriptor can be imported using any of these accepted formats: * + * * `{{project}}/{{name}}` + * + * * `{{project}} {{name}}` + * * * `{{name}}` * * When using the `pulumi import` command, MetricDescriptor can be imported using one of the formats above. For example: * * ```sh + * $ pulumi import gcp:monitoring/metricDescriptor:MetricDescriptor default {{project}}/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:monitoring/metricDescriptor:MetricDescriptor default "{{project}} {{name}}" + * ``` + * + * ```sh * $ pulumi import gcp:monitoring/metricDescriptor:MetricDescriptor default {{name}} * ``` */ diff --git a/sdk/nodejs/monitoring/slo.ts b/sdk/nodejs/monitoring/slo.ts index 370eaa0240..22225acda8 100644 --- a/sdk/nodejs/monitoring/slo.ts +++ b/sdk/nodejs/monitoring/slo.ts @@ -214,11 +214,23 @@ import * as utilities from "../utilities"; * * Slo can be imported using any of these accepted formats: * + * * `{{project}}/{{name}}` + * + * * `{{project}} {{name}}` + * * * `{{name}}` * * When using the `pulumi import` command, Slo can be imported using one of the formats above. For example: * * ```sh + * $ pulumi import gcp:monitoring/slo:Slo default {{project}}/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:monitoring/slo:Slo default "{{project}} {{name}}" + * ``` + * + * ```sh * $ pulumi import gcp:monitoring/slo:Slo default {{name}} * ``` */ diff --git a/sdk/nodejs/monitoring/uptimeCheckConfig.ts b/sdk/nodejs/monitoring/uptimeCheckConfig.ts index cbb83517ba..84d7b25033 100644 --- a/sdk/nodejs/monitoring/uptimeCheckConfig.ts +++ b/sdk/nodejs/monitoring/uptimeCheckConfig.ts @@ -213,11 +213,23 @@ import * as utilities from "../utilities"; * * UptimeCheckConfig can be imported using any of these accepted formats: * + * * `{{project}}/{{name}}` + * + * * `{{project}} {{name}}` + * * * `{{name}}` * * When using the `pulumi import` command, UptimeCheckConfig can be imported using one of the formats above. For example: * * ```sh + * $ pulumi import gcp:monitoring/uptimeCheckConfig:UptimeCheckConfig default {{project}}/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:monitoring/uptimeCheckConfig:UptimeCheckConfig default "{{project}} {{name}}" + * ``` + * + * ```sh * $ pulumi import gcp:monitoring/uptimeCheckConfig:UptimeCheckConfig default {{name}} * ``` */ diff --git a/sdk/nodejs/networkmanagement/index.ts b/sdk/nodejs/networkmanagement/index.ts index 935309a8f0..43a2bbe2fe 100644 --- a/sdk/nodejs/networkmanagement/index.ts +++ b/sdk/nodejs/networkmanagement/index.ts @@ -10,6 +10,11 @@ export type ConnectivityTest = import("./connectivityTest").ConnectivityTest; export const ConnectivityTest: typeof import("./connectivityTest").ConnectivityTest = null as any; utilities.lazyLoad(exports, ["ConnectivityTest"], () => require("./connectivityTest")); +export { VpcFlowLogsConfigArgs, VpcFlowLogsConfigState } from "./vpcFlowLogsConfig"; +export type VpcFlowLogsConfig = import("./vpcFlowLogsConfig").VpcFlowLogsConfig; +export const VpcFlowLogsConfig: typeof import("./vpcFlowLogsConfig").VpcFlowLogsConfig = null as any; +utilities.lazyLoad(exports, ["VpcFlowLogsConfig"], () => require("./vpcFlowLogsConfig")); + const _module = { version: utilities.getVersion(), @@ -17,9 +22,12 @@ const _module = { switch (type) { case "gcp:networkmanagement/connectivityTest:ConnectivityTest": return new ConnectivityTest(name, undefined, { urn }) + case "gcp:networkmanagement/vpcFlowLogsConfig:VpcFlowLogsConfig": + return new VpcFlowLogsConfig(name, undefined, { urn }) default: throw new Error(`unknown resource type ${type}`); } }, }; pulumi.runtime.registerResourceModule("gcp", "networkmanagement/connectivityTest", _module) +pulumi.runtime.registerResourceModule("gcp", "networkmanagement/vpcFlowLogsConfig", _module) diff --git a/sdk/nodejs/networkmanagement/vpcFlowLogsConfig.ts b/sdk/nodejs/networkmanagement/vpcFlowLogsConfig.ts new file mode 100644 index 0000000000..bb6f461c37 --- /dev/null +++ b/sdk/nodejs/networkmanagement/vpcFlowLogsConfig.ts @@ -0,0 +1,573 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * ## Example Usage + * + * ### Network Management Vpc Flow Logs Config Interconnect Full + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * + * const project = gcp.organizations.getProject({}); + * const network = new gcp.compute.Network("network", {name: "full-interconnect-test-network"}); + * const router = new gcp.compute.Router("router", { + * name: "full-interconnect-test-router", + * network: network.name, + * bgp: { + * asn: 16550, + * }, + * }); + * const attachment = new gcp.compute.InterconnectAttachment("attachment", { + * name: "full-interconnect-test-id", + * edgeAvailabilityDomain: "AVAILABILITY_DOMAIN_1", + * type: "PARTNER", + * router: router.id, + * mtu: "1500", + * }); + * const interconnect_test = new gcp.networkmanagement.VpcFlowLogsConfig("interconnect-test", { + * vpcFlowLogsConfigId: "full-interconnect-test-id", + * location: "global", + * interconnectAttachment: pulumi.all([project, attachment.name]).apply(([project, name]) => `projects/${project.number}/regions/us-east4/interconnectAttachments/${name}`), + * state: "ENABLED", + * aggregationInterval: "INTERVAL_5_SEC", + * description: "VPC Flow Logs over a VPN Gateway.", + * flowSampling: 0.5, + * metadata: "INCLUDE_ALL_METADATA", + * }); + * ``` + * ### Network Management Vpc Flow Logs Config Interconnect Basic + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * + * const project = gcp.organizations.getProject({}); + * const network = new gcp.compute.Network("network", {name: "basic-interconnect-test-network"}); + * const router = new gcp.compute.Router("router", { + * name: "basic-interconnect-test-router", + * network: network.name, + * bgp: { + * asn: 16550, + * }, + * }); + * const attachment = new gcp.compute.InterconnectAttachment("attachment", { + * name: "basic-interconnect-test-id", + * edgeAvailabilityDomain: "AVAILABILITY_DOMAIN_1", + * type: "PARTNER", + * router: router.id, + * mtu: "1500", + * }); + * const interconnect_test = new gcp.networkmanagement.VpcFlowLogsConfig("interconnect-test", { + * vpcFlowLogsConfigId: "basic-interconnect-test-id", + * location: "global", + * interconnectAttachment: pulumi.all([project, attachment.name]).apply(([project, name]) => `projects/${project.number}/regions/us-east4/interconnectAttachments/${name}`), + * }); + * ``` + * ### Network Management Vpc Flow Logs Config Vpn Basic + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * + * const project = gcp.organizations.getProject({}); + * const network = new gcp.compute.Network("network", {name: "basic-test-network"}); + * const targetGateway = new gcp.compute.VPNGateway("target_gateway", { + * name: "basic-test-gateway", + * network: network.id, + * }); + * const vpnStaticIp = new gcp.compute.Address("vpn_static_ip", {name: "basic-test-address"}); + * const frEsp = new gcp.compute.ForwardingRule("fr_esp", { + * name: "basic-test-fresp", + * ipProtocol: "ESP", + * ipAddress: vpnStaticIp.address, + * target: targetGateway.id, + * }); + * const frUdp500 = new gcp.compute.ForwardingRule("fr_udp500", { + * name: "basic-test-fr500", + * ipProtocol: "UDP", + * portRange: "500", + * ipAddress: vpnStaticIp.address, + * target: targetGateway.id, + * }); + * const frUdp4500 = new gcp.compute.ForwardingRule("fr_udp4500", { + * name: "basic-test-fr4500", + * ipProtocol: "UDP", + * portRange: "4500", + * ipAddress: vpnStaticIp.address, + * target: targetGateway.id, + * }); + * const tunnel = new gcp.compute.VPNTunnel("tunnel", { + * name: "basic-test-tunnel", + * peerIp: "15.0.0.120", + * sharedSecret: "a secret message", + * targetVpnGateway: targetGateway.id, + * }, { + * dependsOn: [ + * frEsp, + * frUdp500, + * frUdp4500, + * ], + * }); + * const vpn_test = new gcp.networkmanagement.VpcFlowLogsConfig("vpn-test", { + * vpcFlowLogsConfigId: "basic-test-id", + * location: "global", + * vpnTunnel: pulumi.all([project, tunnel.name]).apply(([project, name]) => `projects/${project.number}/regions/us-central1/vpnTunnels/${name}`), + * }); + * const route = new gcp.compute.Route("route", { + * name: "basic-test-route", + * network: network.name, + * destRange: "15.0.0.0/24", + * priority: 1000, + * nextHopVpnTunnel: tunnel.id, + * }); + * ``` + * ### Network Management Vpc Flow Logs Config Vpn Full + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * + * const project = gcp.organizations.getProject({}); + * const network = new gcp.compute.Network("network", {name: "full-test-network"}); + * const targetGateway = new gcp.compute.VPNGateway("target_gateway", { + * name: "full-test-gateway", + * network: network.id, + * }); + * const vpnStaticIp = new gcp.compute.Address("vpn_static_ip", {name: "full-test-address"}); + * const frEsp = new gcp.compute.ForwardingRule("fr_esp", { + * name: "full-test-fresp", + * ipProtocol: "ESP", + * ipAddress: vpnStaticIp.address, + * target: targetGateway.id, + * }); + * const frUdp500 = new gcp.compute.ForwardingRule("fr_udp500", { + * name: "full-test-fr500", + * ipProtocol: "UDP", + * portRange: "500", + * ipAddress: vpnStaticIp.address, + * target: targetGateway.id, + * }); + * const frUdp4500 = new gcp.compute.ForwardingRule("fr_udp4500", { + * name: "full-test-fr4500", + * ipProtocol: "UDP", + * portRange: "4500", + * ipAddress: vpnStaticIp.address, + * target: targetGateway.id, + * }); + * const tunnel = new gcp.compute.VPNTunnel("tunnel", { + * name: "full-test-tunnel", + * peerIp: "15.0.0.120", + * sharedSecret: "a secret message", + * targetVpnGateway: targetGateway.id, + * }, { + * dependsOn: [ + * frEsp, + * frUdp500, + * frUdp4500, + * ], + * }); + * const vpn_test = new gcp.networkmanagement.VpcFlowLogsConfig("vpn-test", { + * vpcFlowLogsConfigId: "full-test-id", + * location: "global", + * vpnTunnel: pulumi.all([project, tunnel.name]).apply(([project, name]) => `projects/${project.number}/regions/us-central1/vpnTunnels/${name}`), + * state: "ENABLED", + * aggregationInterval: "INTERVAL_5_SEC", + * description: "VPC Flow Logs over a VPN Gateway.", + * flowSampling: 0.5, + * metadata: "INCLUDE_ALL_METADATA", + * }); + * const route = new gcp.compute.Route("route", { + * name: "full-test-route", + * network: network.name, + * destRange: "15.0.0.0/24", + * priority: 1000, + * nextHopVpnTunnel: tunnel.id, + * }); + * ``` + * + * ## Import + * + * VpcFlowLogsConfig can be imported using any of these accepted formats: + * + * * `projects/{{project}}/locations/{{location}}/vpcFlowLogsConfigs/{{vpc_flow_logs_config_id}}` + * + * * `{{project}}/{{location}}/{{vpc_flow_logs_config_id}}` + * + * * `{{location}}/{{vpc_flow_logs_config_id}}` + * + * When using the `pulumi import` command, VpcFlowLogsConfig can be imported using one of the formats above. For example: + * + * ```sh + * $ pulumi import gcp:networkmanagement/vpcFlowLogsConfig:VpcFlowLogsConfig default projects/{{project}}/locations/{{location}}/vpcFlowLogsConfigs/{{vpc_flow_logs_config_id}} + * ``` + * + * ```sh + * $ pulumi import gcp:networkmanagement/vpcFlowLogsConfig:VpcFlowLogsConfig default {{project}}/{{location}}/{{vpc_flow_logs_config_id}} + * ``` + * + * ```sh + * $ pulumi import gcp:networkmanagement/vpcFlowLogsConfig:VpcFlowLogsConfig default {{location}}/{{vpc_flow_logs_config_id}} + * ``` + */ +export class VpcFlowLogsConfig extends pulumi.CustomResource { + /** + * Get an existing VpcFlowLogsConfig resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: VpcFlowLogsConfigState, opts?: pulumi.CustomResourceOptions): VpcFlowLogsConfig { + return new VpcFlowLogsConfig(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'gcp:networkmanagement/vpcFlowLogsConfig:VpcFlowLogsConfig'; + + /** + * Returns true if the given object is an instance of VpcFlowLogsConfig. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is VpcFlowLogsConfig { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === VpcFlowLogsConfig.__pulumiType; + } + + /** + * Optional. The aggregation interval for the logs. Default value is + * INTERVAL_5_SEC. Possible values: AGGREGATION_INTERVAL_UNSPECIFIED INTERVAL_5_SEC INTERVAL_30_SEC INTERVAL_1_MIN INTERVAL_5_MIN INTERVAL_10_MIN INTERVAL_15_MIN" + */ + public readonly aggregationInterval!: pulumi.Output; + /** + * Output only. The time the config was created. + */ + public /*out*/ readonly createTime!: pulumi.Output; + /** + * Optional. The user-supplied description of the VPC Flow Logs configuration. Maximum + * of 512 characters. + */ + public readonly description!: pulumi.Output; + /** + * All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + */ + public /*out*/ readonly effectiveLabels!: pulumi.Output<{[key: string]: string}>; + /** + * Optional. Export filter used to define which VPC Flow Logs should be logged. + */ + public readonly filterExpr!: pulumi.Output; + /** + * Optional. The value of the field must be in (0, 1]. The sampling rate + * of VPC Flow Logs where 1.0 means all collected logs are reported. Setting the + * sampling rate to 0.0 is not allowed. If you want to disable VPC Flow Logs, use + * the state field instead. Default value is 1.0. + */ + public readonly flowSampling!: pulumi.Output; + /** + * Traffic will be logged from the Interconnect Attachment. Format: projects/{project_id}/regions/{region}/interconnectAttachments/{name} + */ + public readonly interconnectAttachment!: pulumi.Output; + /** + * Optional. Resource labels to represent user-provided metadata. + * + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effectiveLabels` for all of the labels present on the resource. + */ + public readonly labels!: pulumi.Output<{[key: string]: string} | undefined>; + /** + * Resource ID segment making up resource `name`. It identifies the resource + * within its parent collection as described in https://google.aip.dev/122. See documentation + * for resource type `networkmanagement.googleapis.com/VpcFlowLogsConfig`. + */ + public readonly location!: pulumi.Output; + /** + * Optional. Configures whether all, none or a subset of metadata fields + * should be added to the reported VPC flow logs. Default value is INCLUDE_ALL_METADATA. + * Possible values: METADATA_UNSPECIFIED INCLUDE_ALL_METADATA EXCLUDE_ALL_METADATA CUSTOM_METADATA + */ + public readonly metadata!: pulumi.Output; + /** + * Optional. Custom metadata fields to include in the reported VPC flow + * logs. Can only be specified if \"metadata\" was set to CUSTOM_METADATA. + */ + public readonly metadataFields!: pulumi.Output; + /** + * Identifier. Unique name of the configuration using the form: `projects/{project_id}/locations/global/vpcFlowLogsConfigs/{vpc_flow_logs_config_id}` + */ + public /*out*/ readonly name!: pulumi.Output; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + */ + public readonly project!: pulumi.Output; + /** + * The combination of labels configured directly on the resource + * and default labels configured on the provider. + */ + public /*out*/ readonly pulumiLabels!: pulumi.Output<{[key: string]: string}>; + /** + * Optional. The state of the VPC Flow Log configuration. Default value + * is ENABLED. When creating a new configuration, it must be enabled. Possible + */ + public readonly state!: pulumi.Output; + /** + * Output only. The time the config was updated. + */ + public /*out*/ readonly updateTime!: pulumi.Output; + /** + * Required. ID of the `VpcFlowLogsConfig`. + * + * + * - - - + */ + public readonly vpcFlowLogsConfigId!: pulumi.Output; + /** + * Traffic will be logged from the VPN Tunnel. Format: projects/{project_id}/regions/{region}/vpnTunnels/{name} + */ + public readonly vpnTunnel!: pulumi.Output; + + /** + * Create a VpcFlowLogsConfig resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: VpcFlowLogsConfigArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: VpcFlowLogsConfigArgs | VpcFlowLogsConfigState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as VpcFlowLogsConfigState | undefined; + resourceInputs["aggregationInterval"] = state ? state.aggregationInterval : undefined; + resourceInputs["createTime"] = state ? state.createTime : undefined; + resourceInputs["description"] = state ? state.description : undefined; + resourceInputs["effectiveLabels"] = state ? state.effectiveLabels : undefined; + resourceInputs["filterExpr"] = state ? state.filterExpr : undefined; + resourceInputs["flowSampling"] = state ? state.flowSampling : undefined; + resourceInputs["interconnectAttachment"] = state ? state.interconnectAttachment : undefined; + resourceInputs["labels"] = state ? state.labels : undefined; + resourceInputs["location"] = state ? state.location : undefined; + resourceInputs["metadata"] = state ? state.metadata : undefined; + resourceInputs["metadataFields"] = state ? state.metadataFields : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["project"] = state ? state.project : undefined; + resourceInputs["pulumiLabels"] = state ? state.pulumiLabels : undefined; + resourceInputs["state"] = state ? state.state : undefined; + resourceInputs["updateTime"] = state ? state.updateTime : undefined; + resourceInputs["vpcFlowLogsConfigId"] = state ? state.vpcFlowLogsConfigId : undefined; + resourceInputs["vpnTunnel"] = state ? state.vpnTunnel : undefined; + } else { + const args = argsOrState as VpcFlowLogsConfigArgs | undefined; + if ((!args || args.location === undefined) && !opts.urn) { + throw new Error("Missing required property 'location'"); + } + if ((!args || args.vpcFlowLogsConfigId === undefined) && !opts.urn) { + throw new Error("Missing required property 'vpcFlowLogsConfigId'"); + } + resourceInputs["aggregationInterval"] = args ? args.aggregationInterval : undefined; + resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["filterExpr"] = args ? args.filterExpr : undefined; + resourceInputs["flowSampling"] = args ? args.flowSampling : undefined; + resourceInputs["interconnectAttachment"] = args ? args.interconnectAttachment : undefined; + resourceInputs["labels"] = args ? args.labels : undefined; + resourceInputs["location"] = args ? args.location : undefined; + resourceInputs["metadata"] = args ? args.metadata : undefined; + resourceInputs["metadataFields"] = args ? args.metadataFields : undefined; + resourceInputs["project"] = args ? args.project : undefined; + resourceInputs["state"] = args ? args.state : undefined; + resourceInputs["vpcFlowLogsConfigId"] = args ? args.vpcFlowLogsConfigId : undefined; + resourceInputs["vpnTunnel"] = args ? args.vpnTunnel : undefined; + resourceInputs["createTime"] = undefined /*out*/; + resourceInputs["effectiveLabels"] = undefined /*out*/; + resourceInputs["name"] = undefined /*out*/; + resourceInputs["pulumiLabels"] = undefined /*out*/; + resourceInputs["updateTime"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const secretOpts = { additionalSecretOutputs: ["effectiveLabels", "pulumiLabels"] }; + opts = pulumi.mergeOptions(opts, secretOpts); + super(VpcFlowLogsConfig.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering VpcFlowLogsConfig resources. + */ +export interface VpcFlowLogsConfigState { + /** + * Optional. The aggregation interval for the logs. Default value is + * INTERVAL_5_SEC. Possible values: AGGREGATION_INTERVAL_UNSPECIFIED INTERVAL_5_SEC INTERVAL_30_SEC INTERVAL_1_MIN INTERVAL_5_MIN INTERVAL_10_MIN INTERVAL_15_MIN" + */ + aggregationInterval?: pulumi.Input; + /** + * Output only. The time the config was created. + */ + createTime?: pulumi.Input; + /** + * Optional. The user-supplied description of the VPC Flow Logs configuration. Maximum + * of 512 characters. + */ + description?: pulumi.Input; + /** + * All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + */ + effectiveLabels?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Optional. Export filter used to define which VPC Flow Logs should be logged. + */ + filterExpr?: pulumi.Input; + /** + * Optional. The value of the field must be in (0, 1]. The sampling rate + * of VPC Flow Logs where 1.0 means all collected logs are reported. Setting the + * sampling rate to 0.0 is not allowed. If you want to disable VPC Flow Logs, use + * the state field instead. Default value is 1.0. + */ + flowSampling?: pulumi.Input; + /** + * Traffic will be logged from the Interconnect Attachment. Format: projects/{project_id}/regions/{region}/interconnectAttachments/{name} + */ + interconnectAttachment?: pulumi.Input; + /** + * Optional. Resource labels to represent user-provided metadata. + * + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effectiveLabels` for all of the labels present on the resource. + */ + labels?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Resource ID segment making up resource `name`. It identifies the resource + * within its parent collection as described in https://google.aip.dev/122. See documentation + * for resource type `networkmanagement.googleapis.com/VpcFlowLogsConfig`. + */ + location?: pulumi.Input; + /** + * Optional. Configures whether all, none or a subset of metadata fields + * should be added to the reported VPC flow logs. Default value is INCLUDE_ALL_METADATA. + * Possible values: METADATA_UNSPECIFIED INCLUDE_ALL_METADATA EXCLUDE_ALL_METADATA CUSTOM_METADATA + */ + metadata?: pulumi.Input; + /** + * Optional. Custom metadata fields to include in the reported VPC flow + * logs. Can only be specified if \"metadata\" was set to CUSTOM_METADATA. + */ + metadataFields?: pulumi.Input[]>; + /** + * Identifier. Unique name of the configuration using the form: `projects/{project_id}/locations/global/vpcFlowLogsConfigs/{vpc_flow_logs_config_id}` + */ + name?: pulumi.Input; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + */ + project?: pulumi.Input; + /** + * The combination of labels configured directly on the resource + * and default labels configured on the provider. + */ + pulumiLabels?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Optional. The state of the VPC Flow Log configuration. Default value + * is ENABLED. When creating a new configuration, it must be enabled. Possible + */ + state?: pulumi.Input; + /** + * Output only. The time the config was updated. + */ + updateTime?: pulumi.Input; + /** + * Required. ID of the `VpcFlowLogsConfig`. + * + * + * - - - + */ + vpcFlowLogsConfigId?: pulumi.Input; + /** + * Traffic will be logged from the VPN Tunnel. Format: projects/{project_id}/regions/{region}/vpnTunnels/{name} + */ + vpnTunnel?: pulumi.Input; +} + +/** + * The set of arguments for constructing a VpcFlowLogsConfig resource. + */ +export interface VpcFlowLogsConfigArgs { + /** + * Optional. The aggregation interval for the logs. Default value is + * INTERVAL_5_SEC. Possible values: AGGREGATION_INTERVAL_UNSPECIFIED INTERVAL_5_SEC INTERVAL_30_SEC INTERVAL_1_MIN INTERVAL_5_MIN INTERVAL_10_MIN INTERVAL_15_MIN" + */ + aggregationInterval?: pulumi.Input; + /** + * Optional. The user-supplied description of the VPC Flow Logs configuration. Maximum + * of 512 characters. + */ + description?: pulumi.Input; + /** + * Optional. Export filter used to define which VPC Flow Logs should be logged. + */ + filterExpr?: pulumi.Input; + /** + * Optional. The value of the field must be in (0, 1]. The sampling rate + * of VPC Flow Logs where 1.0 means all collected logs are reported. Setting the + * sampling rate to 0.0 is not allowed. If you want to disable VPC Flow Logs, use + * the state field instead. Default value is 1.0. + */ + flowSampling?: pulumi.Input; + /** + * Traffic will be logged from the Interconnect Attachment. Format: projects/{project_id}/regions/{region}/interconnectAttachments/{name} + */ + interconnectAttachment?: pulumi.Input; + /** + * Optional. Resource labels to represent user-provided metadata. + * + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effectiveLabels` for all of the labels present on the resource. + */ + labels?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Resource ID segment making up resource `name`. It identifies the resource + * within its parent collection as described in https://google.aip.dev/122. See documentation + * for resource type `networkmanagement.googleapis.com/VpcFlowLogsConfig`. + */ + location: pulumi.Input; + /** + * Optional. Configures whether all, none or a subset of metadata fields + * should be added to the reported VPC flow logs. Default value is INCLUDE_ALL_METADATA. + * Possible values: METADATA_UNSPECIFIED INCLUDE_ALL_METADATA EXCLUDE_ALL_METADATA CUSTOM_METADATA + */ + metadata?: pulumi.Input; + /** + * Optional. Custom metadata fields to include in the reported VPC flow + * logs. Can only be specified if \"metadata\" was set to CUSTOM_METADATA. + */ + metadataFields?: pulumi.Input[]>; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + */ + project?: pulumi.Input; + /** + * Optional. The state of the VPC Flow Log configuration. Default value + * is ENABLED. When creating a new configuration, it must be enabled. Possible + */ + state?: pulumi.Input; + /** + * Required. ID of the `VpcFlowLogsConfig`. + * + * + * - - - + */ + vpcFlowLogsConfigId: pulumi.Input; + /** + * Traffic will be logged from the VPN Tunnel. Format: projects/{project_id}/regions/{region}/vpnTunnels/{name} + */ + vpnTunnel?: pulumi.Input; +} diff --git a/sdk/nodejs/osconfig/patchDeployment.ts b/sdk/nodejs/osconfig/patchDeployment.ts index cbcada96e9..0f2cd52761 100644 --- a/sdk/nodejs/osconfig/patchDeployment.ts +++ b/sdk/nodejs/osconfig/patchDeployment.ts @@ -255,20 +255,20 @@ import * as utilities from "../utilities"; * * PatchDeployment can be imported using any of these accepted formats: * - * * `projects/{{project}}/patchDeployments/{{name}}` - * * * `{{project}}/{{name}}` * + * * `{{project}} {{name}}` + * * * `{{name}}` * * When using the `pulumi import` command, PatchDeployment can be imported using one of the formats above. For example: * * ```sh - * $ pulumi import gcp:osconfig/patchDeployment:PatchDeployment default projects/{{project}}/patchDeployments/{{name}} + * $ pulumi import gcp:osconfig/patchDeployment:PatchDeployment default {{project}}/{{name}} * ``` * * ```sh - * $ pulumi import gcp:osconfig/patchDeployment:PatchDeployment default {{project}}/{{name}} + * $ pulumi import gcp:osconfig/patchDeployment:PatchDeployment default "{{project}} {{name}}" * ``` * * ```sh diff --git a/sdk/nodejs/provider.ts b/sdk/nodejs/provider.ts index ab6bba8397..f4eaba8546 100644 --- a/sdk/nodejs/provider.ts +++ b/sdk/nodejs/provider.ts @@ -89,6 +89,7 @@ export class Provider extends pulumi.ProviderResource { public readonly dataformCustomEndpoint!: pulumi.Output; public readonly dataplexCustomEndpoint!: pulumi.Output; public readonly dataprocCustomEndpoint!: pulumi.Output; + public readonly dataprocGdcCustomEndpoint!: pulumi.Output; public readonly dataprocMetastoreCustomEndpoint!: pulumi.Output; public readonly datastreamCustomEndpoint!: pulumi.Output; public readonly deploymentManagerCustomEndpoint!: pulumi.Output; @@ -120,6 +121,7 @@ export class Provider extends pulumi.ProviderResource { public readonly googlePartnerName!: pulumi.Output; public readonly healthcareCustomEndpoint!: pulumi.Output; public readonly iam2CustomEndpoint!: pulumi.Output; + public readonly iam3CustomEndpoint!: pulumi.Output; public readonly iamBetaCustomEndpoint!: pulumi.Output; public readonly iamCredentialsCustomEndpoint!: pulumi.Output; public readonly iamCustomEndpoint!: pulumi.Output; @@ -273,6 +275,7 @@ export class Provider extends pulumi.ProviderResource { resourceInputs["dataformCustomEndpoint"] = args ? args.dataformCustomEndpoint : undefined; resourceInputs["dataplexCustomEndpoint"] = args ? args.dataplexCustomEndpoint : undefined; resourceInputs["dataprocCustomEndpoint"] = args ? args.dataprocCustomEndpoint : undefined; + resourceInputs["dataprocGdcCustomEndpoint"] = args ? args.dataprocGdcCustomEndpoint : undefined; resourceInputs["dataprocMetastoreCustomEndpoint"] = args ? args.dataprocMetastoreCustomEndpoint : undefined; resourceInputs["datastreamCustomEndpoint"] = args ? args.datastreamCustomEndpoint : undefined; resourceInputs["defaultLabels"] = pulumi.output(args ? args.defaultLabels : undefined).apply(JSON.stringify); @@ -306,6 +309,7 @@ export class Provider extends pulumi.ProviderResource { resourceInputs["googlePartnerName"] = args ? args.googlePartnerName : undefined; resourceInputs["healthcareCustomEndpoint"] = args ? args.healthcareCustomEndpoint : undefined; resourceInputs["iam2CustomEndpoint"] = args ? args.iam2CustomEndpoint : undefined; + resourceInputs["iam3CustomEndpoint"] = args ? args.iam3CustomEndpoint : undefined; resourceInputs["iamBetaCustomEndpoint"] = args ? args.iamBetaCustomEndpoint : undefined; resourceInputs["iamCredentialsCustomEndpoint"] = args ? args.iamCredentialsCustomEndpoint : undefined; resourceInputs["iamCustomEndpoint"] = args ? args.iamCustomEndpoint : undefined; @@ -462,6 +466,7 @@ export interface ProviderArgs { dataformCustomEndpoint?: pulumi.Input; dataplexCustomEndpoint?: pulumi.Input; dataprocCustomEndpoint?: pulumi.Input; + dataprocGdcCustomEndpoint?: pulumi.Input; dataprocMetastoreCustomEndpoint?: pulumi.Input; datastreamCustomEndpoint?: pulumi.Input; defaultLabels?: pulumi.Input<{[key: string]: pulumi.Input}>; @@ -495,6 +500,7 @@ export interface ProviderArgs { googlePartnerName?: pulumi.Input; healthcareCustomEndpoint?: pulumi.Input; iam2CustomEndpoint?: pulumi.Input; + iam3CustomEndpoint?: pulumi.Input; iamBetaCustomEndpoint?: pulumi.Input; iamCredentialsCustomEndpoint?: pulumi.Input; iamCustomEndpoint?: pulumi.Input; diff --git a/sdk/nodejs/securitycenter/notificationConfig.ts b/sdk/nodejs/securitycenter/notificationConfig.ts index cd86b30972..6f0c7943f0 100644 --- a/sdk/nodejs/securitycenter/notificationConfig.ts +++ b/sdk/nodejs/securitycenter/notificationConfig.ts @@ -45,18 +45,12 @@ import * as utilities from "../utilities"; * * NotificationConfig can be imported using any of these accepted formats: * - * * `organizations/{{organization}}/notificationConfigs/{{name}}` - * - * * `{{organization}}/{{name}}` + * * `{{name}}` * * When using the `pulumi import` command, NotificationConfig can be imported using one of the formats above. For example: * * ```sh - * $ pulumi import gcp:securitycenter/notificationConfig:NotificationConfig default organizations/{{organization}}/notificationConfigs/{{name}} - * ``` - * - * ```sh - * $ pulumi import gcp:securitycenter/notificationConfig:NotificationConfig default {{organization}}/{{name}} + * $ pulumi import gcp:securitycenter/notificationConfig:NotificationConfig default {{name}} * ``` */ export class NotificationConfig extends pulumi.CustomResource { diff --git a/sdk/nodejs/securitycenter/projectNotificationConfig.ts b/sdk/nodejs/securitycenter/projectNotificationConfig.ts index ec496bde25..277b414418 100644 --- a/sdk/nodejs/securitycenter/projectNotificationConfig.ts +++ b/sdk/nodejs/securitycenter/projectNotificationConfig.ts @@ -45,23 +45,11 @@ import * as utilities from "../utilities"; * * ProjectNotificationConfig can be imported using any of these accepted formats: * - * * `projects/{{project}}/notificationConfigs/{{name}}` - * - * * `{{project}}/{{name}}` - * * * `{{name}}` * * When using the `pulumi import` command, ProjectNotificationConfig can be imported using one of the formats above. For example: * * ```sh - * $ pulumi import gcp:securitycenter/projectNotificationConfig:ProjectNotificationConfig default projects/{{project}}/notificationConfigs/{{name}} - * ``` - * - * ```sh - * $ pulumi import gcp:securitycenter/projectNotificationConfig:ProjectNotificationConfig default {{project}}/{{name}} - * ``` - * - * ```sh * $ pulumi import gcp:securitycenter/projectNotificationConfig:ProjectNotificationConfig default {{name}} * ``` */ diff --git a/sdk/nodejs/securitycenter/v2organizationNotificationConfig.ts b/sdk/nodejs/securitycenter/v2organizationNotificationConfig.ts index fce992cdb5..eb1c36018f 100644 --- a/sdk/nodejs/securitycenter/v2organizationNotificationConfig.ts +++ b/sdk/nodejs/securitycenter/v2organizationNotificationConfig.ts @@ -46,18 +46,12 @@ import * as utilities from "../utilities"; * * OrganizationNotificationConfig can be imported using any of these accepted formats: * - * * `organizations/{{organization}}/locations/{{location}}/notificationConfigs/{{name}}` - * - * * `{{organization}}/{{location}}/{{name}}` + * * `{{name}}` * * When using the `pulumi import` command, OrganizationNotificationConfig can be imported using one of the formats above. For example: * * ```sh - * $ pulumi import gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig default organizations/{{organization}}/locations/{{location}}/notificationConfigs/{{name}} - * ``` - * - * ```sh - * $ pulumi import gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig default {{organization}}/{{location}}/{{name}} + * $ pulumi import gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig default {{name}} * ``` */ export class V2OrganizationNotificationConfig extends pulumi.CustomResource { diff --git a/sdk/nodejs/spanner/getDatabase.ts b/sdk/nodejs/spanner/getDatabase.ts new file mode 100644 index 0000000000..8369c7f09c --- /dev/null +++ b/sdk/nodejs/spanner/getDatabase.ts @@ -0,0 +1,116 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as utilities from "../utilities"; + +/** + * Get a spanner database from Google Cloud by its name and instance name. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * + * const foo = gcp.spanner.getDatabase({ + * name: "foo", + * instance: instance.name, + * }); + * ``` + */ +export function getDatabase(args: GetDatabaseArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("gcp:spanner/getDatabase:getDatabase", { + "instance": args.instance, + "name": args.name, + "project": args.project, + }, opts); +} + +/** + * A collection of arguments for invoking getDatabase. + */ +export interface GetDatabaseArgs { + /** + * The name of the database's spanner instance. + * + * - - - + */ + instance: string; + /** + * The name of the spanner database. + */ + name: string; + /** + * The project in which the resource belongs. If it + * is not provided, the provider project is used. + */ + project?: string; +} + +/** + * A collection of values returned by getDatabase. + */ +export interface GetDatabaseResult { + readonly databaseDialect: string; + readonly ddls: string[]; + readonly deletionProtection: boolean; + readonly enableDropProtection: boolean; + readonly encryptionConfigs: outputs.spanner.GetDatabaseEncryptionConfig[]; + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + readonly instance: string; + readonly name: string; + readonly project?: string; + readonly state: string; + readonly versionRetentionPeriod: string; +} +/** + * Get a spanner database from Google Cloud by its name and instance name. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * + * const foo = gcp.spanner.getDatabase({ + * name: "foo", + * instance: instance.name, + * }); + * ``` + */ +export function getDatabaseOutput(args: GetDatabaseOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("gcp:spanner/getDatabase:getDatabase", { + "instance": args.instance, + "name": args.name, + "project": args.project, + }, opts); +} + +/** + * A collection of arguments for invoking getDatabase. + */ +export interface GetDatabaseOutputArgs { + /** + * The name of the database's spanner instance. + * + * - - - + */ + instance: pulumi.Input; + /** + * The name of the spanner database. + */ + name: pulumi.Input; + /** + * The project in which the resource belongs. If it + * is not provided, the provider project is used. + */ + project?: pulumi.Input; +} diff --git a/sdk/nodejs/spanner/getInstance.ts b/sdk/nodejs/spanner/getInstance.ts index f1da1570a0..1420f94a86 100644 --- a/sdk/nodejs/spanner/getInstance.ts +++ b/sdk/nodejs/spanner/getInstance.ts @@ -55,6 +55,7 @@ export interface GetInstanceArgs { export interface GetInstanceResult { readonly autoscalingConfigs: outputs.spanner.GetInstanceAutoscalingConfig[]; readonly config?: string; + readonly defaultBackupScheduleType: string; readonly displayName?: string; readonly edition: string; readonly effectiveLabels: {[key: string]: string}; diff --git a/sdk/nodejs/spanner/index.ts b/sdk/nodejs/spanner/index.ts index ab1bb1ac5e..d75381fc9d 100644 --- a/sdk/nodejs/spanner/index.ts +++ b/sdk/nodejs/spanner/index.ts @@ -30,6 +30,11 @@ export type DatabaseIAMPolicy = import("./databaseIAMPolicy").DatabaseIAMPolicy; export const DatabaseIAMPolicy: typeof import("./databaseIAMPolicy").DatabaseIAMPolicy = null as any; utilities.lazyLoad(exports, ["DatabaseIAMPolicy"], () => require("./databaseIAMPolicy")); +export { GetDatabaseArgs, GetDatabaseResult, GetDatabaseOutputArgs } from "./getDatabase"; +export const getDatabase: typeof import("./getDatabase").getDatabase = null as any; +export const getDatabaseOutput: typeof import("./getDatabase").getDatabaseOutput = null as any; +utilities.lazyLoad(exports, ["getDatabase","getDatabaseOutput"], () => require("./getDatabase")); + export { GetDatabaseIamPolicyArgs, GetDatabaseIamPolicyResult, GetDatabaseIamPolicyOutputArgs } from "./getDatabaseIamPolicy"; export const getDatabaseIamPolicy: typeof import("./getDatabaseIamPolicy").getDatabaseIamPolicy = null as any; export const getDatabaseIamPolicyOutput: typeof import("./getDatabaseIamPolicy").getDatabaseIamPolicyOutput = null as any; diff --git a/sdk/nodejs/spanner/instance.ts b/sdk/nodejs/spanner/instance.ts index 243b17239b..00097e0a4c 100644 --- a/sdk/nodejs/spanner/instance.ts +++ b/sdk/nodejs/spanner/instance.ts @@ -29,6 +29,7 @@ import * as utilities from "../utilities"; * displayName: "Test Spanner Instance", * numNodes: 2, * edition: "STANDARD", + * defaultBackupScheduleType: "AUTOMATIC", * labels: { * foo: "bar", * }, @@ -158,6 +159,13 @@ export class Instance extends pulumi.CustomResource { * [Configuration section of the docs](https://cloud.google.com/spanner/docs/instances). */ public readonly config!: pulumi.Output; + /** + * Controls the default backup behavior for new databases within the instance. + * Note that `AUTOMATIC` is not permitted for free instances, as backups and backup schedules are not allowed for free instances. + * if unset or NONE, no default backup schedule will be created for new databases within the instance. + * Possible values are: `NONE`, `AUTOMATIC`. + */ + public readonly defaultBackupScheduleType!: pulumi.Output; /** * The descriptive name for this instance as it appears in UIs. Must be * unique per project and between 4 and 30 characters in length. @@ -227,6 +235,7 @@ export class Instance extends pulumi.CustomResource { const state = argsOrState as InstanceState | undefined; resourceInputs["autoscalingConfig"] = state ? state.autoscalingConfig : undefined; resourceInputs["config"] = state ? state.config : undefined; + resourceInputs["defaultBackupScheduleType"] = state ? state.defaultBackupScheduleType : undefined; resourceInputs["displayName"] = state ? state.displayName : undefined; resourceInputs["edition"] = state ? state.edition : undefined; resourceInputs["effectiveLabels"] = state ? state.effectiveLabels : undefined; @@ -248,6 +257,7 @@ export class Instance extends pulumi.CustomResource { } resourceInputs["autoscalingConfig"] = args ? args.autoscalingConfig : undefined; resourceInputs["config"] = args ? args.config : undefined; + resourceInputs["defaultBackupScheduleType"] = args ? args.defaultBackupScheduleType : undefined; resourceInputs["displayName"] = args ? args.displayName : undefined; resourceInputs["edition"] = args ? args.edition : undefined; resourceInputs["forceDestroy"] = args ? args.forceDestroy : undefined; @@ -288,6 +298,13 @@ export interface InstanceState { * [Configuration section of the docs](https://cloud.google.com/spanner/docs/instances). */ config?: pulumi.Input; + /** + * Controls the default backup behavior for new databases within the instance. + * Note that `AUTOMATIC` is not permitted for free instances, as backups and backup schedules are not allowed for free instances. + * if unset or NONE, no default backup schedule will be created for new databases within the instance. + * Possible values are: `NONE`, `AUTOMATIC`. + */ + defaultBackupScheduleType?: pulumi.Input; /** * The descriptive name for this instance as it appears in UIs. Must be * unique per project and between 4 and 30 characters in length. @@ -364,6 +381,13 @@ export interface InstanceArgs { * [Configuration section of the docs](https://cloud.google.com/spanner/docs/instances). */ config: pulumi.Input; + /** + * Controls the default backup behavior for new databases within the instance. + * Note that `AUTOMATIC` is not permitted for free instances, as backups and backup schedules are not allowed for free instances. + * if unset or NONE, no default backup schedule will be created for new databases within the instance. + * Possible values are: `NONE`, `AUTOMATIC`. + */ + defaultBackupScheduleType?: pulumi.Input; /** * The descriptive name for this instance as it appears in UIs. Must be * unique per project and between 4 and 30 characters in length. diff --git a/sdk/nodejs/sql/databaseInstance.ts b/sdk/nodejs/sql/databaseInstance.ts index 21d424fdf2..5820148afa 100644 --- a/sdk/nodejs/sql/databaseInstance.ts +++ b/sdk/nodejs/sql/databaseInstance.ts @@ -122,6 +122,39 @@ import * as utilities from "../utilities"; * }); * ``` * + * ## Switchover (SQL Server Only) + * + * Users can perform a switchover on any direct `cascadable` replica by following the steps below. + * + * ~>**WARNING:** Failure to follow these steps can lead to data loss (You will be warned during plan stage). To prevent data loss during a switchover, please verify your plan with the checklist below. + * + * For a more in-depth walkthrough with example code, see the Switchover Guide + * + * ### Steps to Invoke Switchover + * + * Create a `cascadable` replica in a different region from the primary (`cascadableReplica` is set to true in `replicaConfiguration`) + * + * #### Invoking switchover in the replica resource: + * 1. Change instanceType from `READ_REPLICA_INSTANCE` to `CLOUD_SQL_INSTANCE` + * 2. Remove `masterInstanceName` + * 3. Remove `replicaConfiguration` + * 4. Add current primary's name to the replica's `replicaNames` list + * + * #### Updating the primary resource: + * 1. Change `instanceType` from `CLOUD_SQL_INSTANCE` to `READ_REPLICA_INSTANCE` + * 2. Set `masterInstanceName` to the original replica (which will be primary after switchover) + * 3. Set `replicaConfiguration` and set `cascadableReplica` to `true` + * 4. Remove original replica from `replicaNames` + * + * > **NOTE**: Do **not** delete the replicaNames field, even if it has no replicas remaining. Set replicaNames = [ ] to indicate it having no replicas. + * + * #### Plan and verify that: + * - `pulumi preview` outputs **"0 to add, 0 to destroy"** + * - `pulumi preview` does not say **"must be replaced"** for any resource + * - Every resource **"will be updated in-place"** + * - Only the 2 instances involved in switchover have planned changes + * - (Recommended) Use `deletionProtection` on instances as a safety measure + * * ## Import * * Database instances can be imported using one of any of these accepted formats: @@ -213,7 +246,7 @@ export class DatabaseInstance extends pulumi.CustomResource { */ public readonly deletionProtection!: pulumi.Output; /** - * The dns name of the instance. + * The DNS name of the instance. See [Connect to an instance using Private Service Connect](https://cloud.google.com/sql/docs/mysql/configure-private-service-connect#view-summary-information-cloud-sql-instances-psc-enabled) for more details. */ public /*out*/ readonly dnsName!: pulumi.Output; /** @@ -279,9 +312,13 @@ export class DatabaseInstance extends pulumi.CustomResource { public readonly region!: pulumi.Output; /** * The configuration for replication. The - * configuration is detailed below. Valid only for MySQL instances. + * configuration is detailed below. */ public readonly replicaConfiguration!: pulumi.Output; + /** + * List of replica names. Can be updated. + */ + public readonly replicaNames!: pulumi.Output; /** * The context needed to restore the database to a backup run. This field will * cause the provider to trigger the database to restore from the backup run indicated. The configuration is detailed below. @@ -341,6 +378,7 @@ export class DatabaseInstance extends pulumi.CustomResource { resourceInputs["publicIpAddress"] = state ? state.publicIpAddress : undefined; resourceInputs["region"] = state ? state.region : undefined; resourceInputs["replicaConfiguration"] = state ? state.replicaConfiguration : undefined; + resourceInputs["replicaNames"] = state ? state.replicaNames : undefined; resourceInputs["restoreBackupContext"] = state ? state.restoreBackupContext : undefined; resourceInputs["rootPassword"] = state ? state.rootPassword : undefined; resourceInputs["selfLink"] = state ? state.selfLink : undefined; @@ -363,6 +401,7 @@ export class DatabaseInstance extends pulumi.CustomResource { resourceInputs["project"] = args ? args.project : undefined; resourceInputs["region"] = args ? args.region : undefined; resourceInputs["replicaConfiguration"] = args?.replicaConfiguration ? pulumi.secret(args.replicaConfiguration) : undefined; + resourceInputs["replicaNames"] = args ? args.replicaNames : undefined; resourceInputs["restoreBackupContext"] = args ? args.restoreBackupContext : undefined; resourceInputs["rootPassword"] = args?.rootPassword ? pulumi.secret(args.rootPassword) : undefined; resourceInputs["settings"] = args ? args.settings : undefined; @@ -422,7 +461,7 @@ export interface DatabaseInstanceState { */ deletionProtection?: pulumi.Input; /** - * The dns name of the instance. + * The DNS name of the instance. See [Connect to an instance using Private Service Connect](https://cloud.google.com/sql/docs/mysql/configure-private-service-connect#view-summary-information-cloud-sql-instances-psc-enabled) for more details. */ dnsName?: pulumi.Input; /** @@ -488,9 +527,13 @@ export interface DatabaseInstanceState { region?: pulumi.Input; /** * The configuration for replication. The - * configuration is detailed below. Valid only for MySQL instances. + * configuration is detailed below. */ replicaConfiguration?: pulumi.Input; + /** + * List of replica names. Can be updated. + */ + replicaNames?: pulumi.Input[]>; /** * The context needed to restore the database to a backup run. This field will * cause the provider to trigger the database to restore from the backup run indicated. The configuration is detailed below. @@ -592,9 +635,13 @@ export interface DatabaseInstanceArgs { region?: pulumi.Input; /** * The configuration for replication. The - * configuration is detailed below. Valid only for MySQL instances. + * configuration is detailed below. */ replicaConfiguration?: pulumi.Input; + /** + * List of replica names. Can be updated. + */ + replicaNames?: pulumi.Input[]>; /** * The context needed to restore the database to a backup run. This field will * cause the provider to trigger the database to restore from the backup run indicated. The configuration is detailed below. diff --git a/sdk/nodejs/sql/getDatabaseInstance.ts b/sdk/nodejs/sql/getDatabaseInstance.ts index 500fa4c1d5..18ca215dbf 100644 --- a/sdk/nodejs/sql/getDatabaseInstance.ts +++ b/sdk/nodejs/sql/getDatabaseInstance.ts @@ -69,6 +69,7 @@ export interface GetDatabaseInstanceResult { readonly publicIpAddress: string; readonly region: string; readonly replicaConfigurations: outputs.sql.GetDatabaseInstanceReplicaConfiguration[]; + readonly replicaNames: string[]; readonly restoreBackupContexts: outputs.sql.GetDatabaseInstanceRestoreBackupContext[]; readonly rootPassword: string; readonly selfLink: string; diff --git a/sdk/nodejs/tags/tagBinding.ts b/sdk/nodejs/tags/tagBinding.ts index 899482ac47..0dcb7f4ed3 100644 --- a/sdk/nodejs/tags/tagBinding.ts +++ b/sdk/nodejs/tags/tagBinding.ts @@ -33,13 +33,13 @@ import * as utilities from "../utilities"; * description: "For keyname resources.", * }); * const value = new gcp.tags.TagValue("value", { - * parent: pulumi.interpolate`tagKeys/${key.name}`, + * parent: key.id, * shortName: "valuename", * description: "For valuename resources.", * }); * const binding = new gcp.tags.TagBinding("binding", { * parent: pulumi.interpolate`//cloudresourcemanager.googleapis.com/projects/${project.number}`, - * tagValue: pulumi.interpolate`tagValues/${value.name}`, + * tagValue: value.id, * }); * ``` * diff --git a/sdk/nodejs/tags/tagValue.ts b/sdk/nodejs/tags/tagValue.ts index e8f530df04..465601039c 100644 --- a/sdk/nodejs/tags/tagValue.ts +++ b/sdk/nodejs/tags/tagValue.ts @@ -27,7 +27,7 @@ import * as utilities from "../utilities"; * description: "For keyname resources.", * }); * const value = new gcp.tags.TagValue("value", { - * parent: pulumi.interpolate`tagKeys/${key.name}`, + * parent: key.id, * shortName: "valuename", * description: "For valuename resources.", * }); diff --git a/sdk/nodejs/transcoder/job.ts b/sdk/nodejs/transcoder/job.ts index 150b799a65..26300d91d5 100644 --- a/sdk/nodejs/transcoder/job.ts +++ b/sdk/nodejs/transcoder/job.ts @@ -762,11 +762,23 @@ import * as utilities from "../utilities"; * * Job can be imported using any of these accepted formats: * + * * `{{project}}/{{name}}` + * + * * `{{project}} {{name}}` + * * * `{{name}}` * * When using the `pulumi import` command, Job can be imported using one of the formats above. For example: * * ```sh + * $ pulumi import gcp:transcoder/job:Job default {{project}}/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:transcoder/job:Job default "{{project}} {{name}}" + * ``` + * + * ```sh * $ pulumi import gcp:transcoder/job:Job default {{name}} * ``` */ diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index 14974036f4..5a9acd40f6 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -66,6 +66,7 @@ "apigateway/getGatewayIamPolicy.ts", "apigateway/index.ts", "apigee/addonsConfig.ts", + "apigee/api.ts", "apigee/appGroup.ts", "apigee/developer.ts", "apigee/endpointAttachment.ts", @@ -126,7 +127,11 @@ "artifactregistry/vpcscConfig.ts", "assuredworkloads/index.ts", "assuredworkloads/workload.ts", + "backupdisasterrecovery/backupPlan.ts", + "backupdisasterrecovery/backupPlanAssociation.ts", "backupdisasterrecovery/backupVault.ts", + "backupdisasterrecovery/getBackupPlan.ts", + "backupdisasterrecovery/getBackupPlanAssociation.ts", "backupdisasterrecovery/getManagementServer.ts", "backupdisasterrecovery/index.ts", "backupdisasterrecovery/managementServer.ts", @@ -505,6 +510,7 @@ "compute/regionNetworkFirewallPolicyRule.ts", "compute/regionNetworkFirewallPolicyWithRules.ts", "compute/regionPerInstanceConfig.ts", + "compute/regionResizeRequest.ts", "compute/regionSecurityPolicy.ts", "compute/regionSecurityPolicyRule.ts", "compute/regionSslCertificate.ts", @@ -675,6 +681,8 @@ "dataproc/clusterIAMBinding.ts", "dataproc/clusterIAMMember.ts", "dataproc/clusterIAMPolicy.ts", + "dataproc/gdcApplicationEnvironment.ts", + "dataproc/gdcServiceInstance.ts", "dataproc/getAutoscalingPolicyIamPolicy.ts", "dataproc/getClusterIamPolicy.ts", "dataproc/getJobIamPolicy.ts", @@ -892,6 +900,7 @@ "iam/getWorkloadIdentityPool.ts", "iam/getWorkloadIdentityPoolProvider.ts", "iam/index.ts", + "iam/principalAccessBoundaryPolicy.ts", "iam/workforcePool.ts", "iam/workforcePoolProvider.ts", "iam/workloadIdentityPool.ts", @@ -1067,6 +1076,7 @@ "networkconnectivity/spoke.ts", "networkmanagement/connectivityTest.ts", "networkmanagement/index.ts", + "networkmanagement/vpcFlowLogsConfig.ts", "networksecurity/addressGroup.ts", "networksecurity/addressGroupIamBinding.ts", "networksecurity/addressGroupIamMember.ts", @@ -1338,6 +1348,7 @@ "spanner/databaseIAMBinding.ts", "spanner/databaseIAMMember.ts", "spanner/databaseIAMPolicy.ts", + "spanner/getDatabase.ts", "spanner/getDatabaseIamPolicy.ts", "spanner/getInstance.ts", "spanner/getInstanceIamPolicy.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index 76552490e9..76d6a3b350 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -2660,6 +2660,21 @@ export namespace apigee { enabled?: pulumi.Input; } + export interface ApiMetaData { + /** + * Time at which the API proxy was created, in milliseconds since epoch. + */ + createdAt?: pulumi.Input; + /** + * Time at which the API proxy was most recently modified, in milliseconds since epoch. + */ + lastModifiedAt?: pulumi.Input; + /** + * The type of entity described + */ + subType?: pulumi.Input; + } + export interface AppGroupAttribute { /** * Key of the attribute @@ -4870,6 +4885,123 @@ export namespace assuredworkloads { } export namespace backupdisasterrecovery { + export interface BackupPlanAssociationRulesConfigInfo { + /** + * (Output) + * google.rpc.Status object to store the last backup error + * Structure is documented below. + */ + lastBackupErrors?: pulumi.Input[]>; + /** + * (Output) + * State of last backup taken. + */ + lastBackupState?: pulumi.Input; + /** + * (Output) + * Backup Rule id fetched from backup plan. + */ + ruleId?: pulumi.Input; + } + + export interface BackupPlanAssociationRulesConfigInfoLastBackupError { + /** + * (Output) + * The status code, which should be an enum value of [google.rpc.Code] + */ + code?: pulumi.Input; + /** + * (Output) + * A developer-facing error message, which should be in English. + */ + message?: pulumi.Input; + } + + export interface BackupPlanBackupRule { + /** + * Configures the duration for which backup data will be kept. The value should be greater than or equal to minimum enforced retention of the backup vault. + */ + backupRetentionDays: pulumi.Input; + /** + * The unique ID of this `BackupRule`. The `ruleId` is unique per `BackupPlan`. + */ + ruleId: pulumi.Input; + /** + * StandardSchedule defines a schedule that runs within the confines of a defined window of days. + * Structure is documented below. + */ + standardSchedule: pulumi.Input; + } + + export interface BackupPlanBackupRuleStandardSchedule { + /** + * A BackupWindow defines the window of the day during which backup jobs will run. Jobs are queued at the beginning of the window and will be marked as + * `NOT_RUN` if they do not start by the end of the window. + * Structure is documented below. + */ + backupWindow?: pulumi.Input; + /** + * Specifies days of months like 1, 5, or 14 on which jobs will run. + */ + daysOfMonths?: pulumi.Input[]>; + /** + * Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for `recurrenceType`, `WEEKLY` and is not applicable otherwise. + * Each value may be one of: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`. + */ + daysOfWeeks?: pulumi.Input[]>; + /** + * Specifies frequency for hourly backups. An hourly frequency of 2 means jobs will run every 2 hours from start time till end time defined. + * This is required for `recurrenceType`, `HOURLY` and is not applicable otherwise. + */ + hourlyFrequency?: pulumi.Input; + /** + * Specifies values of months + * Each value may be one of: `MONTH_UNSPECIFIED`, `JANUARY`, `FEBRUARY`, `MARCH`, `APRIL`, `MAY`, `JUNE`, `JULY`, `AUGUST`, `SEPTEMBER`, `OCTOBER`, `NOVEMBER`, `DECEMBER`. + */ + months?: pulumi.Input[]>; + /** + * RecurrenceType enumerates the applicable periodicity for the schedule. + * Possible values are: `HOURLY`, `DAILY`, `WEEKLY`, `MONTHLY`, `YEARLY`. + */ + recurrenceType: pulumi.Input; + /** + * The time zone to be used when interpreting the schedule. + */ + timeZone: pulumi.Input; + /** + * Specifies a week day of the month like FIRST SUNDAY or LAST MONDAY, on which jobs will run. + * Structure is documented below. + */ + weekDayOfMonth?: pulumi.Input; + } + + export interface BackupPlanBackupRuleStandardScheduleBackupWindow { + /** + * The hour of the day (1-24) when the window ends, for example, if the value of end hour of the day is 10, that means the backup window end time is 10:00. + * The end hour of the day should be greater than the start + * + * - - - + */ + endHourOfDay?: pulumi.Input; + /** + * The hour of the day (0-23) when the window starts, for example, if the value of the start hour of the day is 6, that means the backup window starts at 6:00. + */ + startHourOfDay: pulumi.Input; + } + + export interface BackupPlanBackupRuleStandardScheduleWeekDayOfMonth { + /** + * Specifies the day of the week. + * Possible values are: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`. + */ + dayOfWeek: pulumi.Input; + /** + * WeekOfMonth enumerates possible weeks in the month, e.g. the first, third, or last week of the month. + * Possible values are: `WEEK_OF_MONTH_UNSPECIFIED`, `FIRST`, `SECOND`, `THIRD`, `FOURTH`, `LAST`. + */ + weekOfMonth: pulumi.Input; + } + export interface ManagementServerManagementUri { /** * (Output) @@ -13788,6 +13920,11 @@ export namespace cloudrunv2 { * Name of the cloud storage bucket to back the volume. The resource service account must have permission to access the bucket. */ bucket: pulumi.Input; + /** + * A list of flags to pass to the gcsfuse command for configuring this volume. + * Flags should be passed without leading dashes. + */ + mountOptions?: pulumi.Input[]>; /** * If true, mount this volume as read-only in all mounts. If false, mount this volume as read-write. */ @@ -14461,6 +14598,11 @@ export namespace cloudrunv2 { * GCS Bucket name */ bucket: pulumi.Input; + /** + * A list of flags to pass to the gcsfuse command for configuring this volume. + * Flags should be passed without leading dashes. + */ + mountOptions?: pulumi.Input[]>; /** * If true, mount the GCS bucket as read-only */ @@ -15727,7 +15869,7 @@ export namespace compute { export interface AutoscalerAutoscalingPolicyScaleDownControl { /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ maxScaledDownReplicas?: pulumi.Input; @@ -15753,7 +15895,7 @@ export namespace compute { export interface AutoscalerAutoscalingPolicyScaleInControl { /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ maxScaledInReplicas?: pulumi.Input; @@ -16750,60 +16892,64 @@ export namespace compute { export interface FirewallPolicyRuleMatch { /** - * Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. Destination address groups is only supported in Egress rules. + * Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. */ destAddressGroups?: pulumi.Input[]>; /** - * Domain names that will be used to match against the resolved domain name of destination of traffic. Can only be specified if DIRECTION is egress. + * Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100. */ destFqdns?: pulumi.Input[]>; /** - * CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 256. + * CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000. */ destIpRanges?: pulumi.Input[]>; /** - * The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is egress. + * Region codes whose IP addresses will be used to match for destination of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of dest region codes allowed is 5000. */ destRegionCodes?: pulumi.Input[]>; /** - * Name of the Google Cloud Threat Intelligence list. + * Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination. */ destThreatIntelligences?: pulumi.Input[]>; /** * Pairs of IP protocols and ports that the rule should match. + * Structure is documented below. */ layer4Configs: pulumi.Input[]>; /** - * Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. Source address groups is only supported in Ingress rules. + * Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. */ srcAddressGroups?: pulumi.Input[]>; /** - * Domain names that will be used to match against the resolved domain name of source of traffic. Can only be specified if DIRECTION is ingress. + * Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100. */ srcFqdns?: pulumi.Input[]>; /** - * CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 256. + * CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000. */ srcIpRanges?: pulumi.Input[]>; /** - * The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is ingress. + * Region codes whose IP addresses will be used to match for source of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of source region codes allowed is 5000. */ srcRegionCodes?: pulumi.Input[]>; /** - * Name of the Google Cloud Threat Intelligence list. + * Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source. * - * The `layer4Configs` block supports: + * + * The `layer4Configs` block supports: */ srcThreatIntelligences?: pulumi.Input[]>; } export interface FirewallPolicyRuleMatchLayer4Config { /** - * The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (`tcp`, `udp`, `icmp`, `esp`, `ah`, `ipip`, `sctp`), or the IP protocol number. + * The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. + * This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number. */ ipProtocol: pulumi.Input; /** - * An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ``. + * An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. + * Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. */ ports?: pulumi.Input[]>; } @@ -20699,6 +20845,21 @@ export namespace compute { acceleratorType?: pulumi.Input; } + export interface NodeTemplateDisk { + /** + * Specifies the number of such disks. + */ + diskCount?: pulumi.Input; + /** + * Specifies the size of the disk in base-2 GB. + */ + diskSizeGb?: pulumi.Input; + /** + * Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be the name of the disk type and not its URL. + */ + diskType?: pulumi.Input; + } + export interface NodeTemplateNodeTypeFlexibility { /** * Number of virtual CPUs to use. @@ -21133,7 +21294,7 @@ export namespace compute { export interface RegionAutoscalerAutoscalingPolicyScaleDownControl { /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ maxScaledDownReplicas?: pulumi.Input; @@ -21159,7 +21320,7 @@ export namespace compute { export interface RegionAutoscalerAutoscalingPolicyScaleInControl { /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ maxScaledInReplicas?: pulumi.Input; @@ -22205,13 +22366,11 @@ export namespace compute { export interface RegionInstanceGroupManagerAllInstancesConfig { /** - * , The label key-value pairs that you want to patch onto the instance. - * - * - - - + * The label key-value pairs that you want to patch onto the instance, */ labels?: pulumi.Input<{[key: string]: pulumi.Input}>; /** - * , The metadata key-value pairs that you want to patch onto the instance. For more information, see [Project and instance metadata](https://cloud.google.com/compute/docs/metadata#project_and_instance_metadata). + * The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata, */ metadata?: pulumi.Input<{[key: string]: pulumi.Input}>; } @@ -22228,11 +22387,37 @@ export namespace compute { initialDelaySec: pulumi.Input; } + export interface RegionInstanceGroupManagerInstanceFlexibilityPolicy { + /** + * Named instance selections configuring properties that the group will use when creating new VMs. + */ + instanceSelections?: pulumi.Input[]>; + } + + export interface RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection { + /** + * Full machine-type names, e.g. "n1-standard-16" + */ + machineTypes: pulumi.Input[]>; + /** + * The name of the instance group manager. Must be 1-63 + * characters long and comply with + * [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Supported characters + * include lowercase letters, numbers, and hyphens. + */ + name: pulumi.Input; + /** + * Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference. + */ + rank?: pulumi.Input; + } + export interface RegionInstanceGroupManagerInstanceLifecyclePolicy { /** * , Default behavior for all instance or health check failures. Valid options are: `REPAIR`, `DO_NOTHING`. If `DO_NOTHING` then instances will not be repaired. If `REPAIR` (default), then failed instances will be repaired. * * - - - + * The `instanceFlexibilityPolicy` block supports: */ defaultActionOnFailure?: pulumi.Input; /** @@ -23661,6 +23846,331 @@ export namespace compute { address?: pulumi.Input; } + export interface RegionResizeRequestRequestedRunDuration { + /** + * Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. + */ + nanos?: pulumi.Input; + /** + * Span of time at a resolution of a second. Must be from 600 to 604800 inclusive. Note: minimum and maximum allowed range for requestedRunDuration is 10 minutes (600 seconds) and 7 days(604800 seconds) correspondingly. + */ + seconds: pulumi.Input; + } + + export interface RegionResizeRequestStatus { + /** + * (Output) + * Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + * Structure is documented below. + */ + errors?: pulumi.Input[]>; + /** + * (Output) + * Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the "error" field only. + * Structure is documented below. + */ + lastAttempts?: pulumi.Input[]>; + } + + export interface RegionResizeRequestStatusError { + /** + * (Output) + * The array of errors encountered while processing this operation. + * Structure is documented below. + */ + errors?: pulumi.Input[]>; + } + + export interface RegionResizeRequestStatusErrorError { + /** + * (Output) + * The error type identifier for this error. + */ + code?: pulumi.Input; + /** + * (Output) + * An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + * Structure is documented below. + */ + errorDetails?: pulumi.Input[]>; + /** + * (Output) + * Indicates the field in the request that caused the error. This property is optional. + */ + location?: pulumi.Input; + /** + * (Output) + * The localized error message in the above locale. + */ + message?: pulumi.Input; + } + + export interface RegionResizeRequestStatusErrorErrorErrorDetail { + /** + * (Output) + * A nested object resource. + * Structure is documented below. + */ + errorInfos?: pulumi.Input[]>; + /** + * (Output) + * A nested object resource. + * Structure is documented below. + */ + helps?: pulumi.Input[]>; + /** + * (Output) + * A nested object resource. + * Structure is documented below. + */ + localizedMessages?: pulumi.Input[]>; + /** + * (Output) + * A nested object resource. + * Structure is documented below. + */ + quotaInfos?: pulumi.Input[]>; + } + + export interface RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo { + /** + * (Output) + * 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". + */ + domain?: pulumi.Input; + /** + * (Output) + * Additional structured details about this error. + */ + metadatas?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * (Output) + * 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. + */ + reason?: pulumi.Input; + } + + export interface RegionResizeRequestStatusErrorErrorErrorDetailHelp { + /** + * (Output) + * A nested object resource. + * Structure is documented below. + */ + links?: pulumi.Input[]>; + } + + export interface RegionResizeRequestStatusErrorErrorErrorDetailHelpLink { + /** + * An optional description of this resize-request. + */ + description?: pulumi.Input; + /** + * (Output) + * The URL of the link. + */ + url?: pulumi.Input; + } + + export interface RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage { + /** + * (Output) + * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + */ + locale?: pulumi.Input; + /** + * (Output) + * The localized error message in the above locale. + */ + message?: pulumi.Input; + } + + export interface RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo { + /** + * (Output) + * The map holding related quota dimensions + */ + dimensions?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * (Output) + * Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + */ + futureLimit?: pulumi.Input; + /** + * (Output) + * Current effective quota limit. The limit's unit depends on the quota type or metric. + */ + limit?: pulumi.Input; + /** + * (Output) + * The name of the quota limit. + */ + limitName?: pulumi.Input; + /** + * (Output) + * The Compute Engine quota metric name. + */ + metricName?: pulumi.Input; + /** + * (Output) + * Rollout status of the future quota limit. + */ + rolloutStatus?: pulumi.Input; + } + + export interface RegionResizeRequestStatusLastAttempt { + /** + * (Output) + * Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + * Structure is documented below. + */ + errors?: pulumi.Input[]>; + } + + export interface RegionResizeRequestStatusLastAttemptError { + /** + * (Output) + * The array of errors encountered while processing this operation. + * Structure is documented below. + */ + errors?: pulumi.Input[]>; + } + + export interface RegionResizeRequestStatusLastAttemptErrorError { + /** + * (Output) + * The error type identifier for this error. + */ + code?: pulumi.Input; + /** + * (Output) + * An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + * Structure is documented below. + */ + errorDetails?: pulumi.Input[]>; + /** + * (Output) + * Indicates the field in the request that caused the error. This property is optional. + */ + location?: pulumi.Input; + /** + * (Output) + * The localized error message in the above locale. + */ + message?: pulumi.Input; + } + + export interface RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail { + /** + * (Output) + * A nested object resource. + * Structure is documented below. + */ + errorInfos?: pulumi.Input[]>; + /** + * (Output) + * A nested object resource. + * Structure is documented below. + */ + helps?: pulumi.Input[]>; + /** + * (Output) + * A nested object resource. + * Structure is documented below. + */ + localizedMessages?: pulumi.Input[]>; + /** + * (Output) + * A nested object resource. + * Structure is documented below. + */ + quotaInfos?: pulumi.Input[]>; + } + + export interface RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo { + /** + * (Output) + * 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". + */ + domain?: pulumi.Input; + /** + * (Output) + * Additional structured details about this error. + */ + metadatas?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * (Output) + * 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. + */ + reason?: pulumi.Input; + } + + export interface RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp { + /** + * (Output) + * A nested object resource. + * Structure is documented below. + */ + links?: pulumi.Input[]>; + } + + export interface RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink { + /** + * An optional description of this resize-request. + */ + description?: pulumi.Input; + /** + * (Output) + * The URL of the link. + */ + url?: pulumi.Input; + } + + export interface RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage { + /** + * (Output) + * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + */ + locale?: pulumi.Input; + /** + * (Output) + * The localized error message in the above locale. + */ + message?: pulumi.Input; + } + + export interface RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo { + /** + * (Output) + * The map holding related quota dimensions + */ + dimensions?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * (Output) + * Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + */ + futureLimit?: pulumi.Input; + /** + * (Output) + * Current effective quota limit. The limit's unit depends on the quota type or metric. + */ + limit?: pulumi.Input; + /** + * (Output) + * The name of the quota limit. + */ + limitName?: pulumi.Input; + /** + * (Output) + * The Compute Engine quota metric name. + */ + metricName?: pulumi.Input; + /** + * (Output) + * Rollout status of the future quota limit. + */ + rolloutStatus?: pulumi.Input; + } + export interface RegionSecurityPolicyDdosProtectionConfig { /** * Google Cloud Armor offers the following options to help protect systems against DDoS attacks: @@ -23672,6 +24182,61 @@ export namespace compute { ddosProtection: pulumi.Input; } + export interface RegionSecurityPolicyRule { + /** + * The Action to perform when the rule is matched. The following are the valid actions: + * * allow: allow access to target. + * * deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for STATUS are 403, 404, and 502. + * * rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rateLimitOptions to be set. + * * redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. This action is only supported in Global Security Policies of type CLOUD_ARMOR. + * * throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rateLimitOptions to be set for this. + */ + action: pulumi.Input; + /** + * An optional description of this resource. Provide this property when you create the resource. + */ + description?: pulumi.Input; + /** + * A match condition that incoming traffic is evaluated against. + * If it evaluates to true, the corresponding 'action' is enforced. + * Structure is documented below. + */ + match?: pulumi.Input; + /** + * A match condition that incoming packets are evaluated against for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding 'action' is enforced. + * The match criteria for a rule consists of built-in match fields (like 'srcIpRanges') and potentially multiple user-defined match fields ('userDefinedFields'). + * Field values may be extracted directly from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may not be present in every packet (e.g. 'srcPorts'). A user-defined field is only present if the base header is found in the packet and the entire field is in bounds. + * Each match field may specify which values can match it, listing one or more ranges, prefixes, or exact values that are considered a match for the field. A field value must be present in order to match a specified match field. If no match values are specified for a match field, then any field value is considered to match it, and it's not required to be present. For strings specifying '*' is also equivalent to match all. + * For a packet to match a rule, all specified match fields must match the corresponding field values derived from the packet. + * Example: + * networkMatch: srcIpRanges: - "192.0.2.0/24" - "198.51.100.0/24" userDefinedFields: - name: "ipv4FragmentOffset" values: - "1-0x1fff" + * The above match condition matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a user-defined field named "ipv4FragmentOffset" with a value between 1 and 0x1fff inclusive + * Structure is documented below. + */ + networkMatch?: pulumi.Input; + /** + * Preconfigured WAF configuration to be applied for the rule. + * If the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect. + * Structure is documented below. + */ + preconfiguredWafConfig?: pulumi.Input; + /** + * If set to true, the specified action is not enforced. + */ + preview?: pulumi.Input; + /** + * An integer indicating the priority of a rule in the list. + * The priority must be a positive value between 0 and 2147483647. + * Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority. + */ + priority: pulumi.Input; + /** + * Must be specified if the action is "rateBasedBan" or "throttle". Cannot be specified for any other actions. + * Structure is documented below. + */ + rateLimitOptions?: pulumi.Input; + } + export interface RegionSecurityPolicyRuleMatch { /** * The configuration options available when specifying versionedExpr. @@ -23991,7 +24556,7 @@ export namespace compute { */ mask?: pulumi.Input; /** - * The name of this field. Must be unique within the policy. + * Name of the user-defined field, as given in the definition. */ name?: pulumi.Input; /** @@ -26363,7 +26928,7 @@ export namespace compute { export interface RouterPeerCustomLearnedIpRange { /** - * The IP range to advertise. The value must be a + * The IP range to learn. The value must be a * CIDR-formatted string. */ range: pulumi.Input; @@ -30223,6 +30788,16 @@ export namespace container { * Defaults to disabled; set `disabled = false` to enable. */ networkPolicyConfig?: pulumi.Input; + /** + * The status of the Parallelstore CSI driver addon, + * which allows the usage of a Parallelstore instances as volumes. + * It is disabled by default for Standard clusters; set `enabled = true` to enable. + * It is enabled by default for Autopilot clusters with version 1.29 or later; set `enabled = true` to enable it explicitly. + * See [Enable the Parallelstore CSI driver](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/parallelstore-csi-new-volume#enable) for more information. + * + * This example `addonsConfig` disables two addons: + */ + parallelstoreCsiDriverConfig?: pulumi.Input; /** * . The status of the [Ray Operator * addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview). @@ -30236,9 +30811,6 @@ export namespace container { * clusters on * GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) * for more information. - * - * - * This example `addonsConfig` disables two addons: */ rayOperatorConfigs?: pulumi.Input[]>; /** @@ -30328,6 +30900,10 @@ export namespace container { disabled: pulumi.Input; } + export interface ClusterAddonsConfigParallelstoreCsiDriverConfig { + enabled: pulumi.Input; + } + export interface ClusterAddonsConfigRayOperatorConfig { enabled: pulumi.Input; /** @@ -30574,6 +31150,24 @@ export namespace container { enabled: pulumi.Input; } + export interface ClusterControlPlaneEndpointsConfig { + /** + * DNS endpoint configuration. + */ + dnsEndpointConfig?: pulumi.Input; + } + + export interface ClusterControlPlaneEndpointsConfigDnsEndpointConfig { + /** + * Controls whether user traffic is allowed over this endpoint. Note that GCP-managed services may still use the endpoint even if this is false. + */ + allowExternalTraffic?: pulumi.Input; + /** + * The cluster's DNS endpoint. + */ + endpoint?: pulumi.Input; + } + export interface ClusterCostManagementConfig { /** * Whether to enable the [cost allocation](https://cloud.google.com/kubernetes-engine/docs/how-to/cost-allocations) feature. @@ -30889,6 +31483,10 @@ export namespace container { * accessible via Google Compute Engine Public IPs. */ gcpPublicCidrsAccessEnabled?: pulumi.Input; + /** + * Whether authorized networks is enforced on the private endpoint or not. Defaults to false. + */ + privateEndpointEnforcementEnabled?: pulumi.Input; } export interface ClusterMasterAuthorizedNetworksConfigCidrBlock { @@ -32649,6 +33247,41 @@ export namespace container { useServiceNetworking?: pulumi.Input; } + export interface ClusterUserManagedKeysConfig { + /** + * The Certificate Authority Service caPool to use for the aggreation CA in this cluster. + */ + aggregationCa?: pulumi.Input; + /** + * The Certificate Authority Service caPool to use for the cluster CA in this cluster. + */ + clusterCa?: pulumi.Input; + /** + * The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes. + */ + controlPlaneDiskEncryptionKey?: pulumi.Input; + /** + * The Certificate Authority Service caPool to use for the etcd API CA in this cluster. + */ + etcdApiCa?: pulumi.Input; + /** + * The Certificate Authority Service caPool to use for the etcd peer CA in this cluster. + */ + etcdPeerCa?: pulumi.Input; + /** + * Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups. + */ + gkeopsEtcdBackupEncryptionKey?: pulumi.Input; + /** + * The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. + */ + serviceAccountSigningKeys?: pulumi.Input[]>; + /** + * The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. + */ + serviceAccountVerificationKeys?: pulumi.Input[]>; + } + export interface ClusterVerticalPodAutoscaling { /** * Enables vertical pod autoscaling @@ -42859,6 +43492,27 @@ export namespace dataproc { properties?: pulumi.Input<{[key: string]: pulumi.Input}>; } + export interface GdcApplicationEnvironmentSparkApplicationEnvironmentConfig { + /** + * A map of default Spark properties to apply to workloads in this application environment. These defaults may be overridden by per-application properties. + */ + defaultProperties?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * The default Dataproc version to use for applications submitted to this application environment + */ + defaultVersion?: pulumi.Input; + } + + export interface GdcServiceInstanceGdceCluster { + /** + * Gdce cluster resource id. + */ + gdceCluster: pulumi.Input; + } + + export interface GdcServiceInstanceSparkServiceInstanceConfig { + } + export interface JobHadoopConfig { /** * HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip. @@ -52293,7 +52947,7 @@ export namespace gkeonprem { export interface BareMetalAdminClusterLoadBalancer { /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ manualLbConfig?: pulumi.Input; @@ -52342,7 +52996,7 @@ export namespace gkeonprem { export interface BareMetalAdminClusterNetworkConfig { /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ islandModeCidr?: pulumi.Input; @@ -52699,12 +53353,12 @@ export namespace gkeonprem { */ bgpLbConfig?: pulumi.Input; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ manualLbConfig?: pulumi.Input; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ metalLbConfig?: pulumi.Input; @@ -53053,7 +53707,7 @@ export namespace gkeonprem { */ advancedNetworking?: pulumi.Input; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ islandModeCidr?: pulumi.Input; @@ -54602,6 +55256,44 @@ export namespace iam { title?: pulumi.Input; } + export interface PrincipalAccessBoundaryPolicyDetails { + /** + * The version number that indicates which Google Cloud services + * are included in the enforcement (e.g. \"latest\", \"1\", ...). If empty, the + * PAB policy version will be set to the current latest version, and this version + * won't get updated when new versions are released. + */ + enforcementVersion?: pulumi.Input; + /** + * A list of principal access boundary policy rules. The number of rules in a policy is limited to 500. + * Structure is documented below. + */ + rules: pulumi.Input[]>; + } + + export interface PrincipalAccessBoundaryPolicyDetailsRule { + /** + * The description of the principal access boundary policy rule. Must be less than or equal to 256 characters. + */ + description?: pulumi.Input; + /** + * The access relationship of principals to the resources in this rule. + * Possible values: ALLOW + */ + effect: pulumi.Input; + /** + * A list of Cloud Resource Manager resources. The resource + * and all the descendants are included. The number of resources in a policy + * is limited to 500 across all rules. + * The following resource types are supported: + * * Organizations, such as `//cloudresourcemanager.googleapis.com/organizations/123`. + * * Folders, such as `//cloudresourcemanager.googleapis.com/folders/123`. + * * Projects, such as `//cloudresourcemanager.googleapis.com/projects/123` + * or `//cloudresourcemanager.googleapis.com/projects/my-project-id`. + */ + resources: pulumi.Input[]>; + } + export interface WorkforcePoolAccessRestrictions { /** * Services allowed for web sign-in with the workforce pool. @@ -57460,6 +58152,8 @@ export namespace looker { clientId: pulumi.Input; /** * The client secret for the Oauth config. + * + * - - - */ clientSecret: pulumi.Input; } @@ -66875,7 +67569,7 @@ export namespace redis { export interface ClusterStateInfo { /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ updateInfo?: pulumi.Input; @@ -68858,12 +69552,12 @@ export namespace spanner { export interface InstanceAutoscalingConfigAsymmetricAutoscalingOption { /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ overrides: pulumi.Input; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ replicaSelection: pulumi.Input; @@ -68871,7 +69565,7 @@ export namespace spanner { export interface InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrides { /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ autoscalingLimits: pulumi.Input; @@ -69014,6 +69708,12 @@ export namespace sql { * certificate. */ caCertificate?: pulumi.Input; + /** + * Specifies if the replica is a cascadable replica. If true, instance must be in different region from primary. + * + * > **NOTE:** Only supported for SQL Server database. + */ + cascadableReplica?: pulumi.Input; /** * PEM representation of the replica's x509 * certificate. @@ -69862,7 +70562,7 @@ export namespace storage { */ storageDestinationOptions: pulumi.Input; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ storageFilters?: pulumi.Input; @@ -71479,6 +72179,44 @@ export namespace vertex { title: pulumi.Input; } + export interface AiEndpointPredictRequestResponseLoggingConfig { + /** + * BigQuery table for logging. If only given a project, a new dataset will be created with name `logging__` where will be made BigQuery-dataset-name compatible (e.g. most special characters will become underscores). If no table name is given, a new table will be created with name `requestResponseLogging` + * Structure is documented below. + */ + bigqueryDestination?: pulumi.Input; + /** + * If logging is enabled or not. + */ + enabled?: pulumi.Input; + /** + * Percentage of requests to be logged, expressed as a fraction in range(0,1] + */ + samplingRate?: pulumi.Input; + } + + export interface AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination { + /** + * BigQuery URI to a project or table, up to 2000 characters long. When only the project is specified, the Dataset and Table is created. When the full table reference is specified, the Dataset must exist and table must not exist. Accepted forms: - BigQuery path. For example: `bq://projectId` or `bq://projectId.bqDatasetId` or `bq://projectId.bqDatasetId.bqTableId`. + */ + outputUri?: pulumi.Input; + } + + export interface AiEndpointPrivateServiceConnectConfig { + /** + * Required. If true, expose the IndexEndpoint via private service connect. + */ + enablePrivateServiceConnect: pulumi.Input; + /** + * If set to true, enable secure private service connect with IAM authorization. Otherwise, private service connect will be done without authorization. Note latency will be slightly increased if authorization is enabled. + */ + enableSecurePrivateServiceConnect?: pulumi.Input; + /** + * A list of Projects from which the forwarding rule will target the service attachment. + */ + projectAllowlists?: pulumi.Input[]>; + } + export interface AiFeatureGroupBigQuery { /** * The BigQuery source URI that points to either a BigQuery Table or View. diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index 34bcb84d02..4471b03a13 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -2735,6 +2735,21 @@ export namespace apigee { enabled?: boolean; } + export interface ApiMetaData { + /** + * Time at which the API proxy was created, in milliseconds since epoch. + */ + createdAt: string; + /** + * Time at which the API proxy was most recently modified, in milliseconds since epoch. + */ + lastModifiedAt: string; + /** + * The type of entity described + */ + subType: string; + } + export interface AppGroupAttribute { /** * Key of the attribute @@ -5345,6 +5360,224 @@ export namespace assuredworkloads { } export namespace backupdisasterrecovery { + export interface BackupPlanAssociationRulesConfigInfo { + /** + * (Output) + * google.rpc.Status object to store the last backup error + * Structure is documented below. + */ + lastBackupErrors: outputs.backupdisasterrecovery.BackupPlanAssociationRulesConfigInfoLastBackupError[]; + /** + * (Output) + * State of last backup taken. + */ + lastBackupState: string; + /** + * (Output) + * Backup Rule id fetched from backup plan. + */ + ruleId: string; + } + + export interface BackupPlanAssociationRulesConfigInfoLastBackupError { + /** + * (Output) + * The status code, which should be an enum value of [google.rpc.Code] + */ + code: number; + /** + * (Output) + * A developer-facing error message, which should be in English. + */ + message: string; + } + + export interface BackupPlanBackupRule { + /** + * Configures the duration for which backup data will be kept. The value should be greater than or equal to minimum enforced retention of the backup vault. + */ + backupRetentionDays: number; + /** + * The unique ID of this `BackupRule`. The `ruleId` is unique per `BackupPlan`. + */ + ruleId: string; + /** + * StandardSchedule defines a schedule that runs within the confines of a defined window of days. + * Structure is documented below. + */ + standardSchedule: outputs.backupdisasterrecovery.BackupPlanBackupRuleStandardSchedule; + } + + export interface BackupPlanBackupRuleStandardSchedule { + /** + * A BackupWindow defines the window of the day during which backup jobs will run. Jobs are queued at the beginning of the window and will be marked as + * `NOT_RUN` if they do not start by the end of the window. + * Structure is documented below. + */ + backupWindow?: outputs.backupdisasterrecovery.BackupPlanBackupRuleStandardScheduleBackupWindow; + /** + * Specifies days of months like 1, 5, or 14 on which jobs will run. + */ + daysOfMonths?: number[]; + /** + * Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for `recurrenceType`, `WEEKLY` and is not applicable otherwise. + * Each value may be one of: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`. + */ + daysOfWeeks?: string[]; + /** + * Specifies frequency for hourly backups. An hourly frequency of 2 means jobs will run every 2 hours from start time till end time defined. + * This is required for `recurrenceType`, `HOURLY` and is not applicable otherwise. + */ + hourlyFrequency?: number; + /** + * Specifies values of months + * Each value may be one of: `MONTH_UNSPECIFIED`, `JANUARY`, `FEBRUARY`, `MARCH`, `APRIL`, `MAY`, `JUNE`, `JULY`, `AUGUST`, `SEPTEMBER`, `OCTOBER`, `NOVEMBER`, `DECEMBER`. + */ + months?: string[]; + /** + * RecurrenceType enumerates the applicable periodicity for the schedule. + * Possible values are: `HOURLY`, `DAILY`, `WEEKLY`, `MONTHLY`, `YEARLY`. + */ + recurrenceType: string; + /** + * The time zone to be used when interpreting the schedule. + */ + timeZone: string; + /** + * Specifies a week day of the month like FIRST SUNDAY or LAST MONDAY, on which jobs will run. + * Structure is documented below. + */ + weekDayOfMonth?: outputs.backupdisasterrecovery.BackupPlanBackupRuleStandardScheduleWeekDayOfMonth; + } + + export interface BackupPlanBackupRuleStandardScheduleBackupWindow { + /** + * The hour of the day (1-24) when the window ends, for example, if the value of end hour of the day is 10, that means the backup window end time is 10:00. + * The end hour of the day should be greater than the start + * + * - - - + */ + endHourOfDay?: number; + /** + * The hour of the day (0-23) when the window starts, for example, if the value of the start hour of the day is 6, that means the backup window starts at 6:00. + */ + startHourOfDay: number; + } + + export interface BackupPlanBackupRuleStandardScheduleWeekDayOfMonth { + /** + * Specifies the day of the week. + * Possible values are: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`. + */ + dayOfWeek: string; + /** + * WeekOfMonth enumerates possible weeks in the month, e.g. the first, third, or last week of the month. + * Possible values are: `WEEK_OF_MONTH_UNSPECIFIED`, `FIRST`, `SECOND`, `THIRD`, `FOURTH`, `LAST`. + */ + weekOfMonth: string; + } + + export interface GetBackupPlanAssociationRulesConfigInfo { + /** + * google.rpc.Status object to store the last backup error + */ + lastBackupErrors: outputs.backupdisasterrecovery.GetBackupPlanAssociationRulesConfigInfoLastBackupError[]; + /** + * State of last backup taken. + */ + lastBackupState: string; + /** + * Backup Rule id fetched from backup plan. + */ + ruleId: string; + } + + export interface GetBackupPlanAssociationRulesConfigInfoLastBackupError { + /** + * The status code, which should be an enum value of [google.rpc.Code] + */ + code: number; + /** + * A developer-facing error message, which should be in English. + */ + message: string; + } + + export interface GetBackupPlanBackupRule { + /** + * Configures the duration for which backup data will be kept. The value should be greater than or equal to minimum enforced retention of the backup vault. + */ + backupRetentionDays: number; + /** + * The unique ID of this 'BackupRule'. The 'rule_id' is unique per 'BackupPlan'. + */ + ruleId: string; + /** + * StandardSchedule defines a schedule that runs within the confines of a defined window of days. + */ + standardSchedules: outputs.backupdisasterrecovery.GetBackupPlanBackupRuleStandardSchedule[]; + } + + export interface GetBackupPlanBackupRuleStandardSchedule { + /** + * A BackupWindow defines the window of the day during which backup jobs will run. Jobs are queued at the beginning of the window and will be marked as + * 'NOT_RUN' if they do not start by the end of the window. + */ + backupWindows: outputs.backupdisasterrecovery.GetBackupPlanBackupRuleStandardScheduleBackupWindow[]; + /** + * Specifies days of months like 1, 5, or 14 on which jobs will run. + */ + daysOfMonths: number[]; + /** + * Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for 'recurrence_type', 'WEEKLY' and is not applicable otherwise. Possible values: ["DAY_OF_WEEK_UNSPECIFIED", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY"] + */ + daysOfWeeks: string[]; + /** + * Specifies frequency for hourly backups. An hourly frequency of 2 means jobs will run every 2 hours from start time till end time defined. + * This is required for 'recurrence_type', 'HOURLY' and is not applicable otherwise. + */ + hourlyFrequency: number; + /** + * Specifies values of months Possible values: ["MONTH_UNSPECIFIED", "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER"] + */ + months: string[]; + /** + * RecurrenceType enumerates the applicable periodicity for the schedule. Possible values: ["HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY"] + */ + recurrenceType: string; + /** + * The time zone to be used when interpreting the schedule. + */ + timeZone: string; + /** + * Specifies a week day of the month like FIRST SUNDAY or LAST MONDAY, on which jobs will run. + */ + weekDayOfMonths: outputs.backupdisasterrecovery.GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonth[]; + } + + export interface GetBackupPlanBackupRuleStandardScheduleBackupWindow { + /** + * The hour of the day (1-24) when the window ends, for example, if the value of end hour of the day is 10, that means the backup window end time is 10:00. + * The end hour of the day should be greater than the start + */ + endHourOfDay: number; + /** + * The hour of the day (0-23) when the window starts, for example, if the value of the start hour of the day is 6, that means the backup window starts at 6:00. + */ + startHourOfDay: number; + } + + export interface GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonth { + /** + * Specifies the day of the week. Possible values: ["DAY_OF_WEEK_UNSPECIFIED", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"] + */ + dayOfWeek: string; + /** + * WeekOfMonth enumerates possible weeks in the month, e.g. the first, third, or last week of the month. Possible values: ["WEEK_OF_MONTH_UNSPECIFIED", "FIRST", "SECOND", "THIRD", "FOURTH", "LAST"] + */ + weekOfMonth: string; + } + export interface GetManagementServerManagementUri { /** * The management console api endpoint. @@ -17423,6 +17656,11 @@ export namespace cloudrunv2 { * Name of the cloud storage bucket to back the volume. The resource service account must have permission to access the bucket. */ bucket: string; + /** + * A list of flags to pass to the gcsfuse command for configuring this volume. + * Flags should be passed without leading dashes. + */ + mountOptions: string[]; /** * If true, mount this volume as read-only in all mounts. If false, mount this volume as read-write. */ @@ -18039,6 +18277,11 @@ export namespace cloudrunv2 { * GCS Bucket name */ bucket: string; + /** + * A list of flags to pass to the gcsfuse command for configuring this volume. + * Flags should be passed without leading dashes. + */ + mountOptions: string[]; /** * If true, mount the GCS bucket as read-only */ @@ -18527,6 +18770,11 @@ export namespace cloudrunv2 { * Name of the cloud storage bucket to back the volume. The resource service account must have permission to access the bucket. */ bucket: string; + /** + * A list of flags to pass to the gcsfuse command for configuring this volume. + * Flags should be passed without leading dashes. + */ + mountOptions?: string[]; /** * If true, mount this volume as read-only in all mounts. If false, mount this volume as read-write. */ @@ -19200,6 +19448,11 @@ export namespace cloudrunv2 { * GCS Bucket name */ bucket: string; + /** + * A list of flags to pass to the gcsfuse command for configuring this volume. + * Flags should be passed without leading dashes. + */ + mountOptions?: string[]; /** * If true, mount the GCS bucket as read-only */ @@ -20960,7 +21213,7 @@ export namespace compute { export interface AutoscalerAutoscalingPolicyScaleDownControl { /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ maxScaledDownReplicas?: outputs.compute.AutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicas; @@ -20986,7 +21239,7 @@ export namespace compute { export interface AutoscalerAutoscalingPolicyScaleInControl { /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ maxScaledInReplicas?: outputs.compute.AutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicas; @@ -21983,60 +22236,64 @@ export namespace compute { export interface FirewallPolicyRuleMatch { /** - * Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. Destination address groups is only supported in Egress rules. + * Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. */ destAddressGroups?: string[]; /** - * Domain names that will be used to match against the resolved domain name of destination of traffic. Can only be specified if DIRECTION is egress. + * Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100. */ destFqdns?: string[]; /** - * CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 256. + * CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000. */ destIpRanges?: string[]; /** - * The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is egress. + * Region codes whose IP addresses will be used to match for destination of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of dest region codes allowed is 5000. */ destRegionCodes?: string[]; /** - * Name of the Google Cloud Threat Intelligence list. + * Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination. */ destThreatIntelligences?: string[]; /** * Pairs of IP protocols and ports that the rule should match. + * Structure is documented below. */ layer4Configs: outputs.compute.FirewallPolicyRuleMatchLayer4Config[]; /** - * Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. Source address groups is only supported in Ingress rules. + * Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. */ srcAddressGroups?: string[]; /** - * Domain names that will be used to match against the resolved domain name of source of traffic. Can only be specified if DIRECTION is ingress. + * Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100. */ srcFqdns?: string[]; /** - * CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 256. + * CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000. */ srcIpRanges?: string[]; /** - * The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is ingress. + * Region codes whose IP addresses will be used to match for source of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of source region codes allowed is 5000. */ srcRegionCodes?: string[]; /** - * Name of the Google Cloud Threat Intelligence list. + * Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source. + * * - * The `layer4Configs` block supports: + * The `layer4Configs` block supports: */ srcThreatIntelligences?: string[]; } export interface FirewallPolicyRuleMatchLayer4Config { /** - * The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (`tcp`, `udp`, `icmp`, `esp`, `ah`, `ipip`, `sctp`), or the IP protocol number. + * The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. + * This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number. */ ipProtocol: string; /** - * An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ``. + * An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. + * Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. */ ports?: string[]; } @@ -25286,6 +25543,28 @@ export namespace compute { initialDelaySec: number; } + export interface GetRegionInstanceGroupManagerInstanceFlexibilityPolicy { + /** + * Named instance selections configuring properties that the group will use when creating new VMs. + */ + instanceSelections: outputs.compute.GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection[]; + } + + export interface GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection { + /** + * Full machine-type names, e.g. "n1-standard-16" + */ + machineTypes: string[]; + /** + * The name of the instance group. Either `name` or `selfLink` must be provided. + */ + name: string; + /** + * Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference. + */ + rank: number; + } + export interface GetRegionInstanceGroupManagerInstanceLifecyclePolicy { /** * Default behavior for all instance or health check failures. @@ -30691,6 +30970,21 @@ export namespace compute { acceleratorType?: string; } + export interface NodeTemplateDisk { + /** + * Specifies the number of such disks. + */ + diskCount?: number; + /** + * Specifies the size of the disk in base-2 GB. + */ + diskSizeGb?: number; + /** + * Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be the name of the disk type and not its URL. + */ + diskType?: string; + } + export interface NodeTemplateNodeTypeFlexibility { /** * Number of virtual CPUs to use. @@ -31125,7 +31419,7 @@ export namespace compute { export interface RegionAutoscalerAutoscalingPolicyScaleDownControl { /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ maxScaledDownReplicas?: outputs.compute.RegionAutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicas; @@ -31151,7 +31445,7 @@ export namespace compute { export interface RegionAutoscalerAutoscalingPolicyScaleInControl { /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ maxScaledInReplicas?: outputs.compute.RegionAutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicas; @@ -32197,13 +32491,11 @@ export namespace compute { export interface RegionInstanceGroupManagerAllInstancesConfig { /** - * , The label key-value pairs that you want to patch onto the instance. - * - * - - - + * The label key-value pairs that you want to patch onto the instance, */ labels?: {[key: string]: string}; /** - * , The metadata key-value pairs that you want to patch onto the instance. For more information, see [Project and instance metadata](https://cloud.google.com/compute/docs/metadata#project_and_instance_metadata). + * The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata, */ metadata?: {[key: string]: string}; } @@ -32220,11 +32512,37 @@ export namespace compute { initialDelaySec: number; } + export interface RegionInstanceGroupManagerInstanceFlexibilityPolicy { + /** + * Named instance selections configuring properties that the group will use when creating new VMs. + */ + instanceSelections?: outputs.compute.RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection[]; + } + + export interface RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection { + /** + * Full machine-type names, e.g. "n1-standard-16" + */ + machineTypes: string[]; + /** + * The name of the instance group manager. Must be 1-63 + * characters long and comply with + * [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Supported characters + * include lowercase letters, numbers, and hyphens. + */ + name: string; + /** + * Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference. + */ + rank?: number; + } + export interface RegionInstanceGroupManagerInstanceLifecyclePolicy { /** * , Default behavior for all instance or health check failures. Valid options are: `REPAIR`, `DO_NOTHING`. If `DO_NOTHING` then instances will not be repaired. If `REPAIR` (default), then failed instances will be repaired. * * - - - + * The `instanceFlexibilityPolicy` block supports: */ defaultActionOnFailure?: string; /** @@ -33653,6 +33971,331 @@ export namespace compute { address?: string; } + export interface RegionResizeRequestRequestedRunDuration { + /** + * Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. + */ + nanos?: number; + /** + * Span of time at a resolution of a second. Must be from 600 to 604800 inclusive. Note: minimum and maximum allowed range for requestedRunDuration is 10 minutes (600 seconds) and 7 days(604800 seconds) correspondingly. + */ + seconds: string; + } + + export interface RegionResizeRequestStatus { + /** + * (Output) + * Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + * Structure is documented below. + */ + errors: outputs.compute.RegionResizeRequestStatusError[]; + /** + * (Output) + * Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the "error" field only. + * Structure is documented below. + */ + lastAttempts: outputs.compute.RegionResizeRequestStatusLastAttempt[]; + } + + export interface RegionResizeRequestStatusError { + /** + * (Output) + * The array of errors encountered while processing this operation. + * Structure is documented below. + */ + errors: outputs.compute.RegionResizeRequestStatusErrorError[]; + } + + export interface RegionResizeRequestStatusErrorError { + /** + * (Output) + * The error type identifier for this error. + */ + code: string; + /** + * (Output) + * An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + * Structure is documented below. + */ + errorDetails: outputs.compute.RegionResizeRequestStatusErrorErrorErrorDetail[]; + /** + * (Output) + * Indicates the field in the request that caused the error. This property is optional. + */ + location: string; + /** + * (Output) + * The localized error message in the above locale. + */ + message: string; + } + + export interface RegionResizeRequestStatusErrorErrorErrorDetail { + /** + * (Output) + * A nested object resource. + * Structure is documented below. + */ + errorInfos: outputs.compute.RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo[]; + /** + * (Output) + * A nested object resource. + * Structure is documented below. + */ + helps: outputs.compute.RegionResizeRequestStatusErrorErrorErrorDetailHelp[]; + /** + * (Output) + * A nested object resource. + * Structure is documented below. + */ + localizedMessages: outputs.compute.RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage[]; + /** + * (Output) + * A nested object resource. + * Structure is documented below. + */ + quotaInfos: outputs.compute.RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo[]; + } + + export interface RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo { + /** + * (Output) + * 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". + */ + domain: string; + /** + * (Output) + * Additional structured details about this error. + */ + metadatas: {[key: string]: string}; + /** + * (Output) + * 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. + */ + reason: string; + } + + export interface RegionResizeRequestStatusErrorErrorErrorDetailHelp { + /** + * (Output) + * A nested object resource. + * Structure is documented below. + */ + links: outputs.compute.RegionResizeRequestStatusErrorErrorErrorDetailHelpLink[]; + } + + export interface RegionResizeRequestStatusErrorErrorErrorDetailHelpLink { + /** + * An optional description of this resize-request. + */ + description: string; + /** + * (Output) + * The URL of the link. + */ + url: string; + } + + export interface RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage { + /** + * (Output) + * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + */ + locale: string; + /** + * (Output) + * The localized error message in the above locale. + */ + message: string; + } + + export interface RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo { + /** + * (Output) + * The map holding related quota dimensions + */ + dimensions: {[key: string]: string}; + /** + * (Output) + * Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + */ + futureLimit: number; + /** + * (Output) + * Current effective quota limit. The limit's unit depends on the quota type or metric. + */ + limit: number; + /** + * (Output) + * The name of the quota limit. + */ + limitName: string; + /** + * (Output) + * The Compute Engine quota metric name. + */ + metricName: string; + /** + * (Output) + * Rollout status of the future quota limit. + */ + rolloutStatus: string; + } + + export interface RegionResizeRequestStatusLastAttempt { + /** + * (Output) + * Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + * Structure is documented below. + */ + errors: outputs.compute.RegionResizeRequestStatusLastAttemptError[]; + } + + export interface RegionResizeRequestStatusLastAttemptError { + /** + * (Output) + * The array of errors encountered while processing this operation. + * Structure is documented below. + */ + errors: outputs.compute.RegionResizeRequestStatusLastAttemptErrorError[]; + } + + export interface RegionResizeRequestStatusLastAttemptErrorError { + /** + * (Output) + * The error type identifier for this error. + */ + code: string; + /** + * (Output) + * An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + * Structure is documented below. + */ + errorDetails: outputs.compute.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail[]; + /** + * (Output) + * Indicates the field in the request that caused the error. This property is optional. + */ + location: string; + /** + * (Output) + * The localized error message in the above locale. + */ + message: string; + } + + export interface RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail { + /** + * (Output) + * A nested object resource. + * Structure is documented below. + */ + errorInfos: outputs.compute.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo[]; + /** + * (Output) + * A nested object resource. + * Structure is documented below. + */ + helps: outputs.compute.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp[]; + /** + * (Output) + * A nested object resource. + * Structure is documented below. + */ + localizedMessages: outputs.compute.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage[]; + /** + * (Output) + * A nested object resource. + * Structure is documented below. + */ + quotaInfos: outputs.compute.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo[]; + } + + export interface RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo { + /** + * (Output) + * 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". + */ + domain: string; + /** + * (Output) + * Additional structured details about this error. + */ + metadatas: {[key: string]: string}; + /** + * (Output) + * 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. + */ + reason: string; + } + + export interface RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp { + /** + * (Output) + * A nested object resource. + * Structure is documented below. + */ + links: outputs.compute.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink[]; + } + + export interface RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink { + /** + * An optional description of this resize-request. + */ + description: string; + /** + * (Output) + * The URL of the link. + */ + url: string; + } + + export interface RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage { + /** + * (Output) + * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + */ + locale: string; + /** + * (Output) + * The localized error message in the above locale. + */ + message: string; + } + + export interface RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo { + /** + * (Output) + * The map holding related quota dimensions + */ + dimensions: {[key: string]: string}; + /** + * (Output) + * Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + */ + futureLimit: number; + /** + * (Output) + * Current effective quota limit. The limit's unit depends on the quota type or metric. + */ + limit: number; + /** + * (Output) + * The name of the quota limit. + */ + limitName: string; + /** + * (Output) + * The Compute Engine quota metric name. + */ + metricName: string; + /** + * (Output) + * Rollout status of the future quota limit. + */ + rolloutStatus: string; + } + export interface RegionSecurityPolicyDdosProtectionConfig { /** * Google Cloud Armor offers the following options to help protect systems against DDoS attacks: @@ -33664,6 +34307,61 @@ export namespace compute { ddosProtection: string; } + export interface RegionSecurityPolicyRule { + /** + * The Action to perform when the rule is matched. The following are the valid actions: + * * allow: allow access to target. + * * deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for STATUS are 403, 404, and 502. + * * rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rateLimitOptions to be set. + * * redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. This action is only supported in Global Security Policies of type CLOUD_ARMOR. + * * throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rateLimitOptions to be set for this. + */ + action: string; + /** + * An optional description of this resource. Provide this property when you create the resource. + */ + description?: string; + /** + * A match condition that incoming traffic is evaluated against. + * If it evaluates to true, the corresponding 'action' is enforced. + * Structure is documented below. + */ + match?: outputs.compute.RegionSecurityPolicyRuleMatch; + /** + * A match condition that incoming packets are evaluated against for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding 'action' is enforced. + * The match criteria for a rule consists of built-in match fields (like 'srcIpRanges') and potentially multiple user-defined match fields ('userDefinedFields'). + * Field values may be extracted directly from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may not be present in every packet (e.g. 'srcPorts'). A user-defined field is only present if the base header is found in the packet and the entire field is in bounds. + * Each match field may specify which values can match it, listing one or more ranges, prefixes, or exact values that are considered a match for the field. A field value must be present in order to match a specified match field. If no match values are specified for a match field, then any field value is considered to match it, and it's not required to be present. For strings specifying '*' is also equivalent to match all. + * For a packet to match a rule, all specified match fields must match the corresponding field values derived from the packet. + * Example: + * networkMatch: srcIpRanges: - "192.0.2.0/24" - "198.51.100.0/24" userDefinedFields: - name: "ipv4FragmentOffset" values: - "1-0x1fff" + * The above match condition matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a user-defined field named "ipv4FragmentOffset" with a value between 1 and 0x1fff inclusive + * Structure is documented below. + */ + networkMatch?: outputs.compute.RegionSecurityPolicyRuleNetworkMatch; + /** + * Preconfigured WAF configuration to be applied for the rule. + * If the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect. + * Structure is documented below. + */ + preconfiguredWafConfig?: outputs.compute.RegionSecurityPolicyRulePreconfiguredWafConfig; + /** + * If set to true, the specified action is not enforced. + */ + preview?: boolean; + /** + * An integer indicating the priority of a rule in the list. + * The priority must be a positive value between 0 and 2147483647. + * Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority. + */ + priority: number; + /** + * Must be specified if the action is "rateBasedBan" or "throttle". Cannot be specified for any other actions. + * Structure is documented below. + */ + rateLimitOptions?: outputs.compute.RegionSecurityPolicyRuleRateLimitOptions; + } + export interface RegionSecurityPolicyRuleMatch { /** * The configuration options available when specifying versionedExpr. @@ -33983,7 +34681,7 @@ export namespace compute { */ mask?: string; /** - * The name of this field. Must be unique within the policy. + * Name of the user-defined field, as given in the definition. */ name?: string; /** @@ -36355,7 +37053,7 @@ export namespace compute { export interface RouterPeerCustomLearnedIpRange { /** - * The IP range to advertise. The value must be a + * The IP range to learn. The value must be a * CIDR-formatted string. */ range: string; @@ -40437,6 +41135,16 @@ export namespace container { * Defaults to disabled; set `disabled = false` to enable. */ networkPolicyConfig: outputs.container.ClusterAddonsConfigNetworkPolicyConfig; + /** + * The status of the Parallelstore CSI driver addon, + * which allows the usage of a Parallelstore instances as volumes. + * It is disabled by default for Standard clusters; set `enabled = true` to enable. + * It is enabled by default for Autopilot clusters with version 1.29 or later; set `enabled = true` to enable it explicitly. + * See [Enable the Parallelstore CSI driver](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/parallelstore-csi-new-volume#enable) for more information. + * + * This example `addonsConfig` disables two addons: + */ + parallelstoreCsiDriverConfig: outputs.container.ClusterAddonsConfigParallelstoreCsiDriverConfig; /** * . The status of the [Ray Operator * addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview). @@ -40450,9 +41158,6 @@ export namespace container { * clusters on * GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) * for more information. - * - * - * This example `addonsConfig` disables two addons: */ rayOperatorConfigs: outputs.container.ClusterAddonsConfigRayOperatorConfig[]; /** @@ -40542,6 +41247,10 @@ export namespace container { disabled: boolean; } + export interface ClusterAddonsConfigParallelstoreCsiDriverConfig { + enabled: boolean; + } + export interface ClusterAddonsConfigRayOperatorConfig { enabled: boolean; /** @@ -40788,6 +41497,24 @@ export namespace container { enabled: boolean; } + export interface ClusterControlPlaneEndpointsConfig { + /** + * DNS endpoint configuration. + */ + dnsEndpointConfig: outputs.container.ClusterControlPlaneEndpointsConfigDnsEndpointConfig; + } + + export interface ClusterControlPlaneEndpointsConfigDnsEndpointConfig { + /** + * Controls whether user traffic is allowed over this endpoint. Note that GCP-managed services may still use the endpoint even if this is false. + */ + allowExternalTraffic?: boolean; + /** + * The cluster's DNS endpoint. + */ + endpoint: string; + } + export interface ClusterCostManagementConfig { /** * Whether to enable the [cost allocation](https://cloud.google.com/kubernetes-engine/docs/how-to/cost-allocations) feature. @@ -41103,6 +41830,10 @@ export namespace container { * accessible via Google Compute Engine Public IPs. */ gcpPublicCidrsAccessEnabled: boolean; + /** + * Whether authorized networks is enforced on the private endpoint or not. Defaults to false. + */ + privateEndpointEnforcementEnabled: boolean; } export interface ClusterMasterAuthorizedNetworksConfigCidrBlock { @@ -42863,6 +43594,41 @@ export namespace container { useServiceNetworking?: boolean; } + export interface ClusterUserManagedKeysConfig { + /** + * The Certificate Authority Service caPool to use for the aggreation CA in this cluster. + */ + aggregationCa?: string; + /** + * The Certificate Authority Service caPool to use for the cluster CA in this cluster. + */ + clusterCa?: string; + /** + * The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes. + */ + controlPlaneDiskEncryptionKey?: string; + /** + * The Certificate Authority Service caPool to use for the etcd API CA in this cluster. + */ + etcdApiCa?: string; + /** + * The Certificate Authority Service caPool to use for the etcd peer CA in this cluster. + */ + etcdPeerCa?: string; + /** + * Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups. + */ + gkeopsEtcdBackupEncryptionKey?: string; + /** + * The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. + */ + serviceAccountSigningKeys?: string[]; + /** + * The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. + */ + serviceAccountVerificationKeys?: string[]; + } + export interface ClusterVerticalPodAutoscaling { /** * Enables vertical pod autoscaling @@ -42933,6 +43699,10 @@ export namespace container { * Whether we should enable the network policy addon for the master. This must be enabled in order to enable network policy for the nodes. To enable this, you must also define a networkPolicy block, otherwise nothing will happen. It can only be disabled if the nodes already do not have network policies enabled. Defaults to disabled; set disabled = false to enable. */ networkPolicyConfigs: outputs.container.GetClusterAddonsConfigNetworkPolicyConfig[]; + /** + * The status of the Parallelstore CSI driver addon, which allows the usage of Parallelstore instances as volumes. Defaults to disabled; set enabled = true to enable. + */ + parallelstoreCsiDriverConfigs: outputs.container.GetClusterAddonsConfigParallelstoreCsiDriverConfig[]; /** * The status of the Ray Operator addon, which enabled management of Ray AI/ML jobs on GKE. Defaults to disabled; set enabled = true to enable. */ @@ -42999,6 +43769,10 @@ export namespace container { disabled: boolean; } + export interface GetClusterAddonsConfigParallelstoreCsiDriverConfig { + enabled: boolean; + } + export interface GetClusterAddonsConfigRayOperatorConfig { enabled: boolean; /** @@ -43222,6 +43996,24 @@ export namespace container { enabled: boolean; } + export interface GetClusterControlPlaneEndpointsConfig { + /** + * DNS endpoint configuration. + */ + dnsEndpointConfigs: outputs.container.GetClusterControlPlaneEndpointsConfigDnsEndpointConfig[]; + } + + export interface GetClusterControlPlaneEndpointsConfigDnsEndpointConfig { + /** + * Controls whether user traffic is allowed over this endpoint. Note that GCP-managed services may still use the endpoint even if this is false. + */ + allowExternalTraffic: boolean; + /** + * The cluster's DNS endpoint. + */ + endpoint: string; + } + export interface GetClusterCostManagementConfig { /** * Whether to enable GKE cost allocation. When you enable GKE cost allocation, the cluster name and namespace of your GKE workloads appear in the labels field of the billing export to BigQuery. Defaults to false. @@ -43438,6 +44230,10 @@ export namespace container { * Whether Kubernetes master is accessible via Google Compute Engine Public IPs. */ gcpPublicCidrsAccessEnabled: boolean; + /** + * Whether authorized networks is enforced on the private endpoint or not. Defaults to false. + */ + privateEndpointEnforcementEnabled: boolean; } export interface GetClusterMasterAuthorizedNetworksConfigCidrBlock { @@ -44933,6 +45729,41 @@ export namespace container { useServiceNetworking: boolean; } + export interface GetClusterUserManagedKeysConfig { + /** + * The Certificate Authority Service caPool to use for the aggreation CA in this cluster. + */ + aggregationCa: string; + /** + * The Certificate Authority Service caPool to use for the cluster CA in this cluster. + */ + clusterCa: string; + /** + * The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes. + */ + controlPlaneDiskEncryptionKey: string; + /** + * The Certificate Authority Service caPool to use for the etcd API CA in this cluster. + */ + etcdApiCa: string; + /** + * The Certificate Authority Service caPool to use for the etcd peer CA in this cluster. + */ + etcdPeerCa: string; + /** + * Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups. + */ + gkeopsEtcdBackupEncryptionKey: string; + /** + * The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. + */ + serviceAccountSigningKeys: string[]; + /** + * The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. + */ + serviceAccountVerificationKeys: string[]; + } + export interface GetClusterVerticalPodAutoscaling { /** * Enables vertical pod autoscaling. @@ -55152,6 +55983,27 @@ export namespace dataproc { properties: {[key: string]: string}; } + export interface GdcApplicationEnvironmentSparkApplicationEnvironmentConfig { + /** + * A map of default Spark properties to apply to workloads in this application environment. These defaults may be overridden by per-application properties. + */ + defaultProperties?: {[key: string]: string}; + /** + * The default Dataproc version to use for applications submitted to this application environment + */ + defaultVersion?: string; + } + + export interface GdcServiceInstanceGdceCluster { + /** + * Gdce cluster resource id. + */ + gdceCluster: string; + } + + export interface GdcServiceInstanceSparkServiceInstanceConfig { + } + export interface GetMetastoreServiceEncryptionConfig { /** * The fully qualified customer provided Cloud KMS key name to use for customer data encryption. @@ -65053,7 +65905,7 @@ export namespace gkeonprem { export interface BareMetalAdminClusterLoadBalancer { /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ manualLbConfig?: outputs.gkeonprem.BareMetalAdminClusterLoadBalancerManualLbConfig; @@ -65102,7 +65954,7 @@ export namespace gkeonprem { export interface BareMetalAdminClusterNetworkConfig { /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ islandModeCidr?: outputs.gkeonprem.BareMetalAdminClusterNetworkConfigIslandModeCidr; @@ -65459,12 +66311,12 @@ export namespace gkeonprem { */ bgpLbConfig?: outputs.gkeonprem.BareMetalClusterLoadBalancerBgpLbConfig; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ manualLbConfig?: outputs.gkeonprem.BareMetalClusterLoadBalancerManualLbConfig; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ metalLbConfig?: outputs.gkeonprem.BareMetalClusterLoadBalancerMetalLbConfig; @@ -65813,7 +66665,7 @@ export namespace gkeonprem { */ advancedNetworking?: boolean; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ islandModeCidr?: outputs.gkeonprem.BareMetalClusterNetworkConfigIslandModeCidr; @@ -67491,6 +68343,44 @@ export namespace iam { pemCertificate: string; } + export interface PrincipalAccessBoundaryPolicyDetails { + /** + * The version number that indicates which Google Cloud services + * are included in the enforcement (e.g. \"latest\", \"1\", ...). If empty, the + * PAB policy version will be set to the current latest version, and this version + * won't get updated when new versions are released. + */ + enforcementVersion: string; + /** + * A list of principal access boundary policy rules. The number of rules in a policy is limited to 500. + * Structure is documented below. + */ + rules: outputs.iam.PrincipalAccessBoundaryPolicyDetailsRule[]; + } + + export interface PrincipalAccessBoundaryPolicyDetailsRule { + /** + * The description of the principal access boundary policy rule. Must be less than or equal to 256 characters. + */ + description?: string; + /** + * The access relationship of principals to the resources in this rule. + * Possible values: ALLOW + */ + effect: string; + /** + * A list of Cloud Resource Manager resources. The resource + * and all the descendants are included. The number of resources in a policy + * is limited to 500 across all rules. + * The following resource types are supported: + * * Organizations, such as `//cloudresourcemanager.googleapis.com/organizations/123`. + * * Folders, such as `//cloudresourcemanager.googleapis.com/folders/123`. + * * Projects, such as `//cloudresourcemanager.googleapis.com/projects/123` + * or `//cloudresourcemanager.googleapis.com/projects/my-project-id`. + */ + resources: string[]; + } + export interface WorkforcePoolAccessRestrictions { /** * Services allowed for web sign-in with the workforce pool. @@ -70593,6 +71483,8 @@ export namespace looker { clientId: string; /** * The client secret for the Oauth config. + * + * - - - */ clientSecret: string; } @@ -82944,7 +83836,7 @@ export namespace redis { export interface ClusterStateInfo { /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ updateInfo?: outputs.redis.ClusterStateInfoUpdateInfo; @@ -85474,6 +86366,19 @@ export namespace spanner { title: string; } + export interface GetDatabaseEncryptionConfig { + /** + * Fully qualified name of the KMS key to use to encrypt this database. This key must exist + * in the same location as the Spanner Database. + */ + kmsKeyName: string; + /** + * Fully qualified name of the KMS keys to use to encrypt this database. The keys must exist + * in the same locations as the Spanner Database. + */ + kmsKeyNames: string[]; + } + export interface GetInstanceAutoscalingConfig { /** * Asymmetric autoscaling options for specific replicas. @@ -85497,18 +86402,18 @@ export namespace spanner { export interface GetInstanceAutoscalingConfigAsymmetricAutoscalingOption { /** - * A nested object resource + * A nested object resource. */ overrides: outputs.spanner.GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverride[]; /** - * A nested object resource + * A nested object resource. */ replicaSelections: outputs.spanner.GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionReplicaSelection[]; } export interface GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverride { /** - * A nested object resource + * A nested object resource. */ autoscalingLimits: outputs.spanner.GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrideAutoscalingLimit[]; } @@ -85596,12 +86501,12 @@ export namespace spanner { export interface InstanceAutoscalingConfigAsymmetricAutoscalingOption { /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ overrides: outputs.spanner.InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrides; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ replicaSelection: outputs.spanner.InstanceAutoscalingConfigAsymmetricAutoscalingOptionReplicaSelection; @@ -85609,7 +86514,7 @@ export namespace spanner { export interface InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrides { /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ autoscalingLimits: outputs.spanner.InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesAutoscalingLimits; @@ -85753,6 +86658,12 @@ export namespace sql { * certificate. */ caCertificate?: string; + /** + * Specifies if the replica is a cascadable replica. If true, instance must be in different region from primary. + * + * > **NOTE:** Only supported for SQL Server database. + */ + cascadableReplica?: boolean; /** * PEM representation of the replica's x509 * certificate. @@ -86260,6 +87171,10 @@ export namespace sql { * PEM representation of the trusted CA's x509 certificate. */ caCertificate: string; + /** + * Specifies if a SQL Server replica is a cascadable replica. A cascadable replica is a SQL Server cross region replica that supports replica(s) under it. + */ + cascadableReplica: boolean; /** * PEM representation of the replica's x509 certificate. */ @@ -86726,6 +87641,10 @@ export namespace sql { * The configuration for replication. */ replicaConfigurations: outputs.sql.GetDatabaseInstancesInstanceReplicaConfiguration[]; + /** + * The replicas of the instance. + */ + replicaNames: string[]; restoreBackupContexts: outputs.sql.GetDatabaseInstancesInstanceRestoreBackupContext[]; /** * Initial root password. Required for MS SQL Server. @@ -86780,6 +87699,10 @@ export namespace sql { * PEM representation of the trusted CA's x509 certificate. */ caCertificate: string; + /** + * Specifies if a SQL Server replica is a cascadable replica. A cascadable replica is a SQL Server cross region replica that supports replica(s) under it. + */ + cascadableReplica: boolean; /** * PEM representation of the replica's x509 certificate. */ @@ -87925,7 +88848,7 @@ export namespace storage { */ storageDestinationOptions: outputs.storage.InsightsReportConfigObjectMetadataReportOptionsStorageDestinationOptions; /** - * A nested object resource + * A nested object resource. * Structure is documented below. */ storageFilters?: outputs.storage.InsightsReportConfigObjectMetadataReportOptionsStorageFilters; @@ -89620,6 +90543,44 @@ export namespace vertex { title: string; } + export interface AiEndpointPredictRequestResponseLoggingConfig { + /** + * BigQuery table for logging. If only given a project, a new dataset will be created with name `logging__` where will be made BigQuery-dataset-name compatible (e.g. most special characters will become underscores). If no table name is given, a new table will be created with name `requestResponseLogging` + * Structure is documented below. + */ + bigqueryDestination?: outputs.vertex.AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination; + /** + * If logging is enabled or not. + */ + enabled?: boolean; + /** + * Percentage of requests to be logged, expressed as a fraction in range(0,1] + */ + samplingRate?: number; + } + + export interface AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination { + /** + * BigQuery URI to a project or table, up to 2000 characters long. When only the project is specified, the Dataset and Table is created. When the full table reference is specified, the Dataset must exist and table must not exist. Accepted forms: - BigQuery path. For example: `bq://projectId` or `bq://projectId.bqDatasetId` or `bq://projectId.bqDatasetId.bqTableId`. + */ + outputUri?: string; + } + + export interface AiEndpointPrivateServiceConnectConfig { + /** + * Required. If true, expose the IndexEndpoint via private service connect. + */ + enablePrivateServiceConnect: boolean; + /** + * If set to true, enable secure private service connect with IAM authorization. Otherwise, private service connect will be done without authorization. Note latency will be slightly increased if authorization is enabled. + */ + enableSecurePrivateServiceConnect?: boolean; + /** + * A list of Projects from which the forwarding rule will target the service attachment. + */ + projectAllowlists?: string[]; + } + export interface AiFeatureGroupBigQuery { /** * The BigQuery source URI that points to either a BigQuery Table or View. diff --git a/sdk/nodejs/vertex/aiEndpoint.ts b/sdk/nodejs/vertex/aiEndpoint.ts index df3dc6e1f1..75cd3a469f 100644 --- a/sdk/nodejs/vertex/aiEndpoint.ts +++ b/sdk/nodejs/vertex/aiEndpoint.ts @@ -36,6 +36,13 @@ import * as utilities from "../utilities"; * service: "servicenetworking.googleapis.com", * reservedPeeringRanges: [vertexRange.name], * }); + * const bqDataset = new gcp.bigquery.Dataset("bq_dataset", { + * datasetId: "some_dataset", + * friendlyName: "logging dataset", + * description: "This is a dataset that requests are logged to", + * location: "US", + * deleteContentsOnDestroy: true, + * }); * const project = gcp.organizations.getProject({}); * const endpoint = new gcp.vertex.AiEndpoint("endpoint", { * name: "endpoint-name", @@ -50,6 +57,16 @@ import * as utilities from "../utilities"; * encryptionSpec: { * kmsKeyName: "kms-name", * }, + * predictRequestResponseLoggingConfig: { + * bigqueryDestination: { + * outputUri: pulumi.all([project, bqDataset.datasetId]).apply(([project, datasetId]) => `bq://${project.projectId}.${datasetId}.request_response_logging`), + * }, + * enabled: true, + * samplingRate: 0.1, + * }, + * trafficSplit: JSON.stringify({ + * "12345": 100, + * }), * }, { * dependsOn: [vertexVpcConnection], * }); @@ -59,6 +76,48 @@ import * as utilities from "../utilities"; * member: project.then(project => `serviceAccount:service-${project.number}@gcp-sa-aiplatform.iam.gserviceaccount.com`), * }); * ``` + * ### Vertex Ai Endpoint Private Service Connect + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * + * const project = gcp.organizations.getProject({}); + * const endpoint = new gcp.vertex.AiEndpoint("endpoint", { + * name: "endpoint-name_69391", + * displayName: "sample-endpoint", + * description: "A sample vertex endpoint", + * location: "us-central1", + * region: "us-central1", + * labels: { + * "label-one": "value-one", + * }, + * privateServiceConnectConfig: { + * enablePrivateServiceConnect: true, + * projectAllowlists: [project.then(project => project.projectId)], + * enableSecurePrivateServiceConnect: false, + * }, + * }); + * ``` + * ### Vertex Ai Endpoint Dedicated Endpoint + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * + * const endpoint = new gcp.vertex.AiEndpoint("endpoint", { + * name: "endpoint-name_8270", + * displayName: "sample-endpoint", + * description: "A sample vertex endpoint", + * location: "us-central1", + * region: "us-central1", + * labels: { + * "label-one": "value-one", + * }, + * dedicatedEndpointEnabled: true, + * }); + * const project = gcp.organizations.getProject({}); + * ``` * * ## Import * @@ -117,6 +176,14 @@ export class AiEndpoint extends pulumi.CustomResource { * Output only. Timestamp when the DeployedModel was created. */ public /*out*/ readonly createTime!: pulumi.Output; + /** + * Output only. DNS of the dedicated endpoint. Will only be populated if dedicatedEndpointEnabled is true. Format: `https://{endpointId}.{region}-{projectNumber}.prediction.vertexai.goog`. + */ + public /*out*/ readonly dedicatedEndpointDns!: pulumi.Output; + /** + * If true, the endpoint will be exposed through a dedicated DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS will be isolated from other users' traffic and will have better performance and reliability. Note: Once you enabled dedicated endpoint, you won't be able to send request to the shared DNS {region}-aiplatform.googleapis.com. The limitation will be removed soon. + */ + public readonly dedicatedEndpointEnabled!: pulumi.Output; /** * Output only. The models deployed in this Endpoint. To add or remove DeployedModels use EndpointService.DeployModel and EndpointService.UndeployModel respectively. Models can also be deployed and undeployed using the [Cloud Console](https://console.cloud.google.com/vertex-ai/). * Structure is documented below. @@ -165,9 +232,19 @@ export class AiEndpoint extends pulumi.CustomResource { */ public readonly name!: pulumi.Output; /** - * The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. + * The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. Only one of the fields, `network` or `privateServiceConnectConfig`, can be set. */ public readonly network!: pulumi.Output; + /** + * Configures the request-response logging for online prediction. + * Structure is documented below. + */ + public readonly predictRequestResponseLoggingConfig!: pulumi.Output; + /** + * Configuration for private service connect. `network` and `privateServiceConnectConfig` are mutually exclusive. + * Structure is documented below. + */ + public readonly privateServiceConnectConfig!: pulumi.Output; /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. @@ -182,6 +259,16 @@ export class AiEndpoint extends pulumi.CustomResource { * The region for the resource */ public readonly region!: pulumi.Output; + /** + * A map from a DeployedModel's id to the percentage of this Endpoint's traffic that should be forwarded to that DeployedModel. + * If a DeployedModel's id is not listed in this map, then it receives no traffic. + * The traffic percentage values must add up to 100, or map must be empty if the Endpoint is to not accept any traffic at a moment. + * > **Note:** The `trafficSplit` setting only applies after a model has been deployed to the endpoint. Re-applying a `gcp.vertex.AiEndpoint` + * resource without updating the `trafficSplit` post-deployment may lead to your deployed `trafficSplit` being lost; see + * the `deployModel` [example](https://cloud.google.com/vertex-ai/docs/general/deployment#deploy_a_model_to_an_endpoint) and + * [documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1beta1/projects.locations.endpoints/deployModel) for details. + */ + public readonly trafficSplit!: pulumi.Output; /** * Output only. Timestamp when this Endpoint was last updated. */ @@ -201,6 +288,8 @@ export class AiEndpoint extends pulumi.CustomResource { if (opts.id) { const state = argsOrState as AiEndpointState | undefined; resourceInputs["createTime"] = state ? state.createTime : undefined; + resourceInputs["dedicatedEndpointDns"] = state ? state.dedicatedEndpointDns : undefined; + resourceInputs["dedicatedEndpointEnabled"] = state ? state.dedicatedEndpointEnabled : undefined; resourceInputs["deployedModels"] = state ? state.deployedModels : undefined; resourceInputs["description"] = state ? state.description : undefined; resourceInputs["displayName"] = state ? state.displayName : undefined; @@ -212,9 +301,12 @@ export class AiEndpoint extends pulumi.CustomResource { resourceInputs["modelDeploymentMonitoringJob"] = state ? state.modelDeploymentMonitoringJob : undefined; resourceInputs["name"] = state ? state.name : undefined; resourceInputs["network"] = state ? state.network : undefined; + resourceInputs["predictRequestResponseLoggingConfig"] = state ? state.predictRequestResponseLoggingConfig : undefined; + resourceInputs["privateServiceConnectConfig"] = state ? state.privateServiceConnectConfig : undefined; resourceInputs["project"] = state ? state.project : undefined; resourceInputs["pulumiLabels"] = state ? state.pulumiLabels : undefined; resourceInputs["region"] = state ? state.region : undefined; + resourceInputs["trafficSplit"] = state ? state.trafficSplit : undefined; resourceInputs["updateTime"] = state ? state.updateTime : undefined; } else { const args = argsOrState as AiEndpointArgs | undefined; @@ -224,6 +316,7 @@ export class AiEndpoint extends pulumi.CustomResource { if ((!args || args.location === undefined) && !opts.urn) { throw new Error("Missing required property 'location'"); } + resourceInputs["dedicatedEndpointEnabled"] = args ? args.dedicatedEndpointEnabled : undefined; resourceInputs["description"] = args ? args.description : undefined; resourceInputs["displayName"] = args ? args.displayName : undefined; resourceInputs["encryptionSpec"] = args ? args.encryptionSpec : undefined; @@ -231,9 +324,13 @@ export class AiEndpoint extends pulumi.CustomResource { resourceInputs["location"] = args ? args.location : undefined; resourceInputs["name"] = args ? args.name : undefined; resourceInputs["network"] = args ? args.network : undefined; + resourceInputs["predictRequestResponseLoggingConfig"] = args ? args.predictRequestResponseLoggingConfig : undefined; + resourceInputs["privateServiceConnectConfig"] = args ? args.privateServiceConnectConfig : undefined; resourceInputs["project"] = args ? args.project : undefined; resourceInputs["region"] = args ? args.region : undefined; + resourceInputs["trafficSplit"] = args ? args.trafficSplit : undefined; resourceInputs["createTime"] = undefined /*out*/; + resourceInputs["dedicatedEndpointDns"] = undefined /*out*/; resourceInputs["deployedModels"] = undefined /*out*/; resourceInputs["effectiveLabels"] = undefined /*out*/; resourceInputs["etag"] = undefined /*out*/; @@ -257,6 +354,14 @@ export interface AiEndpointState { * Output only. Timestamp when the DeployedModel was created. */ createTime?: pulumi.Input; + /** + * Output only. DNS of the dedicated endpoint. Will only be populated if dedicatedEndpointEnabled is true. Format: `https://{endpointId}.{region}-{projectNumber}.prediction.vertexai.goog`. + */ + dedicatedEndpointDns?: pulumi.Input; + /** + * If true, the endpoint will be exposed through a dedicated DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS will be isolated from other users' traffic and will have better performance and reliability. Note: Once you enabled dedicated endpoint, you won't be able to send request to the shared DNS {region}-aiplatform.googleapis.com. The limitation will be removed soon. + */ + dedicatedEndpointEnabled?: pulumi.Input; /** * Output only. The models deployed in this Endpoint. To add or remove DeployedModels use EndpointService.DeployModel and EndpointService.UndeployModel respectively. Models can also be deployed and undeployed using the [Cloud Console](https://console.cloud.google.com/vertex-ai/). * Structure is documented below. @@ -305,9 +410,19 @@ export interface AiEndpointState { */ name?: pulumi.Input; /** - * The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. + * The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. Only one of the fields, `network` or `privateServiceConnectConfig`, can be set. */ network?: pulumi.Input; + /** + * Configures the request-response logging for online prediction. + * Structure is documented below. + */ + predictRequestResponseLoggingConfig?: pulumi.Input; + /** + * Configuration for private service connect. `network` and `privateServiceConnectConfig` are mutually exclusive. + * Structure is documented below. + */ + privateServiceConnectConfig?: pulumi.Input; /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. @@ -322,6 +437,16 @@ export interface AiEndpointState { * The region for the resource */ region?: pulumi.Input; + /** + * A map from a DeployedModel's id to the percentage of this Endpoint's traffic that should be forwarded to that DeployedModel. + * If a DeployedModel's id is not listed in this map, then it receives no traffic. + * The traffic percentage values must add up to 100, or map must be empty if the Endpoint is to not accept any traffic at a moment. + * > **Note:** The `trafficSplit` setting only applies after a model has been deployed to the endpoint. Re-applying a `gcp.vertex.AiEndpoint` + * resource without updating the `trafficSplit` post-deployment may lead to your deployed `trafficSplit` being lost; see + * the `deployModel` [example](https://cloud.google.com/vertex-ai/docs/general/deployment#deploy_a_model_to_an_endpoint) and + * [documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1beta1/projects.locations.endpoints/deployModel) for details. + */ + trafficSplit?: pulumi.Input; /** * Output only. Timestamp when this Endpoint was last updated. */ @@ -332,6 +457,10 @@ export interface AiEndpointState { * The set of arguments for constructing a AiEndpoint resource. */ export interface AiEndpointArgs { + /** + * If true, the endpoint will be exposed through a dedicated DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS will be isolated from other users' traffic and will have better performance and reliability. Note: Once you enabled dedicated endpoint, you won't be able to send request to the shared DNS {region}-aiplatform.googleapis.com. The limitation will be removed soon. + */ + dedicatedEndpointEnabled?: pulumi.Input; /** * The description of the Endpoint. */ @@ -363,9 +492,19 @@ export interface AiEndpointArgs { */ name?: pulumi.Input; /** - * The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. + * The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. Only one of the fields, `network` or `privateServiceConnectConfig`, can be set. */ network?: pulumi.Input; + /** + * Configures the request-response logging for online prediction. + * Structure is documented below. + */ + predictRequestResponseLoggingConfig?: pulumi.Input; + /** + * Configuration for private service connect. `network` and `privateServiceConnectConfig` are mutually exclusive. + * Structure is documented below. + */ + privateServiceConnectConfig?: pulumi.Input; /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. @@ -375,4 +514,14 @@ export interface AiEndpointArgs { * The region for the resource */ region?: pulumi.Input; + /** + * A map from a DeployedModel's id to the percentage of this Endpoint's traffic that should be forwarded to that DeployedModel. + * If a DeployedModel's id is not listed in this map, then it receives no traffic. + * The traffic percentage values must add up to 100, or map must be empty if the Endpoint is to not accept any traffic at a moment. + * > **Note:** The `trafficSplit` setting only applies after a model has been deployed to the endpoint. Re-applying a `gcp.vertex.AiEndpoint` + * resource without updating the `trafficSplit` post-deployment may lead to your deployed `trafficSplit` being lost; see + * the `deployModel` [example](https://cloud.google.com/vertex-ai/docs/general/deployment#deploy_a_model_to_an_endpoint) and + * [documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1beta1/projects.locations.endpoints/deployModel) for details. + */ + trafficSplit?: pulumi.Input; } diff --git a/sdk/nodejs/vertex/aiFeatureOnlineStoreFeatureview.ts b/sdk/nodejs/vertex/aiFeatureOnlineStoreFeatureview.ts index d4d8928ac6..3a62e3b510 100644 --- a/sdk/nodejs/vertex/aiFeatureOnlineStoreFeatureview.ts +++ b/sdk/nodejs/vertex/aiFeatureOnlineStoreFeatureview.ts @@ -179,8 +179,8 @@ import * as utilities from "../utilities"; * * const testProject = gcp.organizations.getProject({}); * const project = new gcp.organizations.Project("project", { - * projectId: "tf-test_69391", - * name: "tf-test_8270", + * projectId: "tf-test_41150", + * name: "tf-test_89313", * orgId: "123456789", * billingAccount: "000000-0000000-0000000-000000", * deletionPolicy: "DELETE", diff --git a/sdk/nodejs/workbench/instance.ts b/sdk/nodejs/workbench/instance.ts index 745dff0fd9..40ce0b2702 100644 --- a/sdk/nodejs/workbench/instance.ts +++ b/sdk/nodejs/workbench/instance.ts @@ -263,7 +263,9 @@ export class Instance extends pulumi.CustomResource { /** * 'Optional. Input only. The owner of this instance after creation. Format: * `alias@example.com` Currently supports one owner only. If not specified, all of - * the service account users of your VM instance''s service account can use the instance.' + * the service account users of your VM instance''s service account can use the instance. + * If specified, sets the access mode to `Single user`. For more details, see + * https://cloud.google.com/vertex-ai/docs/workbench/instances/manage-access-jupyterlab' */ public readonly instanceOwners!: pulumi.Output; /** @@ -426,7 +428,9 @@ export interface InstanceState { /** * 'Optional. Input only. The owner of this instance after creation. Format: * `alias@example.com` Currently supports one owner only. If not specified, all of - * the service account users of your VM instance''s service account can use the instance.' + * the service account users of your VM instance''s service account can use the instance. + * If specified, sets the access mode to `Single user`. For more details, see + * https://cloud.google.com/vertex-ai/docs/workbench/instances/manage-access-jupyterlab' */ instanceOwners?: pulumi.Input[]>; /** @@ -503,7 +507,9 @@ export interface InstanceArgs { /** * 'Optional. Input only. The owner of this instance after creation. Format: * `alias@example.com` Currently supports one owner only. If not specified, all of - * the service account users of your VM instance''s service account can use the instance.' + * the service account users of your VM instance''s service account can use the instance. + * If specified, sets the access mode to `Single user`. For more details, see + * https://cloud.google.com/vertex-ai/docs/workbench/instances/manage-access-jupyterlab' */ instanceOwners?: pulumi.Input[]>; /** diff --git a/sdk/nodejs/workflows/workflow.ts b/sdk/nodejs/workflows/workflow.ts index 740543d2aa..218d77b6fe 100644 --- a/sdk/nodejs/workflows/workflow.ts +++ b/sdk/nodejs/workflows/workflow.ts @@ -37,6 +37,7 @@ import * as utilities from "../utilities"; * userEnvVars: { * url: "https://timeapi.io/api/Time/current/zone?timeZone=Europe/Amsterdam", * }, + * deletionProtection: false, * sourceContents: `# This is a sample workflow. You can replace it with your source code. * # * # This workflow does the following: @@ -115,6 +116,7 @@ export class Workflow extends pulumi.CustomResource { * Format: projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey} */ public readonly cryptoKeyName!: pulumi.Output; + public readonly deletionProtection!: pulumi.Output; /** * Description of the workflow provided by the user. Must be at most 1000 unicode characters long. */ @@ -200,6 +202,7 @@ export class Workflow extends pulumi.CustomResource { resourceInputs["callLogLevel"] = state ? state.callLogLevel : undefined; resourceInputs["createTime"] = state ? state.createTime : undefined; resourceInputs["cryptoKeyName"] = state ? state.cryptoKeyName : undefined; + resourceInputs["deletionProtection"] = state ? state.deletionProtection : undefined; resourceInputs["description"] = state ? state.description : undefined; resourceInputs["effectiveLabels"] = state ? state.effectiveLabels : undefined; resourceInputs["labels"] = state ? state.labels : undefined; @@ -218,6 +221,7 @@ export class Workflow extends pulumi.CustomResource { const args = argsOrState as WorkflowArgs | undefined; resourceInputs["callLogLevel"] = args ? args.callLogLevel : undefined; resourceInputs["cryptoKeyName"] = args ? args.cryptoKeyName : undefined; + resourceInputs["deletionProtection"] = args ? args.deletionProtection : undefined; resourceInputs["description"] = args ? args.description : undefined; resourceInputs["labels"] = args ? args.labels : undefined; resourceInputs["name"] = args ? args.name : undefined; @@ -261,6 +265,7 @@ export interface WorkflowState { * Format: projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey} */ cryptoKeyName?: pulumi.Input; + deletionProtection?: pulumi.Input; /** * Description of the workflow provided by the user. Must be at most 1000 unicode characters long. */ @@ -347,6 +352,7 @@ export interface WorkflowArgs { * Format: projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey} */ cryptoKeyName?: pulumi.Input; + deletionProtection?: pulumi.Input; /** * Description of the workflow provided by the user. Must be at most 1000 unicode characters long. */ diff --git a/sdk/nodejs/workstations/workstationConfig.ts b/sdk/nodejs/workstations/workstationConfig.ts index d41f0facb4..17e333c0b6 100644 --- a/sdk/nodejs/workstations/workstationConfig.ts +++ b/sdk/nodejs/workstations/workstationConfig.ts @@ -20,7 +20,7 @@ import * as utilities from "../utilities"; * shortName: "keyname", * }); * const tagValue1 = new gcp.tags.TagValue("tag_value1", { - * parent: pulumi.interpolate`tagKeys/${tagKey1.name}`, + * parent: tagKey1.id, * shortName: "valuename", * }); * const _default = new gcp.compute.Network("default", { @@ -68,8 +68,8 @@ import * as utilities from "../utilities"; * bootDiskSizeGb: 35, * disablePublicIpAddresses: true, * disableSsh: false, - * vmTags: pulumi.all([tagKey1.name, tagValue1.name]).apply(([tagKey1Name, tagValue1Name]) => { - * [`tagKeys/${tagKey1Name}`]: `tagValues/${tagValue1Name}`, + * vmTags: pulumi.all([tagKey1.id, tagValue1.id]).apply(([tagKey1Id, tagValue1Id]) => { + * [tagKey1Id]: tagValue1Id, * }), * }, * }, diff --git a/sdk/python/pulumi_gcp/__init__.py b/sdk/python/pulumi_gcp/__init__.py index cd94c3318e..ce8c93aed2 100644 --- a/sdk/python/pulumi_gcp/__init__.py +++ b/sdk/python/pulumi_gcp/__init__.py @@ -699,6 +699,14 @@ "gcp:apigee/addonsConfig:AddonsConfig": "AddonsConfig" } }, + { + "pkg": "gcp", + "mod": "apigee/api", + "fqn": "pulumi_gcp.apigee", + "classes": { + "gcp:apigee/api:Api": "Api" + } + }, { "pkg": "gcp", "mod": "apigee/appGroup", @@ -1059,6 +1067,22 @@ "gcp:assuredworkloads/workload:Workload": "Workload" } }, + { + "pkg": "gcp", + "mod": "backupdisasterrecovery/backupPlan", + "fqn": "pulumi_gcp.backupdisasterrecovery", + "classes": { + "gcp:backupdisasterrecovery/backupPlan:BackupPlan": "BackupPlan" + } + }, + { + "pkg": "gcp", + "mod": "backupdisasterrecovery/backupPlanAssociation", + "fqn": "pulumi_gcp.backupdisasterrecovery", + "classes": { + "gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation": "BackupPlanAssociation" + } + }, { "pkg": "gcp", "mod": "backupdisasterrecovery/backupVault", @@ -2995,6 +3019,14 @@ "gcp:compute/regionPerInstanceConfig:RegionPerInstanceConfig": "RegionPerInstanceConfig" } }, + { + "pkg": "gcp", + "mod": "compute/regionResizeRequest", + "fqn": "pulumi_gcp.compute", + "classes": { + "gcp:compute/regionResizeRequest:RegionResizeRequest": "RegionResizeRequest" + } + }, { "pkg": "gcp", "mod": "compute/regionSecurityPolicy", @@ -4075,6 +4107,22 @@ "gcp:dataproc/clusterIAMPolicy:ClusterIAMPolicy": "ClusterIAMPolicy" } }, + { + "pkg": "gcp", + "mod": "dataproc/gdcApplicationEnvironment", + "fqn": "pulumi_gcp.dataproc", + "classes": { + "gcp:dataproc/gdcApplicationEnvironment:GdcApplicationEnvironment": "GdcApplicationEnvironment" + } + }, + { + "pkg": "gcp", + "mod": "dataproc/gdcServiceInstance", + "fqn": "pulumi_gcp.dataproc", + "classes": { + "gcp:dataproc/gdcServiceInstance:GdcServiceInstance": "GdcServiceInstance" + } + }, { "pkg": "gcp", "mod": "dataproc/job", @@ -5323,6 +5371,14 @@ "gcp:iam/denyPolicy:DenyPolicy": "DenyPolicy" } }, + { + "pkg": "gcp", + "mod": "iam/principalAccessBoundaryPolicy", + "fqn": "pulumi_gcp.iam", + "classes": { + "gcp:iam/principalAccessBoundaryPolicy:PrincipalAccessBoundaryPolicy": "PrincipalAccessBoundaryPolicy" + } + }, { "pkg": "gcp", "mod": "iam/workforcePool", @@ -6299,6 +6355,14 @@ "gcp:networkmanagement/connectivityTest:ConnectivityTest": "ConnectivityTest" } }, + { + "pkg": "gcp", + "mod": "networkmanagement/vpcFlowLogsConfig", + "fqn": "pulumi_gcp.networkmanagement", + "classes": { + "gcp:networkmanagement/vpcFlowLogsConfig:VpcFlowLogsConfig": "VpcFlowLogsConfig" + } + }, { "pkg": "gcp", "mod": "networksecurity/addressGroup", diff --git a/sdk/python/pulumi_gcp/activedirectory/domain.py b/sdk/python/pulumi_gcp/activedirectory/domain.py index e31e7f00f8..21757dad98 100644 --- a/sdk/python/pulumi_gcp/activedirectory/domain.py +++ b/sdk/python/pulumi_gcp/activedirectory/domain.py @@ -431,10 +431,22 @@ def __init__(__self__, Domain can be imported using any of these accepted formats: + * `{{project}}/{{name}}` + + * `{{project}} {{name}}` + * `{{name}}` When using the `pulumi import` command, Domain can be imported using one of the formats above. For example: + ```sh + $ pulumi import gcp:activedirectory/domain:Domain default {{project}}/{{name}} + ``` + + ```sh + $ pulumi import gcp:activedirectory/domain:Domain default "{{project}} {{name}}" + ``` + ```sh $ pulumi import gcp:activedirectory/domain:Domain default {{name}} ``` @@ -494,10 +506,22 @@ def __init__(__self__, Domain can be imported using any of these accepted formats: + * `{{project}}/{{name}}` + + * `{{project}} {{name}}` + * `{{name}}` When using the `pulumi import` command, Domain can be imported using one of the formats above. For example: + ```sh + $ pulumi import gcp:activedirectory/domain:Domain default {{project}}/{{name}} + ``` + + ```sh + $ pulumi import gcp:activedirectory/domain:Domain default "{{project}} {{name}}" + ``` + ```sh $ pulumi import gcp:activedirectory/domain:Domain default {{name}} ``` diff --git a/sdk/python/pulumi_gcp/apigee/__init__.py b/sdk/python/pulumi_gcp/apigee/__init__.py index e87f2f7f79..cd20927564 100644 --- a/sdk/python/pulumi_gcp/apigee/__init__.py +++ b/sdk/python/pulumi_gcp/apigee/__init__.py @@ -6,6 +6,7 @@ import typing # Export this package's modules as members: from .addons_config import * +from .api import * from .app_group import * from .developer import * from .endpoint_attachment import * diff --git a/sdk/python/pulumi_gcp/apigee/_inputs.py b/sdk/python/pulumi_gcp/apigee/_inputs.py index 6419e82df2..84ff61c65b 100644 --- a/sdk/python/pulumi_gcp/apigee/_inputs.py +++ b/sdk/python/pulumi_gcp/apigee/_inputs.py @@ -27,6 +27,8 @@ 'AddonsConfigAddonsConfigIntegrationConfigArgsDict', 'AddonsConfigAddonsConfigMonetizationConfigArgs', 'AddonsConfigAddonsConfigMonetizationConfigArgsDict', + 'ApiMetaDataArgs', + 'ApiMetaDataArgsDict', 'AppGroupAttributeArgs', 'AppGroupAttributeArgsDict', 'DeveloperAttributeArgs', @@ -400,6 +402,78 @@ def enabled(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "enabled", value) +if not MYPY: + class ApiMetaDataArgsDict(TypedDict): + created_at: NotRequired[pulumi.Input[str]] + """ + Time at which the API proxy was created, in milliseconds since epoch. + """ + last_modified_at: NotRequired[pulumi.Input[str]] + """ + Time at which the API proxy was most recently modified, in milliseconds since epoch. + """ + sub_type: NotRequired[pulumi.Input[str]] + """ + The type of entity described + """ +elif False: + ApiMetaDataArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ApiMetaDataArgs: + def __init__(__self__, *, + created_at: Optional[pulumi.Input[str]] = None, + last_modified_at: Optional[pulumi.Input[str]] = None, + sub_type: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] created_at: Time at which the API proxy was created, in milliseconds since epoch. + :param pulumi.Input[str] last_modified_at: Time at which the API proxy was most recently modified, in milliseconds since epoch. + :param pulumi.Input[str] sub_type: The type of entity described + """ + if created_at is not None: + pulumi.set(__self__, "created_at", created_at) + if last_modified_at is not None: + pulumi.set(__self__, "last_modified_at", last_modified_at) + if sub_type is not None: + pulumi.set(__self__, "sub_type", sub_type) + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> Optional[pulumi.Input[str]]: + """ + Time at which the API proxy was created, in milliseconds since epoch. + """ + return pulumi.get(self, "created_at") + + @created_at.setter + def created_at(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "created_at", value) + + @property + @pulumi.getter(name="lastModifiedAt") + def last_modified_at(self) -> Optional[pulumi.Input[str]]: + """ + Time at which the API proxy was most recently modified, in milliseconds since epoch. + """ + return pulumi.get(self, "last_modified_at") + + @last_modified_at.setter + def last_modified_at(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "last_modified_at", value) + + @property + @pulumi.getter(name="subType") + def sub_type(self) -> Optional[pulumi.Input[str]]: + """ + The type of entity described + """ + return pulumi.get(self, "sub_type") + + @sub_type.setter + def sub_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "sub_type", value) + + if not MYPY: class AppGroupAttributeArgsDict(TypedDict): name: NotRequired[pulumi.Input[str]] diff --git a/sdk/python/pulumi_gcp/apigee/api.py b/sdk/python/pulumi_gcp/apigee/api.py new file mode 100644 index 0000000000..ff235683cd --- /dev/null +++ b/sdk/python/pulumi_gcp/apigee/api.py @@ -0,0 +1,456 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['ApiArgs', 'Api'] + +@pulumi.input_type +class ApiArgs: + def __init__(__self__, *, + config_bundle: pulumi.Input[str], + org_id: pulumi.Input[str], + detect_md5hash: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a Api resource. + :param pulumi.Input[str] config_bundle: Path to the config zip bundle. + + - - - + :param pulumi.Input[str] org_id: The Apigee Organization name associated with the Apigee instance. + :param pulumi.Input[str] name: The ID of the API proxy. + """ + pulumi.set(__self__, "config_bundle", config_bundle) + pulumi.set(__self__, "org_id", org_id) + if detect_md5hash is not None: + pulumi.set(__self__, "detect_md5hash", detect_md5hash) + if name is not None: + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter(name="configBundle") + def config_bundle(self) -> pulumi.Input[str]: + """ + Path to the config zip bundle. + + - - - + """ + return pulumi.get(self, "config_bundle") + + @config_bundle.setter + def config_bundle(self, value: pulumi.Input[str]): + pulumi.set(self, "config_bundle", value) + + @property + @pulumi.getter(name="orgId") + def org_id(self) -> pulumi.Input[str]: + """ + The Apigee Organization name associated with the Apigee instance. + """ + return pulumi.get(self, "org_id") + + @org_id.setter + def org_id(self, value: pulumi.Input[str]): + pulumi.set(self, "org_id", value) + + @property + @pulumi.getter(name="detectMd5hash") + def detect_md5hash(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "detect_md5hash") + + @detect_md5hash.setter + def detect_md5hash(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "detect_md5hash", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the API proxy. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + +@pulumi.input_type +class _ApiState: + def __init__(__self__, *, + config_bundle: Optional[pulumi.Input[str]] = None, + detect_md5hash: Optional[pulumi.Input[str]] = None, + latest_revision_id: Optional[pulumi.Input[str]] = None, + md5hash: Optional[pulumi.Input[str]] = None, + meta_datas: Optional[pulumi.Input[Sequence[pulumi.Input['ApiMetaDataArgs']]]] = None, + name: Optional[pulumi.Input[str]] = None, + org_id: Optional[pulumi.Input[str]] = None, + revisions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + Input properties used for looking up and filtering Api resources. + :param pulumi.Input[str] config_bundle: Path to the config zip bundle. + + - - - + :param pulumi.Input[str] latest_revision_id: The id of the most recently created revision for this API proxy. + :param pulumi.Input[str] md5hash: (Computed) Base 64 MD5 hash of the uploaded data. It is speculative as remote does not return hash of the bundle. Remote changes are detected using returned last_modified timestamp. + :param pulumi.Input[Sequence[pulumi.Input['ApiMetaDataArgs']]] meta_datas: Metadata describing the API proxy. + Structure is documented below. + :param pulumi.Input[str] name: The ID of the API proxy. + :param pulumi.Input[str] org_id: The Apigee Organization name associated with the Apigee instance. + :param pulumi.Input[Sequence[pulumi.Input[str]]] revisions: A list of revisions of this API proxy. + """ + if config_bundle is not None: + pulumi.set(__self__, "config_bundle", config_bundle) + if detect_md5hash is not None: + pulumi.set(__self__, "detect_md5hash", detect_md5hash) + if latest_revision_id is not None: + pulumi.set(__self__, "latest_revision_id", latest_revision_id) + if md5hash is not None: + pulumi.set(__self__, "md5hash", md5hash) + if meta_datas is not None: + pulumi.set(__self__, "meta_datas", meta_datas) + if name is not None: + pulumi.set(__self__, "name", name) + if org_id is not None: + pulumi.set(__self__, "org_id", org_id) + if revisions is not None: + pulumi.set(__self__, "revisions", revisions) + + @property + @pulumi.getter(name="configBundle") + def config_bundle(self) -> Optional[pulumi.Input[str]]: + """ + Path to the config zip bundle. + + - - - + """ + return pulumi.get(self, "config_bundle") + + @config_bundle.setter + def config_bundle(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "config_bundle", value) + + @property + @pulumi.getter(name="detectMd5hash") + def detect_md5hash(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "detect_md5hash") + + @detect_md5hash.setter + def detect_md5hash(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "detect_md5hash", value) + + @property + @pulumi.getter(name="latestRevisionId") + def latest_revision_id(self) -> Optional[pulumi.Input[str]]: + """ + The id of the most recently created revision for this API proxy. + """ + return pulumi.get(self, "latest_revision_id") + + @latest_revision_id.setter + def latest_revision_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "latest_revision_id", value) + + @property + @pulumi.getter + def md5hash(self) -> Optional[pulumi.Input[str]]: + """ + (Computed) Base 64 MD5 hash of the uploaded data. It is speculative as remote does not return hash of the bundle. Remote changes are detected using returned last_modified timestamp. + """ + return pulumi.get(self, "md5hash") + + @md5hash.setter + def md5hash(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "md5hash", value) + + @property + @pulumi.getter(name="metaDatas") + def meta_datas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ApiMetaDataArgs']]]]: + """ + Metadata describing the API proxy. + Structure is documented below. + """ + return pulumi.get(self, "meta_datas") + + @meta_datas.setter + def meta_datas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ApiMetaDataArgs']]]]): + pulumi.set(self, "meta_datas", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the API proxy. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="orgId") + def org_id(self) -> Optional[pulumi.Input[str]]: + """ + The Apigee Organization name associated with the Apigee instance. + """ + return pulumi.get(self, "org_id") + + @org_id.setter + def org_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "org_id", value) + + @property + @pulumi.getter + def revisions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + A list of revisions of this API proxy. + """ + return pulumi.get(self, "revisions") + + @revisions.setter + def revisions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "revisions", value) + + +class Api(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + config_bundle: Optional[pulumi.Input[str]] = None, + detect_md5hash: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + org_id: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + To get more information about API proxies see, see: + + * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.apis) + * How-to Guides + * [API proxies](https://cloud.google.com/apigee/docs/resources) + + ## Import + + An API proxy can be imported using any of these accepted formats: + + * `{{org_id}}/apis/{{name}}` + + * `{{org_id}}/{{name}}` + + When using the `pulumi import` command, API proxy can be imported using one of the formats above. For example: + + ```sh + $ pulumi import gcp:apigee/api:Api default {{org_id}}/apis/{{name}} + ``` + + ```sh + $ pulumi import gcp:apigee/api:Api default {{org_id}}/{{name}} + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] config_bundle: Path to the config zip bundle. + + - - - + :param pulumi.Input[str] name: The ID of the API proxy. + :param pulumi.Input[str] org_id: The Apigee Organization name associated with the Apigee instance. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: ApiArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + To get more information about API proxies see, see: + + * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.apis) + * How-to Guides + * [API proxies](https://cloud.google.com/apigee/docs/resources) + + ## Import + + An API proxy can be imported using any of these accepted formats: + + * `{{org_id}}/apis/{{name}}` + + * `{{org_id}}/{{name}}` + + When using the `pulumi import` command, API proxy can be imported using one of the formats above. For example: + + ```sh + $ pulumi import gcp:apigee/api:Api default {{org_id}}/apis/{{name}} + ``` + + ```sh + $ pulumi import gcp:apigee/api:Api default {{org_id}}/{{name}} + ``` + + :param str resource_name: The name of the resource. + :param ApiArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(ApiArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + config_bundle: Optional[pulumi.Input[str]] = None, + detect_md5hash: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + org_id: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = ApiArgs.__new__(ApiArgs) + + if config_bundle is None and not opts.urn: + raise TypeError("Missing required property 'config_bundle'") + __props__.__dict__["config_bundle"] = config_bundle + __props__.__dict__["detect_md5hash"] = detect_md5hash + __props__.__dict__["name"] = name + if org_id is None and not opts.urn: + raise TypeError("Missing required property 'org_id'") + __props__.__dict__["org_id"] = org_id + __props__.__dict__["latest_revision_id"] = None + __props__.__dict__["md5hash"] = None + __props__.__dict__["meta_datas"] = None + __props__.__dict__["revisions"] = None + super(Api, __self__).__init__( + 'gcp:apigee/api:Api', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + config_bundle: Optional[pulumi.Input[str]] = None, + detect_md5hash: Optional[pulumi.Input[str]] = None, + latest_revision_id: Optional[pulumi.Input[str]] = None, + md5hash: Optional[pulumi.Input[str]] = None, + meta_datas: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ApiMetaDataArgs', 'ApiMetaDataArgsDict']]]]] = None, + name: Optional[pulumi.Input[str]] = None, + org_id: Optional[pulumi.Input[str]] = None, + revisions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None) -> 'Api': + """ + Get an existing Api resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] config_bundle: Path to the config zip bundle. + + - - - + :param pulumi.Input[str] latest_revision_id: The id of the most recently created revision for this API proxy. + :param pulumi.Input[str] md5hash: (Computed) Base 64 MD5 hash of the uploaded data. It is speculative as remote does not return hash of the bundle. Remote changes are detected using returned last_modified timestamp. + :param pulumi.Input[Sequence[pulumi.Input[Union['ApiMetaDataArgs', 'ApiMetaDataArgsDict']]]] meta_datas: Metadata describing the API proxy. + Structure is documented below. + :param pulumi.Input[str] name: The ID of the API proxy. + :param pulumi.Input[str] org_id: The Apigee Organization name associated with the Apigee instance. + :param pulumi.Input[Sequence[pulumi.Input[str]]] revisions: A list of revisions of this API proxy. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _ApiState.__new__(_ApiState) + + __props__.__dict__["config_bundle"] = config_bundle + __props__.__dict__["detect_md5hash"] = detect_md5hash + __props__.__dict__["latest_revision_id"] = latest_revision_id + __props__.__dict__["md5hash"] = md5hash + __props__.__dict__["meta_datas"] = meta_datas + __props__.__dict__["name"] = name + __props__.__dict__["org_id"] = org_id + __props__.__dict__["revisions"] = revisions + return Api(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="configBundle") + def config_bundle(self) -> pulumi.Output[str]: + """ + Path to the config zip bundle. + + - - - + """ + return pulumi.get(self, "config_bundle") + + @property + @pulumi.getter(name="detectMd5hash") + def detect_md5hash(self) -> pulumi.Output[Optional[str]]: + return pulumi.get(self, "detect_md5hash") + + @property + @pulumi.getter(name="latestRevisionId") + def latest_revision_id(self) -> pulumi.Output[str]: + """ + The id of the most recently created revision for this API proxy. + """ + return pulumi.get(self, "latest_revision_id") + + @property + @pulumi.getter + def md5hash(self) -> pulumi.Output[str]: + """ + (Computed) Base 64 MD5 hash of the uploaded data. It is speculative as remote does not return hash of the bundle. Remote changes are detected using returned last_modified timestamp. + """ + return pulumi.get(self, "md5hash") + + @property + @pulumi.getter(name="metaDatas") + def meta_datas(self) -> pulumi.Output[Sequence['outputs.ApiMetaData']]: + """ + Metadata describing the API proxy. + Structure is documented below. + """ + return pulumi.get(self, "meta_datas") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + The ID of the API proxy. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="orgId") + def org_id(self) -> pulumi.Output[str]: + """ + The Apigee Organization name associated with the Apigee instance. + """ + return pulumi.get(self, "org_id") + + @property + @pulumi.getter + def revisions(self) -> pulumi.Output[Sequence[str]]: + """ + A list of revisions of this API proxy. + """ + return pulumi.get(self, "revisions") + diff --git a/sdk/python/pulumi_gcp/apigee/outputs.py b/sdk/python/pulumi_gcp/apigee/outputs.py index 103e709f26..0490e5ab87 100644 --- a/sdk/python/pulumi_gcp/apigee/outputs.py +++ b/sdk/python/pulumi_gcp/apigee/outputs.py @@ -22,6 +22,7 @@ 'AddonsConfigAddonsConfigConnectorsPlatformConfig', 'AddonsConfigAddonsConfigIntegrationConfig', 'AddonsConfigAddonsConfigMonetizationConfig', + 'ApiMetaData', 'AppGroupAttribute', 'DeveloperAttribute', 'EnvironmentIamBindingCondition', @@ -301,6 +302,70 @@ def enabled(self) -> Optional[bool]: return pulumi.get(self, "enabled") +@pulumi.output_type +class ApiMetaData(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "createdAt": + suggest = "created_at" + elif key == "lastModifiedAt": + suggest = "last_modified_at" + elif key == "subType": + suggest = "sub_type" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ApiMetaData. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ApiMetaData.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ApiMetaData.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + created_at: Optional[str] = None, + last_modified_at: Optional[str] = None, + sub_type: Optional[str] = None): + """ + :param str created_at: Time at which the API proxy was created, in milliseconds since epoch. + :param str last_modified_at: Time at which the API proxy was most recently modified, in milliseconds since epoch. + :param str sub_type: The type of entity described + """ + if created_at is not None: + pulumi.set(__self__, "created_at", created_at) + if last_modified_at is not None: + pulumi.set(__self__, "last_modified_at", last_modified_at) + if sub_type is not None: + pulumi.set(__self__, "sub_type", sub_type) + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> Optional[str]: + """ + Time at which the API proxy was created, in milliseconds since epoch. + """ + return pulumi.get(self, "created_at") + + @property + @pulumi.getter(name="lastModifiedAt") + def last_modified_at(self) -> Optional[str]: + """ + Time at which the API proxy was most recently modified, in milliseconds since epoch. + """ + return pulumi.get(self, "last_modified_at") + + @property + @pulumi.getter(name="subType") + def sub_type(self) -> Optional[str]: + """ + The type of entity described + """ + return pulumi.get(self, "sub_type") + + @pulumi.output_type class AppGroupAttribute(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_gcp/applicationintegration/auth_config.py b/sdk/python/pulumi_gcp/applicationintegration/auth_config.py index 3736cdd0c7..54c5ee96d4 100644 --- a/sdk/python/pulumi_gcp/applicationintegration/auth_config.py +++ b/sdk/python/pulumi_gcp/applicationintegration/auth_config.py @@ -592,10 +592,22 @@ def __init__(__self__, AuthConfig can be imported using any of these accepted formats: + * `{{project}}/{{name}}` + + * `{{project}} {{name}}` + * `{{name}}` When using the `pulumi import` command, AuthConfig can be imported using one of the formats above. For example: + ```sh + $ pulumi import gcp:applicationintegration/authConfig:AuthConfig default {{project}}/{{name}} + ``` + + ```sh + $ pulumi import gcp:applicationintegration/authConfig:AuthConfig default "{{project}} {{name}}" + ``` + ```sh $ pulumi import gcp:applicationintegration/authConfig:AuthConfig default {{name}} ``` @@ -664,10 +676,22 @@ def __init__(__self__, AuthConfig can be imported using any of these accepted formats: + * `{{project}}/{{name}}` + + * `{{project}} {{name}}` + * `{{name}}` When using the `pulumi import` command, AuthConfig can be imported using one of the formats above. For example: + ```sh + $ pulumi import gcp:applicationintegration/authConfig:AuthConfig default {{project}}/{{name}} + ``` + + ```sh + $ pulumi import gcp:applicationintegration/authConfig:AuthConfig default "{{project}} {{name}}" + ``` + ```sh $ pulumi import gcp:applicationintegration/authConfig:AuthConfig default {{name}} ``` diff --git a/sdk/python/pulumi_gcp/backupdisasterrecovery/__init__.py b/sdk/python/pulumi_gcp/backupdisasterrecovery/__init__.py index 5d97d6d4ef..5e12ebb712 100644 --- a/sdk/python/pulumi_gcp/backupdisasterrecovery/__init__.py +++ b/sdk/python/pulumi_gcp/backupdisasterrecovery/__init__.py @@ -5,7 +5,11 @@ from .. import _utilities import typing # Export this package's modules as members: +from .backup_plan import * +from .backup_plan_association import * from .backup_vault import * +from .get_backup_plan import * +from .get_backup_plan_association import * from .get_management_server import * from .management_server import * from ._inputs import * diff --git a/sdk/python/pulumi_gcp/backupdisasterrecovery/_inputs.py b/sdk/python/pulumi_gcp/backupdisasterrecovery/_inputs.py index 463d186436..5172f7df22 100644 --- a/sdk/python/pulumi_gcp/backupdisasterrecovery/_inputs.py +++ b/sdk/python/pulumi_gcp/backupdisasterrecovery/_inputs.py @@ -15,6 +15,18 @@ from .. import _utilities __all__ = [ + 'BackupPlanAssociationRulesConfigInfoArgs', + 'BackupPlanAssociationRulesConfigInfoArgsDict', + 'BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs', + 'BackupPlanAssociationRulesConfigInfoLastBackupErrorArgsDict', + 'BackupPlanBackupRuleArgs', + 'BackupPlanBackupRuleArgsDict', + 'BackupPlanBackupRuleStandardScheduleArgs', + 'BackupPlanBackupRuleStandardScheduleArgsDict', + 'BackupPlanBackupRuleStandardScheduleBackupWindowArgs', + 'BackupPlanBackupRuleStandardScheduleBackupWindowArgsDict', + 'BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs', + 'BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgsDict', 'ManagementServerManagementUriArgs', 'ManagementServerManagementUriArgsDict', 'ManagementServerNetworkArgs', @@ -23,6 +35,527 @@ MYPY = False +if not MYPY: + class BackupPlanAssociationRulesConfigInfoArgsDict(TypedDict): + last_backup_errors: NotRequired[pulumi.Input[Sequence[pulumi.Input['BackupPlanAssociationRulesConfigInfoLastBackupErrorArgsDict']]]] + """ + (Output) + google.rpc.Status object to store the last backup error + Structure is documented below. + """ + last_backup_state: NotRequired[pulumi.Input[str]] + """ + (Output) + State of last backup taken. + """ + rule_id: NotRequired[pulumi.Input[str]] + """ + (Output) + Backup Rule id fetched from backup plan. + """ +elif False: + BackupPlanAssociationRulesConfigInfoArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class BackupPlanAssociationRulesConfigInfoArgs: + def __init__(__self__, *, + last_backup_errors: Optional[pulumi.Input[Sequence[pulumi.Input['BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs']]]] = None, + last_backup_state: Optional[pulumi.Input[str]] = None, + rule_id: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input['BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs']]] last_backup_errors: (Output) + google.rpc.Status object to store the last backup error + Structure is documented below. + :param pulumi.Input[str] last_backup_state: (Output) + State of last backup taken. + :param pulumi.Input[str] rule_id: (Output) + Backup Rule id fetched from backup plan. + """ + if last_backup_errors is not None: + pulumi.set(__self__, "last_backup_errors", last_backup_errors) + if last_backup_state is not None: + pulumi.set(__self__, "last_backup_state", last_backup_state) + if rule_id is not None: + pulumi.set(__self__, "rule_id", rule_id) + + @property + @pulumi.getter(name="lastBackupErrors") + def last_backup_errors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs']]]]: + """ + (Output) + google.rpc.Status object to store the last backup error + Structure is documented below. + """ + return pulumi.get(self, "last_backup_errors") + + @last_backup_errors.setter + def last_backup_errors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs']]]]): + pulumi.set(self, "last_backup_errors", value) + + @property + @pulumi.getter(name="lastBackupState") + def last_backup_state(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + State of last backup taken. + """ + return pulumi.get(self, "last_backup_state") + + @last_backup_state.setter + def last_backup_state(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "last_backup_state", value) + + @property + @pulumi.getter(name="ruleId") + def rule_id(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + Backup Rule id fetched from backup plan. + """ + return pulumi.get(self, "rule_id") + + @rule_id.setter + def rule_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "rule_id", value) + + +if not MYPY: + class BackupPlanAssociationRulesConfigInfoLastBackupErrorArgsDict(TypedDict): + code: NotRequired[pulumi.Input[float]] + """ + (Output) + The status code, which should be an enum value of [google.rpc.Code] + """ + message: NotRequired[pulumi.Input[str]] + """ + (Output) + A developer-facing error message, which should be in English. + """ +elif False: + BackupPlanAssociationRulesConfigInfoLastBackupErrorArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs: + def __init__(__self__, *, + code: Optional[pulumi.Input[float]] = None, + message: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[float] code: (Output) + The status code, which should be an enum value of [google.rpc.Code] + :param pulumi.Input[str] message: (Output) + A developer-facing error message, which should be in English. + """ + if code is not None: + pulumi.set(__self__, "code", code) + if message is not None: + pulumi.set(__self__, "message", message) + + @property + @pulumi.getter + def code(self) -> Optional[pulumi.Input[float]]: + """ + (Output) + The status code, which should be an enum value of [google.rpc.Code] + """ + return pulumi.get(self, "code") + + @code.setter + def code(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "code", value) + + @property + @pulumi.getter + def message(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + A developer-facing error message, which should be in English. + """ + return pulumi.get(self, "message") + + @message.setter + def message(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "message", value) + + +if not MYPY: + class BackupPlanBackupRuleArgsDict(TypedDict): + backup_retention_days: pulumi.Input[int] + """ + Configures the duration for which backup data will be kept. The value should be greater than or equal to minimum enforced retention of the backup vault. + """ + rule_id: pulumi.Input[str] + """ + The unique ID of this `BackupRule`. The `rule_id` is unique per `BackupPlan`. + """ + standard_schedule: pulumi.Input['BackupPlanBackupRuleStandardScheduleArgsDict'] + """ + StandardSchedule defines a schedule that runs within the confines of a defined window of days. + Structure is documented below. + """ +elif False: + BackupPlanBackupRuleArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class BackupPlanBackupRuleArgs: + def __init__(__self__, *, + backup_retention_days: pulumi.Input[int], + rule_id: pulumi.Input[str], + standard_schedule: pulumi.Input['BackupPlanBackupRuleStandardScheduleArgs']): + """ + :param pulumi.Input[int] backup_retention_days: Configures the duration for which backup data will be kept. The value should be greater than or equal to minimum enforced retention of the backup vault. + :param pulumi.Input[str] rule_id: The unique ID of this `BackupRule`. The `rule_id` is unique per `BackupPlan`. + :param pulumi.Input['BackupPlanBackupRuleStandardScheduleArgs'] standard_schedule: StandardSchedule defines a schedule that runs within the confines of a defined window of days. + Structure is documented below. + """ + pulumi.set(__self__, "backup_retention_days", backup_retention_days) + pulumi.set(__self__, "rule_id", rule_id) + pulumi.set(__self__, "standard_schedule", standard_schedule) + + @property + @pulumi.getter(name="backupRetentionDays") + def backup_retention_days(self) -> pulumi.Input[int]: + """ + Configures the duration for which backup data will be kept. The value should be greater than or equal to minimum enforced retention of the backup vault. + """ + return pulumi.get(self, "backup_retention_days") + + @backup_retention_days.setter + def backup_retention_days(self, value: pulumi.Input[int]): + pulumi.set(self, "backup_retention_days", value) + + @property + @pulumi.getter(name="ruleId") + def rule_id(self) -> pulumi.Input[str]: + """ + The unique ID of this `BackupRule`. The `rule_id` is unique per `BackupPlan`. + """ + return pulumi.get(self, "rule_id") + + @rule_id.setter + def rule_id(self, value: pulumi.Input[str]): + pulumi.set(self, "rule_id", value) + + @property + @pulumi.getter(name="standardSchedule") + def standard_schedule(self) -> pulumi.Input['BackupPlanBackupRuleStandardScheduleArgs']: + """ + StandardSchedule defines a schedule that runs within the confines of a defined window of days. + Structure is documented below. + """ + return pulumi.get(self, "standard_schedule") + + @standard_schedule.setter + def standard_schedule(self, value: pulumi.Input['BackupPlanBackupRuleStandardScheduleArgs']): + pulumi.set(self, "standard_schedule", value) + + +if not MYPY: + class BackupPlanBackupRuleStandardScheduleArgsDict(TypedDict): + recurrence_type: pulumi.Input[str] + """ + RecurrenceType enumerates the applicable periodicity for the schedule. + Possible values are: `HOURLY`, `DAILY`, `WEEKLY`, `MONTHLY`, `YEARLY`. + """ + time_zone: pulumi.Input[str] + """ + The time zone to be used when interpreting the schedule. + """ + backup_window: NotRequired[pulumi.Input['BackupPlanBackupRuleStandardScheduleBackupWindowArgsDict']] + """ + A BackupWindow defines the window of the day during which backup jobs will run. Jobs are queued at the beginning of the window and will be marked as + `NOT_RUN` if they do not start by the end of the window. + Structure is documented below. + """ + days_of_months: NotRequired[pulumi.Input[Sequence[pulumi.Input[int]]]] + """ + Specifies days of months like 1, 5, or 14 on which jobs will run. + """ + days_of_weeks: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for `recurrence_type`, `WEEKLY` and is not applicable otherwise. + Each value may be one of: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`. + """ + hourly_frequency: NotRequired[pulumi.Input[int]] + """ + Specifies frequency for hourly backups. An hourly frequency of 2 means jobs will run every 2 hours from start time till end time defined. + This is required for `recurrence_type`, `HOURLY` and is not applicable otherwise. + """ + months: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + Specifies values of months + Each value may be one of: `MONTH_UNSPECIFIED`, `JANUARY`, `FEBRUARY`, `MARCH`, `APRIL`, `MAY`, `JUNE`, `JULY`, `AUGUST`, `SEPTEMBER`, `OCTOBER`, `NOVEMBER`, `DECEMBER`. + """ + week_day_of_month: NotRequired[pulumi.Input['BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgsDict']] + """ + Specifies a week day of the month like FIRST SUNDAY or LAST MONDAY, on which jobs will run. + Structure is documented below. + """ +elif False: + BackupPlanBackupRuleStandardScheduleArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class BackupPlanBackupRuleStandardScheduleArgs: + def __init__(__self__, *, + recurrence_type: pulumi.Input[str], + time_zone: pulumi.Input[str], + backup_window: Optional[pulumi.Input['BackupPlanBackupRuleStandardScheduleBackupWindowArgs']] = None, + days_of_months: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None, + days_of_weeks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + hourly_frequency: Optional[pulumi.Input[int]] = None, + months: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + week_day_of_month: Optional[pulumi.Input['BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs']] = None): + """ + :param pulumi.Input[str] recurrence_type: RecurrenceType enumerates the applicable periodicity for the schedule. + Possible values are: `HOURLY`, `DAILY`, `WEEKLY`, `MONTHLY`, `YEARLY`. + :param pulumi.Input[str] time_zone: The time zone to be used when interpreting the schedule. + :param pulumi.Input['BackupPlanBackupRuleStandardScheduleBackupWindowArgs'] backup_window: A BackupWindow defines the window of the day during which backup jobs will run. Jobs are queued at the beginning of the window and will be marked as + `NOT_RUN` if they do not start by the end of the window. + Structure is documented below. + :param pulumi.Input[Sequence[pulumi.Input[int]]] days_of_months: Specifies days of months like 1, 5, or 14 on which jobs will run. + :param pulumi.Input[Sequence[pulumi.Input[str]]] days_of_weeks: Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for `recurrence_type`, `WEEKLY` and is not applicable otherwise. + Each value may be one of: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`. + :param pulumi.Input[int] hourly_frequency: Specifies frequency for hourly backups. An hourly frequency of 2 means jobs will run every 2 hours from start time till end time defined. + This is required for `recurrence_type`, `HOURLY` and is not applicable otherwise. + :param pulumi.Input[Sequence[pulumi.Input[str]]] months: Specifies values of months + Each value may be one of: `MONTH_UNSPECIFIED`, `JANUARY`, `FEBRUARY`, `MARCH`, `APRIL`, `MAY`, `JUNE`, `JULY`, `AUGUST`, `SEPTEMBER`, `OCTOBER`, `NOVEMBER`, `DECEMBER`. + :param pulumi.Input['BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs'] week_day_of_month: Specifies a week day of the month like FIRST SUNDAY or LAST MONDAY, on which jobs will run. + Structure is documented below. + """ + pulumi.set(__self__, "recurrence_type", recurrence_type) + pulumi.set(__self__, "time_zone", time_zone) + if backup_window is not None: + pulumi.set(__self__, "backup_window", backup_window) + if days_of_months is not None: + pulumi.set(__self__, "days_of_months", days_of_months) + if days_of_weeks is not None: + pulumi.set(__self__, "days_of_weeks", days_of_weeks) + if hourly_frequency is not None: + pulumi.set(__self__, "hourly_frequency", hourly_frequency) + if months is not None: + pulumi.set(__self__, "months", months) + if week_day_of_month is not None: + pulumi.set(__self__, "week_day_of_month", week_day_of_month) + + @property + @pulumi.getter(name="recurrenceType") + def recurrence_type(self) -> pulumi.Input[str]: + """ + RecurrenceType enumerates the applicable periodicity for the schedule. + Possible values are: `HOURLY`, `DAILY`, `WEEKLY`, `MONTHLY`, `YEARLY`. + """ + return pulumi.get(self, "recurrence_type") + + @recurrence_type.setter + def recurrence_type(self, value: pulumi.Input[str]): + pulumi.set(self, "recurrence_type", value) + + @property + @pulumi.getter(name="timeZone") + def time_zone(self) -> pulumi.Input[str]: + """ + The time zone to be used when interpreting the schedule. + """ + return pulumi.get(self, "time_zone") + + @time_zone.setter + def time_zone(self, value: pulumi.Input[str]): + pulumi.set(self, "time_zone", value) + + @property + @pulumi.getter(name="backupWindow") + def backup_window(self) -> Optional[pulumi.Input['BackupPlanBackupRuleStandardScheduleBackupWindowArgs']]: + """ + A BackupWindow defines the window of the day during which backup jobs will run. Jobs are queued at the beginning of the window and will be marked as + `NOT_RUN` if they do not start by the end of the window. + Structure is documented below. + """ + return pulumi.get(self, "backup_window") + + @backup_window.setter + def backup_window(self, value: Optional[pulumi.Input['BackupPlanBackupRuleStandardScheduleBackupWindowArgs']]): + pulumi.set(self, "backup_window", value) + + @property + @pulumi.getter(name="daysOfMonths") + def days_of_months(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[int]]]]: + """ + Specifies days of months like 1, 5, or 14 on which jobs will run. + """ + return pulumi.get(self, "days_of_months") + + @days_of_months.setter + def days_of_months(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]]): + pulumi.set(self, "days_of_months", value) + + @property + @pulumi.getter(name="daysOfWeeks") + def days_of_weeks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for `recurrence_type`, `WEEKLY` and is not applicable otherwise. + Each value may be one of: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`. + """ + return pulumi.get(self, "days_of_weeks") + + @days_of_weeks.setter + def days_of_weeks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "days_of_weeks", value) + + @property + @pulumi.getter(name="hourlyFrequency") + def hourly_frequency(self) -> Optional[pulumi.Input[int]]: + """ + Specifies frequency for hourly backups. An hourly frequency of 2 means jobs will run every 2 hours from start time till end time defined. + This is required for `recurrence_type`, `HOURLY` and is not applicable otherwise. + """ + return pulumi.get(self, "hourly_frequency") + + @hourly_frequency.setter + def hourly_frequency(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "hourly_frequency", value) + + @property + @pulumi.getter + def months(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Specifies values of months + Each value may be one of: `MONTH_UNSPECIFIED`, `JANUARY`, `FEBRUARY`, `MARCH`, `APRIL`, `MAY`, `JUNE`, `JULY`, `AUGUST`, `SEPTEMBER`, `OCTOBER`, `NOVEMBER`, `DECEMBER`. + """ + return pulumi.get(self, "months") + + @months.setter + def months(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "months", value) + + @property + @pulumi.getter(name="weekDayOfMonth") + def week_day_of_month(self) -> Optional[pulumi.Input['BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs']]: + """ + Specifies a week day of the month like FIRST SUNDAY or LAST MONDAY, on which jobs will run. + Structure is documented below. + """ + return pulumi.get(self, "week_day_of_month") + + @week_day_of_month.setter + def week_day_of_month(self, value: Optional[pulumi.Input['BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs']]): + pulumi.set(self, "week_day_of_month", value) + + +if not MYPY: + class BackupPlanBackupRuleStandardScheduleBackupWindowArgsDict(TypedDict): + start_hour_of_day: pulumi.Input[int] + """ + The hour of the day (0-23) when the window starts, for example, if the value of the start hour of the day is 6, that means the backup window starts at 6:00. + """ + end_hour_of_day: NotRequired[pulumi.Input[int]] + """ + The hour of the day (1-24) when the window ends, for example, if the value of end hour of the day is 10, that means the backup window end time is 10:00. + The end hour of the day should be greater than the start + + - - - + """ +elif False: + BackupPlanBackupRuleStandardScheduleBackupWindowArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class BackupPlanBackupRuleStandardScheduleBackupWindowArgs: + def __init__(__self__, *, + start_hour_of_day: pulumi.Input[int], + end_hour_of_day: Optional[pulumi.Input[int]] = None): + """ + :param pulumi.Input[int] start_hour_of_day: The hour of the day (0-23) when the window starts, for example, if the value of the start hour of the day is 6, that means the backup window starts at 6:00. + :param pulumi.Input[int] end_hour_of_day: The hour of the day (1-24) when the window ends, for example, if the value of end hour of the day is 10, that means the backup window end time is 10:00. + The end hour of the day should be greater than the start + + - - - + """ + pulumi.set(__self__, "start_hour_of_day", start_hour_of_day) + if end_hour_of_day is not None: + pulumi.set(__self__, "end_hour_of_day", end_hour_of_day) + + @property + @pulumi.getter(name="startHourOfDay") + def start_hour_of_day(self) -> pulumi.Input[int]: + """ + The hour of the day (0-23) when the window starts, for example, if the value of the start hour of the day is 6, that means the backup window starts at 6:00. + """ + return pulumi.get(self, "start_hour_of_day") + + @start_hour_of_day.setter + def start_hour_of_day(self, value: pulumi.Input[int]): + pulumi.set(self, "start_hour_of_day", value) + + @property + @pulumi.getter(name="endHourOfDay") + def end_hour_of_day(self) -> Optional[pulumi.Input[int]]: + """ + The hour of the day (1-24) when the window ends, for example, if the value of end hour of the day is 10, that means the backup window end time is 10:00. + The end hour of the day should be greater than the start + + - - - + """ + return pulumi.get(self, "end_hour_of_day") + + @end_hour_of_day.setter + def end_hour_of_day(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "end_hour_of_day", value) + + +if not MYPY: + class BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgsDict(TypedDict): + day_of_week: pulumi.Input[str] + """ + Specifies the day of the week. + Possible values are: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`. + """ + week_of_month: pulumi.Input[str] + """ + WeekOfMonth enumerates possible weeks in the month, e.g. the first, third, or last week of the month. + Possible values are: `WEEK_OF_MONTH_UNSPECIFIED`, `FIRST`, `SECOND`, `THIRD`, `FOURTH`, `LAST`. + """ +elif False: + BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs: + def __init__(__self__, *, + day_of_week: pulumi.Input[str], + week_of_month: pulumi.Input[str]): + """ + :param pulumi.Input[str] day_of_week: Specifies the day of the week. + Possible values are: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`. + :param pulumi.Input[str] week_of_month: WeekOfMonth enumerates possible weeks in the month, e.g. the first, third, or last week of the month. + Possible values are: `WEEK_OF_MONTH_UNSPECIFIED`, `FIRST`, `SECOND`, `THIRD`, `FOURTH`, `LAST`. + """ + pulumi.set(__self__, "day_of_week", day_of_week) + pulumi.set(__self__, "week_of_month", week_of_month) + + @property + @pulumi.getter(name="dayOfWeek") + def day_of_week(self) -> pulumi.Input[str]: + """ + Specifies the day of the week. + Possible values are: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`. + """ + return pulumi.get(self, "day_of_week") + + @day_of_week.setter + def day_of_week(self, value: pulumi.Input[str]): + pulumi.set(self, "day_of_week", value) + + @property + @pulumi.getter(name="weekOfMonth") + def week_of_month(self) -> pulumi.Input[str]: + """ + WeekOfMonth enumerates possible weeks in the month, e.g. the first, third, or last week of the month. + Possible values are: `WEEK_OF_MONTH_UNSPECIFIED`, `FIRST`, `SECOND`, `THIRD`, `FOURTH`, `LAST`. + """ + return pulumi.get(self, "week_of_month") + + @week_of_month.setter + def week_of_month(self, value: pulumi.Input[str]): + pulumi.set(self, "week_of_month", value) + + if not MYPY: class ManagementServerManagementUriArgsDict(TypedDict): api: NotRequired[pulumi.Input[str]] diff --git a/sdk/python/pulumi_gcp/backupdisasterrecovery/backup_plan.py b/sdk/python/pulumi_gcp/backupdisasterrecovery/backup_plan.py new file mode 100644 index 0000000000..faa3b9819f --- /dev/null +++ b/sdk/python/pulumi_gcp/backupdisasterrecovery/backup_plan.py @@ -0,0 +1,653 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['BackupPlanArgs', 'BackupPlan'] + +@pulumi.input_type +class BackupPlanArgs: + def __init__(__self__, *, + backup_plan_id: pulumi.Input[str], + backup_rules: pulumi.Input[Sequence[pulumi.Input['BackupPlanBackupRuleArgs']]], + backup_vault: pulumi.Input[str], + location: pulumi.Input[str], + resource_type: pulumi.Input[str], + description: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a BackupPlan resource. + :param pulumi.Input[str] backup_plan_id: The ID of the backup plan + :param pulumi.Input[Sequence[pulumi.Input['BackupPlanBackupRuleArgs']]] backup_rules: The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message. + Structure is documented below. + :param pulumi.Input[str] backup_vault: Backup vault where the backups gets stored using this Backup plan. + :param pulumi.Input[str] location: The location for the backup plan + :param pulumi.Input[str] resource_type: The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket". + :param pulumi.Input[str] description: The description allows for additional details about 'BackupPlan' and its use cases to be provided. + """ + pulumi.set(__self__, "backup_plan_id", backup_plan_id) + pulumi.set(__self__, "backup_rules", backup_rules) + pulumi.set(__self__, "backup_vault", backup_vault) + pulumi.set(__self__, "location", location) + pulumi.set(__self__, "resource_type", resource_type) + if description is not None: + pulumi.set(__self__, "description", description) + if project is not None: + pulumi.set(__self__, "project", project) + + @property + @pulumi.getter(name="backupPlanId") + def backup_plan_id(self) -> pulumi.Input[str]: + """ + The ID of the backup plan + """ + return pulumi.get(self, "backup_plan_id") + + @backup_plan_id.setter + def backup_plan_id(self, value: pulumi.Input[str]): + pulumi.set(self, "backup_plan_id", value) + + @property + @pulumi.getter(name="backupRules") + def backup_rules(self) -> pulumi.Input[Sequence[pulumi.Input['BackupPlanBackupRuleArgs']]]: + """ + The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message. + Structure is documented below. + """ + return pulumi.get(self, "backup_rules") + + @backup_rules.setter + def backup_rules(self, value: pulumi.Input[Sequence[pulumi.Input['BackupPlanBackupRuleArgs']]]): + pulumi.set(self, "backup_rules", value) + + @property + @pulumi.getter(name="backupVault") + def backup_vault(self) -> pulumi.Input[str]: + """ + Backup vault where the backups gets stored using this Backup plan. + """ + return pulumi.get(self, "backup_vault") + + @backup_vault.setter + def backup_vault(self, value: pulumi.Input[str]): + pulumi.set(self, "backup_vault", value) + + @property + @pulumi.getter + def location(self) -> pulumi.Input[str]: + """ + The location for the backup plan + """ + return pulumi.get(self, "location") + + @location.setter + def location(self, value: pulumi.Input[str]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter(name="resourceType") + def resource_type(self) -> pulumi.Input[str]: + """ + The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket". + """ + return pulumi.get(self, "resource_type") + + @resource_type.setter + def resource_type(self, value: pulumi.Input[str]): + pulumi.set(self, "resource_type", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + The description allows for additional details about 'BackupPlan' and its use cases to be provided. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def project(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "project") + + @project.setter + def project(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project", value) + + +@pulumi.input_type +class _BackupPlanState: + def __init__(__self__, *, + backup_plan_id: Optional[pulumi.Input[str]] = None, + backup_rules: Optional[pulumi.Input[Sequence[pulumi.Input['BackupPlanBackupRuleArgs']]]] = None, + backup_vault: Optional[pulumi.Input[str]] = None, + backup_vault_service_account: Optional[pulumi.Input[str]] = None, + create_time: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + resource_type: Optional[pulumi.Input[str]] = None, + update_time: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering BackupPlan resources. + :param pulumi.Input[str] backup_plan_id: The ID of the backup plan + :param pulumi.Input[Sequence[pulumi.Input['BackupPlanBackupRuleArgs']]] backup_rules: The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message. + Structure is documented below. + :param pulumi.Input[str] backup_vault: Backup vault where the backups gets stored using this Backup plan. + :param pulumi.Input[str] backup_vault_service_account: The Google Cloud Platform Service Account to be used by the BackupVault for taking backups. + :param pulumi.Input[str] create_time: When the `BackupPlan` was created. + :param pulumi.Input[str] description: The description allows for additional details about 'BackupPlan' and its use cases to be provided. + :param pulumi.Input[str] location: The location for the backup plan + :param pulumi.Input[str] name: The name of backup plan resource created + :param pulumi.Input[str] resource_type: The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket". + :param pulumi.Input[str] update_time: When the `BackupPlan` was last updated. + """ + if backup_plan_id is not None: + pulumi.set(__self__, "backup_plan_id", backup_plan_id) + if backup_rules is not None: + pulumi.set(__self__, "backup_rules", backup_rules) + if backup_vault is not None: + pulumi.set(__self__, "backup_vault", backup_vault) + if backup_vault_service_account is not None: + pulumi.set(__self__, "backup_vault_service_account", backup_vault_service_account) + if create_time is not None: + pulumi.set(__self__, "create_time", create_time) + if description is not None: + pulumi.set(__self__, "description", description) + if location is not None: + pulumi.set(__self__, "location", location) + if name is not None: + pulumi.set(__self__, "name", name) + if project is not None: + pulumi.set(__self__, "project", project) + if resource_type is not None: + pulumi.set(__self__, "resource_type", resource_type) + if update_time is not None: + pulumi.set(__self__, "update_time", update_time) + + @property + @pulumi.getter(name="backupPlanId") + def backup_plan_id(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the backup plan + """ + return pulumi.get(self, "backup_plan_id") + + @backup_plan_id.setter + def backup_plan_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "backup_plan_id", value) + + @property + @pulumi.getter(name="backupRules") + def backup_rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['BackupPlanBackupRuleArgs']]]]: + """ + The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message. + Structure is documented below. + """ + return pulumi.get(self, "backup_rules") + + @backup_rules.setter + def backup_rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['BackupPlanBackupRuleArgs']]]]): + pulumi.set(self, "backup_rules", value) + + @property + @pulumi.getter(name="backupVault") + def backup_vault(self) -> Optional[pulumi.Input[str]]: + """ + Backup vault where the backups gets stored using this Backup plan. + """ + return pulumi.get(self, "backup_vault") + + @backup_vault.setter + def backup_vault(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "backup_vault", value) + + @property + @pulumi.getter(name="backupVaultServiceAccount") + def backup_vault_service_account(self) -> Optional[pulumi.Input[str]]: + """ + The Google Cloud Platform Service Account to be used by the BackupVault for taking backups. + """ + return pulumi.get(self, "backup_vault_service_account") + + @backup_vault_service_account.setter + def backup_vault_service_account(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "backup_vault_service_account", value) + + @property + @pulumi.getter(name="createTime") + def create_time(self) -> Optional[pulumi.Input[str]]: + """ + When the `BackupPlan` was created. + """ + return pulumi.get(self, "create_time") + + @create_time.setter + def create_time(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "create_time", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + The description allows for additional details about 'BackupPlan' and its use cases to be provided. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def location(self) -> Optional[pulumi.Input[str]]: + """ + The location for the backup plan + """ + return pulumi.get(self, "location") + + @location.setter + def location(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of backup plan resource created + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def project(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "project") + + @project.setter + def project(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project", value) + + @property + @pulumi.getter(name="resourceType") + def resource_type(self) -> Optional[pulumi.Input[str]]: + """ + The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket". + """ + return pulumi.get(self, "resource_type") + + @resource_type.setter + def resource_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "resource_type", value) + + @property + @pulumi.getter(name="updateTime") + def update_time(self) -> Optional[pulumi.Input[str]]: + """ + When the `BackupPlan` was last updated. + """ + return pulumi.get(self, "update_time") + + @update_time.setter + def update_time(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "update_time", value) + + +class BackupPlan(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + backup_plan_id: Optional[pulumi.Input[str]] = None, + backup_rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['BackupPlanBackupRuleArgs', 'BackupPlanBackupRuleArgsDict']]]]] = None, + backup_vault: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + resource_type: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + ## Example Usage + + ### Backup Dr Backup Plan Simple + + ```python + import pulumi + import pulumi_gcp as gcp + + my_backup_vault = gcp.backupdisasterrecovery.BackupVault("my_backup_vault", + location="us-central1", + backup_vault_id="bv-bp-test", + backup_minimum_enforced_retention_duration="100000s") + my_backup_plan_1 = gcp.backupdisasterrecovery.BackupPlan("my-backup-plan-1", + location="us-central1", + backup_plan_id="backup-plan-simple-test", + resource_type="compute.googleapis.com/Instance", + backup_vault=my_backup_vault.id, + backup_rules=[{ + "rule_id": "rule-1", + "backup_retention_days": 5, + "standard_schedule": { + "recurrence_type": "HOURLY", + "hourly_frequency": 6, + "time_zone": "UTC", + "backup_window": { + "start_hour_of_day": 0, + "end_hour_of_day": 24, + }, + }, + }]) + ``` + + ## Import + + BackupPlan can be imported using any of these accepted formats: + + * `projects/{{project}}/locations/{{location}}/backupPlans/{{backup_plan_id}}` + + * `{{project}}/{{location}}/{{backup_plan_id}}` + + * `{{location}}/{{backup_plan_id}}` + + When using the `pulumi import` command, BackupPlan can be imported using one of the formats above. For example: + + ```sh + $ pulumi import gcp:backupdisasterrecovery/backupPlan:BackupPlan default projects/{{project}}/locations/{{location}}/backupPlans/{{backup_plan_id}} + ``` + + ```sh + $ pulumi import gcp:backupdisasterrecovery/backupPlan:BackupPlan default {{project}}/{{location}}/{{backup_plan_id}} + ``` + + ```sh + $ pulumi import gcp:backupdisasterrecovery/backupPlan:BackupPlan default {{location}}/{{backup_plan_id}} + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] backup_plan_id: The ID of the backup plan + :param pulumi.Input[Sequence[pulumi.Input[Union['BackupPlanBackupRuleArgs', 'BackupPlanBackupRuleArgsDict']]]] backup_rules: The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message. + Structure is documented below. + :param pulumi.Input[str] backup_vault: Backup vault where the backups gets stored using this Backup plan. + :param pulumi.Input[str] description: The description allows for additional details about 'BackupPlan' and its use cases to be provided. + :param pulumi.Input[str] location: The location for the backup plan + :param pulumi.Input[str] resource_type: The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket". + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: BackupPlanArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + ## Example Usage + + ### Backup Dr Backup Plan Simple + + ```python + import pulumi + import pulumi_gcp as gcp + + my_backup_vault = gcp.backupdisasterrecovery.BackupVault("my_backup_vault", + location="us-central1", + backup_vault_id="bv-bp-test", + backup_minimum_enforced_retention_duration="100000s") + my_backup_plan_1 = gcp.backupdisasterrecovery.BackupPlan("my-backup-plan-1", + location="us-central1", + backup_plan_id="backup-plan-simple-test", + resource_type="compute.googleapis.com/Instance", + backup_vault=my_backup_vault.id, + backup_rules=[{ + "rule_id": "rule-1", + "backup_retention_days": 5, + "standard_schedule": { + "recurrence_type": "HOURLY", + "hourly_frequency": 6, + "time_zone": "UTC", + "backup_window": { + "start_hour_of_day": 0, + "end_hour_of_day": 24, + }, + }, + }]) + ``` + + ## Import + + BackupPlan can be imported using any of these accepted formats: + + * `projects/{{project}}/locations/{{location}}/backupPlans/{{backup_plan_id}}` + + * `{{project}}/{{location}}/{{backup_plan_id}}` + + * `{{location}}/{{backup_plan_id}}` + + When using the `pulumi import` command, BackupPlan can be imported using one of the formats above. For example: + + ```sh + $ pulumi import gcp:backupdisasterrecovery/backupPlan:BackupPlan default projects/{{project}}/locations/{{location}}/backupPlans/{{backup_plan_id}} + ``` + + ```sh + $ pulumi import gcp:backupdisasterrecovery/backupPlan:BackupPlan default {{project}}/{{location}}/{{backup_plan_id}} + ``` + + ```sh + $ pulumi import gcp:backupdisasterrecovery/backupPlan:BackupPlan default {{location}}/{{backup_plan_id}} + ``` + + :param str resource_name: The name of the resource. + :param BackupPlanArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(BackupPlanArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + backup_plan_id: Optional[pulumi.Input[str]] = None, + backup_rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['BackupPlanBackupRuleArgs', 'BackupPlanBackupRuleArgsDict']]]]] = None, + backup_vault: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + resource_type: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = BackupPlanArgs.__new__(BackupPlanArgs) + + if backup_plan_id is None and not opts.urn: + raise TypeError("Missing required property 'backup_plan_id'") + __props__.__dict__["backup_plan_id"] = backup_plan_id + if backup_rules is None and not opts.urn: + raise TypeError("Missing required property 'backup_rules'") + __props__.__dict__["backup_rules"] = backup_rules + if backup_vault is None and not opts.urn: + raise TypeError("Missing required property 'backup_vault'") + __props__.__dict__["backup_vault"] = backup_vault + __props__.__dict__["description"] = description + if location is None and not opts.urn: + raise TypeError("Missing required property 'location'") + __props__.__dict__["location"] = location + __props__.__dict__["project"] = project + if resource_type is None and not opts.urn: + raise TypeError("Missing required property 'resource_type'") + __props__.__dict__["resource_type"] = resource_type + __props__.__dict__["backup_vault_service_account"] = None + __props__.__dict__["create_time"] = None + __props__.__dict__["name"] = None + __props__.__dict__["update_time"] = None + super(BackupPlan, __self__).__init__( + 'gcp:backupdisasterrecovery/backupPlan:BackupPlan', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + backup_plan_id: Optional[pulumi.Input[str]] = None, + backup_rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['BackupPlanBackupRuleArgs', 'BackupPlanBackupRuleArgsDict']]]]] = None, + backup_vault: Optional[pulumi.Input[str]] = None, + backup_vault_service_account: Optional[pulumi.Input[str]] = None, + create_time: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + resource_type: Optional[pulumi.Input[str]] = None, + update_time: Optional[pulumi.Input[str]] = None) -> 'BackupPlan': + """ + Get an existing BackupPlan resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] backup_plan_id: The ID of the backup plan + :param pulumi.Input[Sequence[pulumi.Input[Union['BackupPlanBackupRuleArgs', 'BackupPlanBackupRuleArgsDict']]]] backup_rules: The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message. + Structure is documented below. + :param pulumi.Input[str] backup_vault: Backup vault where the backups gets stored using this Backup plan. + :param pulumi.Input[str] backup_vault_service_account: The Google Cloud Platform Service Account to be used by the BackupVault for taking backups. + :param pulumi.Input[str] create_time: When the `BackupPlan` was created. + :param pulumi.Input[str] description: The description allows for additional details about 'BackupPlan' and its use cases to be provided. + :param pulumi.Input[str] location: The location for the backup plan + :param pulumi.Input[str] name: The name of backup plan resource created + :param pulumi.Input[str] resource_type: The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket". + :param pulumi.Input[str] update_time: When the `BackupPlan` was last updated. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _BackupPlanState.__new__(_BackupPlanState) + + __props__.__dict__["backup_plan_id"] = backup_plan_id + __props__.__dict__["backup_rules"] = backup_rules + __props__.__dict__["backup_vault"] = backup_vault + __props__.__dict__["backup_vault_service_account"] = backup_vault_service_account + __props__.__dict__["create_time"] = create_time + __props__.__dict__["description"] = description + __props__.__dict__["location"] = location + __props__.__dict__["name"] = name + __props__.__dict__["project"] = project + __props__.__dict__["resource_type"] = resource_type + __props__.__dict__["update_time"] = update_time + return BackupPlan(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="backupPlanId") + def backup_plan_id(self) -> pulumi.Output[str]: + """ + The ID of the backup plan + """ + return pulumi.get(self, "backup_plan_id") + + @property + @pulumi.getter(name="backupRules") + def backup_rules(self) -> pulumi.Output[Sequence['outputs.BackupPlanBackupRule']]: + """ + The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message. + Structure is documented below. + """ + return pulumi.get(self, "backup_rules") + + @property + @pulumi.getter(name="backupVault") + def backup_vault(self) -> pulumi.Output[str]: + """ + Backup vault where the backups gets stored using this Backup plan. + """ + return pulumi.get(self, "backup_vault") + + @property + @pulumi.getter(name="backupVaultServiceAccount") + def backup_vault_service_account(self) -> pulumi.Output[str]: + """ + The Google Cloud Platform Service Account to be used by the BackupVault for taking backups. + """ + return pulumi.get(self, "backup_vault_service_account") + + @property + @pulumi.getter(name="createTime") + def create_time(self) -> pulumi.Output[str]: + """ + When the `BackupPlan` was created. + """ + return pulumi.get(self, "create_time") + + @property + @pulumi.getter + def description(self) -> pulumi.Output[Optional[str]]: + """ + The description allows for additional details about 'BackupPlan' and its use cases to be provided. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter + def location(self) -> pulumi.Output[str]: + """ + The location for the backup plan + """ + return pulumi.get(self, "location") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + The name of backup plan resource created + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def project(self) -> pulumi.Output[str]: + return pulumi.get(self, "project") + + @property + @pulumi.getter(name="resourceType") + def resource_type(self) -> pulumi.Output[str]: + """ + The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket". + """ + return pulumi.get(self, "resource_type") + + @property + @pulumi.getter(name="updateTime") + def update_time(self) -> pulumi.Output[str]: + """ + When the `BackupPlan` was last updated. + """ + return pulumi.get(self, "update_time") + diff --git a/sdk/python/pulumi_gcp/backupdisasterrecovery/backup_plan_association.py b/sdk/python/pulumi_gcp/backupdisasterrecovery/backup_plan_association.py new file mode 100644 index 0000000000..459ef22084 --- /dev/null +++ b/sdk/python/pulumi_gcp/backupdisasterrecovery/backup_plan_association.py @@ -0,0 +1,766 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['BackupPlanAssociationArgs', 'BackupPlanAssociation'] + +@pulumi.input_type +class BackupPlanAssociationArgs: + def __init__(__self__, *, + backup_plan: pulumi.Input[str], + backup_plan_association_id: pulumi.Input[str], + location: pulumi.Input[str], + resource: pulumi.Input[str], + resource_type: pulumi.Input[str], + project: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a BackupPlanAssociation resource. + :param pulumi.Input[str] backup_plan: The BP with which resource needs to be created + :param pulumi.Input[str] backup_plan_association_id: The id of backupplan association + + + - - - + :param pulumi.Input[str] location: The location for the backupplan association + :param pulumi.Input[str] resource: The resource for which BPA needs to be created + :param pulumi.Input[str] resource_type: The resource type of workload on which backupplan is applied + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + """ + pulumi.set(__self__, "backup_plan", backup_plan) + pulumi.set(__self__, "backup_plan_association_id", backup_plan_association_id) + pulumi.set(__self__, "location", location) + pulumi.set(__self__, "resource", resource) + pulumi.set(__self__, "resource_type", resource_type) + if project is not None: + pulumi.set(__self__, "project", project) + + @property + @pulumi.getter(name="backupPlan") + def backup_plan(self) -> pulumi.Input[str]: + """ + The BP with which resource needs to be created + """ + return pulumi.get(self, "backup_plan") + + @backup_plan.setter + def backup_plan(self, value: pulumi.Input[str]): + pulumi.set(self, "backup_plan", value) + + @property + @pulumi.getter(name="backupPlanAssociationId") + def backup_plan_association_id(self) -> pulumi.Input[str]: + """ + The id of backupplan association + + + - - - + """ + return pulumi.get(self, "backup_plan_association_id") + + @backup_plan_association_id.setter + def backup_plan_association_id(self, value: pulumi.Input[str]): + pulumi.set(self, "backup_plan_association_id", value) + + @property + @pulumi.getter + def location(self) -> pulumi.Input[str]: + """ + The location for the backupplan association + """ + return pulumi.get(self, "location") + + @location.setter + def location(self, value: pulumi.Input[str]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter + def resource(self) -> pulumi.Input[str]: + """ + The resource for which BPA needs to be created + """ + return pulumi.get(self, "resource") + + @resource.setter + def resource(self, value: pulumi.Input[str]): + pulumi.set(self, "resource", value) + + @property + @pulumi.getter(name="resourceType") + def resource_type(self) -> pulumi.Input[str]: + """ + The resource type of workload on which backupplan is applied + """ + return pulumi.get(self, "resource_type") + + @resource_type.setter + def resource_type(self, value: pulumi.Input[str]): + pulumi.set(self, "resource_type", value) + + @property + @pulumi.getter + def project(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + """ + return pulumi.get(self, "project") + + @project.setter + def project(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project", value) + + +@pulumi.input_type +class _BackupPlanAssociationState: + def __init__(__self__, *, + backup_plan: Optional[pulumi.Input[str]] = None, + backup_plan_association_id: Optional[pulumi.Input[str]] = None, + create_time: Optional[pulumi.Input[str]] = None, + data_source: Optional[pulumi.Input[str]] = None, + last_successful_backup_consistency_time: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + resource: Optional[pulumi.Input[str]] = None, + resource_type: Optional[pulumi.Input[str]] = None, + rules_config_infos: Optional[pulumi.Input[Sequence[pulumi.Input['BackupPlanAssociationRulesConfigInfoArgs']]]] = None, + update_time: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering BackupPlanAssociation resources. + :param pulumi.Input[str] backup_plan: The BP with which resource needs to be created + :param pulumi.Input[str] backup_plan_association_id: The id of backupplan association + + + - - - + :param pulumi.Input[str] create_time: The time when the instance was created + :param pulumi.Input[str] data_source: Resource name of data source which will be used as storage location for backups taken + :param pulumi.Input[str] last_successful_backup_consistency_time: The point in time when the last successful backup was captured from the source + :param pulumi.Input[str] location: The location for the backupplan association + :param pulumi.Input[str] name: The name of backup plan association resource created + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + :param pulumi.Input[str] resource: The resource for which BPA needs to be created + :param pulumi.Input[str] resource_type: The resource type of workload on which backupplan is applied + :param pulumi.Input[Sequence[pulumi.Input['BackupPlanAssociationRulesConfigInfoArgs']]] rules_config_infos: Message for rules config info + Structure is documented below. + :param pulumi.Input[str] update_time: The time when the instance was updated. + """ + if backup_plan is not None: + pulumi.set(__self__, "backup_plan", backup_plan) + if backup_plan_association_id is not None: + pulumi.set(__self__, "backup_plan_association_id", backup_plan_association_id) + if create_time is not None: + pulumi.set(__self__, "create_time", create_time) + if data_source is not None: + pulumi.set(__self__, "data_source", data_source) + if last_successful_backup_consistency_time is not None: + pulumi.set(__self__, "last_successful_backup_consistency_time", last_successful_backup_consistency_time) + if location is not None: + pulumi.set(__self__, "location", location) + if name is not None: + pulumi.set(__self__, "name", name) + if project is not None: + pulumi.set(__self__, "project", project) + if resource is not None: + pulumi.set(__self__, "resource", resource) + if resource_type is not None: + pulumi.set(__self__, "resource_type", resource_type) + if rules_config_infos is not None: + pulumi.set(__self__, "rules_config_infos", rules_config_infos) + if update_time is not None: + pulumi.set(__self__, "update_time", update_time) + + @property + @pulumi.getter(name="backupPlan") + def backup_plan(self) -> Optional[pulumi.Input[str]]: + """ + The BP with which resource needs to be created + """ + return pulumi.get(self, "backup_plan") + + @backup_plan.setter + def backup_plan(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "backup_plan", value) + + @property + @pulumi.getter(name="backupPlanAssociationId") + def backup_plan_association_id(self) -> Optional[pulumi.Input[str]]: + """ + The id of backupplan association + + + - - - + """ + return pulumi.get(self, "backup_plan_association_id") + + @backup_plan_association_id.setter + def backup_plan_association_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "backup_plan_association_id", value) + + @property + @pulumi.getter(name="createTime") + def create_time(self) -> Optional[pulumi.Input[str]]: + """ + The time when the instance was created + """ + return pulumi.get(self, "create_time") + + @create_time.setter + def create_time(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "create_time", value) + + @property + @pulumi.getter(name="dataSource") + def data_source(self) -> Optional[pulumi.Input[str]]: + """ + Resource name of data source which will be used as storage location for backups taken + """ + return pulumi.get(self, "data_source") + + @data_source.setter + def data_source(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "data_source", value) + + @property + @pulumi.getter(name="lastSuccessfulBackupConsistencyTime") + def last_successful_backup_consistency_time(self) -> Optional[pulumi.Input[str]]: + """ + The point in time when the last successful backup was captured from the source + """ + return pulumi.get(self, "last_successful_backup_consistency_time") + + @last_successful_backup_consistency_time.setter + def last_successful_backup_consistency_time(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "last_successful_backup_consistency_time", value) + + @property + @pulumi.getter + def location(self) -> Optional[pulumi.Input[str]]: + """ + The location for the backupplan association + """ + return pulumi.get(self, "location") + + @location.setter + def location(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of backup plan association resource created + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def project(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + """ + return pulumi.get(self, "project") + + @project.setter + def project(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project", value) + + @property + @pulumi.getter + def resource(self) -> Optional[pulumi.Input[str]]: + """ + The resource for which BPA needs to be created + """ + return pulumi.get(self, "resource") + + @resource.setter + def resource(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "resource", value) + + @property + @pulumi.getter(name="resourceType") + def resource_type(self) -> Optional[pulumi.Input[str]]: + """ + The resource type of workload on which backupplan is applied + """ + return pulumi.get(self, "resource_type") + + @resource_type.setter + def resource_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "resource_type", value) + + @property + @pulumi.getter(name="rulesConfigInfos") + def rules_config_infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['BackupPlanAssociationRulesConfigInfoArgs']]]]: + """ + Message for rules config info + Structure is documented below. + """ + return pulumi.get(self, "rules_config_infos") + + @rules_config_infos.setter + def rules_config_infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['BackupPlanAssociationRulesConfigInfoArgs']]]]): + pulumi.set(self, "rules_config_infos", value) + + @property + @pulumi.getter(name="updateTime") + def update_time(self) -> Optional[pulumi.Input[str]]: + """ + The time when the instance was updated. + """ + return pulumi.get(self, "update_time") + + @update_time.setter + def update_time(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "update_time", value) + + +class BackupPlanAssociation(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + backup_plan: Optional[pulumi.Input[str]] = None, + backup_plan_association_id: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + resource: Optional[pulumi.Input[str]] = None, + resource_type: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + ## Example Usage + + ### Backup Dr Bpa + + ```python + import pulumi + import pulumi_gcp as gcp + + my_sa = gcp.serviceaccount.Account("mySA", + account_id="my-custom", + display_name="Custom SA for VM Instance") + myinstance = gcp.compute.Instance("myinstance", + network_interfaces=[{ + "access_configs": [{}], + "network": "default", + }], + name="test-instance", + machine_type="n2-standard-2", + zone="us-central1-a", + boot_disk={ + "initialize_params": { + "image": "debian-cloud/debian-11", + "labels": { + "my_label": "value", + }, + }, + }, + scratch_disks=[{ + "interface": "NVME", + }], + service_account={ + "email": my_sa.email, + "scopes": ["cloud-platform"], + }) + bv1 = gcp.backupdisasterrecovery.BackupVault("bv1", + location="us-central1", + backup_vault_id="bv-bpa", + backup_minimum_enforced_retention_duration="100000s", + force_delete=True) + bp1 = gcp.backupdisasterrecovery.BackupPlan("bp1", + location="us-central1", + backup_plan_id="bp-bpa-test", + resource_type="compute.googleapis.com/Instance", + backup_vault=bv1.id, + backup_rules=[{ + "rule_id": "rule-1", + "backup_retention_days": 2, + "standard_schedule": { + "recurrence_type": "HOURLY", + "hourly_frequency": 6, + "time_zone": "UTC", + "backup_window": { + "start_hour_of_day": 12, + "end_hour_of_day": 18, + }, + }, + }]) + my_backup_plan_association = gcp.backupdisasterrecovery.BackupPlanAssociation("my-backup-plan-association", + location="us-central1", + resource_type="compute.googleapis.com/Instance", + backup_plan_association_id="my-bpa", + resource=myinstance.id, + backup_plan=bp1.name) + ``` + + ## Import + + BackupPlanAssociation can be imported using any of these accepted formats: + + * `projects/{{project}}/locations/{{location}}/backupPlanAssociations/{{backup_plan_association_id}}` + + * `{{project}}/{{location}}/{{backup_plan_association_id}}` + + * `{{location}}/{{backup_plan_association_id}}` + + When using the `pulumi import` command, BackupPlanAssociation can be imported using one of the formats above. For example: + + ```sh + $ pulumi import gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation default projects/{{project}}/locations/{{location}}/backupPlanAssociations/{{backup_plan_association_id}} + ``` + + ```sh + $ pulumi import gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation default {{project}}/{{location}}/{{backup_plan_association_id}} + ``` + + ```sh + $ pulumi import gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation default {{location}}/{{backup_plan_association_id}} + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] backup_plan: The BP with which resource needs to be created + :param pulumi.Input[str] backup_plan_association_id: The id of backupplan association + + + - - - + :param pulumi.Input[str] location: The location for the backupplan association + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + :param pulumi.Input[str] resource: The resource for which BPA needs to be created + :param pulumi.Input[str] resource_type: The resource type of workload on which backupplan is applied + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: BackupPlanAssociationArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + ## Example Usage + + ### Backup Dr Bpa + + ```python + import pulumi + import pulumi_gcp as gcp + + my_sa = gcp.serviceaccount.Account("mySA", + account_id="my-custom", + display_name="Custom SA for VM Instance") + myinstance = gcp.compute.Instance("myinstance", + network_interfaces=[{ + "access_configs": [{}], + "network": "default", + }], + name="test-instance", + machine_type="n2-standard-2", + zone="us-central1-a", + boot_disk={ + "initialize_params": { + "image": "debian-cloud/debian-11", + "labels": { + "my_label": "value", + }, + }, + }, + scratch_disks=[{ + "interface": "NVME", + }], + service_account={ + "email": my_sa.email, + "scopes": ["cloud-platform"], + }) + bv1 = gcp.backupdisasterrecovery.BackupVault("bv1", + location="us-central1", + backup_vault_id="bv-bpa", + backup_minimum_enforced_retention_duration="100000s", + force_delete=True) + bp1 = gcp.backupdisasterrecovery.BackupPlan("bp1", + location="us-central1", + backup_plan_id="bp-bpa-test", + resource_type="compute.googleapis.com/Instance", + backup_vault=bv1.id, + backup_rules=[{ + "rule_id": "rule-1", + "backup_retention_days": 2, + "standard_schedule": { + "recurrence_type": "HOURLY", + "hourly_frequency": 6, + "time_zone": "UTC", + "backup_window": { + "start_hour_of_day": 12, + "end_hour_of_day": 18, + }, + }, + }]) + my_backup_plan_association = gcp.backupdisasterrecovery.BackupPlanAssociation("my-backup-plan-association", + location="us-central1", + resource_type="compute.googleapis.com/Instance", + backup_plan_association_id="my-bpa", + resource=myinstance.id, + backup_plan=bp1.name) + ``` + + ## Import + + BackupPlanAssociation can be imported using any of these accepted formats: + + * `projects/{{project}}/locations/{{location}}/backupPlanAssociations/{{backup_plan_association_id}}` + + * `{{project}}/{{location}}/{{backup_plan_association_id}}` + + * `{{location}}/{{backup_plan_association_id}}` + + When using the `pulumi import` command, BackupPlanAssociation can be imported using one of the formats above. For example: + + ```sh + $ pulumi import gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation default projects/{{project}}/locations/{{location}}/backupPlanAssociations/{{backup_plan_association_id}} + ``` + + ```sh + $ pulumi import gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation default {{project}}/{{location}}/{{backup_plan_association_id}} + ``` + + ```sh + $ pulumi import gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation default {{location}}/{{backup_plan_association_id}} + ``` + + :param str resource_name: The name of the resource. + :param BackupPlanAssociationArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(BackupPlanAssociationArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + backup_plan: Optional[pulumi.Input[str]] = None, + backup_plan_association_id: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + resource: Optional[pulumi.Input[str]] = None, + resource_type: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = BackupPlanAssociationArgs.__new__(BackupPlanAssociationArgs) + + if backup_plan is None and not opts.urn: + raise TypeError("Missing required property 'backup_plan'") + __props__.__dict__["backup_plan"] = backup_plan + if backup_plan_association_id is None and not opts.urn: + raise TypeError("Missing required property 'backup_plan_association_id'") + __props__.__dict__["backup_plan_association_id"] = backup_plan_association_id + if location is None and not opts.urn: + raise TypeError("Missing required property 'location'") + __props__.__dict__["location"] = location + __props__.__dict__["project"] = project + if resource is None and not opts.urn: + raise TypeError("Missing required property 'resource'") + __props__.__dict__["resource"] = resource + if resource_type is None and not opts.urn: + raise TypeError("Missing required property 'resource_type'") + __props__.__dict__["resource_type"] = resource_type + __props__.__dict__["create_time"] = None + __props__.__dict__["data_source"] = None + __props__.__dict__["last_successful_backup_consistency_time"] = None + __props__.__dict__["name"] = None + __props__.__dict__["rules_config_infos"] = None + __props__.__dict__["update_time"] = None + super(BackupPlanAssociation, __self__).__init__( + 'gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + backup_plan: Optional[pulumi.Input[str]] = None, + backup_plan_association_id: Optional[pulumi.Input[str]] = None, + create_time: Optional[pulumi.Input[str]] = None, + data_source: Optional[pulumi.Input[str]] = None, + last_successful_backup_consistency_time: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + resource: Optional[pulumi.Input[str]] = None, + resource_type: Optional[pulumi.Input[str]] = None, + rules_config_infos: Optional[pulumi.Input[Sequence[pulumi.Input[Union['BackupPlanAssociationRulesConfigInfoArgs', 'BackupPlanAssociationRulesConfigInfoArgsDict']]]]] = None, + update_time: Optional[pulumi.Input[str]] = None) -> 'BackupPlanAssociation': + """ + Get an existing BackupPlanAssociation resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] backup_plan: The BP with which resource needs to be created + :param pulumi.Input[str] backup_plan_association_id: The id of backupplan association + + + - - - + :param pulumi.Input[str] create_time: The time when the instance was created + :param pulumi.Input[str] data_source: Resource name of data source which will be used as storage location for backups taken + :param pulumi.Input[str] last_successful_backup_consistency_time: The point in time when the last successful backup was captured from the source + :param pulumi.Input[str] location: The location for the backupplan association + :param pulumi.Input[str] name: The name of backup plan association resource created + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + :param pulumi.Input[str] resource: The resource for which BPA needs to be created + :param pulumi.Input[str] resource_type: The resource type of workload on which backupplan is applied + :param pulumi.Input[Sequence[pulumi.Input[Union['BackupPlanAssociationRulesConfigInfoArgs', 'BackupPlanAssociationRulesConfigInfoArgsDict']]]] rules_config_infos: Message for rules config info + Structure is documented below. + :param pulumi.Input[str] update_time: The time when the instance was updated. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _BackupPlanAssociationState.__new__(_BackupPlanAssociationState) + + __props__.__dict__["backup_plan"] = backup_plan + __props__.__dict__["backup_plan_association_id"] = backup_plan_association_id + __props__.__dict__["create_time"] = create_time + __props__.__dict__["data_source"] = data_source + __props__.__dict__["last_successful_backup_consistency_time"] = last_successful_backup_consistency_time + __props__.__dict__["location"] = location + __props__.__dict__["name"] = name + __props__.__dict__["project"] = project + __props__.__dict__["resource"] = resource + __props__.__dict__["resource_type"] = resource_type + __props__.__dict__["rules_config_infos"] = rules_config_infos + __props__.__dict__["update_time"] = update_time + return BackupPlanAssociation(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="backupPlan") + def backup_plan(self) -> pulumi.Output[str]: + """ + The BP with which resource needs to be created + """ + return pulumi.get(self, "backup_plan") + + @property + @pulumi.getter(name="backupPlanAssociationId") + def backup_plan_association_id(self) -> pulumi.Output[str]: + """ + The id of backupplan association + + + - - - + """ + return pulumi.get(self, "backup_plan_association_id") + + @property + @pulumi.getter(name="createTime") + def create_time(self) -> pulumi.Output[str]: + """ + The time when the instance was created + """ + return pulumi.get(self, "create_time") + + @property + @pulumi.getter(name="dataSource") + def data_source(self) -> pulumi.Output[str]: + """ + Resource name of data source which will be used as storage location for backups taken + """ + return pulumi.get(self, "data_source") + + @property + @pulumi.getter(name="lastSuccessfulBackupConsistencyTime") + def last_successful_backup_consistency_time(self) -> pulumi.Output[str]: + """ + The point in time when the last successful backup was captured from the source + """ + return pulumi.get(self, "last_successful_backup_consistency_time") + + @property + @pulumi.getter + def location(self) -> pulumi.Output[str]: + """ + The location for the backupplan association + """ + return pulumi.get(self, "location") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + The name of backup plan association resource created + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def project(self) -> pulumi.Output[str]: + """ + The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + """ + return pulumi.get(self, "project") + + @property + @pulumi.getter + def resource(self) -> pulumi.Output[str]: + """ + The resource for which BPA needs to be created + """ + return pulumi.get(self, "resource") + + @property + @pulumi.getter(name="resourceType") + def resource_type(self) -> pulumi.Output[str]: + """ + The resource type of workload on which backupplan is applied + """ + return pulumi.get(self, "resource_type") + + @property + @pulumi.getter(name="rulesConfigInfos") + def rules_config_infos(self) -> pulumi.Output[Sequence['outputs.BackupPlanAssociationRulesConfigInfo']]: + """ + Message for rules config info + Structure is documented below. + """ + return pulumi.get(self, "rules_config_infos") + + @property + @pulumi.getter(name="updateTime") + def update_time(self) -> pulumi.Output[str]: + """ + The time when the instance was updated. + """ + return pulumi.get(self, "update_time") + diff --git a/sdk/python/pulumi_gcp/backupdisasterrecovery/backup_vault.py b/sdk/python/pulumi_gcp/backupdisasterrecovery/backup_vault.py index beb7064bf5..86c41b829e 100644 --- a/sdk/python/pulumi_gcp/backupdisasterrecovery/backup_vault.py +++ b/sdk/python/pulumi_gcp/backupdisasterrecovery/backup_vault.py @@ -28,6 +28,8 @@ def __init__(__self__, *, effective_time: Optional[pulumi.Input[str]] = None, force_delete: Optional[pulumi.Input[bool]] = None, force_update: Optional[pulumi.Input[bool]] = None, + ignore_backup_plan_references: Optional[pulumi.Input[bool]] = None, + ignore_inactive_datasources: Optional[pulumi.Input[bool]] = None, labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, project: Optional[pulumi.Input[str]] = None): """ @@ -45,13 +47,20 @@ def __init__(__self__, *, Please refer to the field `effective_annotations` for all of the annotations present on the resource. :param pulumi.Input[str] description: Optional. The description of the BackupVault instance (2048 characters or less). :param pulumi.Input[str] effective_time: Optional. Time after which the BackupVault resource is locked. - :param pulumi.Input[bool] force_delete: If set, the following restrictions against deletion of the backup vault instance can be overridden: + :param pulumi.Input[bool] force_delete: (Optional, Deprecated) + If set, the following restrictions against deletion of the backup vault instance can be overridden: * deletion of a backup vault instance containing no backups, but still containing empty datasources. * deletion of a backup vault instance that is being referenced by an active backup plan. + + > **Warning:** `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. :param pulumi.Input[bool] force_update: If set, allow update to extend the minimum enforced retention for backup vault. This overrides the restriction against conflicting retention periods. This conflict may occur when the expiration schedule defined by the associated backup plan is shorter than the minimum retention set by the backup vault. + :param pulumi.Input[bool] ignore_backup_plan_references: If set, the following restrictions against deletion of the backup vault instance can be overridden: + * deletion of a backup vault instance that is being referenced by an active backup plan. + :param pulumi.Input[bool] ignore_inactive_datasources: If set, the following restrictions against deletion of the backup vault instance can be overridden: + * deletion of a backup vault instance containing no backups, but still containing empty datasources. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Resource labels to represent user provided metadata. **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field `effective_labels` for all of the labels present on the resource. @@ -69,10 +78,17 @@ def __init__(__self__, *, pulumi.set(__self__, "description", description) if effective_time is not None: pulumi.set(__self__, "effective_time", effective_time) + if force_delete is not None: + warnings.warn("""`force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead.""", DeprecationWarning) + pulumi.log.warn("""force_delete is deprecated: `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead.""") if force_delete is not None: pulumi.set(__self__, "force_delete", force_delete) if force_update is not None: pulumi.set(__self__, "force_update", force_update) + if ignore_backup_plan_references is not None: + pulumi.set(__self__, "ignore_backup_plan_references", ignore_backup_plan_references) + if ignore_inactive_datasources is not None: + pulumi.set(__self__, "ignore_inactive_datasources", ignore_inactive_datasources) if labels is not None: pulumi.set(__self__, "labels", labels) if project is not None: @@ -170,11 +186,15 @@ def effective_time(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="forceDelete") + @_utilities.deprecated("""`force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead.""") def force_delete(self) -> Optional[pulumi.Input[bool]]: """ + (Optional, Deprecated) If set, the following restrictions against deletion of the backup vault instance can be overridden: * deletion of a backup vault instance containing no backups, but still containing empty datasources. * deletion of a backup vault instance that is being referenced by an active backup plan. + + > **Warning:** `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. """ return pulumi.get(self, "force_delete") @@ -197,6 +217,32 @@ def force_update(self) -> Optional[pulumi.Input[bool]]: def force_update(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "force_update", value) + @property + @pulumi.getter(name="ignoreBackupPlanReferences") + def ignore_backup_plan_references(self) -> Optional[pulumi.Input[bool]]: + """ + If set, the following restrictions against deletion of the backup vault instance can be overridden: + * deletion of a backup vault instance that is being referenced by an active backup plan. + """ + return pulumi.get(self, "ignore_backup_plan_references") + + @ignore_backup_plan_references.setter + def ignore_backup_plan_references(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "ignore_backup_plan_references", value) + + @property + @pulumi.getter(name="ignoreInactiveDatasources") + def ignore_inactive_datasources(self) -> Optional[pulumi.Input[bool]]: + """ + If set, the following restrictions against deletion of the backup vault instance can be overridden: + * deletion of a backup vault instance containing no backups, but still containing empty datasources. + """ + return pulumi.get(self, "ignore_inactive_datasources") + + @ignore_inactive_datasources.setter + def ignore_inactive_datasources(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "ignore_inactive_datasources", value) + @property @pulumi.getter def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: @@ -242,6 +288,8 @@ def __init__(__self__, *, etag: Optional[pulumi.Input[str]] = None, force_delete: Optional[pulumi.Input[bool]] = None, force_update: Optional[pulumi.Input[bool]] = None, + ignore_backup_plan_references: Optional[pulumi.Input[bool]] = None, + ignore_inactive_datasources: Optional[pulumi.Input[bool]] = None, labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, location: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, @@ -271,13 +319,20 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. :param pulumi.Input[str] effective_time: Optional. Time after which the BackupVault resource is locked. :param pulumi.Input[str] etag: Optional. Server specified ETag for the backup vault resource to prevent simultaneous updates from overwiting each other. - :param pulumi.Input[bool] force_delete: If set, the following restrictions against deletion of the backup vault instance can be overridden: + :param pulumi.Input[bool] force_delete: (Optional, Deprecated) + If set, the following restrictions against deletion of the backup vault instance can be overridden: * deletion of a backup vault instance containing no backups, but still containing empty datasources. * deletion of a backup vault instance that is being referenced by an active backup plan. + + > **Warning:** `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. :param pulumi.Input[bool] force_update: If set, allow update to extend the minimum enforced retention for backup vault. This overrides the restriction against conflicting retention periods. This conflict may occur when the expiration schedule defined by the associated backup plan is shorter than the minimum retention set by the backup vault. + :param pulumi.Input[bool] ignore_backup_plan_references: If set, the following restrictions against deletion of the backup vault instance can be overridden: + * deletion of a backup vault instance that is being referenced by an active backup plan. + :param pulumi.Input[bool] ignore_inactive_datasources: If set, the following restrictions against deletion of the backup vault instance can be overridden: + * deletion of a backup vault instance containing no backups, but still containing empty datasources. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Resource labels to represent user provided metadata. **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field `effective_labels` for all of the labels present on the resource. @@ -323,10 +378,17 @@ def __init__(__self__, *, pulumi.set(__self__, "effective_time", effective_time) if etag is not None: pulumi.set(__self__, "etag", etag) + if force_delete is not None: + warnings.warn("""`force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead.""", DeprecationWarning) + pulumi.log.warn("""force_delete is deprecated: `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead.""") if force_delete is not None: pulumi.set(__self__, "force_delete", force_delete) if force_update is not None: pulumi.set(__self__, "force_update", force_update) + if ignore_backup_plan_references is not None: + pulumi.set(__self__, "ignore_backup_plan_references", ignore_backup_plan_references) + if ignore_inactive_datasources is not None: + pulumi.set(__self__, "ignore_inactive_datasources", ignore_inactive_datasources) if labels is not None: pulumi.set(__self__, "labels", labels) if location is not None: @@ -497,11 +559,15 @@ def etag(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="forceDelete") + @_utilities.deprecated("""`force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead.""") def force_delete(self) -> Optional[pulumi.Input[bool]]: """ + (Optional, Deprecated) If set, the following restrictions against deletion of the backup vault instance can be overridden: * deletion of a backup vault instance containing no backups, but still containing empty datasources. * deletion of a backup vault instance that is being referenced by an active backup plan. + + > **Warning:** `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. """ return pulumi.get(self, "force_delete") @@ -524,6 +590,32 @@ def force_update(self) -> Optional[pulumi.Input[bool]]: def force_update(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "force_update", value) + @property + @pulumi.getter(name="ignoreBackupPlanReferences") + def ignore_backup_plan_references(self) -> Optional[pulumi.Input[bool]]: + """ + If set, the following restrictions against deletion of the backup vault instance can be overridden: + * deletion of a backup vault instance that is being referenced by an active backup plan. + """ + return pulumi.get(self, "ignore_backup_plan_references") + + @ignore_backup_plan_references.setter + def ignore_backup_plan_references(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "ignore_backup_plan_references", value) + + @property + @pulumi.getter(name="ignoreInactiveDatasources") + def ignore_inactive_datasources(self) -> Optional[pulumi.Input[bool]]: + """ + If set, the following restrictions against deletion of the backup vault instance can be overridden: + * deletion of a backup vault instance containing no backups, but still containing empty datasources. + """ + return pulumi.get(self, "ignore_inactive_datasources") + + @ignore_inactive_datasources.setter + def ignore_inactive_datasources(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "ignore_inactive_datasources", value) + @property @pulumi.getter def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: @@ -668,6 +760,8 @@ def __init__(__self__, effective_time: Optional[pulumi.Input[str]] = None, force_delete: Optional[pulumi.Input[bool]] = None, force_update: Optional[pulumi.Input[bool]] = None, + ignore_backup_plan_references: Optional[pulumi.Input[bool]] = None, + ignore_inactive_datasources: Optional[pulumi.Input[bool]] = None, labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, location: Optional[pulumi.Input[str]] = None, project: Optional[pulumi.Input[str]] = None, @@ -695,7 +789,8 @@ def __init__(__self__, "annotations2": "baz1", }, force_update=True, - force_delete=True, + ignore_inactive_datasources=True, + ignore_backup_plan_references=True, allow_missing=True) ``` @@ -737,13 +832,20 @@ def __init__(__self__, - - - :param pulumi.Input[str] description: Optional. The description of the BackupVault instance (2048 characters or less). :param pulumi.Input[str] effective_time: Optional. Time after which the BackupVault resource is locked. - :param pulumi.Input[bool] force_delete: If set, the following restrictions against deletion of the backup vault instance can be overridden: + :param pulumi.Input[bool] force_delete: (Optional, Deprecated) + If set, the following restrictions against deletion of the backup vault instance can be overridden: * deletion of a backup vault instance containing no backups, but still containing empty datasources. * deletion of a backup vault instance that is being referenced by an active backup plan. + + > **Warning:** `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. :param pulumi.Input[bool] force_update: If set, allow update to extend the minimum enforced retention for backup vault. This overrides the restriction against conflicting retention periods. This conflict may occur when the expiration schedule defined by the associated backup plan is shorter than the minimum retention set by the backup vault. + :param pulumi.Input[bool] ignore_backup_plan_references: If set, the following restrictions against deletion of the backup vault instance can be overridden: + * deletion of a backup vault instance that is being referenced by an active backup plan. + :param pulumi.Input[bool] ignore_inactive_datasources: If set, the following restrictions against deletion of the backup vault instance can be overridden: + * deletion of a backup vault instance containing no backups, but still containing empty datasources. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Resource labels to represent user provided metadata. **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field `effective_labels` for all of the labels present on the resource. @@ -780,7 +882,8 @@ def __init__(__self__, "annotations2": "baz1", }, force_update=True, - force_delete=True, + ignore_inactive_datasources=True, + ignore_backup_plan_references=True, allow_missing=True) ``` @@ -831,6 +934,8 @@ def _internal_init(__self__, effective_time: Optional[pulumi.Input[str]] = None, force_delete: Optional[pulumi.Input[bool]] = None, force_update: Optional[pulumi.Input[bool]] = None, + ignore_backup_plan_references: Optional[pulumi.Input[bool]] = None, + ignore_inactive_datasources: Optional[pulumi.Input[bool]] = None, labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, location: Optional[pulumi.Input[str]] = None, project: Optional[pulumi.Input[str]] = None, @@ -855,6 +960,8 @@ def _internal_init(__self__, __props__.__dict__["effective_time"] = effective_time __props__.__dict__["force_delete"] = force_delete __props__.__dict__["force_update"] = force_update + __props__.__dict__["ignore_backup_plan_references"] = ignore_backup_plan_references + __props__.__dict__["ignore_inactive_datasources"] = ignore_inactive_datasources __props__.__dict__["labels"] = labels if location is None and not opts.urn: raise TypeError("Missing required property 'location'") @@ -899,6 +1006,8 @@ def get(resource_name: str, etag: Optional[pulumi.Input[str]] = None, force_delete: Optional[pulumi.Input[bool]] = None, force_update: Optional[pulumi.Input[bool]] = None, + ignore_backup_plan_references: Optional[pulumi.Input[bool]] = None, + ignore_inactive_datasources: Optional[pulumi.Input[bool]] = None, labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, location: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, @@ -933,13 +1042,20 @@ def get(resource_name: str, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. :param pulumi.Input[str] effective_time: Optional. Time after which the BackupVault resource is locked. :param pulumi.Input[str] etag: Optional. Server specified ETag for the backup vault resource to prevent simultaneous updates from overwiting each other. - :param pulumi.Input[bool] force_delete: If set, the following restrictions against deletion of the backup vault instance can be overridden: + :param pulumi.Input[bool] force_delete: (Optional, Deprecated) + If set, the following restrictions against deletion of the backup vault instance can be overridden: * deletion of a backup vault instance containing no backups, but still containing empty datasources. * deletion of a backup vault instance that is being referenced by an active backup plan. + + > **Warning:** `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. :param pulumi.Input[bool] force_update: If set, allow update to extend the minimum enforced retention for backup vault. This overrides the restriction against conflicting retention periods. This conflict may occur when the expiration schedule defined by the associated backup plan is shorter than the minimum retention set by the backup vault. + :param pulumi.Input[bool] ignore_backup_plan_references: If set, the following restrictions against deletion of the backup vault instance can be overridden: + * deletion of a backup vault instance that is being referenced by an active backup plan. + :param pulumi.Input[bool] ignore_inactive_datasources: If set, the following restrictions against deletion of the backup vault instance can be overridden: + * deletion of a backup vault instance containing no backups, but still containing empty datasources. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Resource labels to represent user provided metadata. **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field `effective_labels` for all of the labels present on the resource. @@ -979,6 +1095,8 @@ def get(resource_name: str, __props__.__dict__["etag"] = etag __props__.__dict__["force_delete"] = force_delete __props__.__dict__["force_update"] = force_update + __props__.__dict__["ignore_backup_plan_references"] = ignore_backup_plan_references + __props__.__dict__["ignore_inactive_datasources"] = ignore_inactive_datasources __props__.__dict__["labels"] = labels __props__.__dict__["location"] = location __props__.__dict__["name"] = name @@ -1092,11 +1210,15 @@ def etag(self) -> pulumi.Output[str]: @property @pulumi.getter(name="forceDelete") + @_utilities.deprecated("""`force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead.""") def force_delete(self) -> pulumi.Output[Optional[bool]]: """ + (Optional, Deprecated) If set, the following restrictions against deletion of the backup vault instance can be overridden: * deletion of a backup vault instance containing no backups, but still containing empty datasources. * deletion of a backup vault instance that is being referenced by an active backup plan. + + > **Warning:** `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead. """ return pulumi.get(self, "force_delete") @@ -1111,6 +1233,24 @@ def force_update(self) -> pulumi.Output[Optional[bool]]: """ return pulumi.get(self, "force_update") + @property + @pulumi.getter(name="ignoreBackupPlanReferences") + def ignore_backup_plan_references(self) -> pulumi.Output[Optional[bool]]: + """ + If set, the following restrictions against deletion of the backup vault instance can be overridden: + * deletion of a backup vault instance that is being referenced by an active backup plan. + """ + return pulumi.get(self, "ignore_backup_plan_references") + + @property + @pulumi.getter(name="ignoreInactiveDatasources") + def ignore_inactive_datasources(self) -> pulumi.Output[Optional[bool]]: + """ + If set, the following restrictions against deletion of the backup vault instance can be overridden: + * deletion of a backup vault instance containing no backups, but still containing empty datasources. + """ + return pulumi.get(self, "ignore_inactive_datasources") + @property @pulumi.getter def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]: diff --git a/sdk/python/pulumi_gcp/backupdisasterrecovery/get_backup_plan.py b/sdk/python/pulumi_gcp/backupdisasterrecovery/get_backup_plan.py new file mode 100644 index 0000000000..87889079b2 --- /dev/null +++ b/sdk/python/pulumi_gcp/backupdisasterrecovery/get_backup_plan.py @@ -0,0 +1,204 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs + +__all__ = [ + 'GetBackupPlanResult', + 'AwaitableGetBackupPlanResult', + 'get_backup_plan', + 'get_backup_plan_output', +] + +@pulumi.output_type +class GetBackupPlanResult: + """ + A collection of values returned by getBackupPlan. + """ + def __init__(__self__, backup_plan_id=None, backup_rules=None, backup_vault=None, backup_vault_service_account=None, create_time=None, description=None, id=None, location=None, name=None, project=None, resource_type=None, update_time=None): + if backup_plan_id and not isinstance(backup_plan_id, str): + raise TypeError("Expected argument 'backup_plan_id' to be a str") + pulumi.set(__self__, "backup_plan_id", backup_plan_id) + if backup_rules and not isinstance(backup_rules, list): + raise TypeError("Expected argument 'backup_rules' to be a list") + pulumi.set(__self__, "backup_rules", backup_rules) + if backup_vault and not isinstance(backup_vault, str): + raise TypeError("Expected argument 'backup_vault' to be a str") + pulumi.set(__self__, "backup_vault", backup_vault) + if backup_vault_service_account and not isinstance(backup_vault_service_account, str): + raise TypeError("Expected argument 'backup_vault_service_account' to be a str") + pulumi.set(__self__, "backup_vault_service_account", backup_vault_service_account) + if create_time and not isinstance(create_time, str): + raise TypeError("Expected argument 'create_time' to be a str") + pulumi.set(__self__, "create_time", create_time) + if description and not isinstance(description, str): + raise TypeError("Expected argument 'description' to be a str") + pulumi.set(__self__, "description", description) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if location and not isinstance(location, str): + raise TypeError("Expected argument 'location' to be a str") + pulumi.set(__self__, "location", location) + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + pulumi.set(__self__, "name", name) + if project and not isinstance(project, str): + raise TypeError("Expected argument 'project' to be a str") + pulumi.set(__self__, "project", project) + if resource_type and not isinstance(resource_type, str): + raise TypeError("Expected argument 'resource_type' to be a str") + pulumi.set(__self__, "resource_type", resource_type) + if update_time and not isinstance(update_time, str): + raise TypeError("Expected argument 'update_time' to be a str") + pulumi.set(__self__, "update_time", update_time) + + @property + @pulumi.getter(name="backupPlanId") + def backup_plan_id(self) -> str: + return pulumi.get(self, "backup_plan_id") + + @property + @pulumi.getter(name="backupRules") + def backup_rules(self) -> Sequence['outputs.GetBackupPlanBackupRuleResult']: + return pulumi.get(self, "backup_rules") + + @property + @pulumi.getter(name="backupVault") + def backup_vault(self) -> str: + return pulumi.get(self, "backup_vault") + + @property + @pulumi.getter(name="backupVaultServiceAccount") + def backup_vault_service_account(self) -> str: + return pulumi.get(self, "backup_vault_service_account") + + @property + @pulumi.getter(name="createTime") + def create_time(self) -> str: + return pulumi.get(self, "create_time") + + @property + @pulumi.getter + def description(self) -> str: + return pulumi.get(self, "description") + + @property + @pulumi.getter + def id(self) -> str: + """ + The provider-assigned unique ID for this managed resource. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter + def location(self) -> str: + return pulumi.get(self, "location") + + @property + @pulumi.getter + def name(self) -> str: + return pulumi.get(self, "name") + + @property + @pulumi.getter + def project(self) -> Optional[str]: + return pulumi.get(self, "project") + + @property + @pulumi.getter(name="resourceType") + def resource_type(self) -> str: + return pulumi.get(self, "resource_type") + + @property + @pulumi.getter(name="updateTime") + def update_time(self) -> str: + return pulumi.get(self, "update_time") + + +class AwaitableGetBackupPlanResult(GetBackupPlanResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetBackupPlanResult( + backup_plan_id=self.backup_plan_id, + backup_rules=self.backup_rules, + backup_vault=self.backup_vault, + backup_vault_service_account=self.backup_vault_service_account, + create_time=self.create_time, + description=self.description, + id=self.id, + location=self.location, + name=self.name, + project=self.project, + resource_type=self.resource_type, + update_time=self.update_time) + + +def get_backup_plan(backup_plan_id: Optional[str] = None, + location: Optional[str] = None, + project: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetBackupPlanResult: + """ + Use this data source to access information about an existing resource. + """ + __args__ = dict() + __args__['backupPlanId'] = backup_plan_id + __args__['location'] = location + __args__['project'] = project + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('gcp:backupdisasterrecovery/getBackupPlan:getBackupPlan', __args__, opts=opts, typ=GetBackupPlanResult).value + + return AwaitableGetBackupPlanResult( + backup_plan_id=pulumi.get(__ret__, 'backup_plan_id'), + backup_rules=pulumi.get(__ret__, 'backup_rules'), + backup_vault=pulumi.get(__ret__, 'backup_vault'), + backup_vault_service_account=pulumi.get(__ret__, 'backup_vault_service_account'), + create_time=pulumi.get(__ret__, 'create_time'), + description=pulumi.get(__ret__, 'description'), + id=pulumi.get(__ret__, 'id'), + location=pulumi.get(__ret__, 'location'), + name=pulumi.get(__ret__, 'name'), + project=pulumi.get(__ret__, 'project'), + resource_type=pulumi.get(__ret__, 'resource_type'), + update_time=pulumi.get(__ret__, 'update_time')) +def get_backup_plan_output(backup_plan_id: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[Optional[str]]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetBackupPlanResult]: + """ + Use this data source to access information about an existing resource. + """ + __args__ = dict() + __args__['backupPlanId'] = backup_plan_id + __args__['location'] = location + __args__['project'] = project + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('gcp:backupdisasterrecovery/getBackupPlan:getBackupPlan', __args__, opts=opts, typ=GetBackupPlanResult) + return __ret__.apply(lambda __response__: GetBackupPlanResult( + backup_plan_id=pulumi.get(__response__, 'backup_plan_id'), + backup_rules=pulumi.get(__response__, 'backup_rules'), + backup_vault=pulumi.get(__response__, 'backup_vault'), + backup_vault_service_account=pulumi.get(__response__, 'backup_vault_service_account'), + create_time=pulumi.get(__response__, 'create_time'), + description=pulumi.get(__response__, 'description'), + id=pulumi.get(__response__, 'id'), + location=pulumi.get(__response__, 'location'), + name=pulumi.get(__response__, 'name'), + project=pulumi.get(__response__, 'project'), + resource_type=pulumi.get(__response__, 'resource_type'), + update_time=pulumi.get(__response__, 'update_time'))) diff --git a/sdk/python/pulumi_gcp/backupdisasterrecovery/get_backup_plan_association.py b/sdk/python/pulumi_gcp/backupdisasterrecovery/get_backup_plan_association.py new file mode 100644 index 0000000000..8175d9de27 --- /dev/null +++ b/sdk/python/pulumi_gcp/backupdisasterrecovery/get_backup_plan_association.py @@ -0,0 +1,243 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs + +__all__ = [ + 'GetBackupPlanAssociationResult', + 'AwaitableGetBackupPlanAssociationResult', + 'get_backup_plan_association', + 'get_backup_plan_association_output', +] + +@pulumi.output_type +class GetBackupPlanAssociationResult: + """ + A collection of values returned by getBackupPlanAssociation. + """ + def __init__(__self__, backup_plan=None, backup_plan_association_id=None, create_time=None, data_source=None, id=None, last_successful_backup_consistency_time=None, location=None, name=None, project=None, resource=None, resource_type=None, rules_config_infos=None, update_time=None): + if backup_plan and not isinstance(backup_plan, str): + raise TypeError("Expected argument 'backup_plan' to be a str") + pulumi.set(__self__, "backup_plan", backup_plan) + if backup_plan_association_id and not isinstance(backup_plan_association_id, str): + raise TypeError("Expected argument 'backup_plan_association_id' to be a str") + pulumi.set(__self__, "backup_plan_association_id", backup_plan_association_id) + if create_time and not isinstance(create_time, str): + raise TypeError("Expected argument 'create_time' to be a str") + pulumi.set(__self__, "create_time", create_time) + if data_source and not isinstance(data_source, str): + raise TypeError("Expected argument 'data_source' to be a str") + pulumi.set(__self__, "data_source", data_source) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if last_successful_backup_consistency_time and not isinstance(last_successful_backup_consistency_time, str): + raise TypeError("Expected argument 'last_successful_backup_consistency_time' to be a str") + pulumi.set(__self__, "last_successful_backup_consistency_time", last_successful_backup_consistency_time) + if location and not isinstance(location, str): + raise TypeError("Expected argument 'location' to be a str") + pulumi.set(__self__, "location", location) + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + pulumi.set(__self__, "name", name) + if project and not isinstance(project, str): + raise TypeError("Expected argument 'project' to be a str") + pulumi.set(__self__, "project", project) + if resource and not isinstance(resource, str): + raise TypeError("Expected argument 'resource' to be a str") + pulumi.set(__self__, "resource", resource) + if resource_type and not isinstance(resource_type, str): + raise TypeError("Expected argument 'resource_type' to be a str") + pulumi.set(__self__, "resource_type", resource_type) + if rules_config_infos and not isinstance(rules_config_infos, list): + raise TypeError("Expected argument 'rules_config_infos' to be a list") + pulumi.set(__self__, "rules_config_infos", rules_config_infos) + if update_time and not isinstance(update_time, str): + raise TypeError("Expected argument 'update_time' to be a str") + pulumi.set(__self__, "update_time", update_time) + + @property + @pulumi.getter(name="backupPlan") + def backup_plan(self) -> str: + return pulumi.get(self, "backup_plan") + + @property + @pulumi.getter(name="backupPlanAssociationId") + def backup_plan_association_id(self) -> str: + return pulumi.get(self, "backup_plan_association_id") + + @property + @pulumi.getter(name="createTime") + def create_time(self) -> str: + return pulumi.get(self, "create_time") + + @property + @pulumi.getter(name="dataSource") + def data_source(self) -> str: + return pulumi.get(self, "data_source") + + @property + @pulumi.getter + def id(self) -> str: + """ + The provider-assigned unique ID for this managed resource. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="lastSuccessfulBackupConsistencyTime") + def last_successful_backup_consistency_time(self) -> str: + return pulumi.get(self, "last_successful_backup_consistency_time") + + @property + @pulumi.getter + def location(self) -> str: + return pulumi.get(self, "location") + + @property + @pulumi.getter + def name(self) -> str: + return pulumi.get(self, "name") + + @property + @pulumi.getter + def project(self) -> Optional[str]: + return pulumi.get(self, "project") + + @property + @pulumi.getter + def resource(self) -> str: + return pulumi.get(self, "resource") + + @property + @pulumi.getter(name="resourceType") + def resource_type(self) -> str: + return pulumi.get(self, "resource_type") + + @property + @pulumi.getter(name="rulesConfigInfos") + def rules_config_infos(self) -> Sequence['outputs.GetBackupPlanAssociationRulesConfigInfoResult']: + return pulumi.get(self, "rules_config_infos") + + @property + @pulumi.getter(name="updateTime") + def update_time(self) -> str: + return pulumi.get(self, "update_time") + + +class AwaitableGetBackupPlanAssociationResult(GetBackupPlanAssociationResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetBackupPlanAssociationResult( + backup_plan=self.backup_plan, + backup_plan_association_id=self.backup_plan_association_id, + create_time=self.create_time, + data_source=self.data_source, + id=self.id, + last_successful_backup_consistency_time=self.last_successful_backup_consistency_time, + location=self.location, + name=self.name, + project=self.project, + resource=self.resource, + resource_type=self.resource_type, + rules_config_infos=self.rules_config_infos, + update_time=self.update_time) + + +def get_backup_plan_association(backup_plan_association_id: Optional[str] = None, + location: Optional[str] = None, + project: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetBackupPlanAssociationResult: + """ + ## Example Usage + + ```python + import pulumi + import pulumi_gcp as gcp + + my_backupplan_association = gcp.backupdisasterrecovery.get_backup_plan_association(location="us-central1", + backup_plan_association_id="bpa-id") + ``` + + + :param str backup_plan_association_id: The id of Backupplan association resource. + + - - - + :param str location: The location in which the Backupplan association resource belongs. + """ + __args__ = dict() + __args__['backupPlanAssociationId'] = backup_plan_association_id + __args__['location'] = location + __args__['project'] = project + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('gcp:backupdisasterrecovery/getBackupPlanAssociation:getBackupPlanAssociation', __args__, opts=opts, typ=GetBackupPlanAssociationResult).value + + return AwaitableGetBackupPlanAssociationResult( + backup_plan=pulumi.get(__ret__, 'backup_plan'), + backup_plan_association_id=pulumi.get(__ret__, 'backup_plan_association_id'), + create_time=pulumi.get(__ret__, 'create_time'), + data_source=pulumi.get(__ret__, 'data_source'), + id=pulumi.get(__ret__, 'id'), + last_successful_backup_consistency_time=pulumi.get(__ret__, 'last_successful_backup_consistency_time'), + location=pulumi.get(__ret__, 'location'), + name=pulumi.get(__ret__, 'name'), + project=pulumi.get(__ret__, 'project'), + resource=pulumi.get(__ret__, 'resource'), + resource_type=pulumi.get(__ret__, 'resource_type'), + rules_config_infos=pulumi.get(__ret__, 'rules_config_infos'), + update_time=pulumi.get(__ret__, 'update_time')) +def get_backup_plan_association_output(backup_plan_association_id: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[Optional[str]]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetBackupPlanAssociationResult]: + """ + ## Example Usage + + ```python + import pulumi + import pulumi_gcp as gcp + + my_backupplan_association = gcp.backupdisasterrecovery.get_backup_plan_association(location="us-central1", + backup_plan_association_id="bpa-id") + ``` + + + :param str backup_plan_association_id: The id of Backupplan association resource. + + - - - + :param str location: The location in which the Backupplan association resource belongs. + """ + __args__ = dict() + __args__['backupPlanAssociationId'] = backup_plan_association_id + __args__['location'] = location + __args__['project'] = project + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('gcp:backupdisasterrecovery/getBackupPlanAssociation:getBackupPlanAssociation', __args__, opts=opts, typ=GetBackupPlanAssociationResult) + return __ret__.apply(lambda __response__: GetBackupPlanAssociationResult( + backup_plan=pulumi.get(__response__, 'backup_plan'), + backup_plan_association_id=pulumi.get(__response__, 'backup_plan_association_id'), + create_time=pulumi.get(__response__, 'create_time'), + data_source=pulumi.get(__response__, 'data_source'), + id=pulumi.get(__response__, 'id'), + last_successful_backup_consistency_time=pulumi.get(__response__, 'last_successful_backup_consistency_time'), + location=pulumi.get(__response__, 'location'), + name=pulumi.get(__response__, 'name'), + project=pulumi.get(__response__, 'project'), + resource=pulumi.get(__response__, 'resource'), + resource_type=pulumi.get(__response__, 'resource_type'), + rules_config_infos=pulumi.get(__response__, 'rules_config_infos'), + update_time=pulumi.get(__response__, 'update_time'))) diff --git a/sdk/python/pulumi_gcp/backupdisasterrecovery/outputs.py b/sdk/python/pulumi_gcp/backupdisasterrecovery/outputs.py index 3ff43ff675..fdf48b74c6 100644 --- a/sdk/python/pulumi_gcp/backupdisasterrecovery/outputs.py +++ b/sdk/python/pulumi_gcp/backupdisasterrecovery/outputs.py @@ -13,14 +13,448 @@ else: from typing_extensions import NotRequired, TypedDict, TypeAlias from .. import _utilities +from . import outputs __all__ = [ + 'BackupPlanAssociationRulesConfigInfo', + 'BackupPlanAssociationRulesConfigInfoLastBackupError', + 'BackupPlanBackupRule', + 'BackupPlanBackupRuleStandardSchedule', + 'BackupPlanBackupRuleStandardScheduleBackupWindow', + 'BackupPlanBackupRuleStandardScheduleWeekDayOfMonth', 'ManagementServerManagementUri', 'ManagementServerNetwork', + 'GetBackupPlanAssociationRulesConfigInfoResult', + 'GetBackupPlanAssociationRulesConfigInfoLastBackupErrorResult', + 'GetBackupPlanBackupRuleResult', + 'GetBackupPlanBackupRuleStandardScheduleResult', + 'GetBackupPlanBackupRuleStandardScheduleBackupWindowResult', + 'GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthResult', 'GetManagementServerManagementUriResult', 'GetManagementServerNetworkResult', ] +@pulumi.output_type +class BackupPlanAssociationRulesConfigInfo(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "lastBackupErrors": + suggest = "last_backup_errors" + elif key == "lastBackupState": + suggest = "last_backup_state" + elif key == "ruleId": + suggest = "rule_id" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in BackupPlanAssociationRulesConfigInfo. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + BackupPlanAssociationRulesConfigInfo.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + BackupPlanAssociationRulesConfigInfo.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + last_backup_errors: Optional[Sequence['outputs.BackupPlanAssociationRulesConfigInfoLastBackupError']] = None, + last_backup_state: Optional[str] = None, + rule_id: Optional[str] = None): + """ + :param Sequence['BackupPlanAssociationRulesConfigInfoLastBackupErrorArgs'] last_backup_errors: (Output) + google.rpc.Status object to store the last backup error + Structure is documented below. + :param str last_backup_state: (Output) + State of last backup taken. + :param str rule_id: (Output) + Backup Rule id fetched from backup plan. + """ + if last_backup_errors is not None: + pulumi.set(__self__, "last_backup_errors", last_backup_errors) + if last_backup_state is not None: + pulumi.set(__self__, "last_backup_state", last_backup_state) + if rule_id is not None: + pulumi.set(__self__, "rule_id", rule_id) + + @property + @pulumi.getter(name="lastBackupErrors") + def last_backup_errors(self) -> Optional[Sequence['outputs.BackupPlanAssociationRulesConfigInfoLastBackupError']]: + """ + (Output) + google.rpc.Status object to store the last backup error + Structure is documented below. + """ + return pulumi.get(self, "last_backup_errors") + + @property + @pulumi.getter(name="lastBackupState") + def last_backup_state(self) -> Optional[str]: + """ + (Output) + State of last backup taken. + """ + return pulumi.get(self, "last_backup_state") + + @property + @pulumi.getter(name="ruleId") + def rule_id(self) -> Optional[str]: + """ + (Output) + Backup Rule id fetched from backup plan. + """ + return pulumi.get(self, "rule_id") + + +@pulumi.output_type +class BackupPlanAssociationRulesConfigInfoLastBackupError(dict): + def __init__(__self__, *, + code: Optional[float] = None, + message: Optional[str] = None): + """ + :param float code: (Output) + The status code, which should be an enum value of [google.rpc.Code] + :param str message: (Output) + A developer-facing error message, which should be in English. + """ + if code is not None: + pulumi.set(__self__, "code", code) + if message is not None: + pulumi.set(__self__, "message", message) + + @property + @pulumi.getter + def code(self) -> Optional[float]: + """ + (Output) + The status code, which should be an enum value of [google.rpc.Code] + """ + return pulumi.get(self, "code") + + @property + @pulumi.getter + def message(self) -> Optional[str]: + """ + (Output) + A developer-facing error message, which should be in English. + """ + return pulumi.get(self, "message") + + +@pulumi.output_type +class BackupPlanBackupRule(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "backupRetentionDays": + suggest = "backup_retention_days" + elif key == "ruleId": + suggest = "rule_id" + elif key == "standardSchedule": + suggest = "standard_schedule" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in BackupPlanBackupRule. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + BackupPlanBackupRule.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + BackupPlanBackupRule.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + backup_retention_days: int, + rule_id: str, + standard_schedule: 'outputs.BackupPlanBackupRuleStandardSchedule'): + """ + :param int backup_retention_days: Configures the duration for which backup data will be kept. The value should be greater than or equal to minimum enforced retention of the backup vault. + :param str rule_id: The unique ID of this `BackupRule`. The `rule_id` is unique per `BackupPlan`. + :param 'BackupPlanBackupRuleStandardScheduleArgs' standard_schedule: StandardSchedule defines a schedule that runs within the confines of a defined window of days. + Structure is documented below. + """ + pulumi.set(__self__, "backup_retention_days", backup_retention_days) + pulumi.set(__self__, "rule_id", rule_id) + pulumi.set(__self__, "standard_schedule", standard_schedule) + + @property + @pulumi.getter(name="backupRetentionDays") + def backup_retention_days(self) -> int: + """ + Configures the duration for which backup data will be kept. The value should be greater than or equal to minimum enforced retention of the backup vault. + """ + return pulumi.get(self, "backup_retention_days") + + @property + @pulumi.getter(name="ruleId") + def rule_id(self) -> str: + """ + The unique ID of this `BackupRule`. The `rule_id` is unique per `BackupPlan`. + """ + return pulumi.get(self, "rule_id") + + @property + @pulumi.getter(name="standardSchedule") + def standard_schedule(self) -> 'outputs.BackupPlanBackupRuleStandardSchedule': + """ + StandardSchedule defines a schedule that runs within the confines of a defined window of days. + Structure is documented below. + """ + return pulumi.get(self, "standard_schedule") + + +@pulumi.output_type +class BackupPlanBackupRuleStandardSchedule(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "recurrenceType": + suggest = "recurrence_type" + elif key == "timeZone": + suggest = "time_zone" + elif key == "backupWindow": + suggest = "backup_window" + elif key == "daysOfMonths": + suggest = "days_of_months" + elif key == "daysOfWeeks": + suggest = "days_of_weeks" + elif key == "hourlyFrequency": + suggest = "hourly_frequency" + elif key == "weekDayOfMonth": + suggest = "week_day_of_month" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in BackupPlanBackupRuleStandardSchedule. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + BackupPlanBackupRuleStandardSchedule.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + BackupPlanBackupRuleStandardSchedule.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + recurrence_type: str, + time_zone: str, + backup_window: Optional['outputs.BackupPlanBackupRuleStandardScheduleBackupWindow'] = None, + days_of_months: Optional[Sequence[int]] = None, + days_of_weeks: Optional[Sequence[str]] = None, + hourly_frequency: Optional[int] = None, + months: Optional[Sequence[str]] = None, + week_day_of_month: Optional['outputs.BackupPlanBackupRuleStandardScheduleWeekDayOfMonth'] = None): + """ + :param str recurrence_type: RecurrenceType enumerates the applicable periodicity for the schedule. + Possible values are: `HOURLY`, `DAILY`, `WEEKLY`, `MONTHLY`, `YEARLY`. + :param str time_zone: The time zone to be used when interpreting the schedule. + :param 'BackupPlanBackupRuleStandardScheduleBackupWindowArgs' backup_window: A BackupWindow defines the window of the day during which backup jobs will run. Jobs are queued at the beginning of the window and will be marked as + `NOT_RUN` if they do not start by the end of the window. + Structure is documented below. + :param Sequence[int] days_of_months: Specifies days of months like 1, 5, or 14 on which jobs will run. + :param Sequence[str] days_of_weeks: Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for `recurrence_type`, `WEEKLY` and is not applicable otherwise. + Each value may be one of: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`. + :param int hourly_frequency: Specifies frequency for hourly backups. An hourly frequency of 2 means jobs will run every 2 hours from start time till end time defined. + This is required for `recurrence_type`, `HOURLY` and is not applicable otherwise. + :param Sequence[str] months: Specifies values of months + Each value may be one of: `MONTH_UNSPECIFIED`, `JANUARY`, `FEBRUARY`, `MARCH`, `APRIL`, `MAY`, `JUNE`, `JULY`, `AUGUST`, `SEPTEMBER`, `OCTOBER`, `NOVEMBER`, `DECEMBER`. + :param 'BackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs' week_day_of_month: Specifies a week day of the month like FIRST SUNDAY or LAST MONDAY, on which jobs will run. + Structure is documented below. + """ + pulumi.set(__self__, "recurrence_type", recurrence_type) + pulumi.set(__self__, "time_zone", time_zone) + if backup_window is not None: + pulumi.set(__self__, "backup_window", backup_window) + if days_of_months is not None: + pulumi.set(__self__, "days_of_months", days_of_months) + if days_of_weeks is not None: + pulumi.set(__self__, "days_of_weeks", days_of_weeks) + if hourly_frequency is not None: + pulumi.set(__self__, "hourly_frequency", hourly_frequency) + if months is not None: + pulumi.set(__self__, "months", months) + if week_day_of_month is not None: + pulumi.set(__self__, "week_day_of_month", week_day_of_month) + + @property + @pulumi.getter(name="recurrenceType") + def recurrence_type(self) -> str: + """ + RecurrenceType enumerates the applicable periodicity for the schedule. + Possible values are: `HOURLY`, `DAILY`, `WEEKLY`, `MONTHLY`, `YEARLY`. + """ + return pulumi.get(self, "recurrence_type") + + @property + @pulumi.getter(name="timeZone") + def time_zone(self) -> str: + """ + The time zone to be used when interpreting the schedule. + """ + return pulumi.get(self, "time_zone") + + @property + @pulumi.getter(name="backupWindow") + def backup_window(self) -> Optional['outputs.BackupPlanBackupRuleStandardScheduleBackupWindow']: + """ + A BackupWindow defines the window of the day during which backup jobs will run. Jobs are queued at the beginning of the window and will be marked as + `NOT_RUN` if they do not start by the end of the window. + Structure is documented below. + """ + return pulumi.get(self, "backup_window") + + @property + @pulumi.getter(name="daysOfMonths") + def days_of_months(self) -> Optional[Sequence[int]]: + """ + Specifies days of months like 1, 5, or 14 on which jobs will run. + """ + return pulumi.get(self, "days_of_months") + + @property + @pulumi.getter(name="daysOfWeeks") + def days_of_weeks(self) -> Optional[Sequence[str]]: + """ + Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for `recurrence_type`, `WEEKLY` and is not applicable otherwise. + Each value may be one of: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`. + """ + return pulumi.get(self, "days_of_weeks") + + @property + @pulumi.getter(name="hourlyFrequency") + def hourly_frequency(self) -> Optional[int]: + """ + Specifies frequency for hourly backups. An hourly frequency of 2 means jobs will run every 2 hours from start time till end time defined. + This is required for `recurrence_type`, `HOURLY` and is not applicable otherwise. + """ + return pulumi.get(self, "hourly_frequency") + + @property + @pulumi.getter + def months(self) -> Optional[Sequence[str]]: + """ + Specifies values of months + Each value may be one of: `MONTH_UNSPECIFIED`, `JANUARY`, `FEBRUARY`, `MARCH`, `APRIL`, `MAY`, `JUNE`, `JULY`, `AUGUST`, `SEPTEMBER`, `OCTOBER`, `NOVEMBER`, `DECEMBER`. + """ + return pulumi.get(self, "months") + + @property + @pulumi.getter(name="weekDayOfMonth") + def week_day_of_month(self) -> Optional['outputs.BackupPlanBackupRuleStandardScheduleWeekDayOfMonth']: + """ + Specifies a week day of the month like FIRST SUNDAY or LAST MONDAY, on which jobs will run. + Structure is documented below. + """ + return pulumi.get(self, "week_day_of_month") + + +@pulumi.output_type +class BackupPlanBackupRuleStandardScheduleBackupWindow(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "startHourOfDay": + suggest = "start_hour_of_day" + elif key == "endHourOfDay": + suggest = "end_hour_of_day" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in BackupPlanBackupRuleStandardScheduleBackupWindow. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + BackupPlanBackupRuleStandardScheduleBackupWindow.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + BackupPlanBackupRuleStandardScheduleBackupWindow.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + start_hour_of_day: int, + end_hour_of_day: Optional[int] = None): + """ + :param int start_hour_of_day: The hour of the day (0-23) when the window starts, for example, if the value of the start hour of the day is 6, that means the backup window starts at 6:00. + :param int end_hour_of_day: The hour of the day (1-24) when the window ends, for example, if the value of end hour of the day is 10, that means the backup window end time is 10:00. + The end hour of the day should be greater than the start + + - - - + """ + pulumi.set(__self__, "start_hour_of_day", start_hour_of_day) + if end_hour_of_day is not None: + pulumi.set(__self__, "end_hour_of_day", end_hour_of_day) + + @property + @pulumi.getter(name="startHourOfDay") + def start_hour_of_day(self) -> int: + """ + The hour of the day (0-23) when the window starts, for example, if the value of the start hour of the day is 6, that means the backup window starts at 6:00. + """ + return pulumi.get(self, "start_hour_of_day") + + @property + @pulumi.getter(name="endHourOfDay") + def end_hour_of_day(self) -> Optional[int]: + """ + The hour of the day (1-24) when the window ends, for example, if the value of end hour of the day is 10, that means the backup window end time is 10:00. + The end hour of the day should be greater than the start + + - - - + """ + return pulumi.get(self, "end_hour_of_day") + + +@pulumi.output_type +class BackupPlanBackupRuleStandardScheduleWeekDayOfMonth(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "dayOfWeek": + suggest = "day_of_week" + elif key == "weekOfMonth": + suggest = "week_of_month" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in BackupPlanBackupRuleStandardScheduleWeekDayOfMonth. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + BackupPlanBackupRuleStandardScheduleWeekDayOfMonth.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + BackupPlanBackupRuleStandardScheduleWeekDayOfMonth.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + day_of_week: str, + week_of_month: str): + """ + :param str day_of_week: Specifies the day of the week. + Possible values are: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`. + :param str week_of_month: WeekOfMonth enumerates possible weeks in the month, e.g. the first, third, or last week of the month. + Possible values are: `WEEK_OF_MONTH_UNSPECIFIED`, `FIRST`, `SECOND`, `THIRD`, `FOURTH`, `LAST`. + """ + pulumi.set(__self__, "day_of_week", day_of_week) + pulumi.set(__self__, "week_of_month", week_of_month) + + @property + @pulumi.getter(name="dayOfWeek") + def day_of_week(self) -> str: + """ + Specifies the day of the week. + Possible values are: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`. + """ + return pulumi.get(self, "day_of_week") + + @property + @pulumi.getter(name="weekOfMonth") + def week_of_month(self) -> str: + """ + WeekOfMonth enumerates possible weeks in the month, e.g. the first, third, or last week of the month. + Possible values are: `WEEK_OF_MONTH_UNSPECIFIED`, `FIRST`, `SECOND`, `THIRD`, `FOURTH`, `LAST`. + """ + return pulumi.get(self, "week_of_month") + + @pulumi.output_type class ManagementServerManagementUri(dict): @staticmethod @@ -124,6 +558,274 @@ def peering_mode(self) -> Optional[str]: return pulumi.get(self, "peering_mode") +@pulumi.output_type +class GetBackupPlanAssociationRulesConfigInfoResult(dict): + def __init__(__self__, *, + last_backup_errors: Sequence['outputs.GetBackupPlanAssociationRulesConfigInfoLastBackupErrorResult'], + last_backup_state: str, + rule_id: str): + """ + :param Sequence['GetBackupPlanAssociationRulesConfigInfoLastBackupErrorArgs'] last_backup_errors: google.rpc.Status object to store the last backup error + :param str last_backup_state: State of last backup taken. + :param str rule_id: Backup Rule id fetched from backup plan. + """ + pulumi.set(__self__, "last_backup_errors", last_backup_errors) + pulumi.set(__self__, "last_backup_state", last_backup_state) + pulumi.set(__self__, "rule_id", rule_id) + + @property + @pulumi.getter(name="lastBackupErrors") + def last_backup_errors(self) -> Sequence['outputs.GetBackupPlanAssociationRulesConfigInfoLastBackupErrorResult']: + """ + google.rpc.Status object to store the last backup error + """ + return pulumi.get(self, "last_backup_errors") + + @property + @pulumi.getter(name="lastBackupState") + def last_backup_state(self) -> str: + """ + State of last backup taken. + """ + return pulumi.get(self, "last_backup_state") + + @property + @pulumi.getter(name="ruleId") + def rule_id(self) -> str: + """ + Backup Rule id fetched from backup plan. + """ + return pulumi.get(self, "rule_id") + + +@pulumi.output_type +class GetBackupPlanAssociationRulesConfigInfoLastBackupErrorResult(dict): + def __init__(__self__, *, + code: float, + message: str): + """ + :param float code: The status code, which should be an enum value of [google.rpc.Code] + :param str message: A developer-facing error message, which should be in English. + """ + pulumi.set(__self__, "code", code) + pulumi.set(__self__, "message", message) + + @property + @pulumi.getter + def code(self) -> float: + """ + The status code, which should be an enum value of [google.rpc.Code] + """ + return pulumi.get(self, "code") + + @property + @pulumi.getter + def message(self) -> str: + """ + A developer-facing error message, which should be in English. + """ + return pulumi.get(self, "message") + + +@pulumi.output_type +class GetBackupPlanBackupRuleResult(dict): + def __init__(__self__, *, + backup_retention_days: int, + rule_id: str, + standard_schedules: Sequence['outputs.GetBackupPlanBackupRuleStandardScheduleResult']): + """ + :param int backup_retention_days: Configures the duration for which backup data will be kept. The value should be greater than or equal to minimum enforced retention of the backup vault. + :param str rule_id: The unique ID of this 'BackupRule'. The 'rule_id' is unique per 'BackupPlan'. + :param Sequence['GetBackupPlanBackupRuleStandardScheduleArgs'] standard_schedules: StandardSchedule defines a schedule that runs within the confines of a defined window of days. + """ + pulumi.set(__self__, "backup_retention_days", backup_retention_days) + pulumi.set(__self__, "rule_id", rule_id) + pulumi.set(__self__, "standard_schedules", standard_schedules) + + @property + @pulumi.getter(name="backupRetentionDays") + def backup_retention_days(self) -> int: + """ + Configures the duration for which backup data will be kept. The value should be greater than or equal to minimum enforced retention of the backup vault. + """ + return pulumi.get(self, "backup_retention_days") + + @property + @pulumi.getter(name="ruleId") + def rule_id(self) -> str: + """ + The unique ID of this 'BackupRule'. The 'rule_id' is unique per 'BackupPlan'. + """ + return pulumi.get(self, "rule_id") + + @property + @pulumi.getter(name="standardSchedules") + def standard_schedules(self) -> Sequence['outputs.GetBackupPlanBackupRuleStandardScheduleResult']: + """ + StandardSchedule defines a schedule that runs within the confines of a defined window of days. + """ + return pulumi.get(self, "standard_schedules") + + +@pulumi.output_type +class GetBackupPlanBackupRuleStandardScheduleResult(dict): + def __init__(__self__, *, + backup_windows: Sequence['outputs.GetBackupPlanBackupRuleStandardScheduleBackupWindowResult'], + days_of_months: Sequence[int], + days_of_weeks: Sequence[str], + hourly_frequency: int, + months: Sequence[str], + recurrence_type: str, + time_zone: str, + week_day_of_months: Sequence['outputs.GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthResult']): + """ + :param Sequence['GetBackupPlanBackupRuleStandardScheduleBackupWindowArgs'] backup_windows: A BackupWindow defines the window of the day during which backup jobs will run. Jobs are queued at the beginning of the window and will be marked as + 'NOT_RUN' if they do not start by the end of the window. + :param Sequence[int] days_of_months: Specifies days of months like 1, 5, or 14 on which jobs will run. + :param Sequence[str] days_of_weeks: Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for 'recurrence_type', 'WEEKLY' and is not applicable otherwise. Possible values: ["DAY_OF_WEEK_UNSPECIFIED", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY"] + :param int hourly_frequency: Specifies frequency for hourly backups. An hourly frequency of 2 means jobs will run every 2 hours from start time till end time defined. + This is required for 'recurrence_type', 'HOURLY' and is not applicable otherwise. + :param Sequence[str] months: Specifies values of months Possible values: ["MONTH_UNSPECIFIED", "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER"] + :param str recurrence_type: RecurrenceType enumerates the applicable periodicity for the schedule. Possible values: ["HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY"] + :param str time_zone: The time zone to be used when interpreting the schedule. + :param Sequence['GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthArgs'] week_day_of_months: Specifies a week day of the month like FIRST SUNDAY or LAST MONDAY, on which jobs will run. + """ + pulumi.set(__self__, "backup_windows", backup_windows) + pulumi.set(__self__, "days_of_months", days_of_months) + pulumi.set(__self__, "days_of_weeks", days_of_weeks) + pulumi.set(__self__, "hourly_frequency", hourly_frequency) + pulumi.set(__self__, "months", months) + pulumi.set(__self__, "recurrence_type", recurrence_type) + pulumi.set(__self__, "time_zone", time_zone) + pulumi.set(__self__, "week_day_of_months", week_day_of_months) + + @property + @pulumi.getter(name="backupWindows") + def backup_windows(self) -> Sequence['outputs.GetBackupPlanBackupRuleStandardScheduleBackupWindowResult']: + """ + A BackupWindow defines the window of the day during which backup jobs will run. Jobs are queued at the beginning of the window and will be marked as + 'NOT_RUN' if they do not start by the end of the window. + """ + return pulumi.get(self, "backup_windows") + + @property + @pulumi.getter(name="daysOfMonths") + def days_of_months(self) -> Sequence[int]: + """ + Specifies days of months like 1, 5, or 14 on which jobs will run. + """ + return pulumi.get(self, "days_of_months") + + @property + @pulumi.getter(name="daysOfWeeks") + def days_of_weeks(self) -> Sequence[str]: + """ + Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for 'recurrence_type', 'WEEKLY' and is not applicable otherwise. Possible values: ["DAY_OF_WEEK_UNSPECIFIED", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY"] + """ + return pulumi.get(self, "days_of_weeks") + + @property + @pulumi.getter(name="hourlyFrequency") + def hourly_frequency(self) -> int: + """ + Specifies frequency for hourly backups. An hourly frequency of 2 means jobs will run every 2 hours from start time till end time defined. + This is required for 'recurrence_type', 'HOURLY' and is not applicable otherwise. + """ + return pulumi.get(self, "hourly_frequency") + + @property + @pulumi.getter + def months(self) -> Sequence[str]: + """ + Specifies values of months Possible values: ["MONTH_UNSPECIFIED", "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER"] + """ + return pulumi.get(self, "months") + + @property + @pulumi.getter(name="recurrenceType") + def recurrence_type(self) -> str: + """ + RecurrenceType enumerates the applicable periodicity for the schedule. Possible values: ["HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY"] + """ + return pulumi.get(self, "recurrence_type") + + @property + @pulumi.getter(name="timeZone") + def time_zone(self) -> str: + """ + The time zone to be used when interpreting the schedule. + """ + return pulumi.get(self, "time_zone") + + @property + @pulumi.getter(name="weekDayOfMonths") + def week_day_of_months(self) -> Sequence['outputs.GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthResult']: + """ + Specifies a week day of the month like FIRST SUNDAY or LAST MONDAY, on which jobs will run. + """ + return pulumi.get(self, "week_day_of_months") + + +@pulumi.output_type +class GetBackupPlanBackupRuleStandardScheduleBackupWindowResult(dict): + def __init__(__self__, *, + end_hour_of_day: int, + start_hour_of_day: int): + """ + :param int end_hour_of_day: The hour of the day (1-24) when the window ends, for example, if the value of end hour of the day is 10, that means the backup window end time is 10:00. + The end hour of the day should be greater than the start + :param int start_hour_of_day: The hour of the day (0-23) when the window starts, for example, if the value of the start hour of the day is 6, that means the backup window starts at 6:00. + """ + pulumi.set(__self__, "end_hour_of_day", end_hour_of_day) + pulumi.set(__self__, "start_hour_of_day", start_hour_of_day) + + @property + @pulumi.getter(name="endHourOfDay") + def end_hour_of_day(self) -> int: + """ + The hour of the day (1-24) when the window ends, for example, if the value of end hour of the day is 10, that means the backup window end time is 10:00. + The end hour of the day should be greater than the start + """ + return pulumi.get(self, "end_hour_of_day") + + @property + @pulumi.getter(name="startHourOfDay") + def start_hour_of_day(self) -> int: + """ + The hour of the day (0-23) when the window starts, for example, if the value of the start hour of the day is 6, that means the backup window starts at 6:00. + """ + return pulumi.get(self, "start_hour_of_day") + + +@pulumi.output_type +class GetBackupPlanBackupRuleStandardScheduleWeekDayOfMonthResult(dict): + def __init__(__self__, *, + day_of_week: str, + week_of_month: str): + """ + :param str day_of_week: Specifies the day of the week. Possible values: ["DAY_OF_WEEK_UNSPECIFIED", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"] + :param str week_of_month: WeekOfMonth enumerates possible weeks in the month, e.g. the first, third, or last week of the month. Possible values: ["WEEK_OF_MONTH_UNSPECIFIED", "FIRST", "SECOND", "THIRD", "FOURTH", "LAST"] + """ + pulumi.set(__self__, "day_of_week", day_of_week) + pulumi.set(__self__, "week_of_month", week_of_month) + + @property + @pulumi.getter(name="dayOfWeek") + def day_of_week(self) -> str: + """ + Specifies the day of the week. Possible values: ["DAY_OF_WEEK_UNSPECIFIED", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"] + """ + return pulumi.get(self, "day_of_week") + + @property + @pulumi.getter(name="weekOfMonth") + def week_of_month(self) -> str: + """ + WeekOfMonth enumerates possible weeks in the month, e.g. the first, third, or last week of the month. Possible values: ["WEEK_OF_MONTH_UNSPECIFIED", "FIRST", "SECOND", "THIRD", "FOURTH", "LAST"] + """ + return pulumi.get(self, "week_of_month") + + @pulumi.output_type class GetManagementServerManagementUriResult(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_gcp/bigquery/data_transfer_config.py b/sdk/python/pulumi_gcp/bigquery/data_transfer_config.py index b5fcb2881f..82b578ee63 100644 --- a/sdk/python/pulumi_gcp/bigquery/data_transfer_config.py +++ b/sdk/python/pulumi_gcp/bigquery/data_transfer_config.py @@ -798,10 +798,22 @@ def __init__(__self__, Config can be imported using any of these accepted formats: + * `{{project}}/{{name}}` + + * `{{project}} {{name}}` + * `{{name}}` When using the `pulumi import` command, Config can be imported using one of the formats above. For example: + ```sh + $ pulumi import gcp:bigquery/dataTransferConfig:DataTransferConfig default {{project}}/{{name}} + ``` + + ```sh + $ pulumi import gcp:bigquery/dataTransferConfig:DataTransferConfig default "{{project}} {{name}}" + ``` + ```sh $ pulumi import gcp:bigquery/dataTransferConfig:DataTransferConfig default {{name}} ``` @@ -973,10 +985,22 @@ def __init__(__self__, Config can be imported using any of these accepted formats: + * `{{project}}/{{name}}` + + * `{{project}} {{name}}` + * `{{name}}` When using the `pulumi import` command, Config can be imported using one of the formats above. For example: + ```sh + $ pulumi import gcp:bigquery/dataTransferConfig:DataTransferConfig default {{project}}/{{name}} + ``` + + ```sh + $ pulumi import gcp:bigquery/dataTransferConfig:DataTransferConfig default "{{project}} {{name}}" + ``` + ```sh $ pulumi import gcp:bigquery/dataTransferConfig:DataTransferConfig default {{name}} ``` diff --git a/sdk/python/pulumi_gcp/cloudrunv2/_inputs.py b/sdk/python/pulumi_gcp/cloudrunv2/_inputs.py index cd352613f6..3f9c4cccf7 100644 --- a/sdk/python/pulumi_gcp/cloudrunv2/_inputs.py +++ b/sdk/python/pulumi_gcp/cloudrunv2/_inputs.py @@ -1655,6 +1655,11 @@ class JobTemplateTemplateVolumeGcsArgsDict(TypedDict): """ Name of the cloud storage bucket to back the volume. The resource service account must have permission to access the bucket. """ + mount_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + A list of flags to pass to the gcsfuse command for configuring this volume. + Flags should be passed without leading dashes. + """ read_only: NotRequired[pulumi.Input[bool]] """ If true, mount this volume as read-only in all mounts. If false, mount this volume as read-write. @@ -1666,12 +1671,17 @@ class JobTemplateTemplateVolumeGcsArgsDict(TypedDict): class JobTemplateTemplateVolumeGcsArgs: def __init__(__self__, *, bucket: pulumi.Input[str], + mount_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, read_only: Optional[pulumi.Input[bool]] = None): """ :param pulumi.Input[str] bucket: Name of the cloud storage bucket to back the volume. The resource service account must have permission to access the bucket. + :param pulumi.Input[Sequence[pulumi.Input[str]]] mount_options: A list of flags to pass to the gcsfuse command for configuring this volume. + Flags should be passed without leading dashes. :param pulumi.Input[bool] read_only: If true, mount this volume as read-only in all mounts. If false, mount this volume as read-write. """ pulumi.set(__self__, "bucket", bucket) + if mount_options is not None: + pulumi.set(__self__, "mount_options", mount_options) if read_only is not None: pulumi.set(__self__, "read_only", read_only) @@ -1687,6 +1697,19 @@ def bucket(self) -> pulumi.Input[str]: def bucket(self, value: pulumi.Input[str]): pulumi.set(self, "bucket", value) + @property + @pulumi.getter(name="mountOptions") + def mount_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + A list of flags to pass to the gcsfuse command for configuring this volume. + Flags should be passed without leading dashes. + """ + return pulumi.get(self, "mount_options") + + @mount_options.setter + def mount_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "mount_options", value) + @property @pulumi.getter(name="readOnly") def read_only(self) -> Optional[pulumi.Input[bool]]: @@ -4779,6 +4802,11 @@ class ServiceTemplateVolumeGcsArgsDict(TypedDict): """ GCS Bucket name """ + mount_options: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + A list of flags to pass to the gcsfuse command for configuring this volume. + Flags should be passed without leading dashes. + """ read_only: NotRequired[pulumi.Input[bool]] """ If true, mount the GCS bucket as read-only @@ -4790,12 +4818,17 @@ class ServiceTemplateVolumeGcsArgsDict(TypedDict): class ServiceTemplateVolumeGcsArgs: def __init__(__self__, *, bucket: pulumi.Input[str], + mount_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, read_only: Optional[pulumi.Input[bool]] = None): """ :param pulumi.Input[str] bucket: GCS Bucket name + :param pulumi.Input[Sequence[pulumi.Input[str]]] mount_options: A list of flags to pass to the gcsfuse command for configuring this volume. + Flags should be passed without leading dashes. :param pulumi.Input[bool] read_only: If true, mount the GCS bucket as read-only """ pulumi.set(__self__, "bucket", bucket) + if mount_options is not None: + pulumi.set(__self__, "mount_options", mount_options) if read_only is not None: pulumi.set(__self__, "read_only", read_only) @@ -4811,6 +4844,19 @@ def bucket(self) -> pulumi.Input[str]: def bucket(self, value: pulumi.Input[str]): pulumi.set(self, "bucket", value) + @property + @pulumi.getter(name="mountOptions") + def mount_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + A list of flags to pass to the gcsfuse command for configuring this volume. + Flags should be passed without leading dashes. + """ + return pulumi.get(self, "mount_options") + + @mount_options.setter + def mount_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "mount_options", value) + @property @pulumi.getter(name="readOnly") def read_only(self) -> Optional[pulumi.Input[bool]]: diff --git a/sdk/python/pulumi_gcp/cloudrunv2/job.py b/sdk/python/pulumi_gcp/cloudrunv2/job.py index df4dfc111b..5d3e9b487b 100644 --- a/sdk/python/pulumi_gcp/cloudrunv2/job.py +++ b/sdk/python/pulumi_gcp/cloudrunv2/job.py @@ -1086,7 +1086,6 @@ def __init__(__self__, name="cloudrun-job", location="us-central1", deletion_protection=False, - launch_stage="BETA", template={ "template": { "containers": [{ @@ -1440,7 +1439,6 @@ def __init__(__self__, name="cloudrun-job", location="us-central1", deletion_protection=False, - launch_stage="BETA", template={ "template": { "containers": [{ diff --git a/sdk/python/pulumi_gcp/cloudrunv2/outputs.py b/sdk/python/pulumi_gcp/cloudrunv2/outputs.py index 0fc4c87ef7..dd5579badf 100644 --- a/sdk/python/pulumi_gcp/cloudrunv2/outputs.py +++ b/sdk/python/pulumi_gcp/cloudrunv2/outputs.py @@ -1270,7 +1270,9 @@ class JobTemplateTemplateVolumeGcs(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "readOnly": + if key == "mountOptions": + suggest = "mount_options" + elif key == "readOnly": suggest = "read_only" if suggest: @@ -1286,12 +1288,17 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, bucket: str, + mount_options: Optional[Sequence[str]] = None, read_only: Optional[bool] = None): """ :param str bucket: Name of the cloud storage bucket to back the volume. The resource service account must have permission to access the bucket. + :param Sequence[str] mount_options: A list of flags to pass to the gcsfuse command for configuring this volume. + Flags should be passed without leading dashes. :param bool read_only: If true, mount this volume as read-only in all mounts. If false, mount this volume as read-write. """ pulumi.set(__self__, "bucket", bucket) + if mount_options is not None: + pulumi.set(__self__, "mount_options", mount_options) if read_only is not None: pulumi.set(__self__, "read_only", read_only) @@ -1303,6 +1310,15 @@ def bucket(self) -> str: """ return pulumi.get(self, "bucket") + @property + @pulumi.getter(name="mountOptions") + def mount_options(self) -> Optional[Sequence[str]]: + """ + A list of flags to pass to the gcsfuse command for configuring this volume. + Flags should be passed without leading dashes. + """ + return pulumi.get(self, "mount_options") + @property @pulumi.getter(name="readOnly") def read_only(self) -> Optional[bool]: @@ -3577,7 +3593,9 @@ class ServiceTemplateVolumeGcs(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "readOnly": + if key == "mountOptions": + suggest = "mount_options" + elif key == "readOnly": suggest = "read_only" if suggest: @@ -3593,12 +3611,17 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, bucket: str, + mount_options: Optional[Sequence[str]] = None, read_only: Optional[bool] = None): """ :param str bucket: GCS Bucket name + :param Sequence[str] mount_options: A list of flags to pass to the gcsfuse command for configuring this volume. + Flags should be passed without leading dashes. :param bool read_only: If true, mount the GCS bucket as read-only """ pulumi.set(__self__, "bucket", bucket) + if mount_options is not None: + pulumi.set(__self__, "mount_options", mount_options) if read_only is not None: pulumi.set(__self__, "read_only", read_only) @@ -3610,6 +3633,15 @@ def bucket(self) -> str: """ return pulumi.get(self, "bucket") + @property + @pulumi.getter(name="mountOptions") + def mount_options(self) -> Optional[Sequence[str]]: + """ + A list of flags to pass to the gcsfuse command for configuring this volume. + Flags should be passed without leading dashes. + """ + return pulumi.get(self, "mount_options") + @property @pulumi.getter(name="readOnly") def read_only(self) -> Optional[bool]: @@ -4936,12 +4968,16 @@ def size_limit(self) -> str: class GetJobTemplateTemplateVolumeGcResult(dict): def __init__(__self__, *, bucket: str, + mount_options: Sequence[str], read_only: bool): """ :param str bucket: Name of the cloud storage bucket to back the volume. The resource service account must have permission to access the bucket. + :param Sequence[str] mount_options: A list of flags to pass to the gcsfuse command for configuring this volume. + Flags should be passed without leading dashes. :param bool read_only: If true, mount this volume as read-only in all mounts. If false, mount this volume as read-write. """ pulumi.set(__self__, "bucket", bucket) + pulumi.set(__self__, "mount_options", mount_options) pulumi.set(__self__, "read_only", read_only) @property @@ -4952,6 +4988,15 @@ def bucket(self) -> str: """ return pulumi.get(self, "bucket") + @property + @pulumi.getter(name="mountOptions") + def mount_options(self) -> Sequence[str]: + """ + A list of flags to pass to the gcsfuse command for configuring this volume. + Flags should be passed without leading dashes. + """ + return pulumi.get(self, "mount_options") + @property @pulumi.getter(name="readOnly") def read_only(self) -> bool: @@ -6562,12 +6607,16 @@ def size_limit(self) -> str: class GetServiceTemplateVolumeGcResult(dict): def __init__(__self__, *, bucket: str, + mount_options: Sequence[str], read_only: bool): """ :param str bucket: GCS Bucket name + :param Sequence[str] mount_options: A list of flags to pass to the gcsfuse command for configuring this volume. + Flags should be passed without leading dashes. :param bool read_only: If true, mount the GCS bucket as read-only """ pulumi.set(__self__, "bucket", bucket) + pulumi.set(__self__, "mount_options", mount_options) pulumi.set(__self__, "read_only", read_only) @property @@ -6578,6 +6627,15 @@ def bucket(self) -> str: """ return pulumi.get(self, "bucket") + @property + @pulumi.getter(name="mountOptions") + def mount_options(self) -> Sequence[str]: + """ + A list of flags to pass to the gcsfuse command for configuring this volume. + Flags should be passed without leading dashes. + """ + return pulumi.get(self, "mount_options") + @property @pulumi.getter(name="readOnly") def read_only(self) -> bool: diff --git a/sdk/python/pulumi_gcp/cloudrunv2/service.py b/sdk/python/pulumi_gcp/cloudrunv2/service.py index e563f5578a..e0fd7f66f4 100644 --- a/sdk/python/pulumi_gcp/cloudrunv2/service.py +++ b/sdk/python/pulumi_gcp/cloudrunv2/service.py @@ -1355,7 +1355,6 @@ def __init__(__self__, name="cloudrun-service", location="us-central1", deletion_protection=False, - launch_stage="BETA", ingress="INGRESS_TRAFFIC_ALL", template={ "containers": [ @@ -1899,7 +1898,6 @@ def __init__(__self__, name="cloudrun-service", location="us-central1", deletion_protection=False, - launch_stage="BETA", ingress="INGRESS_TRAFFIC_ALL", template={ "containers": [ diff --git a/sdk/python/pulumi_gcp/compute/__init__.py b/sdk/python/pulumi_gcp/compute/__init__.py index 5ae8227a40..05982b0b25 100644 --- a/sdk/python/pulumi_gcp/compute/__init__.py +++ b/sdk/python/pulumi_gcp/compute/__init__.py @@ -167,6 +167,7 @@ from .region_network_firewall_policy_rule import * from .region_network_firewall_policy_with_rules import * from .region_per_instance_config import * +from .region_resize_request import * from .region_security_policy import * from .region_security_policy_rule import * from .region_ssl_certificate import * diff --git a/sdk/python/pulumi_gcp/compute/_inputs.py b/sdk/python/pulumi_gcp/compute/_inputs.py index 96194b7b2c..19737dde88 100644 --- a/sdk/python/pulumi_gcp/compute/_inputs.py +++ b/sdk/python/pulumi_gcp/compute/_inputs.py @@ -445,6 +445,8 @@ 'NodeGroupShareSettingsProjectMapArgsDict', 'NodeTemplateAcceleratorArgs', 'NodeTemplateAcceleratorArgsDict', + 'NodeTemplateDiskArgs', + 'NodeTemplateDiskArgsDict', 'NodeTemplateNodeTypeFlexibilityArgs', 'NodeTemplateNodeTypeFlexibilityArgsDict', 'NodeTemplateServerBindingArgs', @@ -573,6 +575,10 @@ 'RegionInstanceGroupManagerAllInstancesConfigArgsDict', 'RegionInstanceGroupManagerAutoHealingPoliciesArgs', 'RegionInstanceGroupManagerAutoHealingPoliciesArgsDict', + 'RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs', + 'RegionInstanceGroupManagerInstanceFlexibilityPolicyArgsDict', + 'RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs', + 'RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgsDict', 'RegionInstanceGroupManagerInstanceLifecyclePolicyArgs', 'RegionInstanceGroupManagerInstanceLifecyclePolicyArgsDict', 'RegionInstanceGroupManagerNamedPortArgs', @@ -693,8 +699,48 @@ 'RegionPerInstanceConfigPreservedStateInternalIpArgsDict', 'RegionPerInstanceConfigPreservedStateInternalIpIpAddressArgs', 'RegionPerInstanceConfigPreservedStateInternalIpIpAddressArgsDict', + 'RegionResizeRequestRequestedRunDurationArgs', + 'RegionResizeRequestRequestedRunDurationArgsDict', + 'RegionResizeRequestStatusArgs', + 'RegionResizeRequestStatusArgsDict', + 'RegionResizeRequestStatusErrorArgs', + 'RegionResizeRequestStatusErrorArgsDict', + 'RegionResizeRequestStatusErrorErrorArgs', + 'RegionResizeRequestStatusErrorErrorArgsDict', + 'RegionResizeRequestStatusErrorErrorErrorDetailArgs', + 'RegionResizeRequestStatusErrorErrorErrorDetailArgsDict', + 'RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs', + 'RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgsDict', + 'RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs', + 'RegionResizeRequestStatusErrorErrorErrorDetailHelpArgsDict', + 'RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs', + 'RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgsDict', + 'RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs', + 'RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgsDict', + 'RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs', + 'RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgsDict', + 'RegionResizeRequestStatusLastAttemptArgs', + 'RegionResizeRequestStatusLastAttemptArgsDict', + 'RegionResizeRequestStatusLastAttemptErrorArgs', + 'RegionResizeRequestStatusLastAttemptErrorArgsDict', + 'RegionResizeRequestStatusLastAttemptErrorErrorArgs', + 'RegionResizeRequestStatusLastAttemptErrorErrorArgsDict', + 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs', + 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgsDict', + 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs', + 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgsDict', + 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs', + 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgsDict', + 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs', + 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgsDict', + 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs', + 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgsDict', + 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs', + 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgsDict', 'RegionSecurityPolicyDdosProtectionConfigArgs', 'RegionSecurityPolicyDdosProtectionConfigArgsDict', + 'RegionSecurityPolicyRuleArgs', + 'RegionSecurityPolicyRuleArgsDict', 'RegionSecurityPolicyRuleMatchArgs', 'RegionSecurityPolicyRuleMatchArgsDict', 'RegionSecurityPolicyRuleMatchConfigArgs', @@ -1890,7 +1936,7 @@ def type(self, value: Optional[pulumi.Input[str]]): class AutoscalerAutoscalingPolicyScaleDownControlArgsDict(TypedDict): max_scaled_down_replicas: NotRequired[pulumi.Input['AutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasArgsDict']] """ - A nested object resource + A nested object resource. Structure is documented below. """ time_window_sec: NotRequired[pulumi.Input[int]] @@ -1907,7 +1953,7 @@ def __init__(__self__, *, max_scaled_down_replicas: Optional[pulumi.Input['AutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasArgs']] = None, time_window_sec: Optional[pulumi.Input[int]] = None): """ - :param pulumi.Input['AutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasArgs'] max_scaled_down_replicas: A nested object resource + :param pulumi.Input['AutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasArgs'] max_scaled_down_replicas: A nested object resource. Structure is documented below. :param pulumi.Input[int] time_window_sec: How long back autoscaling should look when computing recommendations to include directives regarding slower scale down, as described above. @@ -1921,7 +1967,7 @@ def __init__(__self__, *, @pulumi.getter(name="maxScaledDownReplicas") def max_scaled_down_replicas(self) -> Optional[pulumi.Input['AutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "max_scaled_down_replicas") @@ -2006,7 +2052,7 @@ def percent(self, value: Optional[pulumi.Input[int]]): class AutoscalerAutoscalingPolicyScaleInControlArgsDict(TypedDict): max_scaled_in_replicas: NotRequired[pulumi.Input['AutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicasArgsDict']] """ - A nested object resource + A nested object resource. Structure is documented below. """ time_window_sec: NotRequired[pulumi.Input[int]] @@ -2023,7 +2069,7 @@ def __init__(__self__, *, max_scaled_in_replicas: Optional[pulumi.Input['AutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicasArgs']] = None, time_window_sec: Optional[pulumi.Input[int]] = None): """ - :param pulumi.Input['AutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicasArgs'] max_scaled_in_replicas: A nested object resource + :param pulumi.Input['AutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicasArgs'] max_scaled_in_replicas: A nested object resource. Structure is documented below. :param pulumi.Input[int] time_window_sec: How long back autoscaling should look when computing recommendations to include directives regarding slower scale down, as described above. @@ -2037,7 +2083,7 @@ def __init__(__self__, *, @pulumi.getter(name="maxScaledInReplicas") def max_scaled_in_replicas(self) -> Optional[pulumi.Input['AutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicasArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "max_scaled_in_replicas") @@ -6361,48 +6407,50 @@ class FirewallPolicyRuleMatchArgsDict(TypedDict): layer4_configs: pulumi.Input[Sequence[pulumi.Input['FirewallPolicyRuleMatchLayer4ConfigArgsDict']]] """ Pairs of IP protocols and ports that the rule should match. + Structure is documented below. """ dest_address_groups: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] """ - Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. Destination address groups is only supported in Egress rules. + Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. """ dest_fqdns: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] """ - Domain names that will be used to match against the resolved domain name of destination of traffic. Can only be specified if DIRECTION is egress. + Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100. """ dest_ip_ranges: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] """ - CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 256. + CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000. """ dest_region_codes: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] """ - The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is egress. + Region codes whose IP addresses will be used to match for destination of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of dest region codes allowed is 5000. """ dest_threat_intelligences: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] """ - Name of the Google Cloud Threat Intelligence list. + Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination. """ src_address_groups: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] """ - Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. Source address groups is only supported in Ingress rules. + Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. """ src_fqdns: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] """ - Domain names that will be used to match against the resolved domain name of source of traffic. Can only be specified if DIRECTION is ingress. + Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100. """ src_ip_ranges: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] """ - CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 256. + CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000. """ src_region_codes: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] """ - The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is ingress. + Region codes whose IP addresses will be used to match for source of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of source region codes allowed is 5000. """ src_threat_intelligences: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] """ - Name of the Google Cloud Threat Intelligence list. + Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source. + - The `layer4_configs` block supports: + The `layer4_configs` block supports: """ elif False: FirewallPolicyRuleMatchArgsDict: TypeAlias = Mapping[str, Any] @@ -6423,18 +6471,20 @@ def __init__(__self__, *, src_threat_intelligences: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ :param pulumi.Input[Sequence[pulumi.Input['FirewallPolicyRuleMatchLayer4ConfigArgs']]] layer4_configs: Pairs of IP protocols and ports that the rule should match. - :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_address_groups: Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. Destination address groups is only supported in Egress rules. - :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_fqdns: Domain names that will be used to match against the resolved domain name of destination of traffic. Can only be specified if DIRECTION is egress. - :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_ip_ranges: CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 256. - :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_region_codes: The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is egress. - :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_threat_intelligences: Name of the Google Cloud Threat Intelligence list. - :param pulumi.Input[Sequence[pulumi.Input[str]]] src_address_groups: Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. Source address groups is only supported in Ingress rules. - :param pulumi.Input[Sequence[pulumi.Input[str]]] src_fqdns: Domain names that will be used to match against the resolved domain name of source of traffic. Can only be specified if DIRECTION is ingress. - :param pulumi.Input[Sequence[pulumi.Input[str]]] src_ip_ranges: CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 256. - :param pulumi.Input[Sequence[pulumi.Input[str]]] src_region_codes: The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is ingress. - :param pulumi.Input[Sequence[pulumi.Input[str]]] src_threat_intelligences: Name of the Google Cloud Threat Intelligence list. + Structure is documented below. + :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_address_groups: Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. + :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_fqdns: Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100. + :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_ip_ranges: CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000. + :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_region_codes: Region codes whose IP addresses will be used to match for destination of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of dest region codes allowed is 5000. + :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_threat_intelligences: Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination. + :param pulumi.Input[Sequence[pulumi.Input[str]]] src_address_groups: Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. + :param pulumi.Input[Sequence[pulumi.Input[str]]] src_fqdns: Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100. + :param pulumi.Input[Sequence[pulumi.Input[str]]] src_ip_ranges: CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000. + :param pulumi.Input[Sequence[pulumi.Input[str]]] src_region_codes: Region codes whose IP addresses will be used to match for source of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of source region codes allowed is 5000. + :param pulumi.Input[Sequence[pulumi.Input[str]]] src_threat_intelligences: Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source. - The `layer4_configs` block supports: + + The `layer4_configs` block supports: """ pulumi.set(__self__, "layer4_configs", layer4_configs) if dest_address_groups is not None: @@ -6463,6 +6513,7 @@ def __init__(__self__, *, def layer4_configs(self) -> pulumi.Input[Sequence[pulumi.Input['FirewallPolicyRuleMatchLayer4ConfigArgs']]]: """ Pairs of IP protocols and ports that the rule should match. + Structure is documented below. """ return pulumi.get(self, "layer4_configs") @@ -6474,7 +6525,7 @@ def layer4_configs(self, value: pulumi.Input[Sequence[pulumi.Input['FirewallPoli @pulumi.getter(name="destAddressGroups") def dest_address_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ - Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. Destination address groups is only supported in Egress rules. + Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. """ return pulumi.get(self, "dest_address_groups") @@ -6486,7 +6537,7 @@ def dest_address_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input @pulumi.getter(name="destFqdns") def dest_fqdns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ - Domain names that will be used to match against the resolved domain name of destination of traffic. Can only be specified if DIRECTION is egress. + Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100. """ return pulumi.get(self, "dest_fqdns") @@ -6498,7 +6549,7 @@ def dest_fqdns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]) @pulumi.getter(name="destIpRanges") def dest_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ - CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 256. + CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000. """ return pulumi.get(self, "dest_ip_ranges") @@ -6510,7 +6561,7 @@ def dest_ip_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] @pulumi.getter(name="destRegionCodes") def dest_region_codes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ - The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is egress. + Region codes whose IP addresses will be used to match for destination of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of dest region codes allowed is 5000. """ return pulumi.get(self, "dest_region_codes") @@ -6522,7 +6573,7 @@ def dest_region_codes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[s @pulumi.getter(name="destThreatIntelligences") def dest_threat_intelligences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ - Name of the Google Cloud Threat Intelligence list. + Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination. """ return pulumi.get(self, "dest_threat_intelligences") @@ -6534,7 +6585,7 @@ def dest_threat_intelligences(self, value: Optional[pulumi.Input[Sequence[pulumi @pulumi.getter(name="srcAddressGroups") def src_address_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ - Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. Source address groups is only supported in Ingress rules. + Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. """ return pulumi.get(self, "src_address_groups") @@ -6546,7 +6597,7 @@ def src_address_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[ @pulumi.getter(name="srcFqdns") def src_fqdns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ - Domain names that will be used to match against the resolved domain name of source of traffic. Can only be specified if DIRECTION is ingress. + Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100. """ return pulumi.get(self, "src_fqdns") @@ -6558,7 +6609,7 @@ def src_fqdns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): @pulumi.getter(name="srcIpRanges") def src_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ - CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 256. + CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000. """ return pulumi.get(self, "src_ip_ranges") @@ -6570,7 +6621,7 @@ def src_ip_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]] @pulumi.getter(name="srcRegionCodes") def src_region_codes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ - The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is ingress. + Region codes whose IP addresses will be used to match for source of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of source region codes allowed is 5000. """ return pulumi.get(self, "src_region_codes") @@ -6582,9 +6633,10 @@ def src_region_codes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st @pulumi.getter(name="srcThreatIntelligences") def src_threat_intelligences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ - Name of the Google Cloud Threat Intelligence list. + Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source. + - The `layer4_configs` block supports: + The `layer4_configs` block supports: """ return pulumi.get(self, "src_threat_intelligences") @@ -6597,11 +6649,13 @@ def src_threat_intelligences(self, value: Optional[pulumi.Input[Sequence[pulumi. class FirewallPolicyRuleMatchLayer4ConfigArgsDict(TypedDict): ip_protocol: pulumi.Input[str] """ - The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (`tcp`, `udp`, `icmp`, `esp`, `ah`, `ipip`, `sctp`), or the IP protocol number. + The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. + This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number. """ ports: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] """ - An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ``. + An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. + Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. """ elif False: FirewallPolicyRuleMatchLayer4ConfigArgsDict: TypeAlias = Mapping[str, Any] @@ -6612,8 +6666,10 @@ def __init__(__self__, *, ip_protocol: pulumi.Input[str], ports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ - :param pulumi.Input[str] ip_protocol: The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (`tcp`, `udp`, `icmp`, `esp`, `ah`, `ipip`, `sctp`), or the IP protocol number. - :param pulumi.Input[Sequence[pulumi.Input[str]]] ports: An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ``. + :param pulumi.Input[str] ip_protocol: The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. + This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number. + :param pulumi.Input[Sequence[pulumi.Input[str]]] ports: An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. + Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. """ pulumi.set(__self__, "ip_protocol", ip_protocol) if ports is not None: @@ -6623,7 +6679,8 @@ def __init__(__self__, *, @pulumi.getter(name="ipProtocol") def ip_protocol(self) -> pulumi.Input[str]: """ - The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (`tcp`, `udp`, `icmp`, `esp`, `ah`, `ipip`, `sctp`), or the IP protocol number. + The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. + This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number. """ return pulumi.get(self, "ip_protocol") @@ -6635,7 +6692,8 @@ def ip_protocol(self, value: pulumi.Input[str]): @pulumi.getter def ports(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ - An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ``. + An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. + Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. """ return pulumi.get(self, "ports") @@ -23971,6 +24029,78 @@ def accelerator_type(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "accelerator_type", value) +if not MYPY: + class NodeTemplateDiskArgsDict(TypedDict): + disk_count: NotRequired[pulumi.Input[int]] + """ + Specifies the number of such disks. + """ + disk_size_gb: NotRequired[pulumi.Input[int]] + """ + Specifies the size of the disk in base-2 GB. + """ + disk_type: NotRequired[pulumi.Input[str]] + """ + Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be the name of the disk type and not its URL. + """ +elif False: + NodeTemplateDiskArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class NodeTemplateDiskArgs: + def __init__(__self__, *, + disk_count: Optional[pulumi.Input[int]] = None, + disk_size_gb: Optional[pulumi.Input[int]] = None, + disk_type: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[int] disk_count: Specifies the number of such disks. + :param pulumi.Input[int] disk_size_gb: Specifies the size of the disk in base-2 GB. + :param pulumi.Input[str] disk_type: Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be the name of the disk type and not its URL. + """ + if disk_count is not None: + pulumi.set(__self__, "disk_count", disk_count) + if disk_size_gb is not None: + pulumi.set(__self__, "disk_size_gb", disk_size_gb) + if disk_type is not None: + pulumi.set(__self__, "disk_type", disk_type) + + @property + @pulumi.getter(name="diskCount") + def disk_count(self) -> Optional[pulumi.Input[int]]: + """ + Specifies the number of such disks. + """ + return pulumi.get(self, "disk_count") + + @disk_count.setter + def disk_count(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "disk_count", value) + + @property + @pulumi.getter(name="diskSizeGb") + def disk_size_gb(self) -> Optional[pulumi.Input[int]]: + """ + Specifies the size of the disk in base-2 GB. + """ + return pulumi.get(self, "disk_size_gb") + + @disk_size_gb.setter + def disk_size_gb(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "disk_size_gb", value) + + @property + @pulumi.getter(name="diskType") + def disk_type(self) -> Optional[pulumi.Input[str]]: + """ + Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be the name of the disk type and not its URL. + """ + return pulumi.get(self, "disk_type") + + @disk_type.setter + def disk_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "disk_type", value) + + if not MYPY: class NodeTemplateNodeTypeFlexibilityArgsDict(TypedDict): cpus: NotRequired[pulumi.Input[str]] @@ -25765,7 +25895,7 @@ def type(self, value: Optional[pulumi.Input[str]]): class RegionAutoscalerAutoscalingPolicyScaleDownControlArgsDict(TypedDict): max_scaled_down_replicas: NotRequired[pulumi.Input['RegionAutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasArgsDict']] """ - A nested object resource + A nested object resource. Structure is documented below. """ time_window_sec: NotRequired[pulumi.Input[int]] @@ -25782,7 +25912,7 @@ def __init__(__self__, *, max_scaled_down_replicas: Optional[pulumi.Input['RegionAutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasArgs']] = None, time_window_sec: Optional[pulumi.Input[int]] = None): """ - :param pulumi.Input['RegionAutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasArgs'] max_scaled_down_replicas: A nested object resource + :param pulumi.Input['RegionAutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasArgs'] max_scaled_down_replicas: A nested object resource. Structure is documented below. :param pulumi.Input[int] time_window_sec: How long back autoscaling should look when computing recommendations to include directives regarding slower scale down, as described above. @@ -25796,7 +25926,7 @@ def __init__(__self__, *, @pulumi.getter(name="maxScaledDownReplicas") def max_scaled_down_replicas(self) -> Optional[pulumi.Input['RegionAutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "max_scaled_down_replicas") @@ -25881,7 +26011,7 @@ def percent(self, value: Optional[pulumi.Input[int]]): class RegionAutoscalerAutoscalingPolicyScaleInControlArgsDict(TypedDict): max_scaled_in_replicas: NotRequired[pulumi.Input['RegionAutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicasArgsDict']] """ - A nested object resource + A nested object resource. Structure is documented below. """ time_window_sec: NotRequired[pulumi.Input[int]] @@ -25898,7 +26028,7 @@ def __init__(__self__, *, max_scaled_in_replicas: Optional[pulumi.Input['RegionAutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicasArgs']] = None, time_window_sec: Optional[pulumi.Input[int]] = None): """ - :param pulumi.Input['RegionAutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicasArgs'] max_scaled_in_replicas: A nested object resource + :param pulumi.Input['RegionAutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicasArgs'] max_scaled_in_replicas: A nested object resource. Structure is documented below. :param pulumi.Input[int] time_window_sec: How long back autoscaling should look when computing recommendations to include directives regarding slower scale down, as described above. @@ -25912,7 +26042,7 @@ def __init__(__self__, *, @pulumi.getter(name="maxScaledInReplicas") def max_scaled_in_replicas(self) -> Optional[pulumi.Input['RegionAutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicasArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "max_scaled_in_replicas") @@ -30357,13 +30487,11 @@ def response(self, value: Optional[pulumi.Input[str]]): class RegionInstanceGroupManagerAllInstancesConfigArgsDict(TypedDict): labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]] """ - , The label key-value pairs that you want to patch onto the instance. - - - - - + The label key-value pairs that you want to patch onto the instance, """ metadata: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]] """ - , The metadata key-value pairs that you want to patch onto the instance. For more information, see [Project and instance metadata](https://cloud.google.com/compute/docs/metadata#project_and_instance_metadata). + The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata, """ elif False: RegionInstanceGroupManagerAllInstancesConfigArgsDict: TypeAlias = Mapping[str, Any] @@ -30374,10 +30502,8 @@ def __init__(__self__, *, labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): """ - :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: , The label key-value pairs that you want to patch onto the instance. - - - - - - :param pulumi.Input[Mapping[str, pulumi.Input[str]]] metadata: , The metadata key-value pairs that you want to patch onto the instance. For more information, see [Project and instance metadata](https://cloud.google.com/compute/docs/metadata#project_and_instance_metadata). + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: The label key-value pairs that you want to patch onto the instance, + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] metadata: The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata, """ if labels is not None: pulumi.set(__self__, "labels", labels) @@ -30388,9 +30514,7 @@ def __init__(__self__, *, @pulumi.getter def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: """ - , The label key-value pairs that you want to patch onto the instance. - - - - - + The label key-value pairs that you want to patch onto the instance, """ return pulumi.get(self, "labels") @@ -30402,7 +30526,7 @@ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]) @pulumi.getter def metadata(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: """ - , The metadata key-value pairs that you want to patch onto the instance. For more information, see [Project and instance metadata](https://cloud.google.com/compute/docs/metadata#project_and_instance_metadata). + The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata, """ return pulumi.get(self, "metadata") @@ -30464,6 +30588,117 @@ def initial_delay_sec(self, value: pulumi.Input[int]): pulumi.set(self, "initial_delay_sec", value) +if not MYPY: + class RegionInstanceGroupManagerInstanceFlexibilityPolicyArgsDict(TypedDict): + instance_selections: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgsDict']]]] + """ + Named instance selections configuring properties that the group will use when creating new VMs. + """ +elif False: + RegionInstanceGroupManagerInstanceFlexibilityPolicyArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs: + def __init__(__self__, *, + instance_selections: Optional[pulumi.Input[Sequence[pulumi.Input['RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs']]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input['RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs']]] instance_selections: Named instance selections configuring properties that the group will use when creating new VMs. + """ + if instance_selections is not None: + pulumi.set(__self__, "instance_selections", instance_selections) + + @property + @pulumi.getter(name="instanceSelections") + def instance_selections(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs']]]]: + """ + Named instance selections configuring properties that the group will use when creating new VMs. + """ + return pulumi.get(self, "instance_selections") + + @instance_selections.setter + def instance_selections(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs']]]]): + pulumi.set(self, "instance_selections", value) + + +if not MYPY: + class RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgsDict(TypedDict): + machine_types: pulumi.Input[Sequence[pulumi.Input[str]]] + """ + Full machine-type names, e.g. "n1-standard-16" + """ + name: pulumi.Input[str] + """ + The name of the instance group manager. Must be 1-63 + characters long and comply with + [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Supported characters + include lowercase letters, numbers, and hyphens. + """ + rank: NotRequired[pulumi.Input[int]] + """ + Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference. + """ +elif False: + RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs: + def __init__(__self__, *, + machine_types: pulumi.Input[Sequence[pulumi.Input[str]]], + name: pulumi.Input[str], + rank: Optional[pulumi.Input[int]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input[str]]] machine_types: Full machine-type names, e.g. "n1-standard-16" + :param pulumi.Input[str] name: The name of the instance group manager. Must be 1-63 + characters long and comply with + [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Supported characters + include lowercase letters, numbers, and hyphens. + :param pulumi.Input[int] rank: Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference. + """ + pulumi.set(__self__, "machine_types", machine_types) + pulumi.set(__self__, "name", name) + if rank is not None: + pulumi.set(__self__, "rank", rank) + + @property + @pulumi.getter(name="machineTypes") + def machine_types(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: + """ + Full machine-type names, e.g. "n1-standard-16" + """ + return pulumi.get(self, "machine_types") + + @machine_types.setter + def machine_types(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): + pulumi.set(self, "machine_types", value) + + @property + @pulumi.getter + def name(self) -> pulumi.Input[str]: + """ + The name of the instance group manager. Must be 1-63 + characters long and comply with + [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Supported characters + include lowercase letters, numbers, and hyphens. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: pulumi.Input[str]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def rank(self) -> Optional[pulumi.Input[int]]: + """ + Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference. + """ + return pulumi.get(self, "rank") + + @rank.setter + def rank(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "rank", value) + + if not MYPY: class RegionInstanceGroupManagerInstanceLifecyclePolicyArgsDict(TypedDict): default_action_on_failure: NotRequired[pulumi.Input[str]] @@ -30471,6 +30706,7 @@ class RegionInstanceGroupManagerInstanceLifecyclePolicyArgsDict(TypedDict): , Default behavior for all instance or health check failures. Valid options are: `REPAIR`, `DO_NOTHING`. If `DO_NOTHING` then instances will not be repaired. If `REPAIR` (default), then failed instances will be repaired. - - - + The `instance_flexibility_policy` block supports: """ force_update_on_repair: NotRequired[pulumi.Input[str]] """ @@ -30488,6 +30724,7 @@ def __init__(__self__, *, :param pulumi.Input[str] default_action_on_failure: , Default behavior for all instance or health check failures. Valid options are: `REPAIR`, `DO_NOTHING`. If `DO_NOTHING` then instances will not be repaired. If `REPAIR` (default), then failed instances will be repaired. - - - + The `instance_flexibility_policy` block supports: :param pulumi.Input[str] force_update_on_repair: , Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: `YES`, `NO`. If `YES` and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If `NO` (default), then updates are applied in accordance with the group's update policy type. """ if default_action_on_failure is not None: @@ -30502,6 +30739,7 @@ def default_action_on_failure(self) -> Optional[pulumi.Input[str]]: , Default behavior for all instance or health check failures. Valid options are: `REPAIR`, `DO_NOTHING`. If `DO_NOTHING` then instances will not be repaired. If `REPAIR` (default), then failed instances will be repaired. - - - + The `instance_flexibility_policy` block supports: """ return pulumi.get(self, "default_action_on_failure") @@ -36759,306 +36997,1975 @@ def address(self, value: Optional[pulumi.Input[str]]): if not MYPY: - class RegionSecurityPolicyDdosProtectionConfigArgsDict(TypedDict): - ddos_protection: pulumi.Input[str] + class RegionResizeRequestRequestedRunDurationArgsDict(TypedDict): + seconds: pulumi.Input[str] """ - Google Cloud Armor offers the following options to help protect systems against DDoS attacks: - - STANDARD: basic always-on protection for network load balancers, protocol forwarding, or VMs with public IP addresses. - - ADVANCED: additional protections for Managed Protection Plus subscribers who use network load balancers, protocol forwarding, or VMs with public IP addresses. - - ADVANCED_PREVIEW: flag to enable the security policy in preview mode. - Possible values are: `ADVANCED`, `ADVANCED_PREVIEW`, `STANDARD`. + Span of time at a resolution of a second. Must be from 600 to 604800 inclusive. Note: minimum and maximum allowed range for requestedRunDuration is 10 minutes (600 seconds) and 7 days(604800 seconds) correspondingly. + """ + nanos: NotRequired[pulumi.Input[int]] + """ + Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. """ elif False: - RegionSecurityPolicyDdosProtectionConfigArgsDict: TypeAlias = Mapping[str, Any] + RegionResizeRequestRequestedRunDurationArgsDict: TypeAlias = Mapping[str, Any] @pulumi.input_type -class RegionSecurityPolicyDdosProtectionConfigArgs: +class RegionResizeRequestRequestedRunDurationArgs: def __init__(__self__, *, - ddos_protection: pulumi.Input[str]): + seconds: pulumi.Input[str], + nanos: Optional[pulumi.Input[int]] = None): """ - :param pulumi.Input[str] ddos_protection: Google Cloud Armor offers the following options to help protect systems against DDoS attacks: - - STANDARD: basic always-on protection for network load balancers, protocol forwarding, or VMs with public IP addresses. - - ADVANCED: additional protections for Managed Protection Plus subscribers who use network load balancers, protocol forwarding, or VMs with public IP addresses. - - ADVANCED_PREVIEW: flag to enable the security policy in preview mode. - Possible values are: `ADVANCED`, `ADVANCED_PREVIEW`, `STANDARD`. + :param pulumi.Input[str] seconds: Span of time at a resolution of a second. Must be from 600 to 604800 inclusive. Note: minimum and maximum allowed range for requestedRunDuration is 10 minutes (600 seconds) and 7 days(604800 seconds) correspondingly. + :param pulumi.Input[int] nanos: Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. """ - pulumi.set(__self__, "ddos_protection", ddos_protection) + pulumi.set(__self__, "seconds", seconds) + if nanos is not None: + pulumi.set(__self__, "nanos", nanos) @property - @pulumi.getter(name="ddosProtection") - def ddos_protection(self) -> pulumi.Input[str]: + @pulumi.getter + def seconds(self) -> pulumi.Input[str]: """ - Google Cloud Armor offers the following options to help protect systems against DDoS attacks: - - STANDARD: basic always-on protection for network load balancers, protocol forwarding, or VMs with public IP addresses. - - ADVANCED: additional protections for Managed Protection Plus subscribers who use network load balancers, protocol forwarding, or VMs with public IP addresses. - - ADVANCED_PREVIEW: flag to enable the security policy in preview mode. - Possible values are: `ADVANCED`, `ADVANCED_PREVIEW`, `STANDARD`. + Span of time at a resolution of a second. Must be from 600 to 604800 inclusive. Note: minimum and maximum allowed range for requestedRunDuration is 10 minutes (600 seconds) and 7 days(604800 seconds) correspondingly. """ - return pulumi.get(self, "ddos_protection") + return pulumi.get(self, "seconds") - @ddos_protection.setter - def ddos_protection(self, value: pulumi.Input[str]): - pulumi.set(self, "ddos_protection", value) + @seconds.setter + def seconds(self, value: pulumi.Input[str]): + pulumi.set(self, "seconds", value) + + @property + @pulumi.getter + def nanos(self) -> Optional[pulumi.Input[int]]: + """ + Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. + """ + return pulumi.get(self, "nanos") + + @nanos.setter + def nanos(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "nanos", value) if not MYPY: - class RegionSecurityPolicyRuleMatchArgsDict(TypedDict): - config: NotRequired[pulumi.Input['RegionSecurityPolicyRuleMatchConfigArgsDict']] + class RegionResizeRequestStatusArgsDict(TypedDict): + errors: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorArgsDict']]]] """ - The configuration options available when specifying versionedExpr. - This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified. + (Output) + Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. Structure is documented below. """ - expr: NotRequired[pulumi.Input['RegionSecurityPolicyRuleMatchExprArgsDict']] + last_attempts: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptArgsDict']]]] """ - User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. + (Output) + Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the "error" field only. Structure is documented below. """ - versioned_expr: NotRequired[pulumi.Input[str]] - """ - Preconfigured versioned expression. If this field is specified, config must also be specified. - Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config. - Possible values are: `SRC_IPS_V1`. - """ elif False: - RegionSecurityPolicyRuleMatchArgsDict: TypeAlias = Mapping[str, Any] + RegionResizeRequestStatusArgsDict: TypeAlias = Mapping[str, Any] @pulumi.input_type -class RegionSecurityPolicyRuleMatchArgs: +class RegionResizeRequestStatusArgs: def __init__(__self__, *, - config: Optional[pulumi.Input['RegionSecurityPolicyRuleMatchConfigArgs']] = None, - expr: Optional[pulumi.Input['RegionSecurityPolicyRuleMatchExprArgs']] = None, - versioned_expr: Optional[pulumi.Input[str]] = None): + errors: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorArgs']]]] = None, + last_attempts: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptArgs']]]] = None): """ - :param pulumi.Input['RegionSecurityPolicyRuleMatchConfigArgs'] config: The configuration options available when specifying versionedExpr. - This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified. + :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorArgs']]] errors: (Output) + Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. Structure is documented below. - :param pulumi.Input['RegionSecurityPolicyRuleMatchExprArgs'] expr: User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. + :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptArgs']]] last_attempts: (Output) + Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the "error" field only. Structure is documented below. - :param pulumi.Input[str] versioned_expr: Preconfigured versioned expression. If this field is specified, config must also be specified. - Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config. - Possible values are: `SRC_IPS_V1`. """ - if config is not None: - pulumi.set(__self__, "config", config) - if expr is not None: - pulumi.set(__self__, "expr", expr) - if versioned_expr is not None: - pulumi.set(__self__, "versioned_expr", versioned_expr) + if errors is not None: + pulumi.set(__self__, "errors", errors) + if last_attempts is not None: + pulumi.set(__self__, "last_attempts", last_attempts) @property @pulumi.getter - def config(self) -> Optional[pulumi.Input['RegionSecurityPolicyRuleMatchConfigArgs']]: + def errors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorArgs']]]]: """ - The configuration options available when specifying versionedExpr. - This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified. + (Output) + Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. Structure is documented below. """ - return pulumi.get(self, "config") + return pulumi.get(self, "errors") - @config.setter - def config(self, value: Optional[pulumi.Input['RegionSecurityPolicyRuleMatchConfigArgs']]): - pulumi.set(self, "config", value) + @errors.setter + def errors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorArgs']]]]): + pulumi.set(self, "errors", value) @property - @pulumi.getter - def expr(self) -> Optional[pulumi.Input['RegionSecurityPolicyRuleMatchExprArgs']]: + @pulumi.getter(name="lastAttempts") + def last_attempts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptArgs']]]]: """ - User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. + (Output) + Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the "error" field only. Structure is documented below. """ - return pulumi.get(self, "expr") - - @expr.setter - def expr(self, value: Optional[pulumi.Input['RegionSecurityPolicyRuleMatchExprArgs']]): - pulumi.set(self, "expr", value) - - @property - @pulumi.getter(name="versionedExpr") - def versioned_expr(self) -> Optional[pulumi.Input[str]]: - """ - Preconfigured versioned expression. If this field is specified, config must also be specified. - Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config. - Possible values are: `SRC_IPS_V1`. - """ - return pulumi.get(self, "versioned_expr") + return pulumi.get(self, "last_attempts") - @versioned_expr.setter - def versioned_expr(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "versioned_expr", value) + @last_attempts.setter + def last_attempts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptArgs']]]]): + pulumi.set(self, "last_attempts", value) if not MYPY: - class RegionSecurityPolicyRuleMatchConfigArgsDict(TypedDict): - src_ip_ranges: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + class RegionResizeRequestStatusErrorArgsDict(TypedDict): + errors: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorArgsDict']]]] """ - CIDR IP address range. Maximum number of srcIpRanges allowed is 10. + (Output) + The array of errors encountered while processing this operation. + Structure is documented below. """ elif False: - RegionSecurityPolicyRuleMatchConfigArgsDict: TypeAlias = Mapping[str, Any] + RegionResizeRequestStatusErrorArgsDict: TypeAlias = Mapping[str, Any] @pulumi.input_type -class RegionSecurityPolicyRuleMatchConfigArgs: +class RegionResizeRequestStatusErrorArgs: def __init__(__self__, *, - src_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + errors: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorArgs']]]] = None): """ - :param pulumi.Input[Sequence[pulumi.Input[str]]] src_ip_ranges: CIDR IP address range. Maximum number of srcIpRanges allowed is 10. + :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorArgs']]] errors: (Output) + The array of errors encountered while processing this operation. + Structure is documented below. """ - if src_ip_ranges is not None: - pulumi.set(__self__, "src_ip_ranges", src_ip_ranges) + if errors is not None: + pulumi.set(__self__, "errors", errors) @property - @pulumi.getter(name="srcIpRanges") - def src_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + @pulumi.getter + def errors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorArgs']]]]: """ - CIDR IP address range. Maximum number of srcIpRanges allowed is 10. + (Output) + The array of errors encountered while processing this operation. + Structure is documented below. """ - return pulumi.get(self, "src_ip_ranges") + return pulumi.get(self, "errors") - @src_ip_ranges.setter - def src_ip_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): - pulumi.set(self, "src_ip_ranges", value) + @errors.setter + def errors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorArgs']]]]): + pulumi.set(self, "errors", value) if not MYPY: - class RegionSecurityPolicyRuleMatchExprArgsDict(TypedDict): - expression: pulumi.Input[str] + class RegionResizeRequestStatusErrorErrorArgsDict(TypedDict): + code: NotRequired[pulumi.Input[str]] """ - Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported. + (Output) + The error type identifier for this error. + """ + error_details: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailArgsDict']]]] + """ + (Output) + An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + Structure is documented below. + """ + location: NotRequired[pulumi.Input[str]] + """ + (Output) + Indicates the field in the request that caused the error. This property is optional. + """ + message: NotRequired[pulumi.Input[str]] + """ + (Output) + The localized error message in the above locale. """ elif False: - RegionSecurityPolicyRuleMatchExprArgsDict: TypeAlias = Mapping[str, Any] + RegionResizeRequestStatusErrorErrorArgsDict: TypeAlias = Mapping[str, Any] @pulumi.input_type -class RegionSecurityPolicyRuleMatchExprArgs: +class RegionResizeRequestStatusErrorErrorArgs: def __init__(__self__, *, - expression: pulumi.Input[str]): + code: Optional[pulumi.Input[str]] = None, + error_details: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailArgs']]]] = None, + location: Optional[pulumi.Input[str]] = None, + message: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] expression: Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported. + :param pulumi.Input[str] code: (Output) + The error type identifier for this error. + :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailArgs']]] error_details: (Output) + An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + Structure is documented below. + :param pulumi.Input[str] location: (Output) + Indicates the field in the request that caused the error. This property is optional. + :param pulumi.Input[str] message: (Output) + The localized error message in the above locale. """ - pulumi.set(__self__, "expression", expression) + if code is not None: + pulumi.set(__self__, "code", code) + if error_details is not None: + pulumi.set(__self__, "error_details", error_details) + if location is not None: + pulumi.set(__self__, "location", location) + if message is not None: + pulumi.set(__self__, "message", message) @property @pulumi.getter - def expression(self) -> pulumi.Input[str]: + def code(self) -> Optional[pulumi.Input[str]]: """ - Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported. + (Output) + The error type identifier for this error. """ - return pulumi.get(self, "expression") - - @expression.setter - def expression(self, value: pulumi.Input[str]): - pulumi.set(self, "expression", value) + return pulumi.get(self, "code") + @code.setter + def code(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "code", value) -if not MYPY: - class RegionSecurityPolicyRuleNetworkMatchArgsDict(TypedDict): - dest_ip_ranges: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] - """ - Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format. - """ - dest_ports: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + @property + @pulumi.getter(name="errorDetails") + def error_details(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailArgs']]]]: """ - Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). + (Output) + An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + Structure is documented below. """ - ip_protocols: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + return pulumi.get(self, "error_details") + + @error_details.setter + def error_details(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailArgs']]]]): + pulumi.set(self, "error_details", value) + + @property + @pulumi.getter + def location(self) -> Optional[pulumi.Input[str]]: """ - IPv4 protocol / IPv6 next header (after extension headers). Each element can be an 8-bit unsigned decimal number (e.g. "6"), range (e.g. "253-254"), or one of the following protocol names: "tcp", "udp", "icmp", "esp", "ah", "ipip", or "sctp". + (Output) + Indicates the field in the request that caused the error. This property is optional. """ - src_asns: NotRequired[pulumi.Input[Sequence[pulumi.Input[int]]]] + return pulumi.get(self, "location") + + @location.setter + def location(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter + def message(self) -> Optional[pulumi.Input[str]]: """ - BGP Autonomous System Number associated with the source IP address. + (Output) + The localized error message in the above locale. """ - src_ip_ranges: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + return pulumi.get(self, "message") + + @message.setter + def message(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "message", value) + + +if not MYPY: + class RegionResizeRequestStatusErrorErrorErrorDetailArgsDict(TypedDict): + error_infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgsDict']]]] """ - Source IPv4/IPv6 addresses or CIDR prefixes, in standard text format. + (Output) + A nested object resource. + Structure is documented below. """ - src_ports: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + helps: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailHelpArgsDict']]]] """ - Source port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). + (Output) + A nested object resource. + Structure is documented below. """ - src_region_codes: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + localized_messages: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgsDict']]]] """ - Two-letter ISO 3166-1 alpha-2 country code associated with the source IP address. + (Output) + A nested object resource. + Structure is documented below. """ - user_defined_fields: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArgsDict']]]] + quota_infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgsDict']]]] """ - User-defined fields. Each element names a defined field and lists the matching values for that field. + (Output) + A nested object resource. Structure is documented below. """ elif False: - RegionSecurityPolicyRuleNetworkMatchArgsDict: TypeAlias = Mapping[str, Any] + RegionResizeRequestStatusErrorErrorErrorDetailArgsDict: TypeAlias = Mapping[str, Any] @pulumi.input_type -class RegionSecurityPolicyRuleNetworkMatchArgs: +class RegionResizeRequestStatusErrorErrorErrorDetailArgs: def __init__(__self__, *, - dest_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - dest_ports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - ip_protocols: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - src_asns: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None, - src_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - src_ports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - src_region_codes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - user_defined_fields: Optional[pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArgs']]]] = None): + error_infos: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs']]]] = None, + helps: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs']]]] = None, + localized_messages: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs']]]] = None, + quota_infos: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs']]]] = None): """ - :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_ip_ranges: Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format. - :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_ports: Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). - :param pulumi.Input[Sequence[pulumi.Input[str]]] ip_protocols: IPv4 protocol / IPv6 next header (after extension headers). Each element can be an 8-bit unsigned decimal number (e.g. "6"), range (e.g. "253-254"), or one of the following protocol names: "tcp", "udp", "icmp", "esp", "ah", "ipip", or "sctp". - :param pulumi.Input[Sequence[pulumi.Input[int]]] src_asns: BGP Autonomous System Number associated with the source IP address. - :param pulumi.Input[Sequence[pulumi.Input[str]]] src_ip_ranges: Source IPv4/IPv6 addresses or CIDR prefixes, in standard text format. - :param pulumi.Input[Sequence[pulumi.Input[str]]] src_ports: Source port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). - :param pulumi.Input[Sequence[pulumi.Input[str]]] src_region_codes: Two-letter ISO 3166-1 alpha-2 country code associated with the source IP address. - :param pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArgs']]] user_defined_fields: User-defined fields. Each element names a defined field and lists the matching values for that field. + :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs']]] error_infos: (Output) + A nested object resource. + Structure is documented below. + :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs']]] helps: (Output) + A nested object resource. + Structure is documented below. + :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs']]] localized_messages: (Output) + A nested object resource. + Structure is documented below. + :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs']]] quota_infos: (Output) + A nested object resource. Structure is documented below. """ - if dest_ip_ranges is not None: - pulumi.set(__self__, "dest_ip_ranges", dest_ip_ranges) - if dest_ports is not None: - pulumi.set(__self__, "dest_ports", dest_ports) - if ip_protocols is not None: - pulumi.set(__self__, "ip_protocols", ip_protocols) - if src_asns is not None: - pulumi.set(__self__, "src_asns", src_asns) - if src_ip_ranges is not None: - pulumi.set(__self__, "src_ip_ranges", src_ip_ranges) - if src_ports is not None: - pulumi.set(__self__, "src_ports", src_ports) - if src_region_codes is not None: - pulumi.set(__self__, "src_region_codes", src_region_codes) - if user_defined_fields is not None: - pulumi.set(__self__, "user_defined_fields", user_defined_fields) + if error_infos is not None: + pulumi.set(__self__, "error_infos", error_infos) + if helps is not None: + pulumi.set(__self__, "helps", helps) + if localized_messages is not None: + pulumi.set(__self__, "localized_messages", localized_messages) + if quota_infos is not None: + pulumi.set(__self__, "quota_infos", quota_infos) @property - @pulumi.getter(name="destIpRanges") - def dest_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + @pulumi.getter(name="errorInfos") + def error_infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs']]]]: """ - Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format. + (Output) + A nested object resource. + Structure is documented below. """ - return pulumi.get(self, "dest_ip_ranges") + return pulumi.get(self, "error_infos") - @dest_ip_ranges.setter - def dest_ip_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): - pulumi.set(self, "dest_ip_ranges", value) + @error_infos.setter + def error_infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs']]]]): + pulumi.set(self, "error_infos", value) @property - @pulumi.getter(name="destPorts") - def dest_ports(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + @pulumi.getter + def helps(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs']]]]: """ - Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). + (Output) + A nested object resource. + Structure is documented below. """ - return pulumi.get(self, "dest_ports") + return pulumi.get(self, "helps") - @dest_ports.setter - def dest_ports(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): - pulumi.set(self, "dest_ports", value) + @helps.setter + def helps(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs']]]]): + pulumi.set(self, "helps", value) @property - @pulumi.getter(name="ipProtocols") - def ip_protocols(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + @pulumi.getter(name="localizedMessages") + def localized_messages(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs']]]]: """ - IPv4 protocol / IPv6 next header (after extension headers). Each element can be an 8-bit unsigned decimal number (e.g. "6"), range (e.g. "253-254"), or one of the following protocol names: "tcp", "udp", "icmp", "esp", "ah", "ipip", or "sctp". + (Output) + A nested object resource. + Structure is documented below. """ - return pulumi.get(self, "ip_protocols") + return pulumi.get(self, "localized_messages") + + @localized_messages.setter + def localized_messages(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs']]]]): + pulumi.set(self, "localized_messages", value) + + @property + @pulumi.getter(name="quotaInfos") + def quota_infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs']]]]: + """ + (Output) + A nested object resource. + Structure is documented below. + """ + return pulumi.get(self, "quota_infos") + + @quota_infos.setter + def quota_infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs']]]]): + pulumi.set(self, "quota_infos", value) + + +if not MYPY: + class RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgsDict(TypedDict): + domain: NotRequired[pulumi.Input[str]] + """ + (Output) + 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". + """ + metadatas: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]] + """ + (Output) + Additional structured details about this error. + """ + reason: NotRequired[pulumi.Input[str]] + """ + (Output) + 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. + """ +elif False: + RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs: + def __init__(__self__, *, + domain: Optional[pulumi.Input[str]] = None, + metadatas: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + reason: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] domain: (Output) + 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". + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] metadatas: (Output) + Additional structured details about this error. + :param pulumi.Input[str] reason: (Output) + 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. + """ + if domain is not None: + pulumi.set(__self__, "domain", domain) + if metadatas is not None: + pulumi.set(__self__, "metadatas", metadatas) + if reason is not None: + pulumi.set(__self__, "reason", reason) + + @property + @pulumi.getter + def domain(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + 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". + """ + return pulumi.get(self, "domain") + + @domain.setter + def domain(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "domain", value) + + @property + @pulumi.getter + def metadatas(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + (Output) + Additional structured details about this error. + """ + return pulumi.get(self, "metadatas") + + @metadatas.setter + def metadatas(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "metadatas", value) + + @property + @pulumi.getter + def reason(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + 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. + """ + return pulumi.get(self, "reason") + + @reason.setter + def reason(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "reason", value) + + +if not MYPY: + class RegionResizeRequestStatusErrorErrorErrorDetailHelpArgsDict(TypedDict): + links: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgsDict']]]] + """ + (Output) + A nested object resource. + Structure is documented below. + """ +elif False: + RegionResizeRequestStatusErrorErrorErrorDetailHelpArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs: + def __init__(__self__, *, + links: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs']]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs']]] links: (Output) + A nested object resource. + Structure is documented below. + """ + if links is not None: + pulumi.set(__self__, "links", links) + + @property + @pulumi.getter + def links(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs']]]]: + """ + (Output) + A nested object resource. + Structure is documented below. + """ + return pulumi.get(self, "links") + + @links.setter + def links(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs']]]]): + pulumi.set(self, "links", value) + + +if not MYPY: + class RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgsDict(TypedDict): + description: NotRequired[pulumi.Input[str]] + """ + An optional description of this resize-request. + """ + url: NotRequired[pulumi.Input[str]] + """ + (Output) + The URL of the link. + """ +elif False: + RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs: + def __init__(__self__, *, + description: Optional[pulumi.Input[str]] = None, + url: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] description: An optional description of this resize-request. + :param pulumi.Input[str] url: (Output) + The URL of the link. + """ + if description is not None: + pulumi.set(__self__, "description", description) + if url is not None: + pulumi.set(__self__, "url", url) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + An optional description of this resize-request. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def url(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + The URL of the link. + """ + return pulumi.get(self, "url") + + @url.setter + def url(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "url", value) + + +if not MYPY: + class RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgsDict(TypedDict): + locale: NotRequired[pulumi.Input[str]] + """ + (Output) + The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + """ + message: NotRequired[pulumi.Input[str]] + """ + (Output) + The localized error message in the above locale. + """ +elif False: + RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs: + def __init__(__self__, *, + locale: Optional[pulumi.Input[str]] = None, + message: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] locale: (Output) + The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + :param pulumi.Input[str] message: (Output) + The localized error message in the above locale. + """ + if locale is not None: + pulumi.set(__self__, "locale", locale) + if message is not None: + pulumi.set(__self__, "message", message) + + @property + @pulumi.getter + def locale(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + """ + return pulumi.get(self, "locale") + + @locale.setter + def locale(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "locale", value) + + @property + @pulumi.getter + def message(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + The localized error message in the above locale. + """ + return pulumi.get(self, "message") + + @message.setter + def message(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "message", value) + + +if not MYPY: + class RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgsDict(TypedDict): + dimensions: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]] + """ + (Output) + The map holding related quota dimensions + """ + future_limit: NotRequired[pulumi.Input[int]] + """ + (Output) + Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + """ + limit: NotRequired[pulumi.Input[int]] + """ + (Output) + Current effective quota limit. The limit's unit depends on the quota type or metric. + """ + limit_name: NotRequired[pulumi.Input[str]] + """ + (Output) + The name of the quota limit. + """ + metric_name: NotRequired[pulumi.Input[str]] + """ + (Output) + The Compute Engine quota metric name. + """ + rollout_status: NotRequired[pulumi.Input[str]] + """ + (Output) + Rollout status of the future quota limit. + """ +elif False: + RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs: + def __init__(__self__, *, + dimensions: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + future_limit: Optional[pulumi.Input[int]] = None, + limit: Optional[pulumi.Input[int]] = None, + limit_name: Optional[pulumi.Input[str]] = None, + metric_name: Optional[pulumi.Input[str]] = None, + rollout_status: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] dimensions: (Output) + The map holding related quota dimensions + :param pulumi.Input[int] future_limit: (Output) + Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + :param pulumi.Input[int] limit: (Output) + Current effective quota limit. The limit's unit depends on the quota type or metric. + :param pulumi.Input[str] limit_name: (Output) + The name of the quota limit. + :param pulumi.Input[str] metric_name: (Output) + The Compute Engine quota metric name. + :param pulumi.Input[str] rollout_status: (Output) + Rollout status of the future quota limit. + """ + if dimensions is not None: + pulumi.set(__self__, "dimensions", dimensions) + if future_limit is not None: + pulumi.set(__self__, "future_limit", future_limit) + if limit is not None: + pulumi.set(__self__, "limit", limit) + if limit_name is not None: + pulumi.set(__self__, "limit_name", limit_name) + if metric_name is not None: + pulumi.set(__self__, "metric_name", metric_name) + if rollout_status is not None: + pulumi.set(__self__, "rollout_status", rollout_status) + + @property + @pulumi.getter + def dimensions(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + (Output) + The map holding related quota dimensions + """ + return pulumi.get(self, "dimensions") + + @dimensions.setter + def dimensions(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "dimensions", value) + + @property + @pulumi.getter(name="futureLimit") + def future_limit(self) -> Optional[pulumi.Input[int]]: + """ + (Output) + Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + """ + return pulumi.get(self, "future_limit") + + @future_limit.setter + def future_limit(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "future_limit", value) + + @property + @pulumi.getter + def limit(self) -> Optional[pulumi.Input[int]]: + """ + (Output) + Current effective quota limit. The limit's unit depends on the quota type or metric. + """ + return pulumi.get(self, "limit") + + @limit.setter + def limit(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "limit", value) + + @property + @pulumi.getter(name="limitName") + def limit_name(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + The name of the quota limit. + """ + return pulumi.get(self, "limit_name") + + @limit_name.setter + def limit_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "limit_name", value) + + @property + @pulumi.getter(name="metricName") + def metric_name(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + The Compute Engine quota metric name. + """ + return pulumi.get(self, "metric_name") + + @metric_name.setter + def metric_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "metric_name", value) + + @property + @pulumi.getter(name="rolloutStatus") + def rollout_status(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + Rollout status of the future quota limit. + """ + return pulumi.get(self, "rollout_status") + + @rollout_status.setter + def rollout_status(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "rollout_status", value) + + +if not MYPY: + class RegionResizeRequestStatusLastAttemptArgsDict(TypedDict): + errors: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorArgsDict']]]] + """ + (Output) + Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + Structure is documented below. + """ +elif False: + RegionResizeRequestStatusLastAttemptArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class RegionResizeRequestStatusLastAttemptArgs: + def __init__(__self__, *, + errors: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorArgs']]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorArgs']]] errors: (Output) + Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + Structure is documented below. + """ + if errors is not None: + pulumi.set(__self__, "errors", errors) + + @property + @pulumi.getter + def errors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorArgs']]]]: + """ + (Output) + Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + Structure is documented below. + """ + return pulumi.get(self, "errors") + + @errors.setter + def errors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorArgs']]]]): + pulumi.set(self, "errors", value) + + +if not MYPY: + class RegionResizeRequestStatusLastAttemptErrorArgsDict(TypedDict): + errors: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorArgsDict']]]] + """ + (Output) + The array of errors encountered while processing this operation. + Structure is documented below. + """ +elif False: + RegionResizeRequestStatusLastAttemptErrorArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class RegionResizeRequestStatusLastAttemptErrorArgs: + def __init__(__self__, *, + errors: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorArgs']]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorArgs']]] errors: (Output) + The array of errors encountered while processing this operation. + Structure is documented below. + """ + if errors is not None: + pulumi.set(__self__, "errors", errors) + + @property + @pulumi.getter + def errors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorArgs']]]]: + """ + (Output) + The array of errors encountered while processing this operation. + Structure is documented below. + """ + return pulumi.get(self, "errors") + + @errors.setter + def errors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorArgs']]]]): + pulumi.set(self, "errors", value) + + +if not MYPY: + class RegionResizeRequestStatusLastAttemptErrorErrorArgsDict(TypedDict): + code: NotRequired[pulumi.Input[str]] + """ + (Output) + The error type identifier for this error. + """ + error_details: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgsDict']]]] + """ + (Output) + An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + Structure is documented below. + """ + location: NotRequired[pulumi.Input[str]] + """ + (Output) + Indicates the field in the request that caused the error. This property is optional. + """ + message: NotRequired[pulumi.Input[str]] + """ + (Output) + The localized error message in the above locale. + """ +elif False: + RegionResizeRequestStatusLastAttemptErrorErrorArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class RegionResizeRequestStatusLastAttemptErrorErrorArgs: + def __init__(__self__, *, + code: Optional[pulumi.Input[str]] = None, + error_details: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs']]]] = None, + location: Optional[pulumi.Input[str]] = None, + message: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] code: (Output) + The error type identifier for this error. + :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs']]] error_details: (Output) + An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + Structure is documented below. + :param pulumi.Input[str] location: (Output) + Indicates the field in the request that caused the error. This property is optional. + :param pulumi.Input[str] message: (Output) + The localized error message in the above locale. + """ + if code is not None: + pulumi.set(__self__, "code", code) + if error_details is not None: + pulumi.set(__self__, "error_details", error_details) + if location is not None: + pulumi.set(__self__, "location", location) + if message is not None: + pulumi.set(__self__, "message", message) + + @property + @pulumi.getter + def code(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + The error type identifier for this error. + """ + return pulumi.get(self, "code") + + @code.setter + def code(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "code", value) + + @property + @pulumi.getter(name="errorDetails") + def error_details(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs']]]]: + """ + (Output) + An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + Structure is documented below. + """ + return pulumi.get(self, "error_details") + + @error_details.setter + def error_details(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs']]]]): + pulumi.set(self, "error_details", value) + + @property + @pulumi.getter + def location(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + Indicates the field in the request that caused the error. This property is optional. + """ + return pulumi.get(self, "location") + + @location.setter + def location(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter + def message(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + The localized error message in the above locale. + """ + return pulumi.get(self, "message") + + @message.setter + def message(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "message", value) + + +if not MYPY: + class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgsDict(TypedDict): + error_infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgsDict']]]] + """ + (Output) + A nested object resource. + Structure is documented below. + """ + helps: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgsDict']]]] + """ + (Output) + A nested object resource. + Structure is documented below. + """ + localized_messages: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgsDict']]]] + """ + (Output) + A nested object resource. + Structure is documented below. + """ + quota_infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgsDict']]]] + """ + (Output) + A nested object resource. + Structure is documented below. + """ +elif False: + RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs: + def __init__(__self__, *, + error_infos: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs']]]] = None, + helps: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs']]]] = None, + localized_messages: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs']]]] = None, + quota_infos: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs']]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs']]] error_infos: (Output) + A nested object resource. + Structure is documented below. + :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs']]] helps: (Output) + A nested object resource. + Structure is documented below. + :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs']]] localized_messages: (Output) + A nested object resource. + Structure is documented below. + :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs']]] quota_infos: (Output) + A nested object resource. + Structure is documented below. + """ + if error_infos is not None: + pulumi.set(__self__, "error_infos", error_infos) + if helps is not None: + pulumi.set(__self__, "helps", helps) + if localized_messages is not None: + pulumi.set(__self__, "localized_messages", localized_messages) + if quota_infos is not None: + pulumi.set(__self__, "quota_infos", quota_infos) + + @property + @pulumi.getter(name="errorInfos") + def error_infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs']]]]: + """ + (Output) + A nested object resource. + Structure is documented below. + """ + return pulumi.get(self, "error_infos") + + @error_infos.setter + def error_infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs']]]]): + pulumi.set(self, "error_infos", value) + + @property + @pulumi.getter + def helps(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs']]]]: + """ + (Output) + A nested object resource. + Structure is documented below. + """ + return pulumi.get(self, "helps") + + @helps.setter + def helps(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs']]]]): + pulumi.set(self, "helps", value) + + @property + @pulumi.getter(name="localizedMessages") + def localized_messages(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs']]]]: + """ + (Output) + A nested object resource. + Structure is documented below. + """ + return pulumi.get(self, "localized_messages") + + @localized_messages.setter + def localized_messages(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs']]]]): + pulumi.set(self, "localized_messages", value) + + @property + @pulumi.getter(name="quotaInfos") + def quota_infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs']]]]: + """ + (Output) + A nested object resource. + Structure is documented below. + """ + return pulumi.get(self, "quota_infos") + + @quota_infos.setter + def quota_infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs']]]]): + pulumi.set(self, "quota_infos", value) + + +if not MYPY: + class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgsDict(TypedDict): + domain: NotRequired[pulumi.Input[str]] + """ + (Output) + 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". + """ + metadatas: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]] + """ + (Output) + Additional structured details about this error. + """ + reason: NotRequired[pulumi.Input[str]] + """ + (Output) + 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. + """ +elif False: + RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs: + def __init__(__self__, *, + domain: Optional[pulumi.Input[str]] = None, + metadatas: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + reason: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] domain: (Output) + 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". + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] metadatas: (Output) + Additional structured details about this error. + :param pulumi.Input[str] reason: (Output) + 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. + """ + if domain is not None: + pulumi.set(__self__, "domain", domain) + if metadatas is not None: + pulumi.set(__self__, "metadatas", metadatas) + if reason is not None: + pulumi.set(__self__, "reason", reason) + + @property + @pulumi.getter + def domain(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + 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". + """ + return pulumi.get(self, "domain") + + @domain.setter + def domain(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "domain", value) + + @property + @pulumi.getter + def metadatas(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + (Output) + Additional structured details about this error. + """ + return pulumi.get(self, "metadatas") + + @metadatas.setter + def metadatas(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "metadatas", value) + + @property + @pulumi.getter + def reason(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + 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. + """ + return pulumi.get(self, "reason") + + @reason.setter + def reason(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "reason", value) + + +if not MYPY: + class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgsDict(TypedDict): + links: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgsDict']]]] + """ + (Output) + A nested object resource. + Structure is documented below. + """ +elif False: + RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs: + def __init__(__self__, *, + links: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs']]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs']]] links: (Output) + A nested object resource. + Structure is documented below. + """ + if links is not None: + pulumi.set(__self__, "links", links) + + @property + @pulumi.getter + def links(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs']]]]: + """ + (Output) + A nested object resource. + Structure is documented below. + """ + return pulumi.get(self, "links") + + @links.setter + def links(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs']]]]): + pulumi.set(self, "links", value) + + +if not MYPY: + class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgsDict(TypedDict): + description: NotRequired[pulumi.Input[str]] + """ + An optional description of this resize-request. + """ + url: NotRequired[pulumi.Input[str]] + """ + (Output) + The URL of the link. + """ +elif False: + RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs: + def __init__(__self__, *, + description: Optional[pulumi.Input[str]] = None, + url: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] description: An optional description of this resize-request. + :param pulumi.Input[str] url: (Output) + The URL of the link. + """ + if description is not None: + pulumi.set(__self__, "description", description) + if url is not None: + pulumi.set(__self__, "url", url) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + An optional description of this resize-request. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def url(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + The URL of the link. + """ + return pulumi.get(self, "url") + + @url.setter + def url(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "url", value) + + +if not MYPY: + class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgsDict(TypedDict): + locale: NotRequired[pulumi.Input[str]] + """ + (Output) + The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + """ + message: NotRequired[pulumi.Input[str]] + """ + (Output) + The localized error message in the above locale. + """ +elif False: + RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs: + def __init__(__self__, *, + locale: Optional[pulumi.Input[str]] = None, + message: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] locale: (Output) + The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + :param pulumi.Input[str] message: (Output) + The localized error message in the above locale. + """ + if locale is not None: + pulumi.set(__self__, "locale", locale) + if message is not None: + pulumi.set(__self__, "message", message) + + @property + @pulumi.getter + def locale(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + """ + return pulumi.get(self, "locale") + + @locale.setter + def locale(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "locale", value) + + @property + @pulumi.getter + def message(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + The localized error message in the above locale. + """ + return pulumi.get(self, "message") + + @message.setter + def message(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "message", value) + + +if not MYPY: + class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgsDict(TypedDict): + dimensions: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]] + """ + (Output) + The map holding related quota dimensions + """ + future_limit: NotRequired[pulumi.Input[int]] + """ + (Output) + Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + """ + limit: NotRequired[pulumi.Input[int]] + """ + (Output) + Current effective quota limit. The limit's unit depends on the quota type or metric. + """ + limit_name: NotRequired[pulumi.Input[str]] + """ + (Output) + The name of the quota limit. + """ + metric_name: NotRequired[pulumi.Input[str]] + """ + (Output) + The Compute Engine quota metric name. + """ + rollout_status: NotRequired[pulumi.Input[str]] + """ + (Output) + Rollout status of the future quota limit. + """ +elif False: + RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs: + def __init__(__self__, *, + dimensions: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + future_limit: Optional[pulumi.Input[int]] = None, + limit: Optional[pulumi.Input[int]] = None, + limit_name: Optional[pulumi.Input[str]] = None, + metric_name: Optional[pulumi.Input[str]] = None, + rollout_status: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] dimensions: (Output) + The map holding related quota dimensions + :param pulumi.Input[int] future_limit: (Output) + Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + :param pulumi.Input[int] limit: (Output) + Current effective quota limit. The limit's unit depends on the quota type or metric. + :param pulumi.Input[str] limit_name: (Output) + The name of the quota limit. + :param pulumi.Input[str] metric_name: (Output) + The Compute Engine quota metric name. + :param pulumi.Input[str] rollout_status: (Output) + Rollout status of the future quota limit. + """ + if dimensions is not None: + pulumi.set(__self__, "dimensions", dimensions) + if future_limit is not None: + pulumi.set(__self__, "future_limit", future_limit) + if limit is not None: + pulumi.set(__self__, "limit", limit) + if limit_name is not None: + pulumi.set(__self__, "limit_name", limit_name) + if metric_name is not None: + pulumi.set(__self__, "metric_name", metric_name) + if rollout_status is not None: + pulumi.set(__self__, "rollout_status", rollout_status) + + @property + @pulumi.getter + def dimensions(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + (Output) + The map holding related quota dimensions + """ + return pulumi.get(self, "dimensions") + + @dimensions.setter + def dimensions(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "dimensions", value) + + @property + @pulumi.getter(name="futureLimit") + def future_limit(self) -> Optional[pulumi.Input[int]]: + """ + (Output) + Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + """ + return pulumi.get(self, "future_limit") + + @future_limit.setter + def future_limit(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "future_limit", value) + + @property + @pulumi.getter + def limit(self) -> Optional[pulumi.Input[int]]: + """ + (Output) + Current effective quota limit. The limit's unit depends on the quota type or metric. + """ + return pulumi.get(self, "limit") + + @limit.setter + def limit(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "limit", value) + + @property + @pulumi.getter(name="limitName") + def limit_name(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + The name of the quota limit. + """ + return pulumi.get(self, "limit_name") + + @limit_name.setter + def limit_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "limit_name", value) + + @property + @pulumi.getter(name="metricName") + def metric_name(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + The Compute Engine quota metric name. + """ + return pulumi.get(self, "metric_name") + + @metric_name.setter + def metric_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "metric_name", value) + + @property + @pulumi.getter(name="rolloutStatus") + def rollout_status(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + Rollout status of the future quota limit. + """ + return pulumi.get(self, "rollout_status") + + @rollout_status.setter + def rollout_status(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "rollout_status", value) + + +if not MYPY: + class RegionSecurityPolicyDdosProtectionConfigArgsDict(TypedDict): + ddos_protection: pulumi.Input[str] + """ + Google Cloud Armor offers the following options to help protect systems against DDoS attacks: + - STANDARD: basic always-on protection for network load balancers, protocol forwarding, or VMs with public IP addresses. + - ADVANCED: additional protections for Managed Protection Plus subscribers who use network load balancers, protocol forwarding, or VMs with public IP addresses. + - ADVANCED_PREVIEW: flag to enable the security policy in preview mode. + Possible values are: `ADVANCED`, `ADVANCED_PREVIEW`, `STANDARD`. + """ +elif False: + RegionSecurityPolicyDdosProtectionConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class RegionSecurityPolicyDdosProtectionConfigArgs: + def __init__(__self__, *, + ddos_protection: pulumi.Input[str]): + """ + :param pulumi.Input[str] ddos_protection: Google Cloud Armor offers the following options to help protect systems against DDoS attacks: + - STANDARD: basic always-on protection for network load balancers, protocol forwarding, or VMs with public IP addresses. + - ADVANCED: additional protections for Managed Protection Plus subscribers who use network load balancers, protocol forwarding, or VMs with public IP addresses. + - ADVANCED_PREVIEW: flag to enable the security policy in preview mode. + Possible values are: `ADVANCED`, `ADVANCED_PREVIEW`, `STANDARD`. + """ + pulumi.set(__self__, "ddos_protection", ddos_protection) + + @property + @pulumi.getter(name="ddosProtection") + def ddos_protection(self) -> pulumi.Input[str]: + """ + Google Cloud Armor offers the following options to help protect systems against DDoS attacks: + - STANDARD: basic always-on protection for network load balancers, protocol forwarding, or VMs with public IP addresses. + - ADVANCED: additional protections for Managed Protection Plus subscribers who use network load balancers, protocol forwarding, or VMs with public IP addresses. + - ADVANCED_PREVIEW: flag to enable the security policy in preview mode. + Possible values are: `ADVANCED`, `ADVANCED_PREVIEW`, `STANDARD`. + """ + return pulumi.get(self, "ddos_protection") + + @ddos_protection.setter + def ddos_protection(self, value: pulumi.Input[str]): + pulumi.set(self, "ddos_protection", value) + + +if not MYPY: + class RegionSecurityPolicyRuleArgsDict(TypedDict): + action: pulumi.Input[str] + """ + The Action to perform when the rule is matched. The following are the valid actions: + * allow: allow access to target. + * deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for STATUS are 403, 404, and 502. + * rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rateLimitOptions to be set. + * redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. This action is only supported in Global Security Policies of type CLOUD_ARMOR. + * throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rateLimitOptions to be set for this. + """ + priority: pulumi.Input[int] + """ + An integer indicating the priority of a rule in the list. + The priority must be a positive value between 0 and 2147483647. + Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority. + """ + description: NotRequired[pulumi.Input[str]] + """ + An optional description of this resource. Provide this property when you create the resource. + """ + match: NotRequired[pulumi.Input['RegionSecurityPolicyRuleMatchArgsDict']] + """ + A match condition that incoming traffic is evaluated against. + If it evaluates to true, the corresponding 'action' is enforced. + Structure is documented below. + """ + network_match: NotRequired[pulumi.Input['RegionSecurityPolicyRuleNetworkMatchArgsDict']] + """ + A match condition that incoming packets are evaluated against for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding 'action' is enforced. + The match criteria for a rule consists of built-in match fields (like 'srcIpRanges') and potentially multiple user-defined match fields ('userDefinedFields'). + Field values may be extracted directly from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may not be present in every packet (e.g. 'srcPorts'). A user-defined field is only present if the base header is found in the packet and the entire field is in bounds. + Each match field may specify which values can match it, listing one or more ranges, prefixes, or exact values that are considered a match for the field. A field value must be present in order to match a specified match field. If no match values are specified for a match field, then any field value is considered to match it, and it's not required to be present. For strings specifying '*' is also equivalent to match all. + For a packet to match a rule, all specified match fields must match the corresponding field values derived from the packet. + Example: + networkMatch: srcIpRanges: - "192.0.2.0/24" - "198.51.100.0/24" userDefinedFields: - name: "ipv4_fragment_offset" values: - "1-0x1fff" + The above match condition matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a user-defined field named "ipv4_fragment_offset" with a value between 1 and 0x1fff inclusive + Structure is documented below. + """ + preconfigured_waf_config: NotRequired[pulumi.Input['RegionSecurityPolicyRulePreconfiguredWafConfigArgsDict']] + """ + Preconfigured WAF configuration to be applied for the rule. + If the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect. + Structure is documented below. + """ + preview: NotRequired[pulumi.Input[bool]] + """ + If set to true, the specified action is not enforced. + """ + rate_limit_options: NotRequired[pulumi.Input['RegionSecurityPolicyRuleRateLimitOptionsArgsDict']] + """ + Must be specified if the action is "rate_based_ban" or "throttle". Cannot be specified for any other actions. + Structure is documented below. + """ +elif False: + RegionSecurityPolicyRuleArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class RegionSecurityPolicyRuleArgs: + def __init__(__self__, *, + action: pulumi.Input[str], + priority: pulumi.Input[int], + description: Optional[pulumi.Input[str]] = None, + match: Optional[pulumi.Input['RegionSecurityPolicyRuleMatchArgs']] = None, + network_match: Optional[pulumi.Input['RegionSecurityPolicyRuleNetworkMatchArgs']] = None, + preconfigured_waf_config: Optional[pulumi.Input['RegionSecurityPolicyRulePreconfiguredWafConfigArgs']] = None, + preview: Optional[pulumi.Input[bool]] = None, + rate_limit_options: Optional[pulumi.Input['RegionSecurityPolicyRuleRateLimitOptionsArgs']] = None): + """ + :param pulumi.Input[str] action: The Action to perform when the rule is matched. The following are the valid actions: + * allow: allow access to target. + * deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for STATUS are 403, 404, and 502. + * rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rateLimitOptions to be set. + * redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. This action is only supported in Global Security Policies of type CLOUD_ARMOR. + * throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rateLimitOptions to be set for this. + :param pulumi.Input[int] priority: An integer indicating the priority of a rule in the list. + The priority must be a positive value between 0 and 2147483647. + Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority. + :param pulumi.Input[str] description: An optional description of this resource. Provide this property when you create the resource. + :param pulumi.Input['RegionSecurityPolicyRuleMatchArgs'] match: A match condition that incoming traffic is evaluated against. + If it evaluates to true, the corresponding 'action' is enforced. + Structure is documented below. + :param pulumi.Input['RegionSecurityPolicyRuleNetworkMatchArgs'] network_match: A match condition that incoming packets are evaluated against for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding 'action' is enforced. + The match criteria for a rule consists of built-in match fields (like 'srcIpRanges') and potentially multiple user-defined match fields ('userDefinedFields'). + Field values may be extracted directly from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may not be present in every packet (e.g. 'srcPorts'). A user-defined field is only present if the base header is found in the packet and the entire field is in bounds. + Each match field may specify which values can match it, listing one or more ranges, prefixes, or exact values that are considered a match for the field. A field value must be present in order to match a specified match field. If no match values are specified for a match field, then any field value is considered to match it, and it's not required to be present. For strings specifying '*' is also equivalent to match all. + For a packet to match a rule, all specified match fields must match the corresponding field values derived from the packet. + Example: + networkMatch: srcIpRanges: - "192.0.2.0/24" - "198.51.100.0/24" userDefinedFields: - name: "ipv4_fragment_offset" values: - "1-0x1fff" + The above match condition matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a user-defined field named "ipv4_fragment_offset" with a value between 1 and 0x1fff inclusive + Structure is documented below. + :param pulumi.Input['RegionSecurityPolicyRulePreconfiguredWafConfigArgs'] preconfigured_waf_config: Preconfigured WAF configuration to be applied for the rule. + If the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect. + Structure is documented below. + :param pulumi.Input[bool] preview: If set to true, the specified action is not enforced. + :param pulumi.Input['RegionSecurityPolicyRuleRateLimitOptionsArgs'] rate_limit_options: Must be specified if the action is "rate_based_ban" or "throttle". Cannot be specified for any other actions. + Structure is documented below. + """ + pulumi.set(__self__, "action", action) + pulumi.set(__self__, "priority", priority) + if description is not None: + pulumi.set(__self__, "description", description) + if match is not None: + pulumi.set(__self__, "match", match) + if network_match is not None: + pulumi.set(__self__, "network_match", network_match) + if preconfigured_waf_config is not None: + pulumi.set(__self__, "preconfigured_waf_config", preconfigured_waf_config) + if preview is not None: + pulumi.set(__self__, "preview", preview) + if rate_limit_options is not None: + pulumi.set(__self__, "rate_limit_options", rate_limit_options) + + @property + @pulumi.getter + def action(self) -> pulumi.Input[str]: + """ + The Action to perform when the rule is matched. The following are the valid actions: + * allow: allow access to target. + * deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for STATUS are 403, 404, and 502. + * rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rateLimitOptions to be set. + * redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. This action is only supported in Global Security Policies of type CLOUD_ARMOR. + * throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rateLimitOptions to be set for this. + """ + return pulumi.get(self, "action") + + @action.setter + def action(self, value: pulumi.Input[str]): + pulumi.set(self, "action", value) + + @property + @pulumi.getter + def priority(self) -> pulumi.Input[int]: + """ + An integer indicating the priority of a rule in the list. + The priority must be a positive value between 0 and 2147483647. + Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority. + """ + return pulumi.get(self, "priority") + + @priority.setter + def priority(self, value: pulumi.Input[int]): + pulumi.set(self, "priority", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + An optional description of this resource. Provide this property when you create the resource. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def match(self) -> Optional[pulumi.Input['RegionSecurityPolicyRuleMatchArgs']]: + """ + A match condition that incoming traffic is evaluated against. + If it evaluates to true, the corresponding 'action' is enforced. + Structure is documented below. + """ + return pulumi.get(self, "match") + + @match.setter + def match(self, value: Optional[pulumi.Input['RegionSecurityPolicyRuleMatchArgs']]): + pulumi.set(self, "match", value) + + @property + @pulumi.getter(name="networkMatch") + def network_match(self) -> Optional[pulumi.Input['RegionSecurityPolicyRuleNetworkMatchArgs']]: + """ + A match condition that incoming packets are evaluated against for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding 'action' is enforced. + The match criteria for a rule consists of built-in match fields (like 'srcIpRanges') and potentially multiple user-defined match fields ('userDefinedFields'). + Field values may be extracted directly from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may not be present in every packet (e.g. 'srcPorts'). A user-defined field is only present if the base header is found in the packet and the entire field is in bounds. + Each match field may specify which values can match it, listing one or more ranges, prefixes, or exact values that are considered a match for the field. A field value must be present in order to match a specified match field. If no match values are specified for a match field, then any field value is considered to match it, and it's not required to be present. For strings specifying '*' is also equivalent to match all. + For a packet to match a rule, all specified match fields must match the corresponding field values derived from the packet. + Example: + networkMatch: srcIpRanges: - "192.0.2.0/24" - "198.51.100.0/24" userDefinedFields: - name: "ipv4_fragment_offset" values: - "1-0x1fff" + The above match condition matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a user-defined field named "ipv4_fragment_offset" with a value between 1 and 0x1fff inclusive + Structure is documented below. + """ + return pulumi.get(self, "network_match") + + @network_match.setter + def network_match(self, value: Optional[pulumi.Input['RegionSecurityPolicyRuleNetworkMatchArgs']]): + pulumi.set(self, "network_match", value) + + @property + @pulumi.getter(name="preconfiguredWafConfig") + def preconfigured_waf_config(self) -> Optional[pulumi.Input['RegionSecurityPolicyRulePreconfiguredWafConfigArgs']]: + """ + Preconfigured WAF configuration to be applied for the rule. + If the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect. + Structure is documented below. + """ + return pulumi.get(self, "preconfigured_waf_config") + + @preconfigured_waf_config.setter + def preconfigured_waf_config(self, value: Optional[pulumi.Input['RegionSecurityPolicyRulePreconfiguredWafConfigArgs']]): + pulumi.set(self, "preconfigured_waf_config", value) + + @property + @pulumi.getter + def preview(self) -> Optional[pulumi.Input[bool]]: + """ + If set to true, the specified action is not enforced. + """ + return pulumi.get(self, "preview") + + @preview.setter + def preview(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "preview", value) + + @property + @pulumi.getter(name="rateLimitOptions") + def rate_limit_options(self) -> Optional[pulumi.Input['RegionSecurityPolicyRuleRateLimitOptionsArgs']]: + """ + Must be specified if the action is "rate_based_ban" or "throttle". Cannot be specified for any other actions. + Structure is documented below. + """ + return pulumi.get(self, "rate_limit_options") + + @rate_limit_options.setter + def rate_limit_options(self, value: Optional[pulumi.Input['RegionSecurityPolicyRuleRateLimitOptionsArgs']]): + pulumi.set(self, "rate_limit_options", value) + + +if not MYPY: + class RegionSecurityPolicyRuleMatchArgsDict(TypedDict): + config: NotRequired[pulumi.Input['RegionSecurityPolicyRuleMatchConfigArgsDict']] + """ + The configuration options available when specifying versionedExpr. + This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified. + Structure is documented below. + """ + expr: NotRequired[pulumi.Input['RegionSecurityPolicyRuleMatchExprArgsDict']] + """ + User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. + Structure is documented below. + """ + versioned_expr: NotRequired[pulumi.Input[str]] + """ + Preconfigured versioned expression. If this field is specified, config must also be specified. + Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config. + Possible values are: `SRC_IPS_V1`. + """ +elif False: + RegionSecurityPolicyRuleMatchArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class RegionSecurityPolicyRuleMatchArgs: + def __init__(__self__, *, + config: Optional[pulumi.Input['RegionSecurityPolicyRuleMatchConfigArgs']] = None, + expr: Optional[pulumi.Input['RegionSecurityPolicyRuleMatchExprArgs']] = None, + versioned_expr: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input['RegionSecurityPolicyRuleMatchConfigArgs'] config: The configuration options available when specifying versionedExpr. + This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified. + Structure is documented below. + :param pulumi.Input['RegionSecurityPolicyRuleMatchExprArgs'] expr: User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. + Structure is documented below. + :param pulumi.Input[str] versioned_expr: Preconfigured versioned expression. If this field is specified, config must also be specified. + Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config. + Possible values are: `SRC_IPS_V1`. + """ + if config is not None: + pulumi.set(__self__, "config", config) + if expr is not None: + pulumi.set(__self__, "expr", expr) + if versioned_expr is not None: + pulumi.set(__self__, "versioned_expr", versioned_expr) + + @property + @pulumi.getter + def config(self) -> Optional[pulumi.Input['RegionSecurityPolicyRuleMatchConfigArgs']]: + """ + The configuration options available when specifying versionedExpr. + This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified. + Structure is documented below. + """ + return pulumi.get(self, "config") + + @config.setter + def config(self, value: Optional[pulumi.Input['RegionSecurityPolicyRuleMatchConfigArgs']]): + pulumi.set(self, "config", value) + + @property + @pulumi.getter + def expr(self) -> Optional[pulumi.Input['RegionSecurityPolicyRuleMatchExprArgs']]: + """ + User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. + Structure is documented below. + """ + return pulumi.get(self, "expr") + + @expr.setter + def expr(self, value: Optional[pulumi.Input['RegionSecurityPolicyRuleMatchExprArgs']]): + pulumi.set(self, "expr", value) + + @property + @pulumi.getter(name="versionedExpr") + def versioned_expr(self) -> Optional[pulumi.Input[str]]: + """ + Preconfigured versioned expression. If this field is specified, config must also be specified. + Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config. + Possible values are: `SRC_IPS_V1`. + """ + return pulumi.get(self, "versioned_expr") + + @versioned_expr.setter + def versioned_expr(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "versioned_expr", value) + + +if not MYPY: + class RegionSecurityPolicyRuleMatchConfigArgsDict(TypedDict): + src_ip_ranges: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + CIDR IP address range. Maximum number of srcIpRanges allowed is 10. + """ +elif False: + RegionSecurityPolicyRuleMatchConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class RegionSecurityPolicyRuleMatchConfigArgs: + def __init__(__self__, *, + src_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input[str]]] src_ip_ranges: CIDR IP address range. Maximum number of srcIpRanges allowed is 10. + """ + if src_ip_ranges is not None: + pulumi.set(__self__, "src_ip_ranges", src_ip_ranges) + + @property + @pulumi.getter(name="srcIpRanges") + def src_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + CIDR IP address range. Maximum number of srcIpRanges allowed is 10. + """ + return pulumi.get(self, "src_ip_ranges") + + @src_ip_ranges.setter + def src_ip_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "src_ip_ranges", value) + + +if not MYPY: + class RegionSecurityPolicyRuleMatchExprArgsDict(TypedDict): + expression: pulumi.Input[str] + """ + Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported. + """ +elif False: + RegionSecurityPolicyRuleMatchExprArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class RegionSecurityPolicyRuleMatchExprArgs: + def __init__(__self__, *, + expression: pulumi.Input[str]): + """ + :param pulumi.Input[str] expression: Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported. + """ + pulumi.set(__self__, "expression", expression) + + @property + @pulumi.getter + def expression(self) -> pulumi.Input[str]: + """ + Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported. + """ + return pulumi.get(self, "expression") + + @expression.setter + def expression(self, value: pulumi.Input[str]): + pulumi.set(self, "expression", value) + + +if not MYPY: + class RegionSecurityPolicyRuleNetworkMatchArgsDict(TypedDict): + dest_ip_ranges: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format. + """ + dest_ports: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). + """ + ip_protocols: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + IPv4 protocol / IPv6 next header (after extension headers). Each element can be an 8-bit unsigned decimal number (e.g. "6"), range (e.g. "253-254"), or one of the following protocol names: "tcp", "udp", "icmp", "esp", "ah", "ipip", or "sctp". + """ + src_asns: NotRequired[pulumi.Input[Sequence[pulumi.Input[int]]]] + """ + BGP Autonomous System Number associated with the source IP address. + """ + src_ip_ranges: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + Source IPv4/IPv6 addresses or CIDR prefixes, in standard text format. + """ + src_ports: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + Source port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). + """ + src_region_codes: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + Two-letter ISO 3166-1 alpha-2 country code associated with the source IP address. + """ + user_defined_fields: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArgsDict']]]] + """ + User-defined fields. Each element names a defined field and lists the matching values for that field. + Structure is documented below. + """ +elif False: + RegionSecurityPolicyRuleNetworkMatchArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class RegionSecurityPolicyRuleNetworkMatchArgs: + def __init__(__self__, *, + dest_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + dest_ports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + ip_protocols: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + src_asns: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None, + src_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + src_ports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + src_region_codes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + user_defined_fields: Optional[pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArgs']]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_ip_ranges: Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format. + :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_ports: Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). + :param pulumi.Input[Sequence[pulumi.Input[str]]] ip_protocols: IPv4 protocol / IPv6 next header (after extension headers). Each element can be an 8-bit unsigned decimal number (e.g. "6"), range (e.g. "253-254"), or one of the following protocol names: "tcp", "udp", "icmp", "esp", "ah", "ipip", or "sctp". + :param pulumi.Input[Sequence[pulumi.Input[int]]] src_asns: BGP Autonomous System Number associated with the source IP address. + :param pulumi.Input[Sequence[pulumi.Input[str]]] src_ip_ranges: Source IPv4/IPv6 addresses or CIDR prefixes, in standard text format. + :param pulumi.Input[Sequence[pulumi.Input[str]]] src_ports: Source port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). + :param pulumi.Input[Sequence[pulumi.Input[str]]] src_region_codes: Two-letter ISO 3166-1 alpha-2 country code associated with the source IP address. + :param pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArgs']]] user_defined_fields: User-defined fields. Each element names a defined field and lists the matching values for that field. + Structure is documented below. + """ + if dest_ip_ranges is not None: + pulumi.set(__self__, "dest_ip_ranges", dest_ip_ranges) + if dest_ports is not None: + pulumi.set(__self__, "dest_ports", dest_ports) + if ip_protocols is not None: + pulumi.set(__self__, "ip_protocols", ip_protocols) + if src_asns is not None: + pulumi.set(__self__, "src_asns", src_asns) + if src_ip_ranges is not None: + pulumi.set(__self__, "src_ip_ranges", src_ip_ranges) + if src_ports is not None: + pulumi.set(__self__, "src_ports", src_ports) + if src_region_codes is not None: + pulumi.set(__self__, "src_region_codes", src_region_codes) + if user_defined_fields is not None: + pulumi.set(__self__, "user_defined_fields", user_defined_fields) + + @property + @pulumi.getter(name="destIpRanges") + def dest_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format. + """ + return pulumi.get(self, "dest_ip_ranges") + + @dest_ip_ranges.setter + def dest_ip_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "dest_ip_ranges", value) + + @property + @pulumi.getter(name="destPorts") + def dest_ports(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). + """ + return pulumi.get(self, "dest_ports") + + @dest_ports.setter + def dest_ports(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "dest_ports", value) + + @property + @pulumi.getter(name="ipProtocols") + def ip_protocols(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + IPv4 protocol / IPv6 next header (after extension headers). Each element can be an 8-bit unsigned decimal number (e.g. "6"), range (e.g. "253-254"), or one of the following protocol names: "tcp", "udp", "icmp", "esp", "ah", "ipip", or "sctp". + """ + return pulumi.get(self, "ip_protocols") @ip_protocols.setter def ip_protocols(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): @@ -38117,7 +40024,7 @@ class RegionSecurityPolicyUserDefinedFieldArgsDict(TypedDict): """ name: NotRequired[pulumi.Input[str]] """ - The name of this field. Must be unique within the policy. + Name of the user-defined field, as given in the definition. """ offset: NotRequired[pulumi.Input[int]] """ @@ -38148,7 +40055,7 @@ def __init__(__self__, *, :param pulumi.Input[str] mask: If specified, apply this mask (bitwise AND) to the field to ignore bits before matching. Encoded as a hexadecimal number (starting with "0x"). The last byte of the field (in network byte order) corresponds to the least significant byte of the mask. - :param pulumi.Input[str] name: The name of this field. Must be unique within the policy. + :param pulumi.Input[str] name: Name of the user-defined field, as given in the definition. :param pulumi.Input[int] offset: Offset of the first byte of the field (in network byte order) relative to 'base'. :param pulumi.Input[int] size: Size of the field in bytes. Valid values: 1-4. """ @@ -38197,7 +40104,7 @@ def mask(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: """ - The name of this field. Must be unique within the policy. + Name of the user-defined field, as given in the definition. """ return pulumi.get(self, "name") @@ -48314,7 +50221,7 @@ def multiplier(self, value: Optional[pulumi.Input[int]]): class RouterPeerCustomLearnedIpRangeArgsDict(TypedDict): range: pulumi.Input[str] """ - The IP range to advertise. The value must be a + The IP range to learn. The value must be a CIDR-formatted string. """ elif False: @@ -48325,7 +50232,7 @@ class RouterPeerCustomLearnedIpRangeArgs: def __init__(__self__, *, range: pulumi.Input[str]): """ - :param pulumi.Input[str] range: The IP range to advertise. The value must be a + :param pulumi.Input[str] range: The IP range to learn. The value must be a CIDR-formatted string. """ pulumi.set(__self__, "range", range) @@ -48334,7 +50241,7 @@ def __init__(__self__, *, @pulumi.getter def range(self) -> pulumi.Input[str]: """ - The IP range to advertise. The value must be a + The IP range to learn. The value must be a CIDR-formatted string. """ return pulumi.get(self, "range") diff --git a/sdk/python/pulumi_gcp/compute/disk.py b/sdk/python/pulumi_gcp/compute/disk.py index 6619c9952d..96c66dc276 100644 --- a/sdk/python/pulumi_gcp/compute/disk.py +++ b/sdk/python/pulumi_gcp/compute/disk.py @@ -53,7 +53,7 @@ def __init__(__self__, *, * READ_WRITE_SINGLE * READ_WRITE_MANY * READ_ONLY_SINGLE - :param pulumi.Input['DiskAsyncPrimaryDiskArgs'] async_primary_disk: A nested object resource + :param pulumi.Input['DiskAsyncPrimaryDiskArgs'] async_primary_disk: A nested object resource. Structure is documented below. :param pulumi.Input[str] description: An optional description of this resource. Provide this property when you create the resource. @@ -234,7 +234,7 @@ def access_mode(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="asyncPrimaryDisk") def async_primary_disk(self) -> Optional[pulumi.Input['DiskAsyncPrimaryDiskArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "async_primary_disk") @@ -649,7 +649,7 @@ def __init__(__self__, *, * READ_WRITE_SINGLE * READ_WRITE_MANY * READ_ONLY_SINGLE - :param pulumi.Input['DiskAsyncPrimaryDiskArgs'] async_primary_disk: A nested object resource + :param pulumi.Input['DiskAsyncPrimaryDiskArgs'] async_primary_disk: A nested object resource. Structure is documented below. :param pulumi.Input[str] creation_timestamp: Creation timestamp in RFC3339 text format. :param pulumi.Input[str] description: An optional description of this resource. Provide this property when @@ -880,7 +880,7 @@ def access_mode(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="asyncPrimaryDisk") def async_primary_disk(self) -> Optional[pulumi.Input['DiskAsyncPrimaryDiskArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "async_primary_disk") @@ -1563,7 +1563,7 @@ def __init__(__self__, * READ_WRITE_SINGLE * READ_WRITE_MANY * READ_ONLY_SINGLE - :param pulumi.Input[Union['DiskAsyncPrimaryDiskArgs', 'DiskAsyncPrimaryDiskArgsDict']] async_primary_disk: A nested object resource + :param pulumi.Input[Union['DiskAsyncPrimaryDiskArgs', 'DiskAsyncPrimaryDiskArgsDict']] async_primary_disk: A nested object resource. Structure is documented below. :param pulumi.Input[str] description: An optional description of this resource. Provide this property when you create the resource. @@ -1942,7 +1942,7 @@ def get(resource_name: str, * READ_WRITE_SINGLE * READ_WRITE_MANY * READ_ONLY_SINGLE - :param pulumi.Input[Union['DiskAsyncPrimaryDiskArgs', 'DiskAsyncPrimaryDiskArgsDict']] async_primary_disk: A nested object resource + :param pulumi.Input[Union['DiskAsyncPrimaryDiskArgs', 'DiskAsyncPrimaryDiskArgsDict']] async_primary_disk: A nested object resource. Structure is documented below. :param pulumi.Input[str] creation_timestamp: Creation timestamp in RFC3339 text format. :param pulumi.Input[str] description: An optional description of this resource. Provide this property when @@ -2134,7 +2134,7 @@ def access_mode(self) -> pulumi.Output[str]: @pulumi.getter(name="asyncPrimaryDisk") def async_primary_disk(self) -> pulumi.Output[Optional['outputs.DiskAsyncPrimaryDisk']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "async_primary_disk") diff --git a/sdk/python/pulumi_gcp/compute/firewall_policy_rule.py b/sdk/python/pulumi_gcp/compute/firewall_policy_rule.py index 4418af7da0..8e1bd0c66c 100644 --- a/sdk/python/pulumi_gcp/compute/firewall_policy_rule.py +++ b/sdk/python/pulumi_gcp/compute/firewall_policy_rule.py @@ -36,23 +36,27 @@ def __init__(__self__, *, """ The set of arguments for constructing a FirewallPolicyRule resource. :param pulumi.Input[str] action: The Action to perform when the client connection triggers the rule. Valid actions are "allow", "deny", "goto_next" and "apply_security_profile_group". - :param pulumi.Input[str] direction: The direction in which this rule applies. Possible values: INGRESS, EGRESS + :param pulumi.Input[str] direction: The direction in which this rule applies. + Possible values are: `INGRESS`, `EGRESS`. :param pulumi.Input[str] firewall_policy: The firewall policy of the resource. :param pulumi.Input['FirewallPolicyRuleMatchArgs'] match: A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. - :param pulumi.Input[int] priority: An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. + Structure is documented below. + :param pulumi.Input[int] priority: An integer indicating the priority of a rule in the list. + The priority must be a positive value between 0 and 2147483647. + Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. :param pulumi.Input[str] description: An optional description for this resource. :param pulumi.Input[bool] disabled: Denotes whether the firewall policy rule is disabled. When set to true, the firewall policy rule is not enforced and traffic behaves as if it did not exist. If this is unspecified, the firewall policy rule will be enabled. :param pulumi.Input[bool] enable_logging: Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on "goto_next" rules. - :param pulumi.Input[str] security_profile_group: A fully-qualified URL of a SecurityProfileGroup resource. Example: - https://networksecurity.googleapis.com/v1/organizations/{organizationId}/locations/global/securityProfileGroups/my-security-profile-group. - It must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. + :param pulumi.Input[str] security_profile_group: A fully-qualified URL of a SecurityProfile resource instance. Example: + https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group + Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. :param pulumi.Input[Sequence[pulumi.Input[str]]] target_resources: A list of network resource URLs to which this rule applies. This field allows you to control which network's VMs get this rule. If this field is left blank, all VMs within the organization will receive the rule. :param pulumi.Input[Sequence[pulumi.Input[str]]] target_service_accounts: A list of service accounts indicating the sets of instances that are applied with this rule. - :param pulumi.Input[bool] tls_inspect: Boolean flag indicating if the traffic should be TLS decrypted. It can be set only if action = + :param pulumi.Input[bool] tls_inspect: Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = 'apply_security_profile_group' and cannot be set for other actions. """ pulumi.set(__self__, "action", action) @@ -91,7 +95,8 @@ def action(self, value: pulumi.Input[str]): @pulumi.getter def direction(self) -> pulumi.Input[str]: """ - The direction in which this rule applies. Possible values: INGRESS, EGRESS + The direction in which this rule applies. + Possible values are: `INGRESS`, `EGRESS`. """ return pulumi.get(self, "direction") @@ -116,6 +121,7 @@ def firewall_policy(self, value: pulumi.Input[str]): def match(self) -> pulumi.Input['FirewallPolicyRuleMatchArgs']: """ A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. + Structure is documented below. """ return pulumi.get(self, "match") @@ -127,7 +133,9 @@ def match(self, value: pulumi.Input['FirewallPolicyRuleMatchArgs']): @pulumi.getter def priority(self) -> pulumi.Input[int]: """ - An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. + An integer indicating the priority of a rule in the list. + The priority must be a positive value between 0 and 2147483647. + Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. """ return pulumi.get(self, "priority") @@ -178,9 +186,9 @@ def enable_logging(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter(name="securityProfileGroup") def security_profile_group(self) -> Optional[pulumi.Input[str]]: """ - A fully-qualified URL of a SecurityProfileGroup resource. Example: - https://networksecurity.googleapis.com/v1/organizations/{organizationId}/locations/global/securityProfileGroups/my-security-profile-group. - It must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. + A fully-qualified URL of a SecurityProfile resource instance. Example: + https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group + Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. """ return pulumi.get(self, "security_profile_group") @@ -217,7 +225,7 @@ def target_service_accounts(self, value: Optional[pulumi.Input[Sequence[pulumi.I @pulumi.getter(name="tlsInspect") def tls_inspect(self) -> Optional[pulumi.Input[bool]]: """ - Boolean flag indicating if the traffic should be TLS decrypted. It can be set only if action = + Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = 'apply_security_profile_group' and cannot be set for other actions. """ return pulumi.get(self, "tls_inspect") @@ -231,6 +239,7 @@ def tls_inspect(self, value: Optional[pulumi.Input[bool]]): class _FirewallPolicyRuleState: def __init__(__self__, *, action: Optional[pulumi.Input[str]] = None, + creation_timestamp: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, direction: Optional[pulumi.Input[str]] = None, disabled: Optional[pulumi.Input[bool]] = None, @@ -247,8 +256,10 @@ def __init__(__self__, *, """ Input properties used for looking up and filtering FirewallPolicyRule resources. :param pulumi.Input[str] action: The Action to perform when the client connection triggers the rule. Valid actions are "allow", "deny", "goto_next" and "apply_security_profile_group". + :param pulumi.Input[str] creation_timestamp: Creation timestamp in RFC3339 text format. :param pulumi.Input[str] description: An optional description for this resource. - :param pulumi.Input[str] direction: The direction in which this rule applies. Possible values: INGRESS, EGRESS + :param pulumi.Input[str] direction: The direction in which this rule applies. + Possible values are: `INGRESS`, `EGRESS`. :param pulumi.Input[bool] disabled: Denotes whether the firewall policy rule is disabled. When set to true, the firewall policy rule is not enforced and traffic behaves as if it did not exist. If this is unspecified, the firewall policy rule will be enabled. :param pulumi.Input[bool] enable_logging: Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured @@ -257,19 +268,24 @@ def __init__(__self__, *, :param pulumi.Input[str] firewall_policy: The firewall policy of the resource. :param pulumi.Input[str] kind: Type of the resource. Always `compute#firewallPolicyRule` for firewall policy rules :param pulumi.Input['FirewallPolicyRuleMatchArgs'] match: A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. - :param pulumi.Input[int] priority: An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. + Structure is documented below. + :param pulumi.Input[int] priority: An integer indicating the priority of a rule in the list. + The priority must be a positive value between 0 and 2147483647. + Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. :param pulumi.Input[int] rule_tuple_count: Calculation of the complexity of a single firewall policy rule. - :param pulumi.Input[str] security_profile_group: A fully-qualified URL of a SecurityProfileGroup resource. Example: - https://networksecurity.googleapis.com/v1/organizations/{organizationId}/locations/global/securityProfileGroups/my-security-profile-group. - It must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. + :param pulumi.Input[str] security_profile_group: A fully-qualified URL of a SecurityProfile resource instance. Example: + https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group + Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. :param pulumi.Input[Sequence[pulumi.Input[str]]] target_resources: A list of network resource URLs to which this rule applies. This field allows you to control which network's VMs get this rule. If this field is left blank, all VMs within the organization will receive the rule. :param pulumi.Input[Sequence[pulumi.Input[str]]] target_service_accounts: A list of service accounts indicating the sets of instances that are applied with this rule. - :param pulumi.Input[bool] tls_inspect: Boolean flag indicating if the traffic should be TLS decrypted. It can be set only if action = + :param pulumi.Input[bool] tls_inspect: Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = 'apply_security_profile_group' and cannot be set for other actions. """ if action is not None: pulumi.set(__self__, "action", action) + if creation_timestamp is not None: + pulumi.set(__self__, "creation_timestamp", creation_timestamp) if description is not None: pulumi.set(__self__, "description", description) if direction is not None: @@ -309,6 +325,18 @@ def action(self) -> Optional[pulumi.Input[str]]: def action(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "action", value) + @property + @pulumi.getter(name="creationTimestamp") + def creation_timestamp(self) -> Optional[pulumi.Input[str]]: + """ + Creation timestamp in RFC3339 text format. + """ + return pulumi.get(self, "creation_timestamp") + + @creation_timestamp.setter + def creation_timestamp(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "creation_timestamp", value) + @property @pulumi.getter def description(self) -> Optional[pulumi.Input[str]]: @@ -325,7 +353,8 @@ def description(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def direction(self) -> Optional[pulumi.Input[str]]: """ - The direction in which this rule applies. Possible values: INGRESS, EGRESS + The direction in which this rule applies. + Possible values are: `INGRESS`, `EGRESS`. """ return pulumi.get(self, "direction") @@ -389,6 +418,7 @@ def kind(self, value: Optional[pulumi.Input[str]]): def match(self) -> Optional[pulumi.Input['FirewallPolicyRuleMatchArgs']]: """ A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. + Structure is documented below. """ return pulumi.get(self, "match") @@ -400,7 +430,9 @@ def match(self, value: Optional[pulumi.Input['FirewallPolicyRuleMatchArgs']]): @pulumi.getter def priority(self) -> Optional[pulumi.Input[int]]: """ - An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. + An integer indicating the priority of a rule in the list. + The priority must be a positive value between 0 and 2147483647. + Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. """ return pulumi.get(self, "priority") @@ -424,9 +456,9 @@ def rule_tuple_count(self, value: Optional[pulumi.Input[int]]): @pulumi.getter(name="securityProfileGroup") def security_profile_group(self) -> Optional[pulumi.Input[str]]: """ - A fully-qualified URL of a SecurityProfileGroup resource. Example: - https://networksecurity.googleapis.com/v1/organizations/{organizationId}/locations/global/securityProfileGroups/my-security-profile-group. - It must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. + A fully-qualified URL of a SecurityProfile resource instance. Example: + https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group + Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. """ return pulumi.get(self, "security_profile_group") @@ -463,7 +495,7 @@ def target_service_accounts(self, value: Optional[pulumi.Input[Sequence[pulumi.I @pulumi.getter(name="tlsInspect") def tls_inspect(self) -> Optional[pulumi.Input[bool]]: """ - Boolean flag indicating if the traffic should be TLS decrypted. It can be set only if action = + Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = 'apply_security_profile_group' and cannot be set for other actions. """ return pulumi.get(self, "tls_inspect") @@ -492,17 +524,16 @@ def __init__(__self__, tls_inspect: Optional[pulumi.Input[bool]] = None, __props__=None): """ - The Compute FirewallPolicyRule resource - ## Example Usage - ### Basic_fir_sec_rule + ### Firewall Policy Rule + ```python import pulumi import pulumi_gcp as gcp basic_global_networksecurity_address_group = gcp.networksecurity.AddressGroup("basic_global_networksecurity_address_group", - name="policy", + name="address", parent="organizations/123456789", description="Sample global networksecurity_address_group", location="global", @@ -510,14 +541,14 @@ def __init__(__self__, type="IPV4", capacity=100) folder = gcp.organizations.Folder("folder", - display_name="policy", + display_name="folder", parent="organizations/123456789", deletion_protection=False) default = gcp.compute.FirewallPolicy("default", parent=folder.id, short_name="policy", description="Resource created for Terraform acceptance testing") - primary = gcp.compute.FirewallPolicyRule("primary", + policy_rule = gcp.compute.FirewallPolicyRule("policy_rule", firewall_policy=default.name, description="Resource created for Terraform acceptance testing", priority=9000, @@ -568,7 +599,8 @@ def __init__(__self__, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] action: The Action to perform when the client connection triggers the rule. Valid actions are "allow", "deny", "goto_next" and "apply_security_profile_group". :param pulumi.Input[str] description: An optional description for this resource. - :param pulumi.Input[str] direction: The direction in which this rule applies. Possible values: INGRESS, EGRESS + :param pulumi.Input[str] direction: The direction in which this rule applies. + Possible values are: `INGRESS`, `EGRESS`. :param pulumi.Input[bool] disabled: Denotes whether the firewall policy rule is disabled. When set to true, the firewall policy rule is not enforced and traffic behaves as if it did not exist. If this is unspecified, the firewall policy rule will be enabled. :param pulumi.Input[bool] enable_logging: Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured @@ -576,14 +608,17 @@ def __init__(__self__, "goto_next" rules. :param pulumi.Input[str] firewall_policy: The firewall policy of the resource. :param pulumi.Input[Union['FirewallPolicyRuleMatchArgs', 'FirewallPolicyRuleMatchArgsDict']] match: A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. - :param pulumi.Input[int] priority: An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. - :param pulumi.Input[str] security_profile_group: A fully-qualified URL of a SecurityProfileGroup resource. Example: - https://networksecurity.googleapis.com/v1/organizations/{organizationId}/locations/global/securityProfileGroups/my-security-profile-group. - It must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. + Structure is documented below. + :param pulumi.Input[int] priority: An integer indicating the priority of a rule in the list. + The priority must be a positive value between 0 and 2147483647. + Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. + :param pulumi.Input[str] security_profile_group: A fully-qualified URL of a SecurityProfile resource instance. Example: + https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group + Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. :param pulumi.Input[Sequence[pulumi.Input[str]]] target_resources: A list of network resource URLs to which this rule applies. This field allows you to control which network's VMs get this rule. If this field is left blank, all VMs within the organization will receive the rule. :param pulumi.Input[Sequence[pulumi.Input[str]]] target_service_accounts: A list of service accounts indicating the sets of instances that are applied with this rule. - :param pulumi.Input[bool] tls_inspect: Boolean flag indicating if the traffic should be TLS decrypted. It can be set only if action = + :param pulumi.Input[bool] tls_inspect: Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = 'apply_security_profile_group' and cannot be set for other actions. """ ... @@ -593,17 +628,16 @@ def __init__(__self__, args: FirewallPolicyRuleArgs, opts: Optional[pulumi.ResourceOptions] = None): """ - The Compute FirewallPolicyRule resource - ## Example Usage - ### Basic_fir_sec_rule + ### Firewall Policy Rule + ```python import pulumi import pulumi_gcp as gcp basic_global_networksecurity_address_group = gcp.networksecurity.AddressGroup("basic_global_networksecurity_address_group", - name="policy", + name="address", parent="organizations/123456789", description="Sample global networksecurity_address_group", location="global", @@ -611,14 +645,14 @@ def __init__(__self__, type="IPV4", capacity=100) folder = gcp.organizations.Folder("folder", - display_name="policy", + display_name="folder", parent="organizations/123456789", deletion_protection=False) default = gcp.compute.FirewallPolicy("default", parent=folder.id, short_name="policy", description="Resource created for Terraform acceptance testing") - primary = gcp.compute.FirewallPolicyRule("primary", + policy_rule = gcp.compute.FirewallPolicyRule("policy_rule", firewall_policy=default.name, description="Resource created for Terraform acceptance testing", priority=9000, @@ -723,6 +757,7 @@ def _internal_init(__self__, __props__.__dict__["target_resources"] = target_resources __props__.__dict__["target_service_accounts"] = target_service_accounts __props__.__dict__["tls_inspect"] = tls_inspect + __props__.__dict__["creation_timestamp"] = None __props__.__dict__["kind"] = None __props__.__dict__["rule_tuple_count"] = None super(FirewallPolicyRule, __self__).__init__( @@ -736,6 +771,7 @@ def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, action: Optional[pulumi.Input[str]] = None, + creation_timestamp: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, direction: Optional[pulumi.Input[str]] = None, disabled: Optional[pulumi.Input[bool]] = None, @@ -757,8 +793,10 @@ def get(resource_name: str, :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] action: The Action to perform when the client connection triggers the rule. Valid actions are "allow", "deny", "goto_next" and "apply_security_profile_group". + :param pulumi.Input[str] creation_timestamp: Creation timestamp in RFC3339 text format. :param pulumi.Input[str] description: An optional description for this resource. - :param pulumi.Input[str] direction: The direction in which this rule applies. Possible values: INGRESS, EGRESS + :param pulumi.Input[str] direction: The direction in which this rule applies. + Possible values are: `INGRESS`, `EGRESS`. :param pulumi.Input[bool] disabled: Denotes whether the firewall policy rule is disabled. When set to true, the firewall policy rule is not enforced and traffic behaves as if it did not exist. If this is unspecified, the firewall policy rule will be enabled. :param pulumi.Input[bool] enable_logging: Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured @@ -767,15 +805,18 @@ def get(resource_name: str, :param pulumi.Input[str] firewall_policy: The firewall policy of the resource. :param pulumi.Input[str] kind: Type of the resource. Always `compute#firewallPolicyRule` for firewall policy rules :param pulumi.Input[Union['FirewallPolicyRuleMatchArgs', 'FirewallPolicyRuleMatchArgsDict']] match: A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. - :param pulumi.Input[int] priority: An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. + Structure is documented below. + :param pulumi.Input[int] priority: An integer indicating the priority of a rule in the list. + The priority must be a positive value between 0 and 2147483647. + Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. :param pulumi.Input[int] rule_tuple_count: Calculation of the complexity of a single firewall policy rule. - :param pulumi.Input[str] security_profile_group: A fully-qualified URL of a SecurityProfileGroup resource. Example: - https://networksecurity.googleapis.com/v1/organizations/{organizationId}/locations/global/securityProfileGroups/my-security-profile-group. - It must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. + :param pulumi.Input[str] security_profile_group: A fully-qualified URL of a SecurityProfile resource instance. Example: + https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group + Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. :param pulumi.Input[Sequence[pulumi.Input[str]]] target_resources: A list of network resource URLs to which this rule applies. This field allows you to control which network's VMs get this rule. If this field is left blank, all VMs within the organization will receive the rule. :param pulumi.Input[Sequence[pulumi.Input[str]]] target_service_accounts: A list of service accounts indicating the sets of instances that are applied with this rule. - :param pulumi.Input[bool] tls_inspect: Boolean flag indicating if the traffic should be TLS decrypted. It can be set only if action = + :param pulumi.Input[bool] tls_inspect: Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = 'apply_security_profile_group' and cannot be set for other actions. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -783,6 +824,7 @@ def get(resource_name: str, __props__ = _FirewallPolicyRuleState.__new__(_FirewallPolicyRuleState) __props__.__dict__["action"] = action + __props__.__dict__["creation_timestamp"] = creation_timestamp __props__.__dict__["description"] = description __props__.__dict__["direction"] = direction __props__.__dict__["disabled"] = disabled @@ -806,6 +848,14 @@ def action(self) -> pulumi.Output[str]: """ return pulumi.get(self, "action") + @property + @pulumi.getter(name="creationTimestamp") + def creation_timestamp(self) -> pulumi.Output[str]: + """ + Creation timestamp in RFC3339 text format. + """ + return pulumi.get(self, "creation_timestamp") + @property @pulumi.getter def description(self) -> pulumi.Output[Optional[str]]: @@ -818,7 +868,8 @@ def description(self) -> pulumi.Output[Optional[str]]: @pulumi.getter def direction(self) -> pulumi.Output[str]: """ - The direction in which this rule applies. Possible values: INGRESS, EGRESS + The direction in which this rule applies. + Possible values are: `INGRESS`, `EGRESS`. """ return pulumi.get(self, "direction") @@ -862,6 +913,7 @@ def kind(self) -> pulumi.Output[str]: def match(self) -> pulumi.Output['outputs.FirewallPolicyRuleMatch']: """ A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. + Structure is documented below. """ return pulumi.get(self, "match") @@ -869,7 +921,9 @@ def match(self) -> pulumi.Output['outputs.FirewallPolicyRuleMatch']: @pulumi.getter def priority(self) -> pulumi.Output[int]: """ - An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. + An integer indicating the priority of a rule in the list. + The priority must be a positive value between 0 and 2147483647. + Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. """ return pulumi.get(self, "priority") @@ -885,9 +939,9 @@ def rule_tuple_count(self) -> pulumi.Output[int]: @pulumi.getter(name="securityProfileGroup") def security_profile_group(self) -> pulumi.Output[Optional[str]]: """ - A fully-qualified URL of a SecurityProfileGroup resource. Example: - https://networksecurity.googleapis.com/v1/organizations/{organizationId}/locations/global/securityProfileGroups/my-security-profile-group. - It must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. + A fully-qualified URL of a SecurityProfile resource instance. Example: + https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group + Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions. """ return pulumi.get(self, "security_profile_group") @@ -912,7 +966,7 @@ def target_service_accounts(self) -> pulumi.Output[Optional[Sequence[str]]]: @pulumi.getter(name="tlsInspect") def tls_inspect(self) -> pulumi.Output[Optional[bool]]: """ - Boolean flag indicating if the traffic should be TLS decrypted. It can be set only if action = + Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = 'apply_security_profile_group' and cannot be set for other actions. """ return pulumi.get(self, "tls_inspect") diff --git a/sdk/python/pulumi_gcp/compute/get_region_instance_group_manager.py b/sdk/python/pulumi_gcp/compute/get_region_instance_group_manager.py index 65d2fd023a..f7b40164a6 100644 --- a/sdk/python/pulumi_gcp/compute/get_region_instance_group_manager.py +++ b/sdk/python/pulumi_gcp/compute/get_region_instance_group_manager.py @@ -27,7 +27,7 @@ class GetRegionInstanceGroupManagerResult: """ A collection of values returned by getRegionInstanceGroupManager. """ - def __init__(__self__, all_instances_configs=None, auto_healing_policies=None, base_instance_name=None, creation_timestamp=None, description=None, distribution_policy_target_shape=None, distribution_policy_zones=None, fingerprint=None, id=None, instance_group=None, instance_lifecycle_policies=None, list_managed_instances_results=None, name=None, named_ports=None, params=None, project=None, region=None, self_link=None, standby_policies=None, stateful_disks=None, stateful_external_ips=None, stateful_internal_ips=None, statuses=None, target_pools=None, target_size=None, target_stopped_size=None, target_suspended_size=None, update_policies=None, versions=None, wait_for_instances=None, wait_for_instances_status=None): + def __init__(__self__, all_instances_configs=None, auto_healing_policies=None, base_instance_name=None, creation_timestamp=None, description=None, distribution_policy_target_shape=None, distribution_policy_zones=None, fingerprint=None, id=None, instance_flexibility_policies=None, instance_group=None, instance_lifecycle_policies=None, list_managed_instances_results=None, name=None, named_ports=None, params=None, project=None, region=None, self_link=None, standby_policies=None, stateful_disks=None, stateful_external_ips=None, stateful_internal_ips=None, statuses=None, target_pools=None, target_size=None, target_stopped_size=None, target_suspended_size=None, update_policies=None, versions=None, wait_for_instances=None, wait_for_instances_status=None): if all_instances_configs and not isinstance(all_instances_configs, list): raise TypeError("Expected argument 'all_instances_configs' to be a list") pulumi.set(__self__, "all_instances_configs", all_instances_configs) @@ -55,6 +55,9 @@ def __init__(__self__, all_instances_configs=None, auto_healing_policies=None, b if id and not isinstance(id, str): raise TypeError("Expected argument 'id' to be a str") pulumi.set(__self__, "id", id) + if instance_flexibility_policies and not isinstance(instance_flexibility_policies, list): + raise TypeError("Expected argument 'instance_flexibility_policies' to be a list") + pulumi.set(__self__, "instance_flexibility_policies", instance_flexibility_policies) if instance_group and not isinstance(instance_group, str): raise TypeError("Expected argument 'instance_group' to be a str") pulumi.set(__self__, "instance_group", instance_group) @@ -170,6 +173,11 @@ def id(self) -> str: """ return pulumi.get(self, "id") + @property + @pulumi.getter(name="instanceFlexibilityPolicies") + def instance_flexibility_policies(self) -> Sequence['outputs.GetRegionInstanceGroupManagerInstanceFlexibilityPolicyResult']: + return pulumi.get(self, "instance_flexibility_policies") + @property @pulumi.getter(name="instanceGroup") def instance_group(self) -> str: @@ -296,6 +304,7 @@ def __await__(self): distribution_policy_zones=self.distribution_policy_zones, fingerprint=self.fingerprint, id=self.id, + instance_flexibility_policies=self.instance_flexibility_policies, instance_group=self.instance_group, instance_lifecycle_policies=self.instance_lifecycle_policies, list_managed_instances_results=self.list_managed_instances_results, @@ -365,6 +374,7 @@ def get_region_instance_group_manager(name: Optional[str] = None, distribution_policy_zones=pulumi.get(__ret__, 'distribution_policy_zones'), fingerprint=pulumi.get(__ret__, 'fingerprint'), id=pulumi.get(__ret__, 'id'), + instance_flexibility_policies=pulumi.get(__ret__, 'instance_flexibility_policies'), instance_group=pulumi.get(__ret__, 'instance_group'), instance_lifecycle_policies=pulumi.get(__ret__, 'instance_lifecycle_policies'), list_managed_instances_results=pulumi.get(__ret__, 'list_managed_instances_results'), @@ -431,6 +441,7 @@ def get_region_instance_group_manager_output(name: Optional[pulumi.Input[Optiona distribution_policy_zones=pulumi.get(__response__, 'distribution_policy_zones'), fingerprint=pulumi.get(__response__, 'fingerprint'), id=pulumi.get(__response__, 'id'), + instance_flexibility_policies=pulumi.get(__response__, 'instance_flexibility_policies'), instance_group=pulumi.get(__response__, 'instance_group'), instance_lifecycle_policies=pulumi.get(__response__, 'instance_lifecycle_policies'), list_managed_instances_results=pulumi.get(__response__, 'list_managed_instances_results'), diff --git a/sdk/python/pulumi_gcp/compute/health_check.py b/sdk/python/pulumi_gcp/compute/health_check.py index 5693dac1fe..c4d4ff1102 100644 --- a/sdk/python/pulumi_gcp/compute/health_check.py +++ b/sdk/python/pulumi_gcp/compute/health_check.py @@ -42,15 +42,15 @@ def __init__(__self__, *, seconds. :param pulumi.Input[str] description: An optional description of this resource. Provide this property when you create the resource. - :param pulumi.Input['HealthCheckGrpcHealthCheckArgs'] grpc_health_check: A nested object resource + :param pulumi.Input['HealthCheckGrpcHealthCheckArgs'] grpc_health_check: A nested object resource. Structure is documented below. :param pulumi.Input[int] healthy_threshold: A so-far unhealthy instance will be marked healthy after this many consecutive successes. The default value is 2. - :param pulumi.Input['HealthCheckHttp2HealthCheckArgs'] http2_health_check: A nested object resource + :param pulumi.Input['HealthCheckHttp2HealthCheckArgs'] http2_health_check: A nested object resource. Structure is documented below. - :param pulumi.Input['HealthCheckHttpHealthCheckArgs'] http_health_check: A nested object resource + :param pulumi.Input['HealthCheckHttpHealthCheckArgs'] http_health_check: A nested object resource. Structure is documented below. - :param pulumi.Input['HealthCheckHttpsHealthCheckArgs'] https_health_check: A nested object resource + :param pulumi.Input['HealthCheckHttpsHealthCheckArgs'] https_health_check: A nested object resource. Structure is documented below. :param pulumi.Input['HealthCheckLogConfigArgs'] log_config: Configure logging on this health check. Structure is documented below. @@ -78,9 +78,9 @@ def __init__(__self__, *, * The checkIntervalSec field must be at least 30. * The health check cannot be used with BackendService nor with managed instance group auto-healing. - :param pulumi.Input['HealthCheckSslHealthCheckArgs'] ssl_health_check: A nested object resource + :param pulumi.Input['HealthCheckSslHealthCheckArgs'] ssl_health_check: A nested object resource. Structure is documented below. - :param pulumi.Input['HealthCheckTcpHealthCheckArgs'] tcp_health_check: A nested object resource + :param pulumi.Input['HealthCheckTcpHealthCheckArgs'] tcp_health_check: A nested object resource. Structure is documented below. :param pulumi.Input[int] timeout_sec: How long (in seconds) to wait before claiming failure. The default value is 5 seconds. It is invalid for timeoutSec to have @@ -149,7 +149,7 @@ def description(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="grpcHealthCheck") def grpc_health_check(self) -> Optional[pulumi.Input['HealthCheckGrpcHealthCheckArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "grpc_health_check") @@ -175,7 +175,7 @@ def healthy_threshold(self, value: Optional[pulumi.Input[int]]): @pulumi.getter(name="http2HealthCheck") def http2_health_check(self) -> Optional[pulumi.Input['HealthCheckHttp2HealthCheckArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "http2_health_check") @@ -188,7 +188,7 @@ def http2_health_check(self, value: Optional[pulumi.Input['HealthCheckHttp2Healt @pulumi.getter(name="httpHealthCheck") def http_health_check(self) -> Optional[pulumi.Input['HealthCheckHttpHealthCheckArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "http_health_check") @@ -201,7 +201,7 @@ def http_health_check(self, value: Optional[pulumi.Input['HealthCheckHttpHealthC @pulumi.getter(name="httpsHealthCheck") def https_health_check(self) -> Optional[pulumi.Input['HealthCheckHttpsHealthCheckArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "https_health_check") @@ -284,7 +284,7 @@ def source_regions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] @pulumi.getter(name="sslHealthCheck") def ssl_health_check(self) -> Optional[pulumi.Input['HealthCheckSslHealthCheckArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "ssl_health_check") @@ -297,7 +297,7 @@ def ssl_health_check(self, value: Optional[pulumi.Input['HealthCheckSslHealthChe @pulumi.getter(name="tcpHealthCheck") def tcp_health_check(self) -> Optional[pulumi.Input['HealthCheckTcpHealthCheckArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "tcp_health_check") @@ -362,15 +362,15 @@ def __init__(__self__, *, :param pulumi.Input[str] creation_timestamp: Creation timestamp in RFC3339 text format. :param pulumi.Input[str] description: An optional description of this resource. Provide this property when you create the resource. - :param pulumi.Input['HealthCheckGrpcHealthCheckArgs'] grpc_health_check: A nested object resource + :param pulumi.Input['HealthCheckGrpcHealthCheckArgs'] grpc_health_check: A nested object resource. Structure is documented below. :param pulumi.Input[int] healthy_threshold: A so-far unhealthy instance will be marked healthy after this many consecutive successes. The default value is 2. - :param pulumi.Input['HealthCheckHttp2HealthCheckArgs'] http2_health_check: A nested object resource + :param pulumi.Input['HealthCheckHttp2HealthCheckArgs'] http2_health_check: A nested object resource. Structure is documented below. - :param pulumi.Input['HealthCheckHttpHealthCheckArgs'] http_health_check: A nested object resource + :param pulumi.Input['HealthCheckHttpHealthCheckArgs'] http_health_check: A nested object resource. Structure is documented below. - :param pulumi.Input['HealthCheckHttpsHealthCheckArgs'] https_health_check: A nested object resource + :param pulumi.Input['HealthCheckHttpsHealthCheckArgs'] https_health_check: A nested object resource. Structure is documented below. :param pulumi.Input['HealthCheckLogConfigArgs'] log_config: Configure logging on this health check. Structure is documented below. @@ -399,9 +399,9 @@ def __init__(__self__, *, * The checkIntervalSec field must be at least 30. * The health check cannot be used with BackendService nor with managed instance group auto-healing. - :param pulumi.Input['HealthCheckSslHealthCheckArgs'] ssl_health_check: A nested object resource + :param pulumi.Input['HealthCheckSslHealthCheckArgs'] ssl_health_check: A nested object resource. Structure is documented below. - :param pulumi.Input['HealthCheckTcpHealthCheckArgs'] tcp_health_check: A nested object resource + :param pulumi.Input['HealthCheckTcpHealthCheckArgs'] tcp_health_check: A nested object resource. Structure is documented below. :param pulumi.Input[int] timeout_sec: How long (in seconds) to wait before claiming failure. The default value is 5 seconds. It is invalid for timeoutSec to have @@ -489,7 +489,7 @@ def description(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="grpcHealthCheck") def grpc_health_check(self) -> Optional[pulumi.Input['HealthCheckGrpcHealthCheckArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "grpc_health_check") @@ -515,7 +515,7 @@ def healthy_threshold(self, value: Optional[pulumi.Input[int]]): @pulumi.getter(name="http2HealthCheck") def http2_health_check(self) -> Optional[pulumi.Input['HealthCheckHttp2HealthCheckArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "http2_health_check") @@ -528,7 +528,7 @@ def http2_health_check(self, value: Optional[pulumi.Input['HealthCheckHttp2Healt @pulumi.getter(name="httpHealthCheck") def http_health_check(self) -> Optional[pulumi.Input['HealthCheckHttpHealthCheckArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "http_health_check") @@ -541,7 +541,7 @@ def http_health_check(self, value: Optional[pulumi.Input['HealthCheckHttpHealthC @pulumi.getter(name="httpsHealthCheck") def https_health_check(self) -> Optional[pulumi.Input['HealthCheckHttpsHealthCheckArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "https_health_check") @@ -636,7 +636,7 @@ def source_regions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] @pulumi.getter(name="sslHealthCheck") def ssl_health_check(self) -> Optional[pulumi.Input['HealthCheckSslHealthCheckArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "ssl_health_check") @@ -649,7 +649,7 @@ def ssl_health_check(self, value: Optional[pulumi.Input['HealthCheckSslHealthChe @pulumi.getter(name="tcpHealthCheck") def tcp_health_check(self) -> Optional[pulumi.Input['HealthCheckTcpHealthCheckArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "tcp_health_check") @@ -1057,15 +1057,15 @@ def __init__(__self__, seconds. :param pulumi.Input[str] description: An optional description of this resource. Provide this property when you create the resource. - :param pulumi.Input[Union['HealthCheckGrpcHealthCheckArgs', 'HealthCheckGrpcHealthCheckArgsDict']] grpc_health_check: A nested object resource + :param pulumi.Input[Union['HealthCheckGrpcHealthCheckArgs', 'HealthCheckGrpcHealthCheckArgsDict']] grpc_health_check: A nested object resource. Structure is documented below. :param pulumi.Input[int] healthy_threshold: A so-far unhealthy instance will be marked healthy after this many consecutive successes. The default value is 2. - :param pulumi.Input[Union['HealthCheckHttp2HealthCheckArgs', 'HealthCheckHttp2HealthCheckArgsDict']] http2_health_check: A nested object resource + :param pulumi.Input[Union['HealthCheckHttp2HealthCheckArgs', 'HealthCheckHttp2HealthCheckArgsDict']] http2_health_check: A nested object resource. Structure is documented below. - :param pulumi.Input[Union['HealthCheckHttpHealthCheckArgs', 'HealthCheckHttpHealthCheckArgsDict']] http_health_check: A nested object resource + :param pulumi.Input[Union['HealthCheckHttpHealthCheckArgs', 'HealthCheckHttpHealthCheckArgsDict']] http_health_check: A nested object resource. Structure is documented below. - :param pulumi.Input[Union['HealthCheckHttpsHealthCheckArgs', 'HealthCheckHttpsHealthCheckArgsDict']] https_health_check: A nested object resource + :param pulumi.Input[Union['HealthCheckHttpsHealthCheckArgs', 'HealthCheckHttpsHealthCheckArgsDict']] https_health_check: A nested object resource. Structure is documented below. :param pulumi.Input[Union['HealthCheckLogConfigArgs', 'HealthCheckLogConfigArgsDict']] log_config: Configure logging on this health check. Structure is documented below. @@ -1093,9 +1093,9 @@ def __init__(__self__, * The checkIntervalSec field must be at least 30. * The health check cannot be used with BackendService nor with managed instance group auto-healing. - :param pulumi.Input[Union['HealthCheckSslHealthCheckArgs', 'HealthCheckSslHealthCheckArgsDict']] ssl_health_check: A nested object resource + :param pulumi.Input[Union['HealthCheckSslHealthCheckArgs', 'HealthCheckSslHealthCheckArgsDict']] ssl_health_check: A nested object resource. Structure is documented below. - :param pulumi.Input[Union['HealthCheckTcpHealthCheckArgs', 'HealthCheckTcpHealthCheckArgsDict']] tcp_health_check: A nested object resource + :param pulumi.Input[Union['HealthCheckTcpHealthCheckArgs', 'HealthCheckTcpHealthCheckArgsDict']] tcp_health_check: A nested object resource. Structure is documented below. :param pulumi.Input[int] timeout_sec: How long (in seconds) to wait before claiming failure. The default value is 5 seconds. It is invalid for timeoutSec to have @@ -1538,15 +1538,15 @@ def get(resource_name: str, :param pulumi.Input[str] creation_timestamp: Creation timestamp in RFC3339 text format. :param pulumi.Input[str] description: An optional description of this resource. Provide this property when you create the resource. - :param pulumi.Input[Union['HealthCheckGrpcHealthCheckArgs', 'HealthCheckGrpcHealthCheckArgsDict']] grpc_health_check: A nested object resource + :param pulumi.Input[Union['HealthCheckGrpcHealthCheckArgs', 'HealthCheckGrpcHealthCheckArgsDict']] grpc_health_check: A nested object resource. Structure is documented below. :param pulumi.Input[int] healthy_threshold: A so-far unhealthy instance will be marked healthy after this many consecutive successes. The default value is 2. - :param pulumi.Input[Union['HealthCheckHttp2HealthCheckArgs', 'HealthCheckHttp2HealthCheckArgsDict']] http2_health_check: A nested object resource + :param pulumi.Input[Union['HealthCheckHttp2HealthCheckArgs', 'HealthCheckHttp2HealthCheckArgsDict']] http2_health_check: A nested object resource. Structure is documented below. - :param pulumi.Input[Union['HealthCheckHttpHealthCheckArgs', 'HealthCheckHttpHealthCheckArgsDict']] http_health_check: A nested object resource + :param pulumi.Input[Union['HealthCheckHttpHealthCheckArgs', 'HealthCheckHttpHealthCheckArgsDict']] http_health_check: A nested object resource. Structure is documented below. - :param pulumi.Input[Union['HealthCheckHttpsHealthCheckArgs', 'HealthCheckHttpsHealthCheckArgsDict']] https_health_check: A nested object resource + :param pulumi.Input[Union['HealthCheckHttpsHealthCheckArgs', 'HealthCheckHttpsHealthCheckArgsDict']] https_health_check: A nested object resource. Structure is documented below. :param pulumi.Input[Union['HealthCheckLogConfigArgs', 'HealthCheckLogConfigArgsDict']] log_config: Configure logging on this health check. Structure is documented below. @@ -1575,9 +1575,9 @@ def get(resource_name: str, * The checkIntervalSec field must be at least 30. * The health check cannot be used with BackendService nor with managed instance group auto-healing. - :param pulumi.Input[Union['HealthCheckSslHealthCheckArgs', 'HealthCheckSslHealthCheckArgsDict']] ssl_health_check: A nested object resource + :param pulumi.Input[Union['HealthCheckSslHealthCheckArgs', 'HealthCheckSslHealthCheckArgsDict']] ssl_health_check: A nested object resource. Structure is documented below. - :param pulumi.Input[Union['HealthCheckTcpHealthCheckArgs', 'HealthCheckTcpHealthCheckArgsDict']] tcp_health_check: A nested object resource + :param pulumi.Input[Union['HealthCheckTcpHealthCheckArgs', 'HealthCheckTcpHealthCheckArgsDict']] tcp_health_check: A nested object resource. Structure is documented below. :param pulumi.Input[int] timeout_sec: How long (in seconds) to wait before claiming failure. The default value is 5 seconds. It is invalid for timeoutSec to have @@ -1640,7 +1640,7 @@ def description(self) -> pulumi.Output[Optional[str]]: @pulumi.getter(name="grpcHealthCheck") def grpc_health_check(self) -> pulumi.Output[Optional['outputs.HealthCheckGrpcHealthCheck']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "grpc_health_check") @@ -1658,7 +1658,7 @@ def healthy_threshold(self) -> pulumi.Output[Optional[int]]: @pulumi.getter(name="http2HealthCheck") def http2_health_check(self) -> pulumi.Output[Optional['outputs.HealthCheckHttp2HealthCheck']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "http2_health_check") @@ -1667,7 +1667,7 @@ def http2_health_check(self) -> pulumi.Output[Optional['outputs.HealthCheckHttp2 @pulumi.getter(name="httpHealthCheck") def http_health_check(self) -> pulumi.Output[Optional['outputs.HealthCheckHttpHealthCheck']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "http_health_check") @@ -1676,7 +1676,7 @@ def http_health_check(self) -> pulumi.Output[Optional['outputs.HealthCheckHttpHe @pulumi.getter(name="httpsHealthCheck") def https_health_check(self) -> pulumi.Output[Optional['outputs.HealthCheckHttpsHealthCheck']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "https_health_check") @@ -1747,7 +1747,7 @@ def source_regions(self) -> pulumi.Output[Optional[Sequence[str]]]: @pulumi.getter(name="sslHealthCheck") def ssl_health_check(self) -> pulumi.Output[Optional['outputs.HealthCheckSslHealthCheck']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "ssl_health_check") @@ -1756,7 +1756,7 @@ def ssl_health_check(self) -> pulumi.Output[Optional['outputs.HealthCheckSslHeal @pulumi.getter(name="tcpHealthCheck") def tcp_health_check(self) -> pulumi.Output[Optional['outputs.HealthCheckTcpHealthCheck']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "tcp_health_check") diff --git a/sdk/python/pulumi_gcp/compute/network_firewall_policy_rule.py b/sdk/python/pulumi_gcp/compute/network_firewall_policy_rule.py index 640e521440..301f1ca9b3 100644 --- a/sdk/python/pulumi_gcp/compute/network_firewall_policy_rule.py +++ b/sdk/python/pulumi_gcp/compute/network_firewall_policy_rule.py @@ -631,7 +631,7 @@ def __init__(__self__, }) basic_value = gcp.tags.TagValue("basic_value", description="For valuename resources.", - parent=basic_key.name.apply(lambda name: f"tagKeys/{name}"), + parent=basic_key.id, short_name="tagvalue") primary = gcp.compute.NetworkFirewallPolicyRule("primary", action="allow", @@ -649,7 +649,7 @@ def __init__(__self__, "src_region_codes": ["US"], "src_threat_intelligences": ["iplist-known-malicious-ips"], "src_secure_tags": [{ - "name": basic_value.name.apply(lambda name: f"tagValues/{name}"), + "name": basic_value.id, }], "layer4_configs": [{ "ip_protocol": "all", @@ -756,7 +756,7 @@ def __init__(__self__, }) basic_value = gcp.tags.TagValue("basic_value", description="For valuename resources.", - parent=basic_key.name.apply(lambda name: f"tagKeys/{name}"), + parent=basic_key.id, short_name="tagvalue") primary = gcp.compute.NetworkFirewallPolicyRule("primary", action="allow", @@ -774,7 +774,7 @@ def __init__(__self__, "src_region_codes": ["US"], "src_threat_intelligences": ["iplist-known-malicious-ips"], "src_secure_tags": [{ - "name": basic_value.name.apply(lambda name: f"tagValues/{name}"), + "name": basic_value.id, }], "layer4_configs": [{ "ip_protocol": "all", diff --git a/sdk/python/pulumi_gcp/compute/network_firewall_policy_with_rules.py b/sdk/python/pulumi_gcp/compute/network_firewall_policy_with_rules.py index 84f8810496..76a5c0b5c8 100644 --- a/sdk/python/pulumi_gcp/compute/network_firewall_policy_with_rules.py +++ b/sdk/python/pulumi_gcp/compute/network_firewall_policy_with_rules.py @@ -317,7 +317,7 @@ def __init__(__self__, project = gcp.organizations.get_project() address_group1 = gcp.networksecurity.AddressGroup("address_group_1", name="tf-address-group", - parent=f"projects/{project.name}", + parent=project.id, description="Global address group", location="global", items=["208.80.154.224/32"], @@ -325,7 +325,7 @@ def __init__(__self__, capacity=100) secure_tag_key1 = gcp.tags.TagKey("secure_tag_key_1", description="Tag key", - parent=f"projects/{project.name}", + parent=project.id, purpose="GCE_FIREWALL", short_name="tf-tag-key", purpose_data={ @@ -333,7 +333,7 @@ def __init__(__self__, }) secure_tag_value1 = gcp.tags.TagValue("secure_tag_value_1", description="Tag value", - parent=secure_tag_key1.name.apply(lambda name: f"tagKeys/{name}"), + parent=secure_tag_key1.id, short_name="tf-tag-value") security_profile1 = gcp.networksecurity.SecurityProfile("security_profile_1", name="tf-security-profile", @@ -379,7 +379,7 @@ def __init__(__self__, "dest_address_groups": [address_group1.id], }, "target_secure_tags": [{ - "name": secure_tag_value1.name.apply(lambda name: f"tagValues/{name}"), + "name": secure_tag_value1.id, }], }, { @@ -407,7 +407,7 @@ def __init__(__self__, ], "src_address_groups": [address_group1.id], "src_secure_tags": [{ - "name": secure_tag_value1.name.apply(lambda name: f"tagValues/{name}"), + "name": secure_tag_value1.id, }], }, "disabled": True, @@ -487,7 +487,7 @@ def __init__(__self__, project = gcp.organizations.get_project() address_group1 = gcp.networksecurity.AddressGroup("address_group_1", name="tf-address-group", - parent=f"projects/{project.name}", + parent=project.id, description="Global address group", location="global", items=["208.80.154.224/32"], @@ -495,7 +495,7 @@ def __init__(__self__, capacity=100) secure_tag_key1 = gcp.tags.TagKey("secure_tag_key_1", description="Tag key", - parent=f"projects/{project.name}", + parent=project.id, purpose="GCE_FIREWALL", short_name="tf-tag-key", purpose_data={ @@ -503,7 +503,7 @@ def __init__(__self__, }) secure_tag_value1 = gcp.tags.TagValue("secure_tag_value_1", description="Tag value", - parent=secure_tag_key1.name.apply(lambda name: f"tagKeys/{name}"), + parent=secure_tag_key1.id, short_name="tf-tag-value") security_profile1 = gcp.networksecurity.SecurityProfile("security_profile_1", name="tf-security-profile", @@ -549,7 +549,7 @@ def __init__(__self__, "dest_address_groups": [address_group1.id], }, "target_secure_tags": [{ - "name": secure_tag_value1.name.apply(lambda name: f"tagValues/{name}"), + "name": secure_tag_value1.id, }], }, { @@ -577,7 +577,7 @@ def __init__(__self__, ], "src_address_groups": [address_group1.id], "src_secure_tags": [{ - "name": secure_tag_value1.name.apply(lambda name: f"tagValues/{name}"), + "name": secure_tag_value1.id, }], }, "disabled": True, diff --git a/sdk/python/pulumi_gcp/compute/node_template.py b/sdk/python/pulumi_gcp/compute/node_template.py index 76e0d8e7bf..23f2af51c9 100644 --- a/sdk/python/pulumi_gcp/compute/node_template.py +++ b/sdk/python/pulumi_gcp/compute/node_template.py @@ -24,6 +24,7 @@ def __init__(__self__, *, accelerators: Optional[pulumi.Input[Sequence[pulumi.Input['NodeTemplateAcceleratorArgs']]]] = None, cpu_overcommit_type: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, + disks: Optional[pulumi.Input[Sequence[pulumi.Input['NodeTemplateDiskArgs']]]] = None, name: Optional[pulumi.Input[str]] = None, node_affinity_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, node_type: Optional[pulumi.Input[str]] = None, @@ -40,6 +41,9 @@ def __init__(__self__, *, Default value is `NONE`. Possible values are: `ENABLED`, `NONE`. :param pulumi.Input[str] description: An optional textual description of the resource. + :param pulumi.Input[Sequence[pulumi.Input['NodeTemplateDiskArgs']]] disks: List of the type, size and count of disks attached to the + node template + Structure is documented below. :param pulumi.Input[str] name: Name of the resource. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] node_affinity_labels: Labels to use for node affinity, which will be used in instance scheduling. @@ -64,6 +68,8 @@ def __init__(__self__, *, pulumi.set(__self__, "cpu_overcommit_type", cpu_overcommit_type) if description is not None: pulumi.set(__self__, "description", description) + if disks is not None: + pulumi.set(__self__, "disks", disks) if name is not None: pulumi.set(__self__, "name", name) if node_affinity_labels is not None: @@ -119,6 +125,20 @@ def description(self) -> Optional[pulumi.Input[str]]: def description(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "description", value) + @property + @pulumi.getter + def disks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['NodeTemplateDiskArgs']]]]: + """ + List of the type, size and count of disks attached to the + node template + Structure is documented below. + """ + return pulumi.get(self, "disks") + + @disks.setter + def disks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['NodeTemplateDiskArgs']]]]): + pulumi.set(self, "disks", value) + @property @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: @@ -221,6 +241,7 @@ def __init__(__self__, *, cpu_overcommit_type: Optional[pulumi.Input[str]] = None, creation_timestamp: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, + disks: Optional[pulumi.Input[Sequence[pulumi.Input['NodeTemplateDiskArgs']]]] = None, name: Optional[pulumi.Input[str]] = None, node_affinity_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, node_type: Optional[pulumi.Input[str]] = None, @@ -239,6 +260,9 @@ def __init__(__self__, *, Possible values are: `ENABLED`, `NONE`. :param pulumi.Input[str] creation_timestamp: Creation timestamp in RFC3339 text format. :param pulumi.Input[str] description: An optional textual description of the resource. + :param pulumi.Input[Sequence[pulumi.Input['NodeTemplateDiskArgs']]] disks: List of the type, size and count of disks attached to the + node template + Structure is documented below. :param pulumi.Input[str] name: Name of the resource. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] node_affinity_labels: Labels to use for node affinity, which will be used in instance scheduling. @@ -266,6 +290,8 @@ def __init__(__self__, *, pulumi.set(__self__, "creation_timestamp", creation_timestamp) if description is not None: pulumi.set(__self__, "description", description) + if disks is not None: + pulumi.set(__self__, "disks", disks) if name is not None: pulumi.set(__self__, "name", name) if node_affinity_labels is not None: @@ -335,6 +361,20 @@ def description(self) -> Optional[pulumi.Input[str]]: def description(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "description", value) + @property + @pulumi.getter + def disks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['NodeTemplateDiskArgs']]]]: + """ + List of the type, size and count of disks attached to the + node template + Structure is documented below. + """ + return pulumi.get(self, "disks") + + @disks.setter + def disks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['NodeTemplateDiskArgs']]]]): + pulumi.set(self, "disks", value) + @property @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: @@ -450,6 +490,7 @@ def __init__(__self__, accelerators: Optional[pulumi.Input[Sequence[pulumi.Input[Union['NodeTemplateAcceleratorArgs', 'NodeTemplateAcceleratorArgsDict']]]]] = None, cpu_overcommit_type: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, + disks: Optional[pulumi.Input[Sequence[pulumi.Input[Union['NodeTemplateDiskArgs', 'NodeTemplateDiskArgsDict']]]]] = None, name: Optional[pulumi.Input[str]] = None, node_affinity_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, node_type: Optional[pulumi.Input[str]] = None, @@ -516,6 +557,23 @@ def __init__(__self__, "accelerator_count": 4, }]) ``` + ### Node Template Disks + + ```python + import pulumi + import pulumi_gcp as gcp + + central1a = gcp.compute.get_node_types(zone="us-central1-a") + template = gcp.compute.NodeTemplate("template", + name="soletenant-with-disks", + region="us-central1", + node_type="n2-node-80-640", + disks=[{ + "disk_count": 16, + "disk_size_gb": 375, + "disk_type": "local-ssd", + }]) + ``` ## Import @@ -556,6 +614,9 @@ def __init__(__self__, Default value is `NONE`. Possible values are: `ENABLED`, `NONE`. :param pulumi.Input[str] description: An optional textual description of the resource. + :param pulumi.Input[Sequence[pulumi.Input[Union['NodeTemplateDiskArgs', 'NodeTemplateDiskArgsDict']]]] disks: List of the type, size and count of disks attached to the + node template + Structure is documented below. :param pulumi.Input[str] name: Name of the resource. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] node_affinity_labels: Labels to use for node affinity, which will be used in instance scheduling. @@ -638,6 +699,23 @@ def __init__(__self__, "accelerator_count": 4, }]) ``` + ### Node Template Disks + + ```python + import pulumi + import pulumi_gcp as gcp + + central1a = gcp.compute.get_node_types(zone="us-central1-a") + template = gcp.compute.NodeTemplate("template", + name="soletenant-with-disks", + region="us-central1", + node_type="n2-node-80-640", + disks=[{ + "disk_count": 16, + "disk_size_gb": 375, + "disk_type": "local-ssd", + }]) + ``` ## Import @@ -687,6 +765,7 @@ def _internal_init(__self__, accelerators: Optional[pulumi.Input[Sequence[pulumi.Input[Union['NodeTemplateAcceleratorArgs', 'NodeTemplateAcceleratorArgsDict']]]]] = None, cpu_overcommit_type: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, + disks: Optional[pulumi.Input[Sequence[pulumi.Input[Union['NodeTemplateDiskArgs', 'NodeTemplateDiskArgsDict']]]]] = None, name: Optional[pulumi.Input[str]] = None, node_affinity_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, node_type: Optional[pulumi.Input[str]] = None, @@ -706,6 +785,7 @@ def _internal_init(__self__, __props__.__dict__["accelerators"] = accelerators __props__.__dict__["cpu_overcommit_type"] = cpu_overcommit_type __props__.__dict__["description"] = description + __props__.__dict__["disks"] = disks __props__.__dict__["name"] = name __props__.__dict__["node_affinity_labels"] = node_affinity_labels __props__.__dict__["node_type"] = node_type @@ -729,6 +809,7 @@ def get(resource_name: str, cpu_overcommit_type: Optional[pulumi.Input[str]] = None, creation_timestamp: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, + disks: Optional[pulumi.Input[Sequence[pulumi.Input[Union['NodeTemplateDiskArgs', 'NodeTemplateDiskArgsDict']]]]] = None, name: Optional[pulumi.Input[str]] = None, node_affinity_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, node_type: Optional[pulumi.Input[str]] = None, @@ -752,6 +833,9 @@ def get(resource_name: str, Possible values are: `ENABLED`, `NONE`. :param pulumi.Input[str] creation_timestamp: Creation timestamp in RFC3339 text format. :param pulumi.Input[str] description: An optional textual description of the resource. + :param pulumi.Input[Sequence[pulumi.Input[Union['NodeTemplateDiskArgs', 'NodeTemplateDiskArgsDict']]]] disks: List of the type, size and count of disks attached to the + node template + Structure is documented below. :param pulumi.Input[str] name: Name of the resource. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] node_affinity_labels: Labels to use for node affinity, which will be used in instance scheduling. @@ -779,6 +863,7 @@ def get(resource_name: str, __props__.__dict__["cpu_overcommit_type"] = cpu_overcommit_type __props__.__dict__["creation_timestamp"] = creation_timestamp __props__.__dict__["description"] = description + __props__.__dict__["disks"] = disks __props__.__dict__["name"] = name __props__.__dict__["node_affinity_labels"] = node_affinity_labels __props__.__dict__["node_type"] = node_type @@ -825,6 +910,16 @@ def description(self) -> pulumi.Output[Optional[str]]: """ return pulumi.get(self, "description") + @property + @pulumi.getter + def disks(self) -> pulumi.Output[Optional[Sequence['outputs.NodeTemplateDisk']]]: + """ + List of the type, size and count of disks attached to the + node template + Structure is documented below. + """ + return pulumi.get(self, "disks") + @property @pulumi.getter def name(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_gcp/compute/outputs.py b/sdk/python/pulumi_gcp/compute/outputs.py index 04e8237b3d..bfb87c4065 100644 --- a/sdk/python/pulumi_gcp/compute/outputs.py +++ b/sdk/python/pulumi_gcp/compute/outputs.py @@ -231,6 +231,7 @@ 'NodeGroupShareSettings', 'NodeGroupShareSettingsProjectMap', 'NodeTemplateAccelerator', + 'NodeTemplateDisk', 'NodeTemplateNodeTypeFlexibility', 'NodeTemplateServerBinding', 'OrganizationSecurityPolicyRuleMatch', @@ -295,6 +296,8 @@ 'RegionHealthCheckTcpHealthCheck', 'RegionInstanceGroupManagerAllInstancesConfig', 'RegionInstanceGroupManagerAutoHealingPolicies', + 'RegionInstanceGroupManagerInstanceFlexibilityPolicy', + 'RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection', 'RegionInstanceGroupManagerInstanceLifecyclePolicy', 'RegionInstanceGroupManagerNamedPort', 'RegionInstanceGroupManagerParams', @@ -355,7 +358,27 @@ 'RegionPerInstanceConfigPreservedStateExternalIpIpAddress', 'RegionPerInstanceConfigPreservedStateInternalIp', 'RegionPerInstanceConfigPreservedStateInternalIpIpAddress', + 'RegionResizeRequestRequestedRunDuration', + 'RegionResizeRequestStatus', + 'RegionResizeRequestStatusError', + 'RegionResizeRequestStatusErrorError', + 'RegionResizeRequestStatusErrorErrorErrorDetail', + 'RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo', + 'RegionResizeRequestStatusErrorErrorErrorDetailHelp', + 'RegionResizeRequestStatusErrorErrorErrorDetailHelpLink', + 'RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage', + 'RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo', + 'RegionResizeRequestStatusLastAttempt', + 'RegionResizeRequestStatusLastAttemptError', + 'RegionResizeRequestStatusLastAttemptErrorError', + 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail', + 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo', + 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp', + 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink', + 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage', + 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo', 'RegionSecurityPolicyDdosProtectionConfig', + 'RegionSecurityPolicyRule', 'RegionSecurityPolicyRuleMatch', 'RegionSecurityPolicyRuleMatchConfig', 'RegionSecurityPolicyRuleMatchExpr', @@ -738,6 +761,8 @@ 'GetRegionInstanceGroupInstanceNamedPortResult', 'GetRegionInstanceGroupManagerAllInstancesConfigResult', 'GetRegionInstanceGroupManagerAutoHealingPolicyResult', + 'GetRegionInstanceGroupManagerInstanceFlexibilityPolicyResult', + 'GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionResult', 'GetRegionInstanceGroupManagerInstanceLifecyclePolicyResult', 'GetRegionInstanceGroupManagerNamedPortResult', 'GetRegionInstanceGroupManagerParamResult', @@ -1342,7 +1367,7 @@ def __init__(__self__, *, max_scaled_down_replicas: Optional['outputs.AutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicas'] = None, time_window_sec: Optional[int] = None): """ - :param 'AutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasArgs' max_scaled_down_replicas: A nested object resource + :param 'AutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasArgs' max_scaled_down_replicas: A nested object resource. Structure is documented below. :param int time_window_sec: How long back autoscaling should look when computing recommendations to include directives regarding slower scale down, as described above. @@ -1356,7 +1381,7 @@ def __init__(__self__, *, @pulumi.getter(name="maxScaledDownReplicas") def max_scaled_down_replicas(self) -> Optional['outputs.AutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicas']: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "max_scaled_down_replicas") @@ -1431,7 +1456,7 @@ def __init__(__self__, *, max_scaled_in_replicas: Optional['outputs.AutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicas'] = None, time_window_sec: Optional[int] = None): """ - :param 'AutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicasArgs' max_scaled_in_replicas: A nested object resource + :param 'AutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicasArgs' max_scaled_in_replicas: A nested object resource. Structure is documented below. :param int time_window_sec: How long back autoscaling should look when computing recommendations to include directives regarding slower scale down, as described above. @@ -1445,7 +1470,7 @@ def __init__(__self__, *, @pulumi.getter(name="maxScaledInReplicas") def max_scaled_in_replicas(self) -> Optional['outputs.AutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicas']: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "max_scaled_in_replicas") @@ -4599,18 +4624,20 @@ def __init__(__self__, *, src_threat_intelligences: Optional[Sequence[str]] = None): """ :param Sequence['FirewallPolicyRuleMatchLayer4ConfigArgs'] layer4_configs: Pairs of IP protocols and ports that the rule should match. - :param Sequence[str] dest_address_groups: Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. Destination address groups is only supported in Egress rules. - :param Sequence[str] dest_fqdns: Domain names that will be used to match against the resolved domain name of destination of traffic. Can only be specified if DIRECTION is egress. - :param Sequence[str] dest_ip_ranges: CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 256. - :param Sequence[str] dest_region_codes: The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is egress. - :param Sequence[str] dest_threat_intelligences: Name of the Google Cloud Threat Intelligence list. - :param Sequence[str] src_address_groups: Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. Source address groups is only supported in Ingress rules. - :param Sequence[str] src_fqdns: Domain names that will be used to match against the resolved domain name of source of traffic. Can only be specified if DIRECTION is ingress. - :param Sequence[str] src_ip_ranges: CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 256. - :param Sequence[str] src_region_codes: The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is ingress. - :param Sequence[str] src_threat_intelligences: Name of the Google Cloud Threat Intelligence list. + Structure is documented below. + :param Sequence[str] dest_address_groups: Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. + :param Sequence[str] dest_fqdns: Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100. + :param Sequence[str] dest_ip_ranges: CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000. + :param Sequence[str] dest_region_codes: Region codes whose IP addresses will be used to match for destination of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of dest region codes allowed is 5000. + :param Sequence[str] dest_threat_intelligences: Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination. + :param Sequence[str] src_address_groups: Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. + :param Sequence[str] src_fqdns: Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100. + :param Sequence[str] src_ip_ranges: CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000. + :param Sequence[str] src_region_codes: Region codes whose IP addresses will be used to match for source of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of source region codes allowed is 5000. + :param Sequence[str] src_threat_intelligences: Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source. + - The `layer4_configs` block supports: + The `layer4_configs` block supports: """ pulumi.set(__self__, "layer4_configs", layer4_configs) if dest_address_groups is not None: @@ -4639,6 +4666,7 @@ def __init__(__self__, *, def layer4_configs(self) -> Sequence['outputs.FirewallPolicyRuleMatchLayer4Config']: """ Pairs of IP protocols and ports that the rule should match. + Structure is documented below. """ return pulumi.get(self, "layer4_configs") @@ -4646,7 +4674,7 @@ def layer4_configs(self) -> Sequence['outputs.FirewallPolicyRuleMatchLayer4Confi @pulumi.getter(name="destAddressGroups") def dest_address_groups(self) -> Optional[Sequence[str]]: """ - Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. Destination address groups is only supported in Egress rules. + Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. """ return pulumi.get(self, "dest_address_groups") @@ -4654,7 +4682,7 @@ def dest_address_groups(self) -> Optional[Sequence[str]]: @pulumi.getter(name="destFqdns") def dest_fqdns(self) -> Optional[Sequence[str]]: """ - Domain names that will be used to match against the resolved domain name of destination of traffic. Can only be specified if DIRECTION is egress. + Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100. """ return pulumi.get(self, "dest_fqdns") @@ -4662,7 +4690,7 @@ def dest_fqdns(self) -> Optional[Sequence[str]]: @pulumi.getter(name="destIpRanges") def dest_ip_ranges(self) -> Optional[Sequence[str]]: """ - CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 256. + CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000. """ return pulumi.get(self, "dest_ip_ranges") @@ -4670,7 +4698,7 @@ def dest_ip_ranges(self) -> Optional[Sequence[str]]: @pulumi.getter(name="destRegionCodes") def dest_region_codes(self) -> Optional[Sequence[str]]: """ - The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is egress. + Region codes whose IP addresses will be used to match for destination of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of dest region codes allowed is 5000. """ return pulumi.get(self, "dest_region_codes") @@ -4678,7 +4706,7 @@ def dest_region_codes(self) -> Optional[Sequence[str]]: @pulumi.getter(name="destThreatIntelligences") def dest_threat_intelligences(self) -> Optional[Sequence[str]]: """ - Name of the Google Cloud Threat Intelligence list. + Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination. """ return pulumi.get(self, "dest_threat_intelligences") @@ -4686,7 +4714,7 @@ def dest_threat_intelligences(self) -> Optional[Sequence[str]]: @pulumi.getter(name="srcAddressGroups") def src_address_groups(self) -> Optional[Sequence[str]]: """ - Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. Source address groups is only supported in Ingress rules. + Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. """ return pulumi.get(self, "src_address_groups") @@ -4694,7 +4722,7 @@ def src_address_groups(self) -> Optional[Sequence[str]]: @pulumi.getter(name="srcFqdns") def src_fqdns(self) -> Optional[Sequence[str]]: """ - Domain names that will be used to match against the resolved domain name of source of traffic. Can only be specified if DIRECTION is ingress. + Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100. """ return pulumi.get(self, "src_fqdns") @@ -4702,7 +4730,7 @@ def src_fqdns(self) -> Optional[Sequence[str]]: @pulumi.getter(name="srcIpRanges") def src_ip_ranges(self) -> Optional[Sequence[str]]: """ - CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 256. + CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000. """ return pulumi.get(self, "src_ip_ranges") @@ -4710,7 +4738,7 @@ def src_ip_ranges(self) -> Optional[Sequence[str]]: @pulumi.getter(name="srcRegionCodes") def src_region_codes(self) -> Optional[Sequence[str]]: """ - The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is ingress. + Region codes whose IP addresses will be used to match for source of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of source region codes allowed is 5000. """ return pulumi.get(self, "src_region_codes") @@ -4718,9 +4746,10 @@ def src_region_codes(self) -> Optional[Sequence[str]]: @pulumi.getter(name="srcThreatIntelligences") def src_threat_intelligences(self) -> Optional[Sequence[str]]: """ - Name of the Google Cloud Threat Intelligence list. + Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source. - The `layer4_configs` block supports: + + The `layer4_configs` block supports: """ return pulumi.get(self, "src_threat_intelligences") @@ -4748,8 +4777,10 @@ def __init__(__self__, *, ip_protocol: str, ports: Optional[Sequence[str]] = None): """ - :param str ip_protocol: The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (`tcp`, `udp`, `icmp`, `esp`, `ah`, `ipip`, `sctp`), or the IP protocol number. - :param Sequence[str] ports: An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ``. + :param str ip_protocol: The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. + This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number. + :param Sequence[str] ports: An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. + Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. """ pulumi.set(__self__, "ip_protocol", ip_protocol) if ports is not None: @@ -4759,7 +4790,8 @@ def __init__(__self__, *, @pulumi.getter(name="ipProtocol") def ip_protocol(self) -> str: """ - The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (`tcp`, `udp`, `icmp`, `esp`, `ah`, `ipip`, `sctp`), or the IP protocol number. + The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. + This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number. """ return pulumi.get(self, "ip_protocol") @@ -4767,7 +4799,8 @@ def ip_protocol(self) -> str: @pulumi.getter def ports(self) -> Optional[Sequence[str]]: """ - An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ``. + An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. + Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. """ return pulumi.get(self, "ports") @@ -17817,6 +17850,70 @@ def accelerator_type(self) -> Optional[str]: return pulumi.get(self, "accelerator_type") +@pulumi.output_type +class NodeTemplateDisk(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "diskCount": + suggest = "disk_count" + elif key == "diskSizeGb": + suggest = "disk_size_gb" + elif key == "diskType": + suggest = "disk_type" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in NodeTemplateDisk. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + NodeTemplateDisk.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + NodeTemplateDisk.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + disk_count: Optional[int] = None, + disk_size_gb: Optional[int] = None, + disk_type: Optional[str] = None): + """ + :param int disk_count: Specifies the number of such disks. + :param int disk_size_gb: Specifies the size of the disk in base-2 GB. + :param str disk_type: Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be the name of the disk type and not its URL. + """ + if disk_count is not None: + pulumi.set(__self__, "disk_count", disk_count) + if disk_size_gb is not None: + pulumi.set(__self__, "disk_size_gb", disk_size_gb) + if disk_type is not None: + pulumi.set(__self__, "disk_type", disk_type) + + @property + @pulumi.getter(name="diskCount") + def disk_count(self) -> Optional[int]: + """ + Specifies the number of such disks. + """ + return pulumi.get(self, "disk_count") + + @property + @pulumi.getter(name="diskSizeGb") + def disk_size_gb(self) -> Optional[int]: + """ + Specifies the size of the disk in base-2 GB. + """ + return pulumi.get(self, "disk_size_gb") + + @property + @pulumi.getter(name="diskType") + def disk_type(self) -> Optional[str]: + """ + Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be the name of the disk type and not its URL. + """ + return pulumi.get(self, "disk_type") + + @pulumi.output_type class NodeTemplateNodeTypeFlexibility(dict): @staticmethod @@ -19170,7 +19267,7 @@ def __init__(__self__, *, max_scaled_down_replicas: Optional['outputs.RegionAutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicas'] = None, time_window_sec: Optional[int] = None): """ - :param 'RegionAutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasArgs' max_scaled_down_replicas: A nested object resource + :param 'RegionAutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasArgs' max_scaled_down_replicas: A nested object resource. Structure is documented below. :param int time_window_sec: How long back autoscaling should look when computing recommendations to include directives regarding slower scale down, as described above. @@ -19184,7 +19281,7 @@ def __init__(__self__, *, @pulumi.getter(name="maxScaledDownReplicas") def max_scaled_down_replicas(self) -> Optional['outputs.RegionAutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicas']: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "max_scaled_down_replicas") @@ -19259,7 +19356,7 @@ def __init__(__self__, *, max_scaled_in_replicas: Optional['outputs.RegionAutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicas'] = None, time_window_sec: Optional[int] = None): """ - :param 'RegionAutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicasArgs' max_scaled_in_replicas: A nested object resource + :param 'RegionAutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicasArgs' max_scaled_in_replicas: A nested object resource. Structure is documented below. :param int time_window_sec: How long back autoscaling should look when computing recommendations to include directives regarding slower scale down, as described above. @@ -19273,7 +19370,7 @@ def __init__(__self__, *, @pulumi.getter(name="maxScaledInReplicas") def max_scaled_in_replicas(self) -> Optional['outputs.RegionAutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicas']: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "max_scaled_in_replicas") @@ -22478,10 +22575,8 @@ def __init__(__self__, *, labels: Optional[Mapping[str, str]] = None, metadata: Optional[Mapping[str, str]] = None): """ - :param Mapping[str, str] labels: , The label key-value pairs that you want to patch onto the instance. - - - - - - :param Mapping[str, str] metadata: , The metadata key-value pairs that you want to patch onto the instance. For more information, see [Project and instance metadata](https://cloud.google.com/compute/docs/metadata#project_and_instance_metadata). + :param Mapping[str, str] labels: The label key-value pairs that you want to patch onto the instance, + :param Mapping[str, str] metadata: The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata, """ if labels is not None: pulumi.set(__self__, "labels", labels) @@ -22492,9 +22587,7 @@ def __init__(__self__, *, @pulumi.getter def labels(self) -> Optional[Mapping[str, str]]: """ - , The label key-value pairs that you want to patch onto the instance. - - - - - + The label key-value pairs that you want to patch onto the instance, """ return pulumi.get(self, "labels") @@ -22502,7 +22595,7 @@ def labels(self) -> Optional[Mapping[str, str]]: @pulumi.getter def metadata(self) -> Optional[Mapping[str, str]]: """ - , The metadata key-value pairs that you want to patch onto the instance. For more information, see [Project and instance metadata](https://cloud.google.com/compute/docs/metadata#project_and_instance_metadata). + The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata, """ return pulumi.get(self, "metadata") @@ -22557,6 +22650,106 @@ def initial_delay_sec(self) -> int: return pulumi.get(self, "initial_delay_sec") +@pulumi.output_type +class RegionInstanceGroupManagerInstanceFlexibilityPolicy(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "instanceSelections": + suggest = "instance_selections" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in RegionInstanceGroupManagerInstanceFlexibilityPolicy. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + RegionInstanceGroupManagerInstanceFlexibilityPolicy.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + RegionInstanceGroupManagerInstanceFlexibilityPolicy.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + instance_selections: Optional[Sequence['outputs.RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection']] = None): + """ + :param Sequence['RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs'] instance_selections: Named instance selections configuring properties that the group will use when creating new VMs. + """ + if instance_selections is not None: + pulumi.set(__self__, "instance_selections", instance_selections) + + @property + @pulumi.getter(name="instanceSelections") + def instance_selections(self) -> Optional[Sequence['outputs.RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection']]: + """ + Named instance selections configuring properties that the group will use when creating new VMs. + """ + return pulumi.get(self, "instance_selections") + + +@pulumi.output_type +class RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "machineTypes": + suggest = "machine_types" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + machine_types: Sequence[str], + name: str, + rank: Optional[int] = None): + """ + :param Sequence[str] machine_types: Full machine-type names, e.g. "n1-standard-16" + :param str name: The name of the instance group manager. Must be 1-63 + characters long and comply with + [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Supported characters + include lowercase letters, numbers, and hyphens. + :param int rank: Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference. + """ + pulumi.set(__self__, "machine_types", machine_types) + pulumi.set(__self__, "name", name) + if rank is not None: + pulumi.set(__self__, "rank", rank) + + @property + @pulumi.getter(name="machineTypes") + def machine_types(self) -> Sequence[str]: + """ + Full machine-type names, e.g. "n1-standard-16" + """ + return pulumi.get(self, "machine_types") + + @property + @pulumi.getter + def name(self) -> str: + """ + The name of the instance group manager. Must be 1-63 + characters long and comply with + [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Supported characters + include lowercase letters, numbers, and hyphens. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def rank(self) -> Optional[int]: + """ + Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference. + """ + return pulumi.get(self, "rank") + + @pulumi.output_type class RegionInstanceGroupManagerInstanceLifecyclePolicy(dict): @staticmethod @@ -22585,6 +22778,7 @@ def __init__(__self__, *, :param str default_action_on_failure: , Default behavior for all instance or health check failures. Valid options are: `REPAIR`, `DO_NOTHING`. If `DO_NOTHING` then instances will not be repaired. If `REPAIR` (default), then failed instances will be repaired. - - - + The `instance_flexibility_policy` block supports: :param str force_update_on_repair: , Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: `YES`, `NO`. If `YES` and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If `NO` (default), then updates are applied in accordance with the group's update policy type. """ if default_action_on_failure is not None: @@ -22599,6 +22793,7 @@ def default_action_on_failure(self) -> Optional[str]: , Default behavior for all instance or health check failures. Valid options are: `REPAIR`, `DO_NOTHING`. If `DO_NOTHING` then instances will not be repaired. If `REPAIR` (default), then failed instances will be repaired. - - - + The `instance_flexibility_policy` block supports: """ return pulumi.get(self, "default_action_on_failure") @@ -27063,287 +27258,1298 @@ def external_ips(self) -> Optional[Sequence['outputs.RegionPerInstanceConfigPres return pulumi.get(self, "external_ips") @property - @pulumi.getter(name="internalIps") - def internal_ips(self) -> Optional[Sequence['outputs.RegionPerInstanceConfigPreservedStateInternalIp']]: + @pulumi.getter(name="internalIps") + def internal_ips(self) -> Optional[Sequence['outputs.RegionPerInstanceConfigPreservedStateInternalIp']]: + """ + Preserved internal IPs defined for this instance. This map is keyed with the name of the network interface. + Structure is documented below. + """ + return pulumi.get(self, "internal_ips") + + @property + @pulumi.getter + def metadata(self) -> Optional[Mapping[str, str]]: + """ + Preserved metadata defined for this instance. This is a list of key->value pairs. + """ + return pulumi.get(self, "metadata") + + +@pulumi.output_type +class RegionPerInstanceConfigPreservedStateDisk(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "deviceName": + suggest = "device_name" + elif key == "deleteRule": + suggest = "delete_rule" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in RegionPerInstanceConfigPreservedStateDisk. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + RegionPerInstanceConfigPreservedStateDisk.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + RegionPerInstanceConfigPreservedStateDisk.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + device_name: str, + source: str, + delete_rule: Optional[str] = None, + mode: Optional[str] = None): + """ + :param str device_name: A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance. + :param str source: The URI of an existing persistent disk to attach under the specified device-name in the format + `projects/project-id/zones/zone/disks/disk-name`. + :param str delete_rule: A value that prescribes what should happen to the stateful disk when the VM instance is deleted. + The available options are `NEVER` and `ON_PERMANENT_INSTANCE_DELETION`. + `NEVER` - detach the disk when the VM is deleted, but do not delete the disk. + `ON_PERMANENT_INSTANCE_DELETION` will delete the stateful disk when the VM is permanently + deleted from the instance group. + Default value is `NEVER`. + Possible values are: `NEVER`, `ON_PERMANENT_INSTANCE_DELETION`. + :param str mode: The mode of the disk. + Default value is `READ_WRITE`. + Possible values are: `READ_ONLY`, `READ_WRITE`. + """ + pulumi.set(__self__, "device_name", device_name) + pulumi.set(__self__, "source", source) + if delete_rule is not None: + pulumi.set(__self__, "delete_rule", delete_rule) + if mode is not None: + pulumi.set(__self__, "mode", mode) + + @property + @pulumi.getter(name="deviceName") + def device_name(self) -> str: + """ + A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance. + """ + return pulumi.get(self, "device_name") + + @property + @pulumi.getter + def source(self) -> str: + """ + The URI of an existing persistent disk to attach under the specified device-name in the format + `projects/project-id/zones/zone/disks/disk-name`. + """ + return pulumi.get(self, "source") + + @property + @pulumi.getter(name="deleteRule") + def delete_rule(self) -> Optional[str]: + """ + A value that prescribes what should happen to the stateful disk when the VM instance is deleted. + The available options are `NEVER` and `ON_PERMANENT_INSTANCE_DELETION`. + `NEVER` - detach the disk when the VM is deleted, but do not delete the disk. + `ON_PERMANENT_INSTANCE_DELETION` will delete the stateful disk when the VM is permanently + deleted from the instance group. + Default value is `NEVER`. + Possible values are: `NEVER`, `ON_PERMANENT_INSTANCE_DELETION`. + """ + return pulumi.get(self, "delete_rule") + + @property + @pulumi.getter + def mode(self) -> Optional[str]: + """ + The mode of the disk. + Default value is `READ_WRITE`. + Possible values are: `READ_ONLY`, `READ_WRITE`. + """ + return pulumi.get(self, "mode") + + +@pulumi.output_type +class RegionPerInstanceConfigPreservedStateExternalIp(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "interfaceName": + suggest = "interface_name" + elif key == "autoDelete": + suggest = "auto_delete" + elif key == "ipAddress": + suggest = "ip_address" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in RegionPerInstanceConfigPreservedStateExternalIp. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + RegionPerInstanceConfigPreservedStateExternalIp.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + RegionPerInstanceConfigPreservedStateExternalIp.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + interface_name: str, + auto_delete: Optional[str] = None, + ip_address: Optional['outputs.RegionPerInstanceConfigPreservedStateExternalIpIpAddress'] = None): + """ + :param str interface_name: The identifier for this object. Format specified above. + :param str auto_delete: These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted. + Default value is `NEVER`. + Possible values are: `NEVER`, `ON_PERMANENT_INSTANCE_DELETION`. + :param 'RegionPerInstanceConfigPreservedStateExternalIpIpAddressArgs' ip_address: Ip address representation + Structure is documented below. + """ + pulumi.set(__self__, "interface_name", interface_name) + if auto_delete is not None: + pulumi.set(__self__, "auto_delete", auto_delete) + if ip_address is not None: + pulumi.set(__self__, "ip_address", ip_address) + + @property + @pulumi.getter(name="interfaceName") + def interface_name(self) -> str: + """ + The identifier for this object. Format specified above. + """ + return pulumi.get(self, "interface_name") + + @property + @pulumi.getter(name="autoDelete") + def auto_delete(self) -> Optional[str]: + """ + These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted. + Default value is `NEVER`. + Possible values are: `NEVER`, `ON_PERMANENT_INSTANCE_DELETION`. + """ + return pulumi.get(self, "auto_delete") + + @property + @pulumi.getter(name="ipAddress") + def ip_address(self) -> Optional['outputs.RegionPerInstanceConfigPreservedStateExternalIpIpAddress']: + """ + Ip address representation + Structure is documented below. + """ + return pulumi.get(self, "ip_address") + + +@pulumi.output_type +class RegionPerInstanceConfigPreservedStateExternalIpIpAddress(dict): + def __init__(__self__, *, + address: Optional[str] = None): + """ + :param str address: The URL of the reservation for this IP address. + """ + if address is not None: + pulumi.set(__self__, "address", address) + + @property + @pulumi.getter + def address(self) -> Optional[str]: + """ + The URL of the reservation for this IP address. + """ + return pulumi.get(self, "address") + + +@pulumi.output_type +class RegionPerInstanceConfigPreservedStateInternalIp(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "interfaceName": + suggest = "interface_name" + elif key == "autoDelete": + suggest = "auto_delete" + elif key == "ipAddress": + suggest = "ip_address" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in RegionPerInstanceConfigPreservedStateInternalIp. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + RegionPerInstanceConfigPreservedStateInternalIp.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + RegionPerInstanceConfigPreservedStateInternalIp.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + interface_name: str, + auto_delete: Optional[str] = None, + ip_address: Optional['outputs.RegionPerInstanceConfigPreservedStateInternalIpIpAddress'] = None): + """ + :param str interface_name: The identifier for this object. Format specified above. + :param str auto_delete: These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted. + Default value is `NEVER`. + Possible values are: `NEVER`, `ON_PERMANENT_INSTANCE_DELETION`. + :param 'RegionPerInstanceConfigPreservedStateInternalIpIpAddressArgs' ip_address: Ip address representation + Structure is documented below. + """ + pulumi.set(__self__, "interface_name", interface_name) + if auto_delete is not None: + pulumi.set(__self__, "auto_delete", auto_delete) + if ip_address is not None: + pulumi.set(__self__, "ip_address", ip_address) + + @property + @pulumi.getter(name="interfaceName") + def interface_name(self) -> str: + """ + The identifier for this object. Format specified above. + """ + return pulumi.get(self, "interface_name") + + @property + @pulumi.getter(name="autoDelete") + def auto_delete(self) -> Optional[str]: + """ + These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted. + Default value is `NEVER`. + Possible values are: `NEVER`, `ON_PERMANENT_INSTANCE_DELETION`. + """ + return pulumi.get(self, "auto_delete") + + @property + @pulumi.getter(name="ipAddress") + def ip_address(self) -> Optional['outputs.RegionPerInstanceConfigPreservedStateInternalIpIpAddress']: + """ + Ip address representation + Structure is documented below. + """ + return pulumi.get(self, "ip_address") + + +@pulumi.output_type +class RegionPerInstanceConfigPreservedStateInternalIpIpAddress(dict): + def __init__(__self__, *, + address: Optional[str] = None): + """ + :param str address: The URL of the reservation for this IP address. + """ + if address is not None: + pulumi.set(__self__, "address", address) + + @property + @pulumi.getter + def address(self) -> Optional[str]: + """ + The URL of the reservation for this IP address. + """ + return pulumi.get(self, "address") + + +@pulumi.output_type +class RegionResizeRequestRequestedRunDuration(dict): + def __init__(__self__, *, + seconds: str, + nanos: Optional[int] = None): + """ + :param str seconds: Span of time at a resolution of a second. Must be from 600 to 604800 inclusive. Note: minimum and maximum allowed range for requestedRunDuration is 10 minutes (600 seconds) and 7 days(604800 seconds) correspondingly. + :param int nanos: Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. + """ + pulumi.set(__self__, "seconds", seconds) + if nanos is not None: + pulumi.set(__self__, "nanos", nanos) + + @property + @pulumi.getter + def seconds(self) -> str: + """ + Span of time at a resolution of a second. Must be from 600 to 604800 inclusive. Note: minimum and maximum allowed range for requestedRunDuration is 10 minutes (600 seconds) and 7 days(604800 seconds) correspondingly. + """ + return pulumi.get(self, "seconds") + + @property + @pulumi.getter + def nanos(self) -> Optional[int]: + """ + Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive. + """ + return pulumi.get(self, "nanos") + + +@pulumi.output_type +class RegionResizeRequestStatus(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "lastAttempts": + suggest = "last_attempts" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in RegionResizeRequestStatus. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + RegionResizeRequestStatus.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + RegionResizeRequestStatus.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + errors: Optional[Sequence['outputs.RegionResizeRequestStatusError']] = None, + last_attempts: Optional[Sequence['outputs.RegionResizeRequestStatusLastAttempt']] = None): + """ + :param Sequence['RegionResizeRequestStatusErrorArgs'] errors: (Output) + Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + Structure is documented below. + :param Sequence['RegionResizeRequestStatusLastAttemptArgs'] last_attempts: (Output) + Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the "error" field only. + Structure is documented below. + """ + if errors is not None: + pulumi.set(__self__, "errors", errors) + if last_attempts is not None: + pulumi.set(__self__, "last_attempts", last_attempts) + + @property + @pulumi.getter + def errors(self) -> Optional[Sequence['outputs.RegionResizeRequestStatusError']]: + """ + (Output) + Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + Structure is documented below. + """ + return pulumi.get(self, "errors") + + @property + @pulumi.getter(name="lastAttempts") + def last_attempts(self) -> Optional[Sequence['outputs.RegionResizeRequestStatusLastAttempt']]: + """ + (Output) + Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the "error" field only. + Structure is documented below. + """ + return pulumi.get(self, "last_attempts") + + +@pulumi.output_type +class RegionResizeRequestStatusError(dict): + def __init__(__self__, *, + errors: Optional[Sequence['outputs.RegionResizeRequestStatusErrorError']] = None): + """ + :param Sequence['RegionResizeRequestStatusErrorErrorArgs'] errors: (Output) + The array of errors encountered while processing this operation. + Structure is documented below. + """ + if errors is not None: + pulumi.set(__self__, "errors", errors) + + @property + @pulumi.getter + def errors(self) -> Optional[Sequence['outputs.RegionResizeRequestStatusErrorError']]: + """ + (Output) + The array of errors encountered while processing this operation. + Structure is documented below. + """ + return pulumi.get(self, "errors") + + +@pulumi.output_type +class RegionResizeRequestStatusErrorError(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "errorDetails": + suggest = "error_details" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in RegionResizeRequestStatusErrorError. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + RegionResizeRequestStatusErrorError.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + RegionResizeRequestStatusErrorError.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + code: Optional[str] = None, + error_details: Optional[Sequence['outputs.RegionResizeRequestStatusErrorErrorErrorDetail']] = None, + location: Optional[str] = None, + message: Optional[str] = None): + """ + :param str code: (Output) + The error type identifier for this error. + :param Sequence['RegionResizeRequestStatusErrorErrorErrorDetailArgs'] error_details: (Output) + An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + Structure is documented below. + :param str location: (Output) + Indicates the field in the request that caused the error. This property is optional. + :param str message: (Output) + The localized error message in the above locale. + """ + if code is not None: + pulumi.set(__self__, "code", code) + if error_details is not None: + pulumi.set(__self__, "error_details", error_details) + if location is not None: + pulumi.set(__self__, "location", location) + if message is not None: + pulumi.set(__self__, "message", message) + + @property + @pulumi.getter + def code(self) -> Optional[str]: + """ + (Output) + The error type identifier for this error. + """ + return pulumi.get(self, "code") + + @property + @pulumi.getter(name="errorDetails") + def error_details(self) -> Optional[Sequence['outputs.RegionResizeRequestStatusErrorErrorErrorDetail']]: + """ + (Output) + An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + Structure is documented below. + """ + return pulumi.get(self, "error_details") + + @property + @pulumi.getter + def location(self) -> Optional[str]: + """ + (Output) + Indicates the field in the request that caused the error. This property is optional. + """ + return pulumi.get(self, "location") + + @property + @pulumi.getter + def message(self) -> Optional[str]: + """ + (Output) + The localized error message in the above locale. + """ + return pulumi.get(self, "message") + + +@pulumi.output_type +class RegionResizeRequestStatusErrorErrorErrorDetail(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "errorInfos": + suggest = "error_infos" + elif key == "localizedMessages": + suggest = "localized_messages" + elif key == "quotaInfos": + suggest = "quota_infos" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in RegionResizeRequestStatusErrorErrorErrorDetail. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + RegionResizeRequestStatusErrorErrorErrorDetail.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + RegionResizeRequestStatusErrorErrorErrorDetail.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + error_infos: Optional[Sequence['outputs.RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo']] = None, + helps: Optional[Sequence['outputs.RegionResizeRequestStatusErrorErrorErrorDetailHelp']] = None, + localized_messages: Optional[Sequence['outputs.RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage']] = None, + quota_infos: Optional[Sequence['outputs.RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo']] = None): + """ + :param Sequence['RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs'] error_infos: (Output) + A nested object resource. + Structure is documented below. + :param Sequence['RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs'] helps: (Output) + A nested object resource. + Structure is documented below. + :param Sequence['RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs'] localized_messages: (Output) + A nested object resource. + Structure is documented below. + :param Sequence['RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs'] quota_infos: (Output) + A nested object resource. + Structure is documented below. + """ + if error_infos is not None: + pulumi.set(__self__, "error_infos", error_infos) + if helps is not None: + pulumi.set(__self__, "helps", helps) + if localized_messages is not None: + pulumi.set(__self__, "localized_messages", localized_messages) + if quota_infos is not None: + pulumi.set(__self__, "quota_infos", quota_infos) + + @property + @pulumi.getter(name="errorInfos") + def error_infos(self) -> Optional[Sequence['outputs.RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo']]: + """ + (Output) + A nested object resource. + Structure is documented below. + """ + return pulumi.get(self, "error_infos") + + @property + @pulumi.getter + def helps(self) -> Optional[Sequence['outputs.RegionResizeRequestStatusErrorErrorErrorDetailHelp']]: + """ + (Output) + A nested object resource. + Structure is documented below. + """ + return pulumi.get(self, "helps") + + @property + @pulumi.getter(name="localizedMessages") + def localized_messages(self) -> Optional[Sequence['outputs.RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage']]: + """ + (Output) + A nested object resource. + Structure is documented below. + """ + return pulumi.get(self, "localized_messages") + + @property + @pulumi.getter(name="quotaInfos") + def quota_infos(self) -> Optional[Sequence['outputs.RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo']]: + """ + (Output) + A nested object resource. + Structure is documented below. + """ + return pulumi.get(self, "quota_infos") + + +@pulumi.output_type +class RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo(dict): + def __init__(__self__, *, + domain: Optional[str] = None, + metadatas: Optional[Mapping[str, str]] = None, + reason: Optional[str] = None): + """ + :param str domain: (Output) + 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". + :param Mapping[str, str] metadatas: (Output) + Additional structured details about this error. + :param str reason: (Output) + 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. + """ + if domain is not None: + pulumi.set(__self__, "domain", domain) + if metadatas is not None: + pulumi.set(__self__, "metadatas", metadatas) + if reason is not None: + pulumi.set(__self__, "reason", reason) + + @property + @pulumi.getter + def domain(self) -> Optional[str]: + """ + (Output) + 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". + """ + return pulumi.get(self, "domain") + + @property + @pulumi.getter + def metadatas(self) -> Optional[Mapping[str, str]]: + """ + (Output) + Additional structured details about this error. + """ + return pulumi.get(self, "metadatas") + + @property + @pulumi.getter + def reason(self) -> Optional[str]: + """ + (Output) + 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. + """ + return pulumi.get(self, "reason") + + +@pulumi.output_type +class RegionResizeRequestStatusErrorErrorErrorDetailHelp(dict): + def __init__(__self__, *, + links: Optional[Sequence['outputs.RegionResizeRequestStatusErrorErrorErrorDetailHelpLink']] = None): + """ + :param Sequence['RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs'] links: (Output) + A nested object resource. + Structure is documented below. + """ + if links is not None: + pulumi.set(__self__, "links", links) + + @property + @pulumi.getter + def links(self) -> Optional[Sequence['outputs.RegionResizeRequestStatusErrorErrorErrorDetailHelpLink']]: + """ + (Output) + A nested object resource. + Structure is documented below. + """ + return pulumi.get(self, "links") + + +@pulumi.output_type +class RegionResizeRequestStatusErrorErrorErrorDetailHelpLink(dict): + def __init__(__self__, *, + description: Optional[str] = None, + url: Optional[str] = None): + """ + :param str description: An optional description of this resize-request. + :param str url: (Output) + The URL of the link. + """ + if description is not None: + pulumi.set(__self__, "description", description) + if url is not None: + pulumi.set(__self__, "url", url) + + @property + @pulumi.getter + def description(self) -> Optional[str]: + """ + An optional description of this resize-request. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter + def url(self) -> Optional[str]: + """ + (Output) + The URL of the link. + """ + return pulumi.get(self, "url") + + +@pulumi.output_type +class RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage(dict): + def __init__(__self__, *, + locale: Optional[str] = None, + message: Optional[str] = None): + """ + :param str locale: (Output) + The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + :param str message: (Output) + The localized error message in the above locale. + """ + if locale is not None: + pulumi.set(__self__, "locale", locale) + if message is not None: + pulumi.set(__self__, "message", message) + + @property + @pulumi.getter + def locale(self) -> Optional[str]: + """ + (Output) + The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + """ + return pulumi.get(self, "locale") + + @property + @pulumi.getter + def message(self) -> Optional[str]: + """ + (Output) + The localized error message in the above locale. + """ + return pulumi.get(self, "message") + + +@pulumi.output_type +class RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "futureLimit": + suggest = "future_limit" + elif key == "limitName": + suggest = "limit_name" + elif key == "metricName": + suggest = "metric_name" + elif key == "rolloutStatus": + suggest = "rollout_status" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + dimensions: Optional[Mapping[str, str]] = None, + future_limit: Optional[int] = None, + limit: Optional[int] = None, + limit_name: Optional[str] = None, + metric_name: Optional[str] = None, + rollout_status: Optional[str] = None): + """ + :param Mapping[str, str] dimensions: (Output) + The map holding related quota dimensions + :param int future_limit: (Output) + Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + :param int limit: (Output) + Current effective quota limit. The limit's unit depends on the quota type or metric. + :param str limit_name: (Output) + The name of the quota limit. + :param str metric_name: (Output) + The Compute Engine quota metric name. + :param str rollout_status: (Output) + Rollout status of the future quota limit. + """ + if dimensions is not None: + pulumi.set(__self__, "dimensions", dimensions) + if future_limit is not None: + pulumi.set(__self__, "future_limit", future_limit) + if limit is not None: + pulumi.set(__self__, "limit", limit) + if limit_name is not None: + pulumi.set(__self__, "limit_name", limit_name) + if metric_name is not None: + pulumi.set(__self__, "metric_name", metric_name) + if rollout_status is not None: + pulumi.set(__self__, "rollout_status", rollout_status) + + @property + @pulumi.getter + def dimensions(self) -> Optional[Mapping[str, str]]: + """ + (Output) + The map holding related quota dimensions + """ + return pulumi.get(self, "dimensions") + + @property + @pulumi.getter(name="futureLimit") + def future_limit(self) -> Optional[int]: + """ + (Output) + Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + """ + return pulumi.get(self, "future_limit") + + @property + @pulumi.getter + def limit(self) -> Optional[int]: + """ + (Output) + Current effective quota limit. The limit's unit depends on the quota type or metric. + """ + return pulumi.get(self, "limit") + + @property + @pulumi.getter(name="limitName") + def limit_name(self) -> Optional[str]: + """ + (Output) + The name of the quota limit. + """ + return pulumi.get(self, "limit_name") + + @property + @pulumi.getter(name="metricName") + def metric_name(self) -> Optional[str]: + """ + (Output) + The Compute Engine quota metric name. + """ + return pulumi.get(self, "metric_name") + + @property + @pulumi.getter(name="rolloutStatus") + def rollout_status(self) -> Optional[str]: + """ + (Output) + Rollout status of the future quota limit. + """ + return pulumi.get(self, "rollout_status") + + +@pulumi.output_type +class RegionResizeRequestStatusLastAttempt(dict): + def __init__(__self__, *, + errors: Optional[Sequence['outputs.RegionResizeRequestStatusLastAttemptError']] = None): + """ + :param Sequence['RegionResizeRequestStatusLastAttemptErrorArgs'] errors: (Output) + Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + Structure is documented below. + """ + if errors is not None: + pulumi.set(__self__, "errors", errors) + + @property + @pulumi.getter + def errors(self) -> Optional[Sequence['outputs.RegionResizeRequestStatusLastAttemptError']]: + """ + (Output) + Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry. + Structure is documented below. + """ + return pulumi.get(self, "errors") + + +@pulumi.output_type +class RegionResizeRequestStatusLastAttemptError(dict): + def __init__(__self__, *, + errors: Optional[Sequence['outputs.RegionResizeRequestStatusLastAttemptErrorError']] = None): + """ + :param Sequence['RegionResizeRequestStatusLastAttemptErrorErrorArgs'] errors: (Output) + The array of errors encountered while processing this operation. + Structure is documented below. + """ + if errors is not None: + pulumi.set(__self__, "errors", errors) + + @property + @pulumi.getter + def errors(self) -> Optional[Sequence['outputs.RegionResizeRequestStatusLastAttemptErrorError']]: + """ + (Output) + The array of errors encountered while processing this operation. + Structure is documented below. + """ + return pulumi.get(self, "errors") + + +@pulumi.output_type +class RegionResizeRequestStatusLastAttemptErrorError(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "errorDetails": + suggest = "error_details" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in RegionResizeRequestStatusLastAttemptErrorError. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + RegionResizeRequestStatusLastAttemptErrorError.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + RegionResizeRequestStatusLastAttemptErrorError.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + code: Optional[str] = None, + error_details: Optional[Sequence['outputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail']] = None, + location: Optional[str] = None, + message: Optional[str] = None): + """ + :param str code: (Output) + The error type identifier for this error. + :param Sequence['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs'] error_details: (Output) + An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + Structure is documented below. + :param str location: (Output) + Indicates the field in the request that caused the error. This property is optional. + :param str message: (Output) + The localized error message in the above locale. + """ + if code is not None: + pulumi.set(__self__, "code", code) + if error_details is not None: + pulumi.set(__self__, "error_details", error_details) + if location is not None: + pulumi.set(__self__, "location", location) + if message is not None: + pulumi.set(__self__, "message", message) + + @property + @pulumi.getter + def code(self) -> Optional[str]: + """ + (Output) + The error type identifier for this error. + """ + return pulumi.get(self, "code") + + @property + @pulumi.getter(name="errorDetails") + def error_details(self) -> Optional[Sequence['outputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail']]: + """ + (Output) + An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED. + Structure is documented below. + """ + return pulumi.get(self, "error_details") + + @property + @pulumi.getter + def location(self) -> Optional[str]: """ - Preserved internal IPs defined for this instance. This map is keyed with the name of the network interface. - Structure is documented below. + (Output) + Indicates the field in the request that caused the error. This property is optional. """ - return pulumi.get(self, "internal_ips") + return pulumi.get(self, "location") @property @pulumi.getter - def metadata(self) -> Optional[Mapping[str, str]]: + def message(self) -> Optional[str]: """ - Preserved metadata defined for this instance. This is a list of key->value pairs. + (Output) + The localized error message in the above locale. """ - return pulumi.get(self, "metadata") + return pulumi.get(self, "message") @pulumi.output_type -class RegionPerInstanceConfigPreservedStateDisk(dict): +class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "deviceName": - suggest = "device_name" - elif key == "deleteRule": - suggest = "delete_rule" + if key == "errorInfos": + suggest = "error_infos" + elif key == "localizedMessages": + suggest = "localized_messages" + elif key == "quotaInfos": + suggest = "quota_infos" if suggest: - pulumi.log.warn(f"Key '{key}' not found in RegionPerInstanceConfigPreservedStateDisk. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - RegionPerInstanceConfigPreservedStateDisk.__key_warning(key) + RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - RegionPerInstanceConfigPreservedStateDisk.__key_warning(key) + RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - device_name: str, - source: str, - delete_rule: Optional[str] = None, - mode: Optional[str] = None): + error_infos: Optional[Sequence['outputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo']] = None, + helps: Optional[Sequence['outputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp']] = None, + localized_messages: Optional[Sequence['outputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage']] = None, + quota_infos: Optional[Sequence['outputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo']] = None): """ - :param str device_name: A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance. - :param str source: The URI of an existing persistent disk to attach under the specified device-name in the format - `projects/project-id/zones/zone/disks/disk-name`. - :param str delete_rule: A value that prescribes what should happen to the stateful disk when the VM instance is deleted. - The available options are `NEVER` and `ON_PERMANENT_INSTANCE_DELETION`. - `NEVER` - detach the disk when the VM is deleted, but do not delete the disk. - `ON_PERMANENT_INSTANCE_DELETION` will delete the stateful disk when the VM is permanently - deleted from the instance group. - Default value is `NEVER`. - Possible values are: `NEVER`, `ON_PERMANENT_INSTANCE_DELETION`. - :param str mode: The mode of the disk. - Default value is `READ_WRITE`. - Possible values are: `READ_ONLY`, `READ_WRITE`. + :param Sequence['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs'] error_infos: (Output) + A nested object resource. + Structure is documented below. + :param Sequence['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs'] helps: (Output) + A nested object resource. + Structure is documented below. + :param Sequence['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs'] localized_messages: (Output) + A nested object resource. + Structure is documented below. + :param Sequence['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs'] quota_infos: (Output) + A nested object resource. + Structure is documented below. """ - pulumi.set(__self__, "device_name", device_name) - pulumi.set(__self__, "source", source) - if delete_rule is not None: - pulumi.set(__self__, "delete_rule", delete_rule) - if mode is not None: - pulumi.set(__self__, "mode", mode) + if error_infos is not None: + pulumi.set(__self__, "error_infos", error_infos) + if helps is not None: + pulumi.set(__self__, "helps", helps) + if localized_messages is not None: + pulumi.set(__self__, "localized_messages", localized_messages) + if quota_infos is not None: + pulumi.set(__self__, "quota_infos", quota_infos) @property - @pulumi.getter(name="deviceName") - def device_name(self) -> str: + @pulumi.getter(name="errorInfos") + def error_infos(self) -> Optional[Sequence['outputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo']]: """ - A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance. + (Output) + A nested object resource. + Structure is documented below. """ - return pulumi.get(self, "device_name") + return pulumi.get(self, "error_infos") @property @pulumi.getter - def source(self) -> str: + def helps(self) -> Optional[Sequence['outputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp']]: """ - The URI of an existing persistent disk to attach under the specified device-name in the format - `projects/project-id/zones/zone/disks/disk-name`. + (Output) + A nested object resource. + Structure is documented below. """ - return pulumi.get(self, "source") + return pulumi.get(self, "helps") @property - @pulumi.getter(name="deleteRule") - def delete_rule(self) -> Optional[str]: + @pulumi.getter(name="localizedMessages") + def localized_messages(self) -> Optional[Sequence['outputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage']]: """ - A value that prescribes what should happen to the stateful disk when the VM instance is deleted. - The available options are `NEVER` and `ON_PERMANENT_INSTANCE_DELETION`. - `NEVER` - detach the disk when the VM is deleted, but do not delete the disk. - `ON_PERMANENT_INSTANCE_DELETION` will delete the stateful disk when the VM is permanently - deleted from the instance group. - Default value is `NEVER`. - Possible values are: `NEVER`, `ON_PERMANENT_INSTANCE_DELETION`. + (Output) + A nested object resource. + Structure is documented below. """ - return pulumi.get(self, "delete_rule") + return pulumi.get(self, "localized_messages") @property - @pulumi.getter - def mode(self) -> Optional[str]: + @pulumi.getter(name="quotaInfos") + def quota_infos(self) -> Optional[Sequence['outputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo']]: """ - The mode of the disk. - Default value is `READ_WRITE`. - Possible values are: `READ_ONLY`, `READ_WRITE`. + (Output) + A nested object resource. + Structure is documented below. """ - return pulumi.get(self, "mode") + return pulumi.get(self, "quota_infos") @pulumi.output_type -class RegionPerInstanceConfigPreservedStateExternalIp(dict): - @staticmethod - def __key_warning(key: str): - suggest = None - if key == "interfaceName": - suggest = "interface_name" - elif key == "autoDelete": - suggest = "auto_delete" - elif key == "ipAddress": - suggest = "ip_address" +class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo(dict): + def __init__(__self__, *, + domain: Optional[str] = None, + metadatas: Optional[Mapping[str, str]] = None, + reason: Optional[str] = None): + """ + :param str domain: (Output) + 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". + :param Mapping[str, str] metadatas: (Output) + Additional structured details about this error. + :param str reason: (Output) + 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. + """ + if domain is not None: + pulumi.set(__self__, "domain", domain) + if metadatas is not None: + pulumi.set(__self__, "metadatas", metadatas) + if reason is not None: + pulumi.set(__self__, "reason", reason) - if suggest: - pulumi.log.warn(f"Key '{key}' not found in RegionPerInstanceConfigPreservedStateExternalIp. Access the value via the '{suggest}' property getter instead.") + @property + @pulumi.getter + def domain(self) -> Optional[str]: + """ + (Output) + 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". + """ + return pulumi.get(self, "domain") - def __getitem__(self, key: str) -> Any: - RegionPerInstanceConfigPreservedStateExternalIp.__key_warning(key) - return super().__getitem__(key) + @property + @pulumi.getter + def metadatas(self) -> Optional[Mapping[str, str]]: + """ + (Output) + Additional structured details about this error. + """ + return pulumi.get(self, "metadatas") - def get(self, key: str, default = None) -> Any: - RegionPerInstanceConfigPreservedStateExternalIp.__key_warning(key) - return super().get(key, default) + @property + @pulumi.getter + def reason(self) -> Optional[str]: + """ + (Output) + 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. + """ + return pulumi.get(self, "reason") + +@pulumi.output_type +class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp(dict): def __init__(__self__, *, - interface_name: str, - auto_delete: Optional[str] = None, - ip_address: Optional['outputs.RegionPerInstanceConfigPreservedStateExternalIpIpAddress'] = None): + links: Optional[Sequence['outputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink']] = None): """ - :param str interface_name: The identifier for this object. Format specified above. - :param str auto_delete: These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted. - Default value is `NEVER`. - Possible values are: `NEVER`, `ON_PERMANENT_INSTANCE_DELETION`. - :param 'RegionPerInstanceConfigPreservedStateExternalIpIpAddressArgs' ip_address: Ip address representation + :param Sequence['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs'] links: (Output) + A nested object resource. Structure is documented below. """ - pulumi.set(__self__, "interface_name", interface_name) - if auto_delete is not None: - pulumi.set(__self__, "auto_delete", auto_delete) - if ip_address is not None: - pulumi.set(__self__, "ip_address", ip_address) + if links is not None: + pulumi.set(__self__, "links", links) @property - @pulumi.getter(name="interfaceName") - def interface_name(self) -> str: + @pulumi.getter + def links(self) -> Optional[Sequence['outputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink']]: """ - The identifier for this object. Format specified above. + (Output) + A nested object resource. + Structure is documented below. """ - return pulumi.get(self, "interface_name") + return pulumi.get(self, "links") + + +@pulumi.output_type +class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink(dict): + def __init__(__self__, *, + description: Optional[str] = None, + url: Optional[str] = None): + """ + :param str description: An optional description of this resize-request. + :param str url: (Output) + The URL of the link. + """ + if description is not None: + pulumi.set(__self__, "description", description) + if url is not None: + pulumi.set(__self__, "url", url) @property - @pulumi.getter(name="autoDelete") - def auto_delete(self) -> Optional[str]: + @pulumi.getter + def description(self) -> Optional[str]: """ - These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted. - Default value is `NEVER`. - Possible values are: `NEVER`, `ON_PERMANENT_INSTANCE_DELETION`. + An optional description of this resize-request. """ - return pulumi.get(self, "auto_delete") + return pulumi.get(self, "description") @property - @pulumi.getter(name="ipAddress") - def ip_address(self) -> Optional['outputs.RegionPerInstanceConfigPreservedStateExternalIpIpAddress']: + @pulumi.getter + def url(self) -> Optional[str]: """ - Ip address representation - Structure is documented below. + (Output) + The URL of the link. """ - return pulumi.get(self, "ip_address") + return pulumi.get(self, "url") @pulumi.output_type -class RegionPerInstanceConfigPreservedStateExternalIpIpAddress(dict): +class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage(dict): def __init__(__self__, *, - address: Optional[str] = None): + locale: Optional[str] = None, + message: Optional[str] = None): """ - :param str address: The URL of the reservation for this IP address. + :param str locale: (Output) + The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + :param str message: (Output) + The localized error message in the above locale. """ - if address is not None: - pulumi.set(__self__, "address", address) + if locale is not None: + pulumi.set(__self__, "locale", locale) + if message is not None: + pulumi.set(__self__, "message", message) @property @pulumi.getter - def address(self) -> Optional[str]: + def locale(self) -> Optional[str]: """ - The URL of the reservation for this IP address. + (Output) + The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" """ - return pulumi.get(self, "address") + return pulumi.get(self, "locale") + + @property + @pulumi.getter + def message(self) -> Optional[str]: + """ + (Output) + The localized error message in the above locale. + """ + return pulumi.get(self, "message") @pulumi.output_type -class RegionPerInstanceConfigPreservedStateInternalIp(dict): +class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "interfaceName": - suggest = "interface_name" - elif key == "autoDelete": - suggest = "auto_delete" - elif key == "ipAddress": - suggest = "ip_address" + if key == "futureLimit": + suggest = "future_limit" + elif key == "limitName": + suggest = "limit_name" + elif key == "metricName": + suggest = "metric_name" + elif key == "rolloutStatus": + suggest = "rollout_status" if suggest: - pulumi.log.warn(f"Key '{key}' not found in RegionPerInstanceConfigPreservedStateInternalIp. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - RegionPerInstanceConfigPreservedStateInternalIp.__key_warning(key) + RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - RegionPerInstanceConfigPreservedStateInternalIp.__key_warning(key) + RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - interface_name: str, - auto_delete: Optional[str] = None, - ip_address: Optional['outputs.RegionPerInstanceConfigPreservedStateInternalIpIpAddress'] = None): + dimensions: Optional[Mapping[str, str]] = None, + future_limit: Optional[int] = None, + limit: Optional[int] = None, + limit_name: Optional[str] = None, + metric_name: Optional[str] = None, + rollout_status: Optional[str] = None): """ - :param str interface_name: The identifier for this object. Format specified above. - :param str auto_delete: These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted. - Default value is `NEVER`. - Possible values are: `NEVER`, `ON_PERMANENT_INSTANCE_DELETION`. - :param 'RegionPerInstanceConfigPreservedStateInternalIpIpAddressArgs' ip_address: Ip address representation - Structure is documented below. + :param Mapping[str, str] dimensions: (Output) + The map holding related quota dimensions + :param int future_limit: (Output) + Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + :param int limit: (Output) + Current effective quota limit. The limit's unit depends on the quota type or metric. + :param str limit_name: (Output) + The name of the quota limit. + :param str metric_name: (Output) + The Compute Engine quota metric name. + :param str rollout_status: (Output) + Rollout status of the future quota limit. """ - pulumi.set(__self__, "interface_name", interface_name) - if auto_delete is not None: - pulumi.set(__self__, "auto_delete", auto_delete) - if ip_address is not None: - pulumi.set(__self__, "ip_address", ip_address) + if dimensions is not None: + pulumi.set(__self__, "dimensions", dimensions) + if future_limit is not None: + pulumi.set(__self__, "future_limit", future_limit) + if limit is not None: + pulumi.set(__self__, "limit", limit) + if limit_name is not None: + pulumi.set(__self__, "limit_name", limit_name) + if metric_name is not None: + pulumi.set(__self__, "metric_name", metric_name) + if rollout_status is not None: + pulumi.set(__self__, "rollout_status", rollout_status) @property - @pulumi.getter(name="interfaceName") - def interface_name(self) -> str: + @pulumi.getter + def dimensions(self) -> Optional[Mapping[str, str]]: """ - The identifier for this object. Format specified above. + (Output) + The map holding related quota dimensions """ - return pulumi.get(self, "interface_name") + return pulumi.get(self, "dimensions") @property - @pulumi.getter(name="autoDelete") - def auto_delete(self) -> Optional[str]: + @pulumi.getter(name="futureLimit") + def future_limit(self) -> Optional[int]: """ - These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted. - Default value is `NEVER`. - Possible values are: `NEVER`, `ON_PERMANENT_INSTANCE_DELETION`. + (Output) + Future quota limit being rolled out. The limit's unit depends on the quota type or metric. """ - return pulumi.get(self, "auto_delete") + return pulumi.get(self, "future_limit") @property - @pulumi.getter(name="ipAddress") - def ip_address(self) -> Optional['outputs.RegionPerInstanceConfigPreservedStateInternalIpIpAddress']: + @pulumi.getter + def limit(self) -> Optional[int]: """ - Ip address representation - Structure is documented below. + (Output) + Current effective quota limit. The limit's unit depends on the quota type or metric. """ - return pulumi.get(self, "ip_address") + return pulumi.get(self, "limit") + @property + @pulumi.getter(name="limitName") + def limit_name(self) -> Optional[str]: + """ + (Output) + The name of the quota limit. + """ + return pulumi.get(self, "limit_name") -@pulumi.output_type -class RegionPerInstanceConfigPreservedStateInternalIpIpAddress(dict): - def __init__(__self__, *, - address: Optional[str] = None): + @property + @pulumi.getter(name="metricName") + def metric_name(self) -> Optional[str]: """ - :param str address: The URL of the reservation for this IP address. + (Output) + The Compute Engine quota metric name. """ - if address is not None: - pulumi.set(__self__, "address", address) + return pulumi.get(self, "metric_name") @property - @pulumi.getter - def address(self) -> Optional[str]: + @pulumi.getter(name="rolloutStatus") + def rollout_status(self) -> Optional[str]: """ - The URL of the reservation for this IP address. + (Output) + Rollout status of the future quota limit. """ - return pulumi.get(self, "address") + return pulumi.get(self, "rollout_status") @pulumi.output_type @@ -27389,6 +28595,168 @@ def ddos_protection(self) -> str: return pulumi.get(self, "ddos_protection") +@pulumi.output_type +class RegionSecurityPolicyRule(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "networkMatch": + suggest = "network_match" + elif key == "preconfiguredWafConfig": + suggest = "preconfigured_waf_config" + elif key == "rateLimitOptions": + suggest = "rate_limit_options" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in RegionSecurityPolicyRule. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + RegionSecurityPolicyRule.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + RegionSecurityPolicyRule.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + action: str, + priority: int, + description: Optional[str] = None, + match: Optional['outputs.RegionSecurityPolicyRuleMatch'] = None, + network_match: Optional['outputs.RegionSecurityPolicyRuleNetworkMatch'] = None, + preconfigured_waf_config: Optional['outputs.RegionSecurityPolicyRulePreconfiguredWafConfig'] = None, + preview: Optional[bool] = None, + rate_limit_options: Optional['outputs.RegionSecurityPolicyRuleRateLimitOptions'] = None): + """ + :param str action: The Action to perform when the rule is matched. The following are the valid actions: + * allow: allow access to target. + * deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for STATUS are 403, 404, and 502. + * rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rateLimitOptions to be set. + * redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. This action is only supported in Global Security Policies of type CLOUD_ARMOR. + * throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rateLimitOptions to be set for this. + :param int priority: An integer indicating the priority of a rule in the list. + The priority must be a positive value between 0 and 2147483647. + Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority. + :param str description: An optional description of this resource. Provide this property when you create the resource. + :param 'RegionSecurityPolicyRuleMatchArgs' match: A match condition that incoming traffic is evaluated against. + If it evaluates to true, the corresponding 'action' is enforced. + Structure is documented below. + :param 'RegionSecurityPolicyRuleNetworkMatchArgs' network_match: A match condition that incoming packets are evaluated against for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding 'action' is enforced. + The match criteria for a rule consists of built-in match fields (like 'srcIpRanges') and potentially multiple user-defined match fields ('userDefinedFields'). + Field values may be extracted directly from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may not be present in every packet (e.g. 'srcPorts'). A user-defined field is only present if the base header is found in the packet and the entire field is in bounds. + Each match field may specify which values can match it, listing one or more ranges, prefixes, or exact values that are considered a match for the field. A field value must be present in order to match a specified match field. If no match values are specified for a match field, then any field value is considered to match it, and it's not required to be present. For strings specifying '*' is also equivalent to match all. + For a packet to match a rule, all specified match fields must match the corresponding field values derived from the packet. + Example: + networkMatch: srcIpRanges: - "192.0.2.0/24" - "198.51.100.0/24" userDefinedFields: - name: "ipv4_fragment_offset" values: - "1-0x1fff" + The above match condition matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a user-defined field named "ipv4_fragment_offset" with a value between 1 and 0x1fff inclusive + Structure is documented below. + :param 'RegionSecurityPolicyRulePreconfiguredWafConfigArgs' preconfigured_waf_config: Preconfigured WAF configuration to be applied for the rule. + If the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect. + Structure is documented below. + :param bool preview: If set to true, the specified action is not enforced. + :param 'RegionSecurityPolicyRuleRateLimitOptionsArgs' rate_limit_options: Must be specified if the action is "rate_based_ban" or "throttle". Cannot be specified for any other actions. + Structure is documented below. + """ + pulumi.set(__self__, "action", action) + pulumi.set(__self__, "priority", priority) + if description is not None: + pulumi.set(__self__, "description", description) + if match is not None: + pulumi.set(__self__, "match", match) + if network_match is not None: + pulumi.set(__self__, "network_match", network_match) + if preconfigured_waf_config is not None: + pulumi.set(__self__, "preconfigured_waf_config", preconfigured_waf_config) + if preview is not None: + pulumi.set(__self__, "preview", preview) + if rate_limit_options is not None: + pulumi.set(__self__, "rate_limit_options", rate_limit_options) + + @property + @pulumi.getter + def action(self) -> str: + """ + The Action to perform when the rule is matched. The following are the valid actions: + * allow: allow access to target. + * deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for STATUS are 403, 404, and 502. + * rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rateLimitOptions to be set. + * redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. This action is only supported in Global Security Policies of type CLOUD_ARMOR. + * throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rateLimitOptions to be set for this. + """ + return pulumi.get(self, "action") + + @property + @pulumi.getter + def priority(self) -> int: + """ + An integer indicating the priority of a rule in the list. + The priority must be a positive value between 0 and 2147483647. + Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority. + """ + return pulumi.get(self, "priority") + + @property + @pulumi.getter + def description(self) -> Optional[str]: + """ + An optional description of this resource. Provide this property when you create the resource. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter + def match(self) -> Optional['outputs.RegionSecurityPolicyRuleMatch']: + """ + A match condition that incoming traffic is evaluated against. + If it evaluates to true, the corresponding 'action' is enforced. + Structure is documented below. + """ + return pulumi.get(self, "match") + + @property + @pulumi.getter(name="networkMatch") + def network_match(self) -> Optional['outputs.RegionSecurityPolicyRuleNetworkMatch']: + """ + A match condition that incoming packets are evaluated against for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding 'action' is enforced. + The match criteria for a rule consists of built-in match fields (like 'srcIpRanges') and potentially multiple user-defined match fields ('userDefinedFields'). + Field values may be extracted directly from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may not be present in every packet (e.g. 'srcPorts'). A user-defined field is only present if the base header is found in the packet and the entire field is in bounds. + Each match field may specify which values can match it, listing one or more ranges, prefixes, or exact values that are considered a match for the field. A field value must be present in order to match a specified match field. If no match values are specified for a match field, then any field value is considered to match it, and it's not required to be present. For strings specifying '*' is also equivalent to match all. + For a packet to match a rule, all specified match fields must match the corresponding field values derived from the packet. + Example: + networkMatch: srcIpRanges: - "192.0.2.0/24" - "198.51.100.0/24" userDefinedFields: - name: "ipv4_fragment_offset" values: - "1-0x1fff" + The above match condition matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a user-defined field named "ipv4_fragment_offset" with a value between 1 and 0x1fff inclusive + Structure is documented below. + """ + return pulumi.get(self, "network_match") + + @property + @pulumi.getter(name="preconfiguredWafConfig") + def preconfigured_waf_config(self) -> Optional['outputs.RegionSecurityPolicyRulePreconfiguredWafConfig']: + """ + Preconfigured WAF configuration to be applied for the rule. + If the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect. + Structure is documented below. + """ + return pulumi.get(self, "preconfigured_waf_config") + + @property + @pulumi.getter + def preview(self) -> Optional[bool]: + """ + If set to true, the specified action is not enforced. + """ + return pulumi.get(self, "preview") + + @property + @pulumi.getter(name="rateLimitOptions") + def rate_limit_options(self) -> Optional['outputs.RegionSecurityPolicyRuleRateLimitOptions']: + """ + Must be specified if the action is "rate_based_ban" or "throttle". Cannot be specified for any other actions. + Structure is documented below. + """ + return pulumi.get(self, "rate_limit_options") + + @pulumi.output_type class RegionSecurityPolicyRuleMatch(dict): @staticmethod @@ -28372,7 +29740,7 @@ def __init__(__self__, *, :param str mask: If specified, apply this mask (bitwise AND) to the field to ignore bits before matching. Encoded as a hexadecimal number (starting with "0x"). The last byte of the field (in network byte order) corresponds to the least significant byte of the mask. - :param str name: The name of this field. Must be unique within the policy. + :param str name: Name of the user-defined field, as given in the definition. :param int offset: Offset of the first byte of the field (in network byte order) relative to 'base'. :param int size: Size of the field in bytes. Valid values: 1-4. """ @@ -28413,7 +29781,7 @@ def mask(self) -> Optional[str]: @pulumi.getter def name(self) -> Optional[str]: """ - The name of this field. Must be unique within the policy. + Name of the user-defined field, as given in the definition. """ return pulumi.get(self, "name") @@ -36171,7 +37539,7 @@ class RouterPeerCustomLearnedIpRange(dict): def __init__(__self__, *, range: str): """ - :param str range: The IP range to advertise. The value must be a + :param str range: The IP range to learn. The value must be a CIDR-formatted string. """ pulumi.set(__self__, "range", range) @@ -36180,7 +37548,7 @@ def __init__(__self__, *, @pulumi.getter def range(self) -> str: """ - The IP range to advertise. The value must be a + The IP range to learn. The value must be a CIDR-formatted string. """ return pulumi.get(self, "range") @@ -53756,6 +55124,64 @@ def initial_delay_sec(self) -> int: return pulumi.get(self, "initial_delay_sec") +@pulumi.output_type +class GetRegionInstanceGroupManagerInstanceFlexibilityPolicyResult(dict): + def __init__(__self__, *, + instance_selections: Sequence['outputs.GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionResult']): + """ + :param Sequence['GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs'] instance_selections: Named instance selections configuring properties that the group will use when creating new VMs. + """ + pulumi.set(__self__, "instance_selections", instance_selections) + + @property + @pulumi.getter(name="instanceSelections") + def instance_selections(self) -> Sequence['outputs.GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionResult']: + """ + Named instance selections configuring properties that the group will use when creating new VMs. + """ + return pulumi.get(self, "instance_selections") + + +@pulumi.output_type +class GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionResult(dict): + def __init__(__self__, *, + machine_types: Sequence[str], + name: str, + rank: int): + """ + :param Sequence[str] machine_types: Full machine-type names, e.g. "n1-standard-16" + :param str name: The name of the instance group. Either `name` or `self_link` must be provided. + :param int rank: Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference. + """ + pulumi.set(__self__, "machine_types", machine_types) + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "rank", rank) + + @property + @pulumi.getter(name="machineTypes") + def machine_types(self) -> Sequence[str]: + """ + Full machine-type names, e.g. "n1-standard-16" + """ + return pulumi.get(self, "machine_types") + + @property + @pulumi.getter + def name(self) -> str: + """ + The name of the instance group. Either `name` or `self_link` must be provided. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def rank(self) -> int: + """ + Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference. + """ + return pulumi.get(self, "rank") + + @pulumi.output_type class GetRegionInstanceGroupManagerInstanceLifecyclePolicyResult(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_gcp/compute/region_disk.py b/sdk/python/pulumi_gcp/compute/region_disk.py index f1f2ad30f3..c5aac91328 100644 --- a/sdk/python/pulumi_gcp/compute/region_disk.py +++ b/sdk/python/pulumi_gcp/compute/region_disk.py @@ -44,7 +44,7 @@ def __init__(__self__, *, - - - - :param pulumi.Input['RegionDiskAsyncPrimaryDiskArgs'] async_primary_disk: A nested object resource + :param pulumi.Input['RegionDiskAsyncPrimaryDiskArgs'] async_primary_disk: A nested object resource. Structure is documented below. :param pulumi.Input[str] description: An optional description of this resource. Provide this property when you create the resource. @@ -168,7 +168,7 @@ def replica_zones(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): @pulumi.getter(name="asyncPrimaryDisk") def async_primary_disk(self) -> Optional[pulumi.Input['RegionDiskAsyncPrimaryDiskArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "async_primary_disk") @@ -441,7 +441,7 @@ def __init__(__self__, *, users: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ Input properties used for looking up and filtering RegionDisk resources. - :param pulumi.Input['RegionDiskAsyncPrimaryDiskArgs'] async_primary_disk: A nested object resource + :param pulumi.Input['RegionDiskAsyncPrimaryDiskArgs'] async_primary_disk: A nested object resource. Structure is documented below. :param pulumi.Input[str] creation_timestamp: Creation timestamp in RFC3339 text format. :param pulumi.Input[str] description: An optional description of this resource. Provide this property when @@ -595,7 +595,7 @@ def __init__(__self__, *, @pulumi.getter(name="asyncPrimaryDisk") def async_primary_disk(self) -> Optional[pulumi.Input['RegionDiskAsyncPrimaryDiskArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "async_primary_disk") @@ -1145,7 +1145,7 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[Union['RegionDiskAsyncPrimaryDiskArgs', 'RegionDiskAsyncPrimaryDiskArgsDict']] async_primary_disk: A nested object resource + :param pulumi.Input[Union['RegionDiskAsyncPrimaryDiskArgs', 'RegionDiskAsyncPrimaryDiskArgsDict']] async_primary_disk: A nested object resource. Structure is documented below. :param pulumi.Input[str] description: An optional description of this resource. Provide this property when you create the resource. @@ -1478,7 +1478,7 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[Union['RegionDiskAsyncPrimaryDiskArgs', 'RegionDiskAsyncPrimaryDiskArgsDict']] async_primary_disk: A nested object resource + :param pulumi.Input[Union['RegionDiskAsyncPrimaryDiskArgs', 'RegionDiskAsyncPrimaryDiskArgsDict']] async_primary_disk: A nested object resource. Structure is documented below. :param pulumi.Input[str] creation_timestamp: Creation timestamp in RFC3339 text format. :param pulumi.Input[str] description: An optional description of this resource. Provide this property when @@ -1607,7 +1607,7 @@ def get(resource_name: str, @pulumi.getter(name="asyncPrimaryDisk") def async_primary_disk(self) -> pulumi.Output[Optional['outputs.RegionDiskAsyncPrimaryDisk']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "async_primary_disk") diff --git a/sdk/python/pulumi_gcp/compute/region_health_check.py b/sdk/python/pulumi_gcp/compute/region_health_check.py index d8e8807738..926fc64399 100644 --- a/sdk/python/pulumi_gcp/compute/region_health_check.py +++ b/sdk/python/pulumi_gcp/compute/region_health_check.py @@ -42,15 +42,15 @@ def __init__(__self__, *, seconds. :param pulumi.Input[str] description: An optional description of this resource. Provide this property when you create the resource. - :param pulumi.Input['RegionHealthCheckGrpcHealthCheckArgs'] grpc_health_check: A nested object resource + :param pulumi.Input['RegionHealthCheckGrpcHealthCheckArgs'] grpc_health_check: A nested object resource. Structure is documented below. :param pulumi.Input[int] healthy_threshold: A so-far unhealthy instance will be marked healthy after this many consecutive successes. The default value is 2. - :param pulumi.Input['RegionHealthCheckHttp2HealthCheckArgs'] http2_health_check: A nested object resource + :param pulumi.Input['RegionHealthCheckHttp2HealthCheckArgs'] http2_health_check: A nested object resource. Structure is documented below. - :param pulumi.Input['RegionHealthCheckHttpHealthCheckArgs'] http_health_check: A nested object resource + :param pulumi.Input['RegionHealthCheckHttpHealthCheckArgs'] http_health_check: A nested object resource. Structure is documented below. - :param pulumi.Input['RegionHealthCheckHttpsHealthCheckArgs'] https_health_check: A nested object resource + :param pulumi.Input['RegionHealthCheckHttpsHealthCheckArgs'] https_health_check: A nested object resource. Structure is documented below. :param pulumi.Input['RegionHealthCheckLogConfigArgs'] log_config: Configure logging on this health check. Structure is documented below. @@ -68,9 +68,9 @@ def __init__(__self__, *, If it is not provided, the provider project is used. :param pulumi.Input[str] region: The Region in which the created health check should reside. If it is not provided, the provider region is used. - :param pulumi.Input['RegionHealthCheckSslHealthCheckArgs'] ssl_health_check: A nested object resource + :param pulumi.Input['RegionHealthCheckSslHealthCheckArgs'] ssl_health_check: A nested object resource. Structure is documented below. - :param pulumi.Input['RegionHealthCheckTcpHealthCheckArgs'] tcp_health_check: A nested object resource + :param pulumi.Input['RegionHealthCheckTcpHealthCheckArgs'] tcp_health_check: A nested object resource. Structure is documented below. :param pulumi.Input[int] timeout_sec: How long (in seconds) to wait before claiming failure. The default value is 5 seconds. It is invalid for timeoutSec to have @@ -139,7 +139,7 @@ def description(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="grpcHealthCheck") def grpc_health_check(self) -> Optional[pulumi.Input['RegionHealthCheckGrpcHealthCheckArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "grpc_health_check") @@ -165,7 +165,7 @@ def healthy_threshold(self, value: Optional[pulumi.Input[int]]): @pulumi.getter(name="http2HealthCheck") def http2_health_check(self) -> Optional[pulumi.Input['RegionHealthCheckHttp2HealthCheckArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "http2_health_check") @@ -178,7 +178,7 @@ def http2_health_check(self, value: Optional[pulumi.Input['RegionHealthCheckHttp @pulumi.getter(name="httpHealthCheck") def http_health_check(self) -> Optional[pulumi.Input['RegionHealthCheckHttpHealthCheckArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "http_health_check") @@ -191,7 +191,7 @@ def http_health_check(self, value: Optional[pulumi.Input['RegionHealthCheckHttpH @pulumi.getter(name="httpsHealthCheck") def https_health_check(self) -> Optional[pulumi.Input['RegionHealthCheckHttpsHealthCheckArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "https_health_check") @@ -264,7 +264,7 @@ def region(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="sslHealthCheck") def ssl_health_check(self) -> Optional[pulumi.Input['RegionHealthCheckSslHealthCheckArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "ssl_health_check") @@ -277,7 +277,7 @@ def ssl_health_check(self, value: Optional[pulumi.Input['RegionHealthCheckSslHea @pulumi.getter(name="tcpHealthCheck") def tcp_health_check(self) -> Optional[pulumi.Input['RegionHealthCheckTcpHealthCheckArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "tcp_health_check") @@ -342,15 +342,15 @@ def __init__(__self__, *, :param pulumi.Input[str] creation_timestamp: Creation timestamp in RFC3339 text format. :param pulumi.Input[str] description: An optional description of this resource. Provide this property when you create the resource. - :param pulumi.Input['RegionHealthCheckGrpcHealthCheckArgs'] grpc_health_check: A nested object resource + :param pulumi.Input['RegionHealthCheckGrpcHealthCheckArgs'] grpc_health_check: A nested object resource. Structure is documented below. :param pulumi.Input[int] healthy_threshold: A so-far unhealthy instance will be marked healthy after this many consecutive successes. The default value is 2. - :param pulumi.Input['RegionHealthCheckHttp2HealthCheckArgs'] http2_health_check: A nested object resource + :param pulumi.Input['RegionHealthCheckHttp2HealthCheckArgs'] http2_health_check: A nested object resource. Structure is documented below. - :param pulumi.Input['RegionHealthCheckHttpHealthCheckArgs'] http_health_check: A nested object resource + :param pulumi.Input['RegionHealthCheckHttpHealthCheckArgs'] http_health_check: A nested object resource. Structure is documented below. - :param pulumi.Input['RegionHealthCheckHttpsHealthCheckArgs'] https_health_check: A nested object resource + :param pulumi.Input['RegionHealthCheckHttpsHealthCheckArgs'] https_health_check: A nested object resource. Structure is documented below. :param pulumi.Input['RegionHealthCheckLogConfigArgs'] log_config: Configure logging on this health check. Structure is documented below. @@ -369,9 +369,9 @@ def __init__(__self__, *, :param pulumi.Input[str] region: The Region in which the created health check should reside. If it is not provided, the provider region is used. :param pulumi.Input[str] self_link: The URI of the created resource. - :param pulumi.Input['RegionHealthCheckSslHealthCheckArgs'] ssl_health_check: A nested object resource + :param pulumi.Input['RegionHealthCheckSslHealthCheckArgs'] ssl_health_check: A nested object resource. Structure is documented below. - :param pulumi.Input['RegionHealthCheckTcpHealthCheckArgs'] tcp_health_check: A nested object resource + :param pulumi.Input['RegionHealthCheckTcpHealthCheckArgs'] tcp_health_check: A nested object resource. Structure is documented below. :param pulumi.Input[int] timeout_sec: How long (in seconds) to wait before claiming failure. The default value is 5 seconds. It is invalid for timeoutSec to have @@ -459,7 +459,7 @@ def description(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="grpcHealthCheck") def grpc_health_check(self) -> Optional[pulumi.Input['RegionHealthCheckGrpcHealthCheckArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "grpc_health_check") @@ -485,7 +485,7 @@ def healthy_threshold(self, value: Optional[pulumi.Input[int]]): @pulumi.getter(name="http2HealthCheck") def http2_health_check(self) -> Optional[pulumi.Input['RegionHealthCheckHttp2HealthCheckArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "http2_health_check") @@ -498,7 +498,7 @@ def http2_health_check(self, value: Optional[pulumi.Input['RegionHealthCheckHttp @pulumi.getter(name="httpHealthCheck") def http_health_check(self) -> Optional[pulumi.Input['RegionHealthCheckHttpHealthCheckArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "http_health_check") @@ -511,7 +511,7 @@ def http_health_check(self, value: Optional[pulumi.Input['RegionHealthCheckHttpH @pulumi.getter(name="httpsHealthCheck") def https_health_check(self) -> Optional[pulumi.Input['RegionHealthCheckHttpsHealthCheckArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "https_health_check") @@ -596,7 +596,7 @@ def self_link(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="sslHealthCheck") def ssl_health_check(self) -> Optional[pulumi.Input['RegionHealthCheckSslHealthCheckArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "ssl_health_check") @@ -609,7 +609,7 @@ def ssl_health_check(self, value: Optional[pulumi.Input['RegionHealthCheckSslHea @pulumi.getter(name="tcpHealthCheck") def tcp_health_check(self) -> Optional[pulumi.Input['RegionHealthCheckTcpHealthCheckArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "tcp_health_check") @@ -962,15 +962,15 @@ def __init__(__self__, seconds. :param pulumi.Input[str] description: An optional description of this resource. Provide this property when you create the resource. - :param pulumi.Input[Union['RegionHealthCheckGrpcHealthCheckArgs', 'RegionHealthCheckGrpcHealthCheckArgsDict']] grpc_health_check: A nested object resource + :param pulumi.Input[Union['RegionHealthCheckGrpcHealthCheckArgs', 'RegionHealthCheckGrpcHealthCheckArgsDict']] grpc_health_check: A nested object resource. Structure is documented below. :param pulumi.Input[int] healthy_threshold: A so-far unhealthy instance will be marked healthy after this many consecutive successes. The default value is 2. - :param pulumi.Input[Union['RegionHealthCheckHttp2HealthCheckArgs', 'RegionHealthCheckHttp2HealthCheckArgsDict']] http2_health_check: A nested object resource + :param pulumi.Input[Union['RegionHealthCheckHttp2HealthCheckArgs', 'RegionHealthCheckHttp2HealthCheckArgsDict']] http2_health_check: A nested object resource. Structure is documented below. - :param pulumi.Input[Union['RegionHealthCheckHttpHealthCheckArgs', 'RegionHealthCheckHttpHealthCheckArgsDict']] http_health_check: A nested object resource + :param pulumi.Input[Union['RegionHealthCheckHttpHealthCheckArgs', 'RegionHealthCheckHttpHealthCheckArgsDict']] http_health_check: A nested object resource. Structure is documented below. - :param pulumi.Input[Union['RegionHealthCheckHttpsHealthCheckArgs', 'RegionHealthCheckHttpsHealthCheckArgsDict']] https_health_check: A nested object resource + :param pulumi.Input[Union['RegionHealthCheckHttpsHealthCheckArgs', 'RegionHealthCheckHttpsHealthCheckArgsDict']] https_health_check: A nested object resource. Structure is documented below. :param pulumi.Input[Union['RegionHealthCheckLogConfigArgs', 'RegionHealthCheckLogConfigArgsDict']] log_config: Configure logging on this health check. Structure is documented below. @@ -988,9 +988,9 @@ def __init__(__self__, If it is not provided, the provider project is used. :param pulumi.Input[str] region: The Region in which the created health check should reside. If it is not provided, the provider region is used. - :param pulumi.Input[Union['RegionHealthCheckSslHealthCheckArgs', 'RegionHealthCheckSslHealthCheckArgsDict']] ssl_health_check: A nested object resource + :param pulumi.Input[Union['RegionHealthCheckSslHealthCheckArgs', 'RegionHealthCheckSslHealthCheckArgsDict']] ssl_health_check: A nested object resource. Structure is documented below. - :param pulumi.Input[Union['RegionHealthCheckTcpHealthCheckArgs', 'RegionHealthCheckTcpHealthCheckArgsDict']] tcp_health_check: A nested object resource + :param pulumi.Input[Union['RegionHealthCheckTcpHealthCheckArgs', 'RegionHealthCheckTcpHealthCheckArgsDict']] tcp_health_check: A nested object resource. Structure is documented below. :param pulumi.Input[int] timeout_sec: How long (in seconds) to wait before claiming failure. The default value is 5 seconds. It is invalid for timeoutSec to have @@ -1378,15 +1378,15 @@ def get(resource_name: str, :param pulumi.Input[str] creation_timestamp: Creation timestamp in RFC3339 text format. :param pulumi.Input[str] description: An optional description of this resource. Provide this property when you create the resource. - :param pulumi.Input[Union['RegionHealthCheckGrpcHealthCheckArgs', 'RegionHealthCheckGrpcHealthCheckArgsDict']] grpc_health_check: A nested object resource + :param pulumi.Input[Union['RegionHealthCheckGrpcHealthCheckArgs', 'RegionHealthCheckGrpcHealthCheckArgsDict']] grpc_health_check: A nested object resource. Structure is documented below. :param pulumi.Input[int] healthy_threshold: A so-far unhealthy instance will be marked healthy after this many consecutive successes. The default value is 2. - :param pulumi.Input[Union['RegionHealthCheckHttp2HealthCheckArgs', 'RegionHealthCheckHttp2HealthCheckArgsDict']] http2_health_check: A nested object resource + :param pulumi.Input[Union['RegionHealthCheckHttp2HealthCheckArgs', 'RegionHealthCheckHttp2HealthCheckArgsDict']] http2_health_check: A nested object resource. Structure is documented below. - :param pulumi.Input[Union['RegionHealthCheckHttpHealthCheckArgs', 'RegionHealthCheckHttpHealthCheckArgsDict']] http_health_check: A nested object resource + :param pulumi.Input[Union['RegionHealthCheckHttpHealthCheckArgs', 'RegionHealthCheckHttpHealthCheckArgsDict']] http_health_check: A nested object resource. Structure is documented below. - :param pulumi.Input[Union['RegionHealthCheckHttpsHealthCheckArgs', 'RegionHealthCheckHttpsHealthCheckArgsDict']] https_health_check: A nested object resource + :param pulumi.Input[Union['RegionHealthCheckHttpsHealthCheckArgs', 'RegionHealthCheckHttpsHealthCheckArgsDict']] https_health_check: A nested object resource. Structure is documented below. :param pulumi.Input[Union['RegionHealthCheckLogConfigArgs', 'RegionHealthCheckLogConfigArgsDict']] log_config: Configure logging on this health check. Structure is documented below. @@ -1405,9 +1405,9 @@ def get(resource_name: str, :param pulumi.Input[str] region: The Region in which the created health check should reside. If it is not provided, the provider region is used. :param pulumi.Input[str] self_link: The URI of the created resource. - :param pulumi.Input[Union['RegionHealthCheckSslHealthCheckArgs', 'RegionHealthCheckSslHealthCheckArgsDict']] ssl_health_check: A nested object resource + :param pulumi.Input[Union['RegionHealthCheckSslHealthCheckArgs', 'RegionHealthCheckSslHealthCheckArgsDict']] ssl_health_check: A nested object resource. Structure is documented below. - :param pulumi.Input[Union['RegionHealthCheckTcpHealthCheckArgs', 'RegionHealthCheckTcpHealthCheckArgsDict']] tcp_health_check: A nested object resource + :param pulumi.Input[Union['RegionHealthCheckTcpHealthCheckArgs', 'RegionHealthCheckTcpHealthCheckArgsDict']] tcp_health_check: A nested object resource. Structure is documented below. :param pulumi.Input[int] timeout_sec: How long (in seconds) to wait before claiming failure. The default value is 5 seconds. It is invalid for timeoutSec to have @@ -1470,7 +1470,7 @@ def description(self) -> pulumi.Output[Optional[str]]: @pulumi.getter(name="grpcHealthCheck") def grpc_health_check(self) -> pulumi.Output[Optional['outputs.RegionHealthCheckGrpcHealthCheck']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "grpc_health_check") @@ -1488,7 +1488,7 @@ def healthy_threshold(self) -> pulumi.Output[Optional[int]]: @pulumi.getter(name="http2HealthCheck") def http2_health_check(self) -> pulumi.Output[Optional['outputs.RegionHealthCheckHttp2HealthCheck']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "http2_health_check") @@ -1497,7 +1497,7 @@ def http2_health_check(self) -> pulumi.Output[Optional['outputs.RegionHealthChec @pulumi.getter(name="httpHealthCheck") def http_health_check(self) -> pulumi.Output[Optional['outputs.RegionHealthCheckHttpHealthCheck']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "http_health_check") @@ -1506,7 +1506,7 @@ def http_health_check(self) -> pulumi.Output[Optional['outputs.RegionHealthCheck @pulumi.getter(name="httpsHealthCheck") def https_health_check(self) -> pulumi.Output[Optional['outputs.RegionHealthCheckHttpsHealthCheck']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "https_health_check") @@ -1567,7 +1567,7 @@ def self_link(self) -> pulumi.Output[str]: @pulumi.getter(name="sslHealthCheck") def ssl_health_check(self) -> pulumi.Output[Optional['outputs.RegionHealthCheckSslHealthCheck']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "ssl_health_check") @@ -1576,7 +1576,7 @@ def ssl_health_check(self) -> pulumi.Output[Optional['outputs.RegionHealthCheckS @pulumi.getter(name="tcpHealthCheck") def tcp_health_check(self) -> pulumi.Output[Optional['outputs.RegionHealthCheckTcpHealthCheck']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "tcp_health_check") diff --git a/sdk/python/pulumi_gcp/compute/region_instance_group_manager.py b/sdk/python/pulumi_gcp/compute/region_instance_group_manager.py index 58bbbf7a4a..331a884fec 100644 --- a/sdk/python/pulumi_gcp/compute/region_instance_group_manager.py +++ b/sdk/python/pulumi_gcp/compute/region_instance_group_manager.py @@ -28,6 +28,7 @@ def __init__(__self__, *, description: Optional[pulumi.Input[str]] = None, distribution_policy_target_shape: Optional[pulumi.Input[str]] = None, distribution_policy_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + instance_flexibility_policy: Optional[pulumi.Input['RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs']] = None, instance_lifecycle_policy: Optional[pulumi.Input['RegionInstanceGroupManagerInstanceLifecyclePolicyArgs']] = None, list_managed_instances_results: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, @@ -67,6 +68,8 @@ def __init__(__self__, *, :param pulumi.Input[str] distribution_policy_target_shape: The shape to which the group converges either proactively or on resize events (depending on the value set in update_policy.0.instance_redistribution_type). For more information see the [official documentation](https://cloud.google.com/compute/docs/instance-groups/regional-mig-distribution-shape). :param pulumi.Input[Sequence[pulumi.Input[str]]] distribution_policy_zones: The distribution policy for this managed instance group. You can specify one or more values. For more information, see the [official documentation](https://cloud.google.com/compute/docs/instance-groups/distributing-instances-with-regional-instance-groups#selectingzones). + :param pulumi.Input['RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs'] instance_flexibility_policy: The flexibility policy for managed instance group. Instance flexibility allows managed instance group to create VMs from multiple types of machines. Instance flexibility configuration on managed instance group overrides instance template configuration. Structure is documented below. + - - - :param pulumi.Input['RegionInstanceGroupManagerInstanceLifecyclePolicyArgs'] instance_lifecycle_policy: The instance lifecycle policy for this managed instance group. :param pulumi.Input[str] list_managed_instances_results: Pagination behavior of the `listManagedInstances` API method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. @@ -81,8 +84,6 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['RegionInstanceGroupManagerNamedPortArgs']]] named_ports: The named port configuration. See the section below for details on configuration. :param pulumi.Input['RegionInstanceGroupManagerParamsArgs'] params: Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert). - - - - - :param pulumi.Input[str] project: The ID of the project in which the resource belongs. If it is not provided, the provider project is used. :param pulumi.Input[str] region: The region where the managed instance group resides. If not provided, the provider region is used. @@ -120,6 +121,8 @@ def __init__(__self__, *, pulumi.set(__self__, "distribution_policy_target_shape", distribution_policy_target_shape) if distribution_policy_zones is not None: pulumi.set(__self__, "distribution_policy_zones", distribution_policy_zones) + if instance_flexibility_policy is not None: + pulumi.set(__self__, "instance_flexibility_policy", instance_flexibility_policy) if instance_lifecycle_policy is not None: pulumi.set(__self__, "instance_lifecycle_policy", instance_lifecycle_policy) if list_managed_instances_results is not None: @@ -253,6 +256,19 @@ def distribution_policy_zones(self) -> Optional[pulumi.Input[Sequence[pulumi.Inp def distribution_policy_zones(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): pulumi.set(self, "distribution_policy_zones", value) + @property + @pulumi.getter(name="instanceFlexibilityPolicy") + def instance_flexibility_policy(self) -> Optional[pulumi.Input['RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs']]: + """ + The flexibility policy for managed instance group. Instance flexibility allows managed instance group to create VMs from multiple types of machines. Instance flexibility configuration on managed instance group overrides instance template configuration. Structure is documented below. + - - - + """ + return pulumi.get(self, "instance_flexibility_policy") + + @instance_flexibility_policy.setter + def instance_flexibility_policy(self, value: Optional[pulumi.Input['RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs']]): + pulumi.set(self, "instance_flexibility_policy", value) + @property @pulumi.getter(name="instanceLifecyclePolicy") def instance_lifecycle_policy(self) -> Optional[pulumi.Input['RegionInstanceGroupManagerInstanceLifecyclePolicyArgs']]: @@ -315,8 +331,6 @@ def named_ports(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['Region def params(self) -> Optional[pulumi.Input['RegionInstanceGroupManagerParamsArgs']]: """ Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert). - - - - - """ return pulumi.get(self, "params") @@ -503,6 +517,7 @@ def __init__(__self__, *, distribution_policy_target_shape: Optional[pulumi.Input[str]] = None, distribution_policy_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, fingerprint: Optional[pulumi.Input[str]] = None, + instance_flexibility_policy: Optional[pulumi.Input['RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs']] = None, instance_group: Optional[pulumi.Input[str]] = None, instance_lifecycle_policy: Optional[pulumi.Input['RegionInstanceGroupManagerInstanceLifecyclePolicyArgs']] = None, list_managed_instances_results: Optional[pulumi.Input[str]] = None, @@ -545,6 +560,8 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] distribution_policy_zones: The distribution policy for this managed instance group. You can specify one or more values. For more information, see the [official documentation](https://cloud.google.com/compute/docs/instance-groups/distributing-instances-with-regional-instance-groups#selectingzones). :param pulumi.Input[str] fingerprint: The fingerprint of the instance group manager. + :param pulumi.Input['RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs'] instance_flexibility_policy: The flexibility policy for managed instance group. Instance flexibility allows managed instance group to create VMs from multiple types of machines. Instance flexibility configuration on managed instance group overrides instance template configuration. Structure is documented below. + - - - :param pulumi.Input[str] instance_group: The full URL of the instance group created by the manager. :param pulumi.Input['RegionInstanceGroupManagerInstanceLifecyclePolicyArgs'] instance_lifecycle_policy: The instance lifecycle policy for this managed instance group. :param pulumi.Input[str] list_managed_instances_results: Pagination behavior of the `listManagedInstances` API @@ -560,8 +577,6 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['RegionInstanceGroupManagerNamedPortArgs']]] named_ports: The named port configuration. See the section below for details on configuration. :param pulumi.Input['RegionInstanceGroupManagerParamsArgs'] params: Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert). - - - - - :param pulumi.Input[str] project: The ID of the project in which the resource belongs. If it is not provided, the provider project is used. :param pulumi.Input[str] region: The region where the managed instance group resides. If not provided, the provider region is used. @@ -608,6 +623,8 @@ def __init__(__self__, *, pulumi.set(__self__, "distribution_policy_zones", distribution_policy_zones) if fingerprint is not None: pulumi.set(__self__, "fingerprint", fingerprint) + if instance_flexibility_policy is not None: + pulumi.set(__self__, "instance_flexibility_policy", instance_flexibility_policy) if instance_group is not None: pulumi.set(__self__, "instance_group", instance_group) if instance_lifecycle_policy is not None: @@ -759,6 +776,19 @@ def fingerprint(self) -> Optional[pulumi.Input[str]]: def fingerprint(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "fingerprint", value) + @property + @pulumi.getter(name="instanceFlexibilityPolicy") + def instance_flexibility_policy(self) -> Optional[pulumi.Input['RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs']]: + """ + The flexibility policy for managed instance group. Instance flexibility allows managed instance group to create VMs from multiple types of machines. Instance flexibility configuration on managed instance group overrides instance template configuration. Structure is documented below. + - - - + """ + return pulumi.get(self, "instance_flexibility_policy") + + @instance_flexibility_policy.setter + def instance_flexibility_policy(self, value: Optional[pulumi.Input['RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs']]): + pulumi.set(self, "instance_flexibility_policy", value) + @property @pulumi.getter(name="instanceGroup") def instance_group(self) -> Optional[pulumi.Input[str]]: @@ -833,8 +863,6 @@ def named_ports(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['Region def params(self) -> Optional[pulumi.Input['RegionInstanceGroupManagerParamsArgs']]: """ Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert). - - - - - """ return pulumi.get(self, "params") @@ -1059,6 +1087,7 @@ def __init__(__self__, description: Optional[pulumi.Input[str]] = None, distribution_policy_target_shape: Optional[pulumi.Input[str]] = None, distribution_policy_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + instance_flexibility_policy: Optional[pulumi.Input[Union['RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs', 'RegionInstanceGroupManagerInstanceFlexibilityPolicyArgsDict']]] = None, instance_lifecycle_policy: Optional[pulumi.Input[Union['RegionInstanceGroupManagerInstanceLifecyclePolicyArgs', 'RegionInstanceGroupManagerInstanceLifecyclePolicyArgsDict']]] = None, list_managed_instances_results: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, @@ -1216,6 +1245,8 @@ def __init__(__self__, :param pulumi.Input[str] distribution_policy_target_shape: The shape to which the group converges either proactively or on resize events (depending on the value set in update_policy.0.instance_redistribution_type). For more information see the [official documentation](https://cloud.google.com/compute/docs/instance-groups/regional-mig-distribution-shape). :param pulumi.Input[Sequence[pulumi.Input[str]]] distribution_policy_zones: The distribution policy for this managed instance group. You can specify one or more values. For more information, see the [official documentation](https://cloud.google.com/compute/docs/instance-groups/distributing-instances-with-regional-instance-groups#selectingzones). + :param pulumi.Input[Union['RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs', 'RegionInstanceGroupManagerInstanceFlexibilityPolicyArgsDict']] instance_flexibility_policy: The flexibility policy for managed instance group. Instance flexibility allows managed instance group to create VMs from multiple types of machines. Instance flexibility configuration on managed instance group overrides instance template configuration. Structure is documented below. + - - - :param pulumi.Input[Union['RegionInstanceGroupManagerInstanceLifecyclePolicyArgs', 'RegionInstanceGroupManagerInstanceLifecyclePolicyArgsDict']] instance_lifecycle_policy: The instance lifecycle policy for this managed instance group. :param pulumi.Input[str] list_managed_instances_results: Pagination behavior of the `listManagedInstances` API method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. @@ -1230,8 +1261,6 @@ def __init__(__self__, :param pulumi.Input[Sequence[pulumi.Input[Union['RegionInstanceGroupManagerNamedPortArgs', 'RegionInstanceGroupManagerNamedPortArgsDict']]]] named_ports: The named port configuration. See the section below for details on configuration. :param pulumi.Input[Union['RegionInstanceGroupManagerParamsArgs', 'RegionInstanceGroupManagerParamsArgsDict']] params: Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert). - - - - - :param pulumi.Input[str] project: The ID of the project in which the resource belongs. If it is not provided, the provider project is used. :param pulumi.Input[str] region: The region where the managed instance group resides. If not provided, the provider region is used. @@ -1406,6 +1435,7 @@ def _internal_init(__self__, description: Optional[pulumi.Input[str]] = None, distribution_policy_target_shape: Optional[pulumi.Input[str]] = None, distribution_policy_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + instance_flexibility_policy: Optional[pulumi.Input[Union['RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs', 'RegionInstanceGroupManagerInstanceFlexibilityPolicyArgsDict']]] = None, instance_lifecycle_policy: Optional[pulumi.Input[Union['RegionInstanceGroupManagerInstanceLifecyclePolicyArgs', 'RegionInstanceGroupManagerInstanceLifecyclePolicyArgsDict']]] = None, list_managed_instances_results: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, @@ -1442,6 +1472,7 @@ def _internal_init(__self__, __props__.__dict__["description"] = description __props__.__dict__["distribution_policy_target_shape"] = distribution_policy_target_shape __props__.__dict__["distribution_policy_zones"] = distribution_policy_zones + __props__.__dict__["instance_flexibility_policy"] = instance_flexibility_policy __props__.__dict__["instance_lifecycle_policy"] = instance_lifecycle_policy __props__.__dict__["list_managed_instances_results"] = list_managed_instances_results __props__.__dict__["name"] = name @@ -1486,6 +1517,7 @@ def get(resource_name: str, distribution_policy_target_shape: Optional[pulumi.Input[str]] = None, distribution_policy_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, fingerprint: Optional[pulumi.Input[str]] = None, + instance_flexibility_policy: Optional[pulumi.Input[Union['RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs', 'RegionInstanceGroupManagerInstanceFlexibilityPolicyArgsDict']]] = None, instance_group: Optional[pulumi.Input[str]] = None, instance_lifecycle_policy: Optional[pulumi.Input[Union['RegionInstanceGroupManagerInstanceLifecyclePolicyArgs', 'RegionInstanceGroupManagerInstanceLifecyclePolicyArgsDict']]] = None, list_managed_instances_results: Optional[pulumi.Input[str]] = None, @@ -1533,6 +1565,8 @@ def get(resource_name: str, :param pulumi.Input[Sequence[pulumi.Input[str]]] distribution_policy_zones: The distribution policy for this managed instance group. You can specify one or more values. For more information, see the [official documentation](https://cloud.google.com/compute/docs/instance-groups/distributing-instances-with-regional-instance-groups#selectingzones). :param pulumi.Input[str] fingerprint: The fingerprint of the instance group manager. + :param pulumi.Input[Union['RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs', 'RegionInstanceGroupManagerInstanceFlexibilityPolicyArgsDict']] instance_flexibility_policy: The flexibility policy for managed instance group. Instance flexibility allows managed instance group to create VMs from multiple types of machines. Instance flexibility configuration on managed instance group overrides instance template configuration. Structure is documented below. + - - - :param pulumi.Input[str] instance_group: The full URL of the instance group created by the manager. :param pulumi.Input[Union['RegionInstanceGroupManagerInstanceLifecyclePolicyArgs', 'RegionInstanceGroupManagerInstanceLifecyclePolicyArgsDict']] instance_lifecycle_policy: The instance lifecycle policy for this managed instance group. :param pulumi.Input[str] list_managed_instances_results: Pagination behavior of the `listManagedInstances` API @@ -1548,8 +1582,6 @@ def get(resource_name: str, :param pulumi.Input[Sequence[pulumi.Input[Union['RegionInstanceGroupManagerNamedPortArgs', 'RegionInstanceGroupManagerNamedPortArgsDict']]]] named_ports: The named port configuration. See the section below for details on configuration. :param pulumi.Input[Union['RegionInstanceGroupManagerParamsArgs', 'RegionInstanceGroupManagerParamsArgsDict']] params: Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert). - - - - - :param pulumi.Input[str] project: The ID of the project in which the resource belongs. If it is not provided, the provider project is used. :param pulumi.Input[str] region: The region where the managed instance group resides. If not provided, the provider region is used. @@ -1592,6 +1624,7 @@ def get(resource_name: str, __props__.__dict__["distribution_policy_target_shape"] = distribution_policy_target_shape __props__.__dict__["distribution_policy_zones"] = distribution_policy_zones __props__.__dict__["fingerprint"] = fingerprint + __props__.__dict__["instance_flexibility_policy"] = instance_flexibility_policy __props__.__dict__["instance_group"] = instance_group __props__.__dict__["instance_lifecycle_policy"] = instance_lifecycle_policy __props__.__dict__["list_managed_instances_results"] = list_managed_instances_results @@ -1690,6 +1723,15 @@ def fingerprint(self) -> pulumi.Output[str]: """ return pulumi.get(self, "fingerprint") + @property + @pulumi.getter(name="instanceFlexibilityPolicy") + def instance_flexibility_policy(self) -> pulumi.Output[Optional['outputs.RegionInstanceGroupManagerInstanceFlexibilityPolicy']]: + """ + The flexibility policy for managed instance group. Instance flexibility allows managed instance group to create VMs from multiple types of machines. Instance flexibility configuration on managed instance group overrides instance template configuration. Structure is documented below. + - - - + """ + return pulumi.get(self, "instance_flexibility_policy") + @property @pulumi.getter(name="instanceGroup") def instance_group(self) -> pulumi.Output[str]: @@ -1744,8 +1786,6 @@ def named_ports(self) -> pulumi.Output[Optional[Sequence['outputs.RegionInstance def params(self) -> pulumi.Output[Optional['outputs.RegionInstanceGroupManagerParams']]: """ Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert). - - - - - """ return pulumi.get(self, "params") diff --git a/sdk/python/pulumi_gcp/compute/region_network_firewall_policy_rule.py b/sdk/python/pulumi_gcp/compute/region_network_firewall_policy_rule.py index 77c91d7fb3..fc261e0786 100644 --- a/sdk/python/pulumi_gcp/compute/region_network_firewall_policy_rule.py +++ b/sdk/python/pulumi_gcp/compute/region_network_firewall_policy_rule.py @@ -669,7 +669,7 @@ def __init__(__self__, }) basic_value = gcp.tags.TagValue("basic_value", description="For valuename resources.", - parent=basic_key.name.apply(lambda name: f"tagKeys/{name}"), + parent=basic_key.id, short_name="tagvalue") primary = gcp.compute.RegionNetworkFirewallPolicyRule("primary", action="allow", @@ -691,7 +691,7 @@ def __init__(__self__, "ip_protocol": "all", }], "src_secure_tags": [{ - "name": basic_value.name.apply(lambda name: f"tagValues/{name}"), + "name": basic_value.id, }], "src_address_groups": [basic_regional_networksecurity_address_group.id], }) @@ -804,7 +804,7 @@ def __init__(__self__, }) basic_value = gcp.tags.TagValue("basic_value", description="For valuename resources.", - parent=basic_key.name.apply(lambda name: f"tagKeys/{name}"), + parent=basic_key.id, short_name="tagvalue") primary = gcp.compute.RegionNetworkFirewallPolicyRule("primary", action="allow", @@ -826,7 +826,7 @@ def __init__(__self__, "ip_protocol": "all", }], "src_secure_tags": [{ - "name": basic_value.name.apply(lambda name: f"tagValues/{name}"), + "name": basic_value.id, }], "src_address_groups": [basic_regional_networksecurity_address_group.id], }) diff --git a/sdk/python/pulumi_gcp/compute/region_network_firewall_policy_with_rules.py b/sdk/python/pulumi_gcp/compute/region_network_firewall_policy_with_rules.py index 3e276be760..62cf6e40c3 100644 --- a/sdk/python/pulumi_gcp/compute/region_network_firewall_policy_with_rules.py +++ b/sdk/python/pulumi_gcp/compute/region_network_firewall_policy_with_rules.py @@ -350,7 +350,7 @@ def __init__(__self__, project = gcp.organizations.get_project() address_group1 = gcp.networksecurity.AddressGroup("address_group_1", name="tf-address-group", - parent=f"projects/{project.name}", + parent=project.id, description="Regional address group", location="us-west2", items=["208.80.154.224/32"], @@ -358,7 +358,7 @@ def __init__(__self__, capacity=100) secure_tag_key1 = gcp.tags.TagKey("secure_tag_key_1", description="Tag key", - parent=f"projects/{project.name}", + parent=project.id, purpose="GCE_FIREWALL", short_name="tf-tag-key", purpose_data={ @@ -366,7 +366,7 @@ def __init__(__self__, }) secure_tag_value1 = gcp.tags.TagValue("secure_tag_value_1", description="Tag value", - parent=secure_tag_key1.name.apply(lambda name: f"tagKeys/{name}"), + parent=secure_tag_key1.id, short_name="tf-tag-value") region_network_firewall_policy_with_rules = gcp.compute.RegionNetworkFirewallPolicyWithRules("region-network-firewall-policy-with-rules", name="tf-region-fw-policy-with-rules", @@ -403,7 +403,7 @@ def __init__(__self__, "dest_address_groups": [address_group1.id], }, "target_secure_tags": [{ - "name": secure_tag_value1.name.apply(lambda name: f"tagValues/{name}"), + "name": secure_tag_value1.id, }], }, { @@ -432,7 +432,7 @@ def __init__(__self__, ], "src_address_groups": [address_group1.id], "src_secure_tags": [{ - "name": secure_tag_value1.name.apply(lambda name: f"tagValues/{name}"), + "name": secure_tag_value1.id, }], }, "disabled": True, @@ -502,7 +502,7 @@ def __init__(__self__, project = gcp.organizations.get_project() address_group1 = gcp.networksecurity.AddressGroup("address_group_1", name="tf-address-group", - parent=f"projects/{project.name}", + parent=project.id, description="Regional address group", location="us-west2", items=["208.80.154.224/32"], @@ -510,7 +510,7 @@ def __init__(__self__, capacity=100) secure_tag_key1 = gcp.tags.TagKey("secure_tag_key_1", description="Tag key", - parent=f"projects/{project.name}", + parent=project.id, purpose="GCE_FIREWALL", short_name="tf-tag-key", purpose_data={ @@ -518,7 +518,7 @@ def __init__(__self__, }) secure_tag_value1 = gcp.tags.TagValue("secure_tag_value_1", description="Tag value", - parent=secure_tag_key1.name.apply(lambda name: f"tagKeys/{name}"), + parent=secure_tag_key1.id, short_name="tf-tag-value") region_network_firewall_policy_with_rules = gcp.compute.RegionNetworkFirewallPolicyWithRules("region-network-firewall-policy-with-rules", name="tf-region-fw-policy-with-rules", @@ -555,7 +555,7 @@ def __init__(__self__, "dest_address_groups": [address_group1.id], }, "target_secure_tags": [{ - "name": secure_tag_value1.name.apply(lambda name: f"tagValues/{name}"), + "name": secure_tag_value1.id, }], }, { @@ -584,7 +584,7 @@ def __init__(__self__, ], "src_address_groups": [address_group1.id], "src_secure_tags": [{ - "name": secure_tag_value1.name.apply(lambda name: f"tagValues/{name}"), + "name": secure_tag_value1.id, }], }, "disabled": True, diff --git a/sdk/python/pulumi_gcp/compute/region_resize_request.py b/sdk/python/pulumi_gcp/compute/region_resize_request.py new file mode 100644 index 0000000000..db904134aa --- /dev/null +++ b/sdk/python/pulumi_gcp/compute/region_resize_request.py @@ -0,0 +1,772 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['RegionResizeRequestArgs', 'RegionResizeRequest'] + +@pulumi.input_type +class RegionResizeRequestArgs: + def __init__(__self__, *, + instance_group_manager: pulumi.Input[str], + region: pulumi.Input[str], + resize_by: pulumi.Input[int], + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + requested_run_duration: Optional[pulumi.Input['RegionResizeRequestRequestedRunDurationArgs']] = None): + """ + The set of arguments for constructing a RegionResizeRequest resource. + :param pulumi.Input[str] instance_group_manager: The reference of the regional instance group manager this ResizeRequest is a part of. + + + - - - + :param pulumi.Input[str] region: The reference of the compute region scoping this request. + :param pulumi.Input[int] resize_by: The number of instances to be created by this resize request. The group's target size will be increased by this number. + :param pulumi.Input[str] description: An optional description of this resize-request. + :param pulumi.Input[str] name: The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + :param pulumi.Input['RegionResizeRequestRequestedRunDurationArgs'] requested_run_duration: Requested run duration for instances that will be created by this request. At the end of the run duration instances will be deleted. + Structure is documented below. + """ + pulumi.set(__self__, "instance_group_manager", instance_group_manager) + pulumi.set(__self__, "region", region) + pulumi.set(__self__, "resize_by", resize_by) + if description is not None: + pulumi.set(__self__, "description", description) + if name is not None: + pulumi.set(__self__, "name", name) + if project is not None: + pulumi.set(__self__, "project", project) + if requested_run_duration is not None: + pulumi.set(__self__, "requested_run_duration", requested_run_duration) + + @property + @pulumi.getter(name="instanceGroupManager") + def instance_group_manager(self) -> pulumi.Input[str]: + """ + The reference of the regional instance group manager this ResizeRequest is a part of. + + + - - - + """ + return pulumi.get(self, "instance_group_manager") + + @instance_group_manager.setter + def instance_group_manager(self, value: pulumi.Input[str]): + pulumi.set(self, "instance_group_manager", value) + + @property + @pulumi.getter + def region(self) -> pulumi.Input[str]: + """ + The reference of the compute region scoping this request. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: pulumi.Input[str]): + pulumi.set(self, "region", value) + + @property + @pulumi.getter(name="resizeBy") + def resize_by(self) -> pulumi.Input[int]: + """ + The number of instances to be created by this resize request. The group's target size will be increased by this number. + """ + return pulumi.get(self, "resize_by") + + @resize_by.setter + def resize_by(self, value: pulumi.Input[int]): + pulumi.set(self, "resize_by", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + An optional description of this resize-request. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def project(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + """ + return pulumi.get(self, "project") + + @project.setter + def project(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project", value) + + @property + @pulumi.getter(name="requestedRunDuration") + def requested_run_duration(self) -> Optional[pulumi.Input['RegionResizeRequestRequestedRunDurationArgs']]: + """ + Requested run duration for instances that will be created by this request. At the end of the run duration instances will be deleted. + Structure is documented below. + """ + return pulumi.get(self, "requested_run_duration") + + @requested_run_duration.setter + def requested_run_duration(self, value: Optional[pulumi.Input['RegionResizeRequestRequestedRunDurationArgs']]): + pulumi.set(self, "requested_run_duration", value) + + +@pulumi.input_type +class _RegionResizeRequestState: + def __init__(__self__, *, + creation_timestamp: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + instance_group_manager: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + requested_run_duration: Optional[pulumi.Input['RegionResizeRequestRequestedRunDurationArgs']] = None, + resize_by: Optional[pulumi.Input[int]] = None, + state: Optional[pulumi.Input[str]] = None, + statuses: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusArgs']]]] = None): + """ + Input properties used for looking up and filtering RegionResizeRequest resources. + :param pulumi.Input[str] creation_timestamp: The creation timestamp for this resize request in RFC3339 text format. + :param pulumi.Input[str] description: An optional description of this resize-request. + :param pulumi.Input[str] instance_group_manager: The reference of the regional instance group manager this ResizeRequest is a part of. + + + - - - + :param pulumi.Input[str] name: The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + :param pulumi.Input[str] region: The reference of the compute region scoping this request. + :param pulumi.Input['RegionResizeRequestRequestedRunDurationArgs'] requested_run_duration: Requested run duration for instances that will be created by this request. At the end of the run duration instances will be deleted. + Structure is documented below. + :param pulumi.Input[int] resize_by: The number of instances to be created by this resize request. The group's target size will be increased by this number. + :param pulumi.Input[str] state: Current state of the request. + :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusArgs']]] statuses: Status of the request. + Structure is documented below. + """ + if creation_timestamp is not None: + pulumi.set(__self__, "creation_timestamp", creation_timestamp) + if description is not None: + pulumi.set(__self__, "description", description) + if instance_group_manager is not None: + pulumi.set(__self__, "instance_group_manager", instance_group_manager) + if name is not None: + pulumi.set(__self__, "name", name) + if project is not None: + pulumi.set(__self__, "project", project) + if region is not None: + pulumi.set(__self__, "region", region) + if requested_run_duration is not None: + pulumi.set(__self__, "requested_run_duration", requested_run_duration) + if resize_by is not None: + pulumi.set(__self__, "resize_by", resize_by) + if state is not None: + pulumi.set(__self__, "state", state) + if statuses is not None: + pulumi.set(__self__, "statuses", statuses) + + @property + @pulumi.getter(name="creationTimestamp") + def creation_timestamp(self) -> Optional[pulumi.Input[str]]: + """ + The creation timestamp for this resize request in RFC3339 text format. + """ + return pulumi.get(self, "creation_timestamp") + + @creation_timestamp.setter + def creation_timestamp(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "creation_timestamp", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + An optional description of this resize-request. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter(name="instanceGroupManager") + def instance_group_manager(self) -> Optional[pulumi.Input[str]]: + """ + The reference of the regional instance group manager this ResizeRequest is a part of. + + + - - - + """ + return pulumi.get(self, "instance_group_manager") + + @instance_group_manager.setter + def instance_group_manager(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "instance_group_manager", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def project(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + """ + return pulumi.get(self, "project") + + @project.setter + def project(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project", value) + + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[str]]: + """ + The reference of the compute region scoping this request. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "region", value) + + @property + @pulumi.getter(name="requestedRunDuration") + def requested_run_duration(self) -> Optional[pulumi.Input['RegionResizeRequestRequestedRunDurationArgs']]: + """ + Requested run duration for instances that will be created by this request. At the end of the run duration instances will be deleted. + Structure is documented below. + """ + return pulumi.get(self, "requested_run_duration") + + @requested_run_duration.setter + def requested_run_duration(self, value: Optional[pulumi.Input['RegionResizeRequestRequestedRunDurationArgs']]): + pulumi.set(self, "requested_run_duration", value) + + @property + @pulumi.getter(name="resizeBy") + def resize_by(self) -> Optional[pulumi.Input[int]]: + """ + The number of instances to be created by this resize request. The group's target size will be increased by this number. + """ + return pulumi.get(self, "resize_by") + + @resize_by.setter + def resize_by(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "resize_by", value) + + @property + @pulumi.getter + def state(self) -> Optional[pulumi.Input[str]]: + """ + Current state of the request. + """ + return pulumi.get(self, "state") + + @state.setter + def state(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "state", value) + + @property + @pulumi.getter + def statuses(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusArgs']]]]: + """ + Status of the request. + Structure is documented below. + """ + return pulumi.get(self, "statuses") + + @statuses.setter + def statuses(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusArgs']]]]): + pulumi.set(self, "statuses", value) + + +class RegionResizeRequest(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + description: Optional[pulumi.Input[str]] = None, + instance_group_manager: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + requested_run_duration: Optional[pulumi.Input[Union['RegionResizeRequestRequestedRunDurationArgs', 'RegionResizeRequestRequestedRunDurationArgsDict']]] = None, + resize_by: Optional[pulumi.Input[int]] = None, + __props__=None): + """ + ## Example Usage + + ### Compute Rmig Resize Request + + ```python + import pulumi + import pulumi_gcp as gcp + + a3_dws = gcp.compute.RegionInstanceTemplate("a3_dws", + name="a3-dws", + region="us-central1", + description="This template is used to create a mig instance that is compatible with DWS resize requests.", + instance_description="A3 GPU", + machine_type="a3-highgpu-8g", + can_ip_forward=False, + scheduling={ + "automatic_restart": False, + "on_host_maintenance": "TERMINATE", + }, + disks=[{ + "source_image": "cos-cloud/cos-105-lts", + "auto_delete": True, + "boot": True, + "disk_type": "pd-ssd", + "disk_size_gb": 960, + "mode": "READ_WRITE", + }], + guest_accelerators=[{ + "type": "nvidia-h100-80gb", + "count": 8, + }], + reservation_affinity={ + "type": "NO_RESERVATION", + }, + shielded_instance_config={ + "enable_vtpm": True, + "enable_integrity_monitoring": True, + }, + network_interfaces=[{ + "network": "default", + }]) + a3_dws_region_instance_group_manager = gcp.compute.RegionInstanceGroupManager("a3_dws", + name="a3-dws", + base_instance_name="a3-dws", + region="us-central1", + versions=[{ + "instance_template": a3_dws.self_link, + }], + instance_lifecycle_policy={ + "default_action_on_failure": "DO_NOTHING", + }, + distribution_policy_target_shape="ANY_SINGLE_ZONE", + distribution_policy_zones=[ + "us-central1-a", + "us-central1-b", + "us-central1-c", + "us-central1-f", + ], + update_policy={ + "instance_redistribution_type": "NONE", + "type": "OPPORTUNISTIC", + "minimal_action": "REPLACE", + "max_surge_fixed": 0, + "max_unavailable_fixed": 6, + }, + wait_for_instances=False) + a3_resize_request = gcp.compute.RegionResizeRequest("a3_resize_request", + name="a3-dws", + instance_group_manager=a3_dws_region_instance_group_manager.name, + region="us-central1", + description="Test resize request resource", + resize_by=2, + requested_run_duration={ + "seconds": "14400", + "nanos": 0, + }) + ``` + + ## Import + + RegionResizeRequest can be imported using any of these accepted formats: + + * `projects/{{project}}/regions/{{region}}/instanceGroupManagers/{{instance_group_manager}}/resizeRequests/{{name}}` + + * `{{project}}/{{region}}/{{instance_group_manager}}/{{name}}` + + * `{{region}}/{{instance_group_manager}}/{{name}}` + + * `{{instance_group_manager}}/{{name}}` + + When using the `pulumi import` command, RegionResizeRequest can be imported using one of the formats above. For example: + + ```sh + $ pulumi import gcp:compute/regionResizeRequest:RegionResizeRequest default projects/{{project}}/regions/{{region}}/instanceGroupManagers/{{instance_group_manager}}/resizeRequests/{{name}} + ``` + + ```sh + $ pulumi import gcp:compute/regionResizeRequest:RegionResizeRequest default {{project}}/{{region}}/{{instance_group_manager}}/{{name}} + ``` + + ```sh + $ pulumi import gcp:compute/regionResizeRequest:RegionResizeRequest default {{region}}/{{instance_group_manager}}/{{name}} + ``` + + ```sh + $ pulumi import gcp:compute/regionResizeRequest:RegionResizeRequest default {{instance_group_manager}}/{{name}} + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] description: An optional description of this resize-request. + :param pulumi.Input[str] instance_group_manager: The reference of the regional instance group manager this ResizeRequest is a part of. + + + - - - + :param pulumi.Input[str] name: The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + :param pulumi.Input[str] region: The reference of the compute region scoping this request. + :param pulumi.Input[Union['RegionResizeRequestRequestedRunDurationArgs', 'RegionResizeRequestRequestedRunDurationArgsDict']] requested_run_duration: Requested run duration for instances that will be created by this request. At the end of the run duration instances will be deleted. + Structure is documented below. + :param pulumi.Input[int] resize_by: The number of instances to be created by this resize request. The group's target size will be increased by this number. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: RegionResizeRequestArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + ## Example Usage + + ### Compute Rmig Resize Request + + ```python + import pulumi + import pulumi_gcp as gcp + + a3_dws = gcp.compute.RegionInstanceTemplate("a3_dws", + name="a3-dws", + region="us-central1", + description="This template is used to create a mig instance that is compatible with DWS resize requests.", + instance_description="A3 GPU", + machine_type="a3-highgpu-8g", + can_ip_forward=False, + scheduling={ + "automatic_restart": False, + "on_host_maintenance": "TERMINATE", + }, + disks=[{ + "source_image": "cos-cloud/cos-105-lts", + "auto_delete": True, + "boot": True, + "disk_type": "pd-ssd", + "disk_size_gb": 960, + "mode": "READ_WRITE", + }], + guest_accelerators=[{ + "type": "nvidia-h100-80gb", + "count": 8, + }], + reservation_affinity={ + "type": "NO_RESERVATION", + }, + shielded_instance_config={ + "enable_vtpm": True, + "enable_integrity_monitoring": True, + }, + network_interfaces=[{ + "network": "default", + }]) + a3_dws_region_instance_group_manager = gcp.compute.RegionInstanceGroupManager("a3_dws", + name="a3-dws", + base_instance_name="a3-dws", + region="us-central1", + versions=[{ + "instance_template": a3_dws.self_link, + }], + instance_lifecycle_policy={ + "default_action_on_failure": "DO_NOTHING", + }, + distribution_policy_target_shape="ANY_SINGLE_ZONE", + distribution_policy_zones=[ + "us-central1-a", + "us-central1-b", + "us-central1-c", + "us-central1-f", + ], + update_policy={ + "instance_redistribution_type": "NONE", + "type": "OPPORTUNISTIC", + "minimal_action": "REPLACE", + "max_surge_fixed": 0, + "max_unavailable_fixed": 6, + }, + wait_for_instances=False) + a3_resize_request = gcp.compute.RegionResizeRequest("a3_resize_request", + name="a3-dws", + instance_group_manager=a3_dws_region_instance_group_manager.name, + region="us-central1", + description="Test resize request resource", + resize_by=2, + requested_run_duration={ + "seconds": "14400", + "nanos": 0, + }) + ``` + + ## Import + + RegionResizeRequest can be imported using any of these accepted formats: + + * `projects/{{project}}/regions/{{region}}/instanceGroupManagers/{{instance_group_manager}}/resizeRequests/{{name}}` + + * `{{project}}/{{region}}/{{instance_group_manager}}/{{name}}` + + * `{{region}}/{{instance_group_manager}}/{{name}}` + + * `{{instance_group_manager}}/{{name}}` + + When using the `pulumi import` command, RegionResizeRequest can be imported using one of the formats above. For example: + + ```sh + $ pulumi import gcp:compute/regionResizeRequest:RegionResizeRequest default projects/{{project}}/regions/{{region}}/instanceGroupManagers/{{instance_group_manager}}/resizeRequests/{{name}} + ``` + + ```sh + $ pulumi import gcp:compute/regionResizeRequest:RegionResizeRequest default {{project}}/{{region}}/{{instance_group_manager}}/{{name}} + ``` + + ```sh + $ pulumi import gcp:compute/regionResizeRequest:RegionResizeRequest default {{region}}/{{instance_group_manager}}/{{name}} + ``` + + ```sh + $ pulumi import gcp:compute/regionResizeRequest:RegionResizeRequest default {{instance_group_manager}}/{{name}} + ``` + + :param str resource_name: The name of the resource. + :param RegionResizeRequestArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(RegionResizeRequestArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + description: Optional[pulumi.Input[str]] = None, + instance_group_manager: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + requested_run_duration: Optional[pulumi.Input[Union['RegionResizeRequestRequestedRunDurationArgs', 'RegionResizeRequestRequestedRunDurationArgsDict']]] = None, + resize_by: Optional[pulumi.Input[int]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = RegionResizeRequestArgs.__new__(RegionResizeRequestArgs) + + __props__.__dict__["description"] = description + if instance_group_manager is None and not opts.urn: + raise TypeError("Missing required property 'instance_group_manager'") + __props__.__dict__["instance_group_manager"] = instance_group_manager + __props__.__dict__["name"] = name + __props__.__dict__["project"] = project + if region is None and not opts.urn: + raise TypeError("Missing required property 'region'") + __props__.__dict__["region"] = region + __props__.__dict__["requested_run_duration"] = requested_run_duration + if resize_by is None and not opts.urn: + raise TypeError("Missing required property 'resize_by'") + __props__.__dict__["resize_by"] = resize_by + __props__.__dict__["creation_timestamp"] = None + __props__.__dict__["state"] = None + __props__.__dict__["statuses"] = None + super(RegionResizeRequest, __self__).__init__( + 'gcp:compute/regionResizeRequest:RegionResizeRequest', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + creation_timestamp: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + instance_group_manager: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + requested_run_duration: Optional[pulumi.Input[Union['RegionResizeRequestRequestedRunDurationArgs', 'RegionResizeRequestRequestedRunDurationArgsDict']]] = None, + resize_by: Optional[pulumi.Input[int]] = None, + state: Optional[pulumi.Input[str]] = None, + statuses: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RegionResizeRequestStatusArgs', 'RegionResizeRequestStatusArgsDict']]]]] = None) -> 'RegionResizeRequest': + """ + Get an existing RegionResizeRequest resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] creation_timestamp: The creation timestamp for this resize request in RFC3339 text format. + :param pulumi.Input[str] description: An optional description of this resize-request. + :param pulumi.Input[str] instance_group_manager: The reference of the regional instance group manager this ResizeRequest is a part of. + + + - - - + :param pulumi.Input[str] name: The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + :param pulumi.Input[str] region: The reference of the compute region scoping this request. + :param pulumi.Input[Union['RegionResizeRequestRequestedRunDurationArgs', 'RegionResizeRequestRequestedRunDurationArgsDict']] requested_run_duration: Requested run duration for instances that will be created by this request. At the end of the run duration instances will be deleted. + Structure is documented below. + :param pulumi.Input[int] resize_by: The number of instances to be created by this resize request. The group's target size will be increased by this number. + :param pulumi.Input[str] state: Current state of the request. + :param pulumi.Input[Sequence[pulumi.Input[Union['RegionResizeRequestStatusArgs', 'RegionResizeRequestStatusArgsDict']]]] statuses: Status of the request. + Structure is documented below. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _RegionResizeRequestState.__new__(_RegionResizeRequestState) + + __props__.__dict__["creation_timestamp"] = creation_timestamp + __props__.__dict__["description"] = description + __props__.__dict__["instance_group_manager"] = instance_group_manager + __props__.__dict__["name"] = name + __props__.__dict__["project"] = project + __props__.__dict__["region"] = region + __props__.__dict__["requested_run_duration"] = requested_run_duration + __props__.__dict__["resize_by"] = resize_by + __props__.__dict__["state"] = state + __props__.__dict__["statuses"] = statuses + return RegionResizeRequest(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="creationTimestamp") + def creation_timestamp(self) -> pulumi.Output[str]: + """ + The creation timestamp for this resize request in RFC3339 text format. + """ + return pulumi.get(self, "creation_timestamp") + + @property + @pulumi.getter + def description(self) -> pulumi.Output[Optional[str]]: + """ + An optional description of this resize-request. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="instanceGroupManager") + def instance_group_manager(self) -> pulumi.Output[str]: + """ + The reference of the regional instance group manager this ResizeRequest is a part of. + + + - - - + """ + return pulumi.get(self, "instance_group_manager") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def project(self) -> pulumi.Output[str]: + """ + The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + """ + return pulumi.get(self, "project") + + @property + @pulumi.getter + def region(self) -> pulumi.Output[str]: + """ + The reference of the compute region scoping this request. + """ + return pulumi.get(self, "region") + + @property + @pulumi.getter(name="requestedRunDuration") + def requested_run_duration(self) -> pulumi.Output[Optional['outputs.RegionResizeRequestRequestedRunDuration']]: + """ + Requested run duration for instances that will be created by this request. At the end of the run duration instances will be deleted. + Structure is documented below. + """ + return pulumi.get(self, "requested_run_duration") + + @property + @pulumi.getter(name="resizeBy") + def resize_by(self) -> pulumi.Output[int]: + """ + The number of instances to be created by this resize request. The group's target size will be increased by this number. + """ + return pulumi.get(self, "resize_by") + + @property + @pulumi.getter + def state(self) -> pulumi.Output[str]: + """ + Current state of the request. + """ + return pulumi.get(self, "state") + + @property + @pulumi.getter + def statuses(self) -> pulumi.Output[Sequence['outputs.RegionResizeRequestStatus']]: + """ + Status of the request. + Structure is documented below. + """ + return pulumi.get(self, "statuses") + diff --git a/sdk/python/pulumi_gcp/compute/region_security_policy.py b/sdk/python/pulumi_gcp/compute/region_security_policy.py index d8bfcf94a9..00c8bc2d26 100644 --- a/sdk/python/pulumi_gcp/compute/region_security_policy.py +++ b/sdk/python/pulumi_gcp/compute/region_security_policy.py @@ -26,6 +26,7 @@ def __init__(__self__, *, name: Optional[pulumi.Input[str]] = None, project: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRuleArgs']]]] = None, type: Optional[pulumi.Input[str]] = None, user_defined_fields: Optional[pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyUserDefinedFieldArgs']]]] = None): """ @@ -42,6 +43,8 @@ def __init__(__self__, *, If it is not provided, the provider project is used. :param pulumi.Input[str] region: The Region in which the created Region Security Policy should reside. If it is not provided, the provider region is used. + :param pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRuleArgs']]] rules: The set of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added. + Structure is documented below. :param pulumi.Input[str] type: The type indicates the intended use of the security policy. - CLOUD_ARMOR: Cloud Armor backend security policies can be configured to filter incoming HTTP requests targeting backend services. They filter requests before they hit the origin servers. - CLOUD_ARMOR_EDGE: Cloud Armor edge security policies can be configured to filter incoming HTTP requests targeting backend services (including Cloud CDN-enabled) as well as backend buckets (Cloud Storage). They filter requests before the request is served from Google's cache. @@ -63,6 +66,8 @@ def __init__(__self__, *, pulumi.set(__self__, "project", project) if region is not None: pulumi.set(__self__, "region", region) + if rules is not None: + pulumi.set(__self__, "rules", rules) if type is not None: pulumi.set(__self__, "type", type) if user_defined_fields is not None: @@ -135,6 +140,19 @@ def region(self) -> Optional[pulumi.Input[str]]: def region(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "region", value) + @property + @pulumi.getter + def rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRuleArgs']]]]: + """ + The set of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added. + Structure is documented below. + """ + return pulumi.get(self, "rules") + + @rules.setter + def rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRuleArgs']]]]): + pulumi.set(self, "rules", value) + @property @pulumi.getter def type(self) -> Optional[pulumi.Input[str]]: @@ -178,6 +196,7 @@ def __init__(__self__, *, policy_id: Optional[pulumi.Input[str]] = None, project: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRuleArgs']]]] = None, self_link: Optional[pulumi.Input[str]] = None, self_link_with_policy_id: Optional[pulumi.Input[str]] = None, type: Optional[pulumi.Input[str]] = None, @@ -199,6 +218,8 @@ def __init__(__self__, *, If it is not provided, the provider project is used. :param pulumi.Input[str] region: The Region in which the created Region Security Policy should reside. If it is not provided, the provider region is used. + :param pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRuleArgs']]] rules: The set of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added. + Structure is documented below. :param pulumi.Input[str] self_link: Server-defined URL for the resource. :param pulumi.Input[str] self_link_with_policy_id: Server-defined URL for this resource with the resource id. :param pulumi.Input[str] type: The type indicates the intended use of the security policy. @@ -226,6 +247,8 @@ def __init__(__self__, *, pulumi.set(__self__, "project", project) if region is not None: pulumi.set(__self__, "region", region) + if rules is not None: + pulumi.set(__self__, "rules", rules) if self_link is not None: pulumi.set(__self__, "self_link", self_link) if self_link_with_policy_id is not None: @@ -327,6 +350,19 @@ def region(self) -> Optional[pulumi.Input[str]]: def region(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "region", value) + @property + @pulumi.getter + def rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRuleArgs']]]]: + """ + The set of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added. + Structure is documented below. + """ + return pulumi.get(self, "rules") + + @rules.setter + def rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRuleArgs']]]]): + pulumi.set(self, "rules", value) + @property @pulumi.getter(name="selfLink") def self_link(self) -> Optional[pulumi.Input[str]]: @@ -394,6 +430,7 @@ def __init__(__self__, name: Optional[pulumi.Input[str]] = None, project: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RegionSecurityPolicyRuleArgs', 'RegionSecurityPolicyRuleArgsDict']]]]] = None, type: Optional[pulumi.Input[str]] = None, user_defined_fields: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RegionSecurityPolicyUserDefinedFieldArgs', 'RegionSecurityPolicyUserDefinedFieldArgsDict']]]]] = None, __props__=None): @@ -452,6 +489,39 @@ def __init__(__self__, }, ]) ``` + ### Region Security Policy With Rules + + ```python + import pulumi + import pulumi_gcp as gcp + + region_sec_policy_with_rules = gcp.compute.RegionSecurityPolicy("region-sec-policy-with-rules", + name="my-sec-policy-with-rules", + description="basic region security policy with multiple rules", + type="CLOUD_ARMOR", + rules=[ + { + "action": "deny", + "priority": 1000, + "match": { + "expr": { + "expression": "request.path.matches(\\"/login.html\\") && token.recaptcha_session.score < 0.2", + }, + }, + }, + { + "action": "deny", + "priority": 2147483647, + "match": { + "versioned_expr": "SRC_IPS_V1", + "config": { + "src_ip_ranges": ["*"], + }, + }, + "description": "default rule", + }, + ]) + ``` ## Import @@ -497,6 +567,8 @@ def __init__(__self__, If it is not provided, the provider project is used. :param pulumi.Input[str] region: The Region in which the created Region Security Policy should reside. If it is not provided, the provider region is used. + :param pulumi.Input[Sequence[pulumi.Input[Union['RegionSecurityPolicyRuleArgs', 'RegionSecurityPolicyRuleArgsDict']]]] rules: The set of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added. + Structure is documented below. :param pulumi.Input[str] type: The type indicates the intended use of the security policy. - CLOUD_ARMOR: Cloud Armor backend security policies can be configured to filter incoming HTTP requests targeting backend services. They filter requests before they hit the origin servers. - CLOUD_ARMOR_EDGE: Cloud Armor edge security policies can be configured to filter incoming HTTP requests targeting backend services (including Cloud CDN-enabled) as well as backend buckets (Cloud Storage). They filter requests before the request is served from Google's cache. @@ -569,6 +641,39 @@ def __init__(__self__, }, ]) ``` + ### Region Security Policy With Rules + + ```python + import pulumi + import pulumi_gcp as gcp + + region_sec_policy_with_rules = gcp.compute.RegionSecurityPolicy("region-sec-policy-with-rules", + name="my-sec-policy-with-rules", + description="basic region security policy with multiple rules", + type="CLOUD_ARMOR", + rules=[ + { + "action": "deny", + "priority": 1000, + "match": { + "expr": { + "expression": "request.path.matches(\\"/login.html\\") && token.recaptcha_session.score < 0.2", + }, + }, + }, + { + "action": "deny", + "priority": 2147483647, + "match": { + "versioned_expr": "SRC_IPS_V1", + "config": { + "src_ip_ranges": ["*"], + }, + }, + "description": "default rule", + }, + ]) + ``` ## Import @@ -620,6 +725,7 @@ def _internal_init(__self__, name: Optional[pulumi.Input[str]] = None, project: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RegionSecurityPolicyRuleArgs', 'RegionSecurityPolicyRuleArgsDict']]]]] = None, type: Optional[pulumi.Input[str]] = None, user_defined_fields: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RegionSecurityPolicyUserDefinedFieldArgs', 'RegionSecurityPolicyUserDefinedFieldArgsDict']]]]] = None, __props__=None): @@ -636,6 +742,7 @@ def _internal_init(__self__, __props__.__dict__["name"] = name __props__.__dict__["project"] = project __props__.__dict__["region"] = region + __props__.__dict__["rules"] = rules __props__.__dict__["type"] = type __props__.__dict__["user_defined_fields"] = user_defined_fields __props__.__dict__["fingerprint"] = None @@ -659,6 +766,7 @@ def get(resource_name: str, policy_id: Optional[pulumi.Input[str]] = None, project: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RegionSecurityPolicyRuleArgs', 'RegionSecurityPolicyRuleArgsDict']]]]] = None, self_link: Optional[pulumi.Input[str]] = None, self_link_with_policy_id: Optional[pulumi.Input[str]] = None, type: Optional[pulumi.Input[str]] = None, @@ -685,6 +793,8 @@ def get(resource_name: str, If it is not provided, the provider project is used. :param pulumi.Input[str] region: The Region in which the created Region Security Policy should reside. If it is not provided, the provider region is used. + :param pulumi.Input[Sequence[pulumi.Input[Union['RegionSecurityPolicyRuleArgs', 'RegionSecurityPolicyRuleArgsDict']]]] rules: The set of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added. + Structure is documented below. :param pulumi.Input[str] self_link: Server-defined URL for the resource. :param pulumi.Input[str] self_link_with_policy_id: Server-defined URL for this resource with the resource id. :param pulumi.Input[str] type: The type indicates the intended use of the security policy. @@ -709,6 +819,7 @@ def get(resource_name: str, __props__.__dict__["policy_id"] = policy_id __props__.__dict__["project"] = project __props__.__dict__["region"] = region + __props__.__dict__["rules"] = rules __props__.__dict__["self_link"] = self_link __props__.__dict__["self_link_with_policy_id"] = self_link_with_policy_id __props__.__dict__["type"] = type @@ -779,6 +890,15 @@ def region(self) -> pulumi.Output[str]: """ return pulumi.get(self, "region") + @property + @pulumi.getter + def rules(self) -> pulumi.Output[Sequence['outputs.RegionSecurityPolicyRule']]: + """ + The set of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added. + Structure is documented below. + """ + return pulumi.get(self, "rules") + @property @pulumi.getter(name="selfLink") def self_link(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_gcp/compute/region_security_policy_rule.py b/sdk/python/pulumi_gcp/compute/region_security_policy_rule.py index 787d2e0171..5d5fe7de6d 100644 --- a/sdk/python/pulumi_gcp/compute/region_security_policy_rule.py +++ b/sdk/python/pulumi_gcp/compute/region_security_policy_rule.py @@ -16,10 +16,10 @@ from . import outputs from ._inputs import * -__all__ = ['RegionSecurityPolicyRuleArgs', 'RegionSecurityPolicyRule'] +__all__ = ['RegionSecurityPolicyRuleInitArgs', 'RegionSecurityPolicyRule'] @pulumi.input_type -class RegionSecurityPolicyRuleArgs: +class RegionSecurityPolicyRuleInitArgs: def __init__(__self__, *, action: pulumi.Input[str], priority: pulumi.Input[int], @@ -780,7 +780,7 @@ def __init__(__self__, @overload def __init__(__self__, resource_name: str, - args: RegionSecurityPolicyRuleArgs, + args: RegionSecurityPolicyRuleInitArgs, opts: Optional[pulumi.ResourceOptions] = None): """ ## Example Usage @@ -1026,12 +1026,12 @@ def __init__(__self__, ``` :param str resource_name: The name of the resource. - :param RegionSecurityPolicyRuleArgs args: The arguments to use to populate this resource's properties. + :param RegionSecurityPolicyRuleInitArgs args: The arguments to use to populate this resource's properties. :param pulumi.ResourceOptions opts: Options for the resource. """ ... def __init__(__self__, resource_name: str, *args, **kwargs): - resource_args, opts = _utilities.get_resource_args_opts(RegionSecurityPolicyRuleArgs, pulumi.ResourceOptions, *args, **kwargs) + resource_args, opts = _utilities.get_resource_args_opts(RegionSecurityPolicyRuleInitArgs, pulumi.ResourceOptions, *args, **kwargs) if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: @@ -1058,7 +1058,7 @@ def _internal_init(__self__, if opts.id is None: if __props__ is not None: raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') - __props__ = RegionSecurityPolicyRuleArgs.__new__(RegionSecurityPolicyRuleArgs) + __props__ = RegionSecurityPolicyRuleInitArgs.__new__(RegionSecurityPolicyRuleInitArgs) if action is None and not opts.urn: raise TypeError("Missing required property 'action'") diff --git a/sdk/python/pulumi_gcp/compute/router_peer.py b/sdk/python/pulumi_gcp/compute/router_peer.py index fe48b347a6..82d0e73cfe 100644 --- a/sdk/python/pulumi_gcp/compute/router_peer.py +++ b/sdk/python/pulumi_gcp/compute/router_peer.py @@ -81,11 +81,14 @@ def __init__(__self__, *, length, the routes with the lowest priority value win. :param pulumi.Input['RouterPeerBfdArgs'] bfd: BFD configuration for the BGP peering. Structure is documented below. - :param pulumi.Input[Sequence[pulumi.Input['RouterPeerCustomLearnedIpRangeArgs']]] custom_learned_ip_ranges: The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a - subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. - :param pulumi.Input[int] custom_learned_route_priority: The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route - ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a - priority of 100 to the ranges. + :param pulumi.Input[Sequence[pulumi.Input['RouterPeerCustomLearnedIpRangeArgs']]] custom_learned_ip_ranges: The custom learned route IP address range. Must be a valid CIDR-formatted prefix. + If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, + a /32 singular IP address range, and, for IPv6, /128. + Structure is documented below. + :param pulumi.Input[int] custom_learned_route_priority: The user-defined custom learned route priority for a BGP session. + This value is applied to all custom learned route ranges for the session. + You can choose a value from 0 to 65335. If you don't provide a value, + Google Cloud assigns a priority of 100 to the ranges. :param pulumi.Input[bool] enable: The status of the BGP peer connection. If set to false, any active session with the peer is terminated and all associated routing information is removed. If set to true, the peer connection can be established with routing information. @@ -301,8 +304,10 @@ def bfd(self, value: Optional[pulumi.Input['RouterPeerBfdArgs']]): @pulumi.getter(name="customLearnedIpRanges") def custom_learned_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RouterPeerCustomLearnedIpRangeArgs']]]]: """ - The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a - subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + The custom learned route IP address range. Must be a valid CIDR-formatted prefix. + If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, + a /32 singular IP address range, and, for IPv6, /128. + Structure is documented below. """ return pulumi.get(self, "custom_learned_ip_ranges") @@ -314,9 +319,10 @@ def custom_learned_ip_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi. @pulumi.getter(name="customLearnedRoutePriority") def custom_learned_route_priority(self) -> Optional[pulumi.Input[int]]: """ - The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route - ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a - priority of 100 to the ranges. + The user-defined custom learned route priority for a BGP session. + This value is applied to all custom learned route ranges for the session. + You can choose a value from 0 to 65335. If you don't provide a value, + Google Cloud assigns a priority of 100 to the ranges. """ return pulumi.get(self, "custom_learned_route_priority") @@ -598,11 +604,14 @@ def __init__(__self__, *, length, the routes with the lowest priority value win. :param pulumi.Input['RouterPeerBfdArgs'] bfd: BFD configuration for the BGP peering. Structure is documented below. - :param pulumi.Input[Sequence[pulumi.Input['RouterPeerCustomLearnedIpRangeArgs']]] custom_learned_ip_ranges: The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a - subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. - :param pulumi.Input[int] custom_learned_route_priority: The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route - ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a - priority of 100 to the ranges. + :param pulumi.Input[Sequence[pulumi.Input['RouterPeerCustomLearnedIpRangeArgs']]] custom_learned_ip_ranges: The custom learned route IP address range. Must be a valid CIDR-formatted prefix. + If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, + a /32 singular IP address range, and, for IPv6, /128. + Structure is documented below. + :param pulumi.Input[int] custom_learned_route_priority: The user-defined custom learned route priority for a BGP session. + This value is applied to all custom learned route ranges for the session. + You can choose a value from 0 to 65335. If you don't provide a value, + Google Cloud assigns a priority of 100 to the ranges. :param pulumi.Input[bool] enable: The status of the BGP peer connection. If set to false, any active session with the peer is terminated and all associated routing information is removed. If set to true, the peer connection can be established with routing information. @@ -799,8 +808,10 @@ def bfd(self, value: Optional[pulumi.Input['RouterPeerBfdArgs']]): @pulumi.getter(name="customLearnedIpRanges") def custom_learned_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RouterPeerCustomLearnedIpRangeArgs']]]]: """ - The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a - subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + The custom learned route IP address range. Must be a valid CIDR-formatted prefix. + If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, + a /32 singular IP address range, and, for IPv6, /128. + Structure is documented below. """ return pulumi.get(self, "custom_learned_ip_ranges") @@ -812,9 +823,10 @@ def custom_learned_ip_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi. @pulumi.getter(name="customLearnedRoutePriority") def custom_learned_route_priority(self) -> Optional[pulumi.Input[int]]: """ - The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route - ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a - priority of 100 to the ranges. + The user-defined custom learned route priority for a BGP session. + This value is applied to all custom learned route ranges for the session. + You can choose a value from 0 to 65335. If you don't provide a value, + Google Cloud assigns a priority of 100 to the ranges. """ return pulumi.get(self, "custom_learned_route_priority") @@ -1465,11 +1477,14 @@ def __init__(__self__, length, the routes with the lowest priority value win. :param pulumi.Input[Union['RouterPeerBfdArgs', 'RouterPeerBfdArgsDict']] bfd: BFD configuration for the BGP peering. Structure is documented below. - :param pulumi.Input[Sequence[pulumi.Input[Union['RouterPeerCustomLearnedIpRangeArgs', 'RouterPeerCustomLearnedIpRangeArgsDict']]]] custom_learned_ip_ranges: The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a - subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. - :param pulumi.Input[int] custom_learned_route_priority: The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route - ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a - priority of 100 to the ranges. + :param pulumi.Input[Sequence[pulumi.Input[Union['RouterPeerCustomLearnedIpRangeArgs', 'RouterPeerCustomLearnedIpRangeArgsDict']]]] custom_learned_ip_ranges: The custom learned route IP address range. Must be a valid CIDR-formatted prefix. + If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, + a /32 singular IP address range, and, for IPv6, /128. + Structure is documented below. + :param pulumi.Input[int] custom_learned_route_priority: The user-defined custom learned route priority for a BGP session. + This value is applied to all custom learned route ranges for the session. + You can choose a value from 0 to 65335. If you don't provide a value, + Google Cloud assigns a priority of 100 to the ranges. :param pulumi.Input[bool] enable: The status of the BGP peer connection. If set to false, any active session with the peer is terminated and all associated routing information is removed. If set to true, the peer connection can be established with routing information. @@ -1983,11 +1998,14 @@ def get(resource_name: str, length, the routes with the lowest priority value win. :param pulumi.Input[Union['RouterPeerBfdArgs', 'RouterPeerBfdArgsDict']] bfd: BFD configuration for the BGP peering. Structure is documented below. - :param pulumi.Input[Sequence[pulumi.Input[Union['RouterPeerCustomLearnedIpRangeArgs', 'RouterPeerCustomLearnedIpRangeArgsDict']]]] custom_learned_ip_ranges: The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a - subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. - :param pulumi.Input[int] custom_learned_route_priority: The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route - ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a - priority of 100 to the ranges. + :param pulumi.Input[Sequence[pulumi.Input[Union['RouterPeerCustomLearnedIpRangeArgs', 'RouterPeerCustomLearnedIpRangeArgsDict']]]] custom_learned_ip_ranges: The custom learned route IP address range. Must be a valid CIDR-formatted prefix. + If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, + a /32 singular IP address range, and, for IPv6, /128. + Structure is documented below. + :param pulumi.Input[int] custom_learned_route_priority: The user-defined custom learned route priority for a BGP session. + This value is applied to all custom learned route ranges for the session. + You can choose a value from 0 to 65335. If you don't provide a value, + Google Cloud assigns a priority of 100 to the ranges. :param pulumi.Input[bool] enable: The status of the BGP peer connection. If set to false, any active session with the peer is terminated and all associated routing information is removed. If set to true, the peer connection can be established with routing information. @@ -2142,8 +2160,10 @@ def bfd(self) -> pulumi.Output['outputs.RouterPeerBfd']: @pulumi.getter(name="customLearnedIpRanges") def custom_learned_ip_ranges(self) -> pulumi.Output[Optional[Sequence['outputs.RouterPeerCustomLearnedIpRange']]]: """ - The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a - subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + The custom learned route IP address range. Must be a valid CIDR-formatted prefix. + If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, + a /32 singular IP address range, and, for IPv6, /128. + Structure is documented below. """ return pulumi.get(self, "custom_learned_ip_ranges") @@ -2151,9 +2171,10 @@ def custom_learned_ip_ranges(self) -> pulumi.Output[Optional[Sequence['outputs.R @pulumi.getter(name="customLearnedRoutePriority") def custom_learned_route_priority(self) -> pulumi.Output[Optional[int]]: """ - The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route - ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a - priority of 100 to the ranges. + The user-defined custom learned route priority for a BGP session. + This value is applied to all custom learned route ranges for the session. + You can choose a value from 0 to 65335. If you don't provide a value, + Google Cloud assigns a priority of 100 to the ranges. """ return pulumi.get(self, "custom_learned_route_priority") diff --git a/sdk/python/pulumi_gcp/compute/security_scan_config.py b/sdk/python/pulumi_gcp/compute/security_scan_config.py index 16bb7e69fe..771f1c2f56 100644 --- a/sdk/python/pulumi_gcp/compute/security_scan_config.py +++ b/sdk/python/pulumi_gcp/compute/security_scan_config.py @@ -470,20 +470,20 @@ def __init__(__self__, ScanConfig can be imported using any of these accepted formats: - * `projects/{{project}}/scanConfigs/{{name}}` - * `{{project}}/{{name}}` + * `{{project}} {{name}}` + * `{{name}}` When using the `pulumi import` command, ScanConfig can be imported using one of the formats above. For example: ```sh - $ pulumi import gcp:compute/securityScanConfig:SecurityScanConfig default projects/{{project}}/scanConfigs/{{name}} + $ pulumi import gcp:compute/securityScanConfig:SecurityScanConfig default {{project}}/{{name}} ``` ```sh - $ pulumi import gcp:compute/securityScanConfig:SecurityScanConfig default {{project}}/{{name}} + $ pulumi import gcp:compute/securityScanConfig:SecurityScanConfig default "{{project}} {{name}}" ``` ```sh @@ -551,20 +551,20 @@ def __init__(__self__, ScanConfig can be imported using any of these accepted formats: - * `projects/{{project}}/scanConfigs/{{name}}` - * `{{project}}/{{name}}` + * `{{project}} {{name}}` + * `{{name}}` When using the `pulumi import` command, ScanConfig can be imported using one of the formats above. For example: ```sh - $ pulumi import gcp:compute/securityScanConfig:SecurityScanConfig default projects/{{project}}/scanConfigs/{{name}} + $ pulumi import gcp:compute/securityScanConfig:SecurityScanConfig default {{project}}/{{name}} ``` ```sh - $ pulumi import gcp:compute/securityScanConfig:SecurityScanConfig default {{project}}/{{name}} + $ pulumi import gcp:compute/securityScanConfig:SecurityScanConfig default "{{project}} {{name}}" ``` ```sh diff --git a/sdk/python/pulumi_gcp/config/__init__.pyi b/sdk/python/pulumi_gcp/config/__init__.pyi index 24acc6ecc1..2bf7b4001f 100644 --- a/sdk/python/pulumi_gcp/config/__init__.pyi +++ b/sdk/python/pulumi_gcp/config/__init__.pyi @@ -143,6 +143,8 @@ dataplexCustomEndpoint: Optional[str] dataprocCustomEndpoint: Optional[str] +dataprocGdcCustomEndpoint: Optional[str] + dataprocMetastoreCustomEndpoint: Optional[str] datastreamCustomEndpoint: Optional[str] @@ -209,6 +211,8 @@ healthcareCustomEndpoint: Optional[str] iam2CustomEndpoint: Optional[str] +iam3CustomEndpoint: Optional[str] + iamBetaCustomEndpoint: Optional[str] iamCredentialsCustomEndpoint: Optional[str] diff --git a/sdk/python/pulumi_gcp/config/vars.py b/sdk/python/pulumi_gcp/config/vars.py index 18c9ccb56a..18689f7cf5 100644 --- a/sdk/python/pulumi_gcp/config/vars.py +++ b/sdk/python/pulumi_gcp/config/vars.py @@ -277,6 +277,10 @@ def dataplex_custom_endpoint(self) -> Optional[str]: def dataproc_custom_endpoint(self) -> Optional[str]: return __config__.get('dataprocCustomEndpoint') + @property + def dataproc_gdc_custom_endpoint(self) -> Optional[str]: + return __config__.get('dataprocGdcCustomEndpoint') + @property def dataproc_metastore_custom_endpoint(self) -> Optional[str]: return __config__.get('dataprocMetastoreCustomEndpoint') @@ -409,6 +413,10 @@ def healthcare_custom_endpoint(self) -> Optional[str]: def iam2_custom_endpoint(self) -> Optional[str]: return __config__.get('iam2CustomEndpoint') + @property + def iam3_custom_endpoint(self) -> Optional[str]: + return __config__.get('iam3CustomEndpoint') + @property def iam_beta_custom_endpoint(self) -> Optional[str]: return __config__.get('iamBetaCustomEndpoint') diff --git a/sdk/python/pulumi_gcp/container/_inputs.py b/sdk/python/pulumi_gcp/container/_inputs.py index bfd2bac871..793aa9cb01 100644 --- a/sdk/python/pulumi_gcp/container/_inputs.py +++ b/sdk/python/pulumi_gcp/container/_inputs.py @@ -179,6 +179,8 @@ 'ClusterAddonsConfigKalmConfigArgsDict', 'ClusterAddonsConfigNetworkPolicyConfigArgs', 'ClusterAddonsConfigNetworkPolicyConfigArgsDict', + 'ClusterAddonsConfigParallelstoreCsiDriverConfigArgs', + 'ClusterAddonsConfigParallelstoreCsiDriverConfigArgsDict', 'ClusterAddonsConfigRayOperatorConfigArgs', 'ClusterAddonsConfigRayOperatorConfigArgsDict', 'ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs', @@ -213,6 +215,10 @@ 'ClusterClusterTelemetryArgsDict', 'ClusterConfidentialNodesArgs', 'ClusterConfidentialNodesArgsDict', + 'ClusterControlPlaneEndpointsConfigArgs', + 'ClusterControlPlaneEndpointsConfigArgsDict', + 'ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs', + 'ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgsDict', 'ClusterCostManagementConfigArgs', 'ClusterCostManagementConfigArgsDict', 'ClusterDatabaseEncryptionArgs', @@ -457,6 +463,8 @@ 'ClusterServiceExternalIpsConfigArgsDict', 'ClusterTpuConfigArgs', 'ClusterTpuConfigArgsDict', + 'ClusterUserManagedKeysConfigArgs', + 'ClusterUserManagedKeysConfigArgsDict', 'ClusterVerticalPodAutoscalingArgs', 'ClusterVerticalPodAutoscalingArgsDict', 'ClusterWorkloadAltsConfigArgs', @@ -4616,6 +4624,16 @@ class ClusterAddonsConfigArgsDict(TypedDict): It can only be disabled if the nodes already do not have network policies enabled. Defaults to disabled; set `disabled = false` to enable. """ + parallelstore_csi_driver_config: NotRequired[pulumi.Input['ClusterAddonsConfigParallelstoreCsiDriverConfigArgsDict']] + """ + The status of the Parallelstore CSI driver addon, + which allows the usage of a Parallelstore instances as volumes. + It is disabled by default for Standard clusters; set `enabled = true` to enable. + It is enabled by default for Autopilot clusters with version 1.29 or later; set `enabled = true` to enable it explicitly. + See [Enable the Parallelstore CSI driver](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/parallelstore-csi-new-volume#enable) for more information. + + This example `addons_config` disables two addons: + """ ray_operator_configs: NotRequired[pulumi.Input[Sequence[pulumi.Input['ClusterAddonsConfigRayOperatorConfigArgsDict']]]] """ . The status of the [Ray Operator @@ -4630,9 +4648,6 @@ class ClusterAddonsConfigArgsDict(TypedDict): clusters on GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) for more information. - - - This example `addons_config` disables two addons: """ stateful_ha_config: NotRequired[pulumi.Input['ClusterAddonsConfigStatefulHaConfigArgsDict']] """ @@ -4658,6 +4673,7 @@ def __init__(__self__, *, istio_config: Optional[pulumi.Input['ClusterAddonsConfigIstioConfigArgs']] = None, kalm_config: Optional[pulumi.Input['ClusterAddonsConfigKalmConfigArgs']] = None, network_policy_config: Optional[pulumi.Input['ClusterAddonsConfigNetworkPolicyConfigArgs']] = None, + parallelstore_csi_driver_config: Optional[pulumi.Input['ClusterAddonsConfigParallelstoreCsiDriverConfigArgs']] = None, ray_operator_configs: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterAddonsConfigRayOperatorConfigArgs']]]] = None, stateful_ha_config: Optional[pulumi.Input['ClusterAddonsConfigStatefulHaConfigArgs']] = None): """ @@ -4702,6 +4718,13 @@ def __init__(__self__, *, otherwise nothing will happen. It can only be disabled if the nodes already do not have network policies enabled. Defaults to disabled; set `disabled = false` to enable. + :param pulumi.Input['ClusterAddonsConfigParallelstoreCsiDriverConfigArgs'] parallelstore_csi_driver_config: The status of the Parallelstore CSI driver addon, + which allows the usage of a Parallelstore instances as volumes. + It is disabled by default for Standard clusters; set `enabled = true` to enable. + It is enabled by default for Autopilot clusters with version 1.29 or later; set `enabled = true` to enable it explicitly. + See [Enable the Parallelstore CSI driver](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/parallelstore-csi-new-volume#enable) for more information. + + This example `addons_config` disables two addons: :param pulumi.Input[Sequence[pulumi.Input['ClusterAddonsConfigRayOperatorConfigArgs']]] ray_operator_configs: . The status of the [Ray Operator addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview). It is disabled by default. Set `enabled = true` to enable. The minimum @@ -4714,9 +4737,6 @@ def __init__(__self__, *, clusters on GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) for more information. - - - This example `addons_config` disables two addons: :param pulumi.Input['ClusterAddonsConfigStatefulHaConfigArgs'] stateful_ha_config: . The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. It is disabled by default for Standard clusters. Set `enabled = true` to enable. @@ -4745,6 +4765,8 @@ def __init__(__self__, *, pulumi.set(__self__, "kalm_config", kalm_config) if network_policy_config is not None: pulumi.set(__self__, "network_policy_config", network_policy_config) + if parallelstore_csi_driver_config is not None: + pulumi.set(__self__, "parallelstore_csi_driver_config", parallelstore_csi_driver_config) if ray_operator_configs is not None: pulumi.set(__self__, "ray_operator_configs", ray_operator_configs) if stateful_ha_config is not None: @@ -4923,6 +4945,24 @@ def network_policy_config(self) -> Optional[pulumi.Input['ClusterAddonsConfigNet def network_policy_config(self, value: Optional[pulumi.Input['ClusterAddonsConfigNetworkPolicyConfigArgs']]): pulumi.set(self, "network_policy_config", value) + @property + @pulumi.getter(name="parallelstoreCsiDriverConfig") + def parallelstore_csi_driver_config(self) -> Optional[pulumi.Input['ClusterAddonsConfigParallelstoreCsiDriverConfigArgs']]: + """ + The status of the Parallelstore CSI driver addon, + which allows the usage of a Parallelstore instances as volumes. + It is disabled by default for Standard clusters; set `enabled = true` to enable. + It is enabled by default for Autopilot clusters with version 1.29 or later; set `enabled = true` to enable it explicitly. + See [Enable the Parallelstore CSI driver](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/parallelstore-csi-new-volume#enable) for more information. + + This example `addons_config` disables two addons: + """ + return pulumi.get(self, "parallelstore_csi_driver_config") + + @parallelstore_csi_driver_config.setter + def parallelstore_csi_driver_config(self, value: Optional[pulumi.Input['ClusterAddonsConfigParallelstoreCsiDriverConfigArgs']]): + pulumi.set(self, "parallelstore_csi_driver_config", value) + @property @pulumi.getter(name="rayOperatorConfigs") def ray_operator_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ClusterAddonsConfigRayOperatorConfigArgs']]]]: @@ -4939,9 +4979,6 @@ def ray_operator_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['C clusters on GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) for more information. - - - This example `addons_config` disables two addons: """ return pulumi.get(self, "ray_operator_configs") @@ -5337,6 +5374,28 @@ def disabled(self, value: pulumi.Input[bool]): pulumi.set(self, "disabled", value) +if not MYPY: + class ClusterAddonsConfigParallelstoreCsiDriverConfigArgsDict(TypedDict): + enabled: pulumi.Input[bool] +elif False: + ClusterAddonsConfigParallelstoreCsiDriverConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ClusterAddonsConfigParallelstoreCsiDriverConfigArgs: + def __init__(__self__, *, + enabled: pulumi.Input[bool]): + pulumi.set(__self__, "enabled", enabled) + + @property + @pulumi.getter + def enabled(self) -> pulumi.Input[bool]: + return pulumi.get(self, "enabled") + + @enabled.setter + def enabled(self, value: pulumi.Input[bool]): + pulumi.set(self, "enabled", value) + + if not MYPY: class ClusterAddonsConfigRayOperatorConfigArgsDict(TypedDict): enabled: pulumi.Input[bool] @@ -6478,6 +6537,90 @@ def enabled(self, value: pulumi.Input[bool]): pulumi.set(self, "enabled", value) +if not MYPY: + class ClusterControlPlaneEndpointsConfigArgsDict(TypedDict): + dns_endpoint_config: NotRequired[pulumi.Input['ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgsDict']] + """ + DNS endpoint configuration. + """ +elif False: + ClusterControlPlaneEndpointsConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ClusterControlPlaneEndpointsConfigArgs: + def __init__(__self__, *, + dns_endpoint_config: Optional[pulumi.Input['ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs']] = None): + """ + :param pulumi.Input['ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs'] dns_endpoint_config: DNS endpoint configuration. + """ + if dns_endpoint_config is not None: + pulumi.set(__self__, "dns_endpoint_config", dns_endpoint_config) + + @property + @pulumi.getter(name="dnsEndpointConfig") + def dns_endpoint_config(self) -> Optional[pulumi.Input['ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs']]: + """ + DNS endpoint configuration. + """ + return pulumi.get(self, "dns_endpoint_config") + + @dns_endpoint_config.setter + def dns_endpoint_config(self, value: Optional[pulumi.Input['ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs']]): + pulumi.set(self, "dns_endpoint_config", value) + + +if not MYPY: + class ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgsDict(TypedDict): + allow_external_traffic: NotRequired[pulumi.Input[bool]] + """ + Controls whether user traffic is allowed over this endpoint. Note that GCP-managed services may still use the endpoint even if this is false. + """ + endpoint: NotRequired[pulumi.Input[str]] + """ + The cluster's DNS endpoint. + """ +elif False: + ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs: + def __init__(__self__, *, + allow_external_traffic: Optional[pulumi.Input[bool]] = None, + endpoint: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[bool] allow_external_traffic: Controls whether user traffic is allowed over this endpoint. Note that GCP-managed services may still use the endpoint even if this is false. + :param pulumi.Input[str] endpoint: The cluster's DNS endpoint. + """ + if allow_external_traffic is not None: + pulumi.set(__self__, "allow_external_traffic", allow_external_traffic) + if endpoint is not None: + pulumi.set(__self__, "endpoint", endpoint) + + @property + @pulumi.getter(name="allowExternalTraffic") + def allow_external_traffic(self) -> Optional[pulumi.Input[bool]]: + """ + Controls whether user traffic is allowed over this endpoint. Note that GCP-managed services may still use the endpoint even if this is false. + """ + return pulumi.get(self, "allow_external_traffic") + + @allow_external_traffic.setter + def allow_external_traffic(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "allow_external_traffic", value) + + @property + @pulumi.getter + def endpoint(self) -> Optional[pulumi.Input[str]]: + """ + The cluster's DNS endpoint. + """ + return pulumi.get(self, "endpoint") + + @endpoint.setter + def endpoint(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "endpoint", value) + + if not MYPY: class ClusterCostManagementConfigArgsDict(TypedDict): enabled: pulumi.Input[bool] @@ -7805,6 +7948,10 @@ class ClusterMasterAuthorizedNetworksConfigArgsDict(TypedDict): Whether Kubernetes master is accessible via Google Compute Engine Public IPs. """ + private_endpoint_enforcement_enabled: NotRequired[pulumi.Input[bool]] + """ + Whether authorized networks is enforced on the private endpoint or not. Defaults to false. + """ elif False: ClusterMasterAuthorizedNetworksConfigArgsDict: TypeAlias = Mapping[str, Any] @@ -7812,17 +7959,21 @@ class ClusterMasterAuthorizedNetworksConfigArgsDict(TypedDict): class ClusterMasterAuthorizedNetworksConfigArgs: def __init__(__self__, *, cidr_blocks: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterMasterAuthorizedNetworksConfigCidrBlockArgs']]]] = None, - gcp_public_cidrs_access_enabled: Optional[pulumi.Input[bool]] = None): + gcp_public_cidrs_access_enabled: Optional[pulumi.Input[bool]] = None, + private_endpoint_enforcement_enabled: Optional[pulumi.Input[bool]] = None): """ :param pulumi.Input[Sequence[pulumi.Input['ClusterMasterAuthorizedNetworksConfigCidrBlockArgs']]] cidr_blocks: External networks that can access the Kubernetes cluster master through HTTPS. :param pulumi.Input[bool] gcp_public_cidrs_access_enabled: Whether Kubernetes master is accessible via Google Compute Engine Public IPs. + :param pulumi.Input[bool] private_endpoint_enforcement_enabled: Whether authorized networks is enforced on the private endpoint or not. Defaults to false. """ if cidr_blocks is not None: pulumi.set(__self__, "cidr_blocks", cidr_blocks) if gcp_public_cidrs_access_enabled is not None: pulumi.set(__self__, "gcp_public_cidrs_access_enabled", gcp_public_cidrs_access_enabled) + if private_endpoint_enforcement_enabled is not None: + pulumi.set(__self__, "private_endpoint_enforcement_enabled", private_endpoint_enforcement_enabled) @property @pulumi.getter(name="cidrBlocks") @@ -7850,6 +8001,18 @@ def gcp_public_cidrs_access_enabled(self) -> Optional[pulumi.Input[bool]]: def gcp_public_cidrs_access_enabled(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "gcp_public_cidrs_access_enabled", value) + @property + @pulumi.getter(name="privateEndpointEnforcementEnabled") + def private_endpoint_enforcement_enabled(self) -> Optional[pulumi.Input[bool]]: + """ + Whether authorized networks is enforced on the private endpoint or not. Defaults to false. + """ + return pulumi.get(self, "private_endpoint_enforcement_enabled") + + @private_endpoint_enforcement_enabled.setter + def private_endpoint_enforcement_enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "private_endpoint_enforcement_enabled", value) + if not MYPY: class ClusterMasterAuthorizedNetworksConfigCidrBlockArgsDict(TypedDict): @@ -15723,6 +15886,178 @@ def use_service_networking(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "use_service_networking", value) +if not MYPY: + class ClusterUserManagedKeysConfigArgsDict(TypedDict): + aggregation_ca: NotRequired[pulumi.Input[str]] + """ + The Certificate Authority Service caPool to use for the aggreation CA in this cluster. + """ + cluster_ca: NotRequired[pulumi.Input[str]] + """ + The Certificate Authority Service caPool to use for the cluster CA in this cluster. + """ + control_plane_disk_encryption_key: NotRequired[pulumi.Input[str]] + """ + The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes. + """ + etcd_api_ca: NotRequired[pulumi.Input[str]] + """ + The Certificate Authority Service caPool to use for the etcd API CA in this cluster. + """ + etcd_peer_ca: NotRequired[pulumi.Input[str]] + """ + The Certificate Authority Service caPool to use for the etcd peer CA in this cluster. + """ + gkeops_etcd_backup_encryption_key: NotRequired[pulumi.Input[str]] + """ + Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups. + """ + service_account_signing_keys: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. + """ + service_account_verification_keys: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. + """ +elif False: + ClusterUserManagedKeysConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ClusterUserManagedKeysConfigArgs: + def __init__(__self__, *, + aggregation_ca: Optional[pulumi.Input[str]] = None, + cluster_ca: Optional[pulumi.Input[str]] = None, + control_plane_disk_encryption_key: Optional[pulumi.Input[str]] = None, + etcd_api_ca: Optional[pulumi.Input[str]] = None, + etcd_peer_ca: Optional[pulumi.Input[str]] = None, + gkeops_etcd_backup_encryption_key: Optional[pulumi.Input[str]] = None, + service_account_signing_keys: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + service_account_verification_keys: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + :param pulumi.Input[str] aggregation_ca: The Certificate Authority Service caPool to use for the aggreation CA in this cluster. + :param pulumi.Input[str] cluster_ca: The Certificate Authority Service caPool to use for the cluster CA in this cluster. + :param pulumi.Input[str] control_plane_disk_encryption_key: The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes. + :param pulumi.Input[str] etcd_api_ca: The Certificate Authority Service caPool to use for the etcd API CA in this cluster. + :param pulumi.Input[str] etcd_peer_ca: The Certificate Authority Service caPool to use for the etcd peer CA in this cluster. + :param pulumi.Input[str] gkeops_etcd_backup_encryption_key: Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups. + :param pulumi.Input[Sequence[pulumi.Input[str]]] service_account_signing_keys: The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. + :param pulumi.Input[Sequence[pulumi.Input[str]]] service_account_verification_keys: The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. + """ + if aggregation_ca is not None: + pulumi.set(__self__, "aggregation_ca", aggregation_ca) + if cluster_ca is not None: + pulumi.set(__self__, "cluster_ca", cluster_ca) + if control_plane_disk_encryption_key is not None: + pulumi.set(__self__, "control_plane_disk_encryption_key", control_plane_disk_encryption_key) + if etcd_api_ca is not None: + pulumi.set(__self__, "etcd_api_ca", etcd_api_ca) + if etcd_peer_ca is not None: + pulumi.set(__self__, "etcd_peer_ca", etcd_peer_ca) + if gkeops_etcd_backup_encryption_key is not None: + pulumi.set(__self__, "gkeops_etcd_backup_encryption_key", gkeops_etcd_backup_encryption_key) + if service_account_signing_keys is not None: + pulumi.set(__self__, "service_account_signing_keys", service_account_signing_keys) + if service_account_verification_keys is not None: + pulumi.set(__self__, "service_account_verification_keys", service_account_verification_keys) + + @property + @pulumi.getter(name="aggregationCa") + def aggregation_ca(self) -> Optional[pulumi.Input[str]]: + """ + The Certificate Authority Service caPool to use for the aggreation CA in this cluster. + """ + return pulumi.get(self, "aggregation_ca") + + @aggregation_ca.setter + def aggregation_ca(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "aggregation_ca", value) + + @property + @pulumi.getter(name="clusterCa") + def cluster_ca(self) -> Optional[pulumi.Input[str]]: + """ + The Certificate Authority Service caPool to use for the cluster CA in this cluster. + """ + return pulumi.get(self, "cluster_ca") + + @cluster_ca.setter + def cluster_ca(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "cluster_ca", value) + + @property + @pulumi.getter(name="controlPlaneDiskEncryptionKey") + def control_plane_disk_encryption_key(self) -> Optional[pulumi.Input[str]]: + """ + The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes. + """ + return pulumi.get(self, "control_plane_disk_encryption_key") + + @control_plane_disk_encryption_key.setter + def control_plane_disk_encryption_key(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "control_plane_disk_encryption_key", value) + + @property + @pulumi.getter(name="etcdApiCa") + def etcd_api_ca(self) -> Optional[pulumi.Input[str]]: + """ + The Certificate Authority Service caPool to use for the etcd API CA in this cluster. + """ + return pulumi.get(self, "etcd_api_ca") + + @etcd_api_ca.setter + def etcd_api_ca(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "etcd_api_ca", value) + + @property + @pulumi.getter(name="etcdPeerCa") + def etcd_peer_ca(self) -> Optional[pulumi.Input[str]]: + """ + The Certificate Authority Service caPool to use for the etcd peer CA in this cluster. + """ + return pulumi.get(self, "etcd_peer_ca") + + @etcd_peer_ca.setter + def etcd_peer_ca(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "etcd_peer_ca", value) + + @property + @pulumi.getter(name="gkeopsEtcdBackupEncryptionKey") + def gkeops_etcd_backup_encryption_key(self) -> Optional[pulumi.Input[str]]: + """ + Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups. + """ + return pulumi.get(self, "gkeops_etcd_backup_encryption_key") + + @gkeops_etcd_backup_encryption_key.setter + def gkeops_etcd_backup_encryption_key(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "gkeops_etcd_backup_encryption_key", value) + + @property + @pulumi.getter(name="serviceAccountSigningKeys") + def service_account_signing_keys(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. + """ + return pulumi.get(self, "service_account_signing_keys") + + @service_account_signing_keys.setter + def service_account_signing_keys(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "service_account_signing_keys", value) + + @property + @pulumi.getter(name="serviceAccountVerificationKeys") + def service_account_verification_keys(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. + """ + return pulumi.get(self, "service_account_verification_keys") + + @service_account_verification_keys.setter + def service_account_verification_keys(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "service_account_verification_keys", value) + + if not MYPY: class ClusterVerticalPodAutoscalingArgsDict(TypedDict): enabled: pulumi.Input[bool] diff --git a/sdk/python/pulumi_gcp/container/cluster.py b/sdk/python/pulumi_gcp/container/cluster.py index 72f3167bc1..bd06a95670 100644 --- a/sdk/python/pulumi_gcp/container/cluster.py +++ b/sdk/python/pulumi_gcp/container/cluster.py @@ -29,6 +29,7 @@ def __init__(__self__, *, cluster_ipv4_cidr: Optional[pulumi.Input[str]] = None, cluster_telemetry: Optional[pulumi.Input['ClusterClusterTelemetryArgs']] = None, confidential_nodes: Optional[pulumi.Input['ClusterConfidentialNodesArgs']] = None, + control_plane_endpoints_config: Optional[pulumi.Input['ClusterControlPlaneEndpointsConfigArgs']] = None, cost_management_config: Optional[pulumi.Input['ClusterCostManagementConfigArgs']] = None, database_encryption: Optional[pulumi.Input['ClusterDatabaseEncryptionArgs']] = None, datapath_provider: Optional[pulumi.Input[str]] = None, @@ -88,6 +89,7 @@ def __init__(__self__, *, service_external_ips_config: Optional[pulumi.Input['ClusterServiceExternalIpsConfigArgs']] = None, subnetwork: Optional[pulumi.Input[str]] = None, tpu_config: Optional[pulumi.Input['ClusterTpuConfigArgs']] = None, + user_managed_keys_config: Optional[pulumi.Input['ClusterUserManagedKeysConfigArgs']] = None, vertical_pod_autoscaling: Optional[pulumi.Input['ClusterVerticalPodAutoscalingArgs']] = None, workload_alts_config: Optional[pulumi.Input['ClusterWorkloadAltsConfigArgs']] = None, workload_identity_config: Optional[pulumi.Input['ClusterWorkloadIdentityConfigArgs']] = None): @@ -116,6 +118,8 @@ def __init__(__self__, *, [ClusterTelemetry](https://cloud.google.com/monitoring/kubernetes-engine/installing#controlling_the_collection_of_application_logs) feature, Structure is documented below. :param pulumi.Input['ClusterConfidentialNodesArgs'] confidential_nodes: Configuration for [Confidential Nodes](https://cloud.google.com/kubernetes-engine/docs/how-to/confidential-gke-nodes) feature. Structure is documented below documented below. + :param pulumi.Input['ClusterControlPlaneEndpointsConfigArgs'] control_plane_endpoints_config: Configuration for all of the cluster's control plane endpoints. + Structure is documented below. :param pulumi.Input['ClusterCostManagementConfigArgs'] cost_management_config: Configuration for the [Cost Allocation](https://cloud.google.com/kubernetes-engine/docs/how-to/cost-allocations) feature. Structure is documented below. @@ -292,6 +296,7 @@ def __init__(__self__, *, :param pulumi.Input[str] subnetwork: The name or self_link of the Google Compute Engine subnetwork in which the cluster's instances are launched. :param pulumi.Input['ClusterTpuConfigArgs'] tpu_config: TPU configuration for the cluster. + :param pulumi.Input['ClusterUserManagedKeysConfigArgs'] user_managed_keys_config: The custom keys configuration of the cluster. :param pulumi.Input['ClusterVerticalPodAutoscalingArgs'] vertical_pod_autoscaling: Vertical Pod Autoscaling automatically adjusts the resources of pods controlled by it. Structure is documented below. :param pulumi.Input['ClusterWorkloadAltsConfigArgs'] workload_alts_config: Configuration for [direct-path (via ALTS) with workload identity.](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#workloadaltsconfig). Structure is documented below. @@ -317,6 +322,8 @@ def __init__(__self__, *, pulumi.set(__self__, "cluster_telemetry", cluster_telemetry) if confidential_nodes is not None: pulumi.set(__self__, "confidential_nodes", confidential_nodes) + if control_plane_endpoints_config is not None: + pulumi.set(__self__, "control_plane_endpoints_config", control_plane_endpoints_config) if cost_management_config is not None: pulumi.set(__self__, "cost_management_config", cost_management_config) if database_encryption is not None: @@ -435,6 +442,8 @@ def __init__(__self__, *, pulumi.set(__self__, "subnetwork", subnetwork) if tpu_config is not None: pulumi.set(__self__, "tpu_config", tpu_config) + if user_managed_keys_config is not None: + pulumi.set(__self__, "user_managed_keys_config", user_managed_keys_config) if vertical_pod_autoscaling is not None: pulumi.set(__self__, "vertical_pod_autoscaling", vertical_pod_autoscaling) if workload_alts_config is not None: @@ -553,6 +562,19 @@ def confidential_nodes(self) -> Optional[pulumi.Input['ClusterConfidentialNodesA def confidential_nodes(self, value: Optional[pulumi.Input['ClusterConfidentialNodesArgs']]): pulumi.set(self, "confidential_nodes", value) + @property + @pulumi.getter(name="controlPlaneEndpointsConfig") + def control_plane_endpoints_config(self) -> Optional[pulumi.Input['ClusterControlPlaneEndpointsConfigArgs']]: + """ + Configuration for all of the cluster's control plane endpoints. + Structure is documented below. + """ + return pulumi.get(self, "control_plane_endpoints_config") + + @control_plane_endpoints_config.setter + def control_plane_endpoints_config(self, value: Optional[pulumi.Input['ClusterControlPlaneEndpointsConfigArgs']]): + pulumi.set(self, "control_plane_endpoints_config", value) + @property @pulumi.getter(name="costManagementConfig") def cost_management_config(self) -> Optional[pulumi.Input['ClusterCostManagementConfigArgs']]: @@ -1376,6 +1398,18 @@ def tpu_config(self) -> Optional[pulumi.Input['ClusterTpuConfigArgs']]: def tpu_config(self, value: Optional[pulumi.Input['ClusterTpuConfigArgs']]): pulumi.set(self, "tpu_config", value) + @property + @pulumi.getter(name="userManagedKeysConfig") + def user_managed_keys_config(self) -> Optional[pulumi.Input['ClusterUserManagedKeysConfigArgs']]: + """ + The custom keys configuration of the cluster. + """ + return pulumi.get(self, "user_managed_keys_config") + + @user_managed_keys_config.setter + def user_managed_keys_config(self, value: Optional[pulumi.Input['ClusterUserManagedKeysConfigArgs']]): + pulumi.set(self, "user_managed_keys_config", value) + @property @pulumi.getter(name="verticalPodAutoscaling") def vertical_pod_autoscaling(self) -> Optional[pulumi.Input['ClusterVerticalPodAutoscalingArgs']]: @@ -1429,6 +1463,7 @@ def __init__(__self__, *, cluster_ipv4_cidr: Optional[pulumi.Input[str]] = None, cluster_telemetry: Optional[pulumi.Input['ClusterClusterTelemetryArgs']] = None, confidential_nodes: Optional[pulumi.Input['ClusterConfidentialNodesArgs']] = None, + control_plane_endpoints_config: Optional[pulumi.Input['ClusterControlPlaneEndpointsConfigArgs']] = None, cost_management_config: Optional[pulumi.Input['ClusterCostManagementConfigArgs']] = None, database_encryption: Optional[pulumi.Input['ClusterDatabaseEncryptionArgs']] = None, datapath_provider: Optional[pulumi.Input[str]] = None, @@ -1497,6 +1532,7 @@ def __init__(__self__, *, subnetwork: Optional[pulumi.Input[str]] = None, tpu_config: Optional[pulumi.Input['ClusterTpuConfigArgs']] = None, tpu_ipv4_cidr_block: Optional[pulumi.Input[str]] = None, + user_managed_keys_config: Optional[pulumi.Input['ClusterUserManagedKeysConfigArgs']] = None, vertical_pod_autoscaling: Optional[pulumi.Input['ClusterVerticalPodAutoscalingArgs']] = None, workload_alts_config: Optional[pulumi.Input['ClusterWorkloadAltsConfigArgs']] = None, workload_identity_config: Optional[pulumi.Input['ClusterWorkloadIdentityConfigArgs']] = None): @@ -1525,6 +1561,8 @@ def __init__(__self__, *, [ClusterTelemetry](https://cloud.google.com/monitoring/kubernetes-engine/installing#controlling_the_collection_of_application_logs) feature, Structure is documented below. :param pulumi.Input['ClusterConfidentialNodesArgs'] confidential_nodes: Configuration for [Confidential Nodes](https://cloud.google.com/kubernetes-engine/docs/how-to/confidential-gke-nodes) feature. Structure is documented below documented below. + :param pulumi.Input['ClusterControlPlaneEndpointsConfigArgs'] control_plane_endpoints_config: Configuration for all of the cluster's control plane endpoints. + Structure is documented below. :param pulumi.Input['ClusterCostManagementConfigArgs'] cost_management_config: Configuration for the [Cost Allocation](https://cloud.google.com/kubernetes-engine/docs/how-to/cost-allocations) feature. Structure is documented below. @@ -1716,6 +1754,7 @@ def __init__(__self__, *, :param pulumi.Input[str] tpu_ipv4_cidr_block: The IP address range of the Cloud TPUs in this cluster, in [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `1.2.3.4/29`). + :param pulumi.Input['ClusterUserManagedKeysConfigArgs'] user_managed_keys_config: The custom keys configuration of the cluster. :param pulumi.Input['ClusterVerticalPodAutoscalingArgs'] vertical_pod_autoscaling: Vertical Pod Autoscaling automatically adjusts the resources of pods controlled by it. Structure is documented below. :param pulumi.Input['ClusterWorkloadAltsConfigArgs'] workload_alts_config: Configuration for [direct-path (via ALTS) with workload identity.](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#workloadaltsconfig). Structure is documented below. @@ -1741,6 +1780,8 @@ def __init__(__self__, *, pulumi.set(__self__, "cluster_telemetry", cluster_telemetry) if confidential_nodes is not None: pulumi.set(__self__, "confidential_nodes", confidential_nodes) + if control_plane_endpoints_config is not None: + pulumi.set(__self__, "control_plane_endpoints_config", control_plane_endpoints_config) if cost_management_config is not None: pulumi.set(__self__, "cost_management_config", cost_management_config) if database_encryption is not None: @@ -1877,6 +1918,8 @@ def __init__(__self__, *, pulumi.set(__self__, "tpu_config", tpu_config) if tpu_ipv4_cidr_block is not None: pulumi.set(__self__, "tpu_ipv4_cidr_block", tpu_ipv4_cidr_block) + if user_managed_keys_config is not None: + pulumi.set(__self__, "user_managed_keys_config", user_managed_keys_config) if vertical_pod_autoscaling is not None: pulumi.set(__self__, "vertical_pod_autoscaling", vertical_pod_autoscaling) if workload_alts_config is not None: @@ -1995,6 +2038,19 @@ def confidential_nodes(self) -> Optional[pulumi.Input['ClusterConfidentialNodesA def confidential_nodes(self, value: Optional[pulumi.Input['ClusterConfidentialNodesArgs']]): pulumi.set(self, "confidential_nodes", value) + @property + @pulumi.getter(name="controlPlaneEndpointsConfig") + def control_plane_endpoints_config(self) -> Optional[pulumi.Input['ClusterControlPlaneEndpointsConfigArgs']]: + """ + Configuration for all of the cluster's control plane endpoints. + Structure is documented below. + """ + return pulumi.get(self, "control_plane_endpoints_config") + + @control_plane_endpoints_config.setter + def control_plane_endpoints_config(self, value: Optional[pulumi.Input['ClusterControlPlaneEndpointsConfigArgs']]): + pulumi.set(self, "control_plane_endpoints_config", value) + @property @pulumi.getter(name="costManagementConfig") def cost_management_config(self) -> Optional[pulumi.Input['ClusterCostManagementConfigArgs']]: @@ -2930,6 +2986,18 @@ def tpu_ipv4_cidr_block(self) -> Optional[pulumi.Input[str]]: def tpu_ipv4_cidr_block(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "tpu_ipv4_cidr_block", value) + @property + @pulumi.getter(name="userManagedKeysConfig") + def user_managed_keys_config(self) -> Optional[pulumi.Input['ClusterUserManagedKeysConfigArgs']]: + """ + The custom keys configuration of the cluster. + """ + return pulumi.get(self, "user_managed_keys_config") + + @user_managed_keys_config.setter + def user_managed_keys_config(self, value: Optional[pulumi.Input['ClusterUserManagedKeysConfigArgs']]): + pulumi.set(self, "user_managed_keys_config", value) + @property @pulumi.getter(name="verticalPodAutoscaling") def vertical_pod_autoscaling(self) -> Optional[pulumi.Input['ClusterVerticalPodAutoscalingArgs']]: @@ -2985,6 +3053,7 @@ def __init__(__self__, cluster_ipv4_cidr: Optional[pulumi.Input[str]] = None, cluster_telemetry: Optional[pulumi.Input[Union['ClusterClusterTelemetryArgs', 'ClusterClusterTelemetryArgsDict']]] = None, confidential_nodes: Optional[pulumi.Input[Union['ClusterConfidentialNodesArgs', 'ClusterConfidentialNodesArgsDict']]] = None, + control_plane_endpoints_config: Optional[pulumi.Input[Union['ClusterControlPlaneEndpointsConfigArgs', 'ClusterControlPlaneEndpointsConfigArgsDict']]] = None, cost_management_config: Optional[pulumi.Input[Union['ClusterCostManagementConfigArgs', 'ClusterCostManagementConfigArgsDict']]] = None, database_encryption: Optional[pulumi.Input[Union['ClusterDatabaseEncryptionArgs', 'ClusterDatabaseEncryptionArgsDict']]] = None, datapath_provider: Optional[pulumi.Input[str]] = None, @@ -3044,6 +3113,7 @@ def __init__(__self__, service_external_ips_config: Optional[pulumi.Input[Union['ClusterServiceExternalIpsConfigArgs', 'ClusterServiceExternalIpsConfigArgsDict']]] = None, subnetwork: Optional[pulumi.Input[str]] = None, tpu_config: Optional[pulumi.Input[Union['ClusterTpuConfigArgs', 'ClusterTpuConfigArgsDict']]] = None, + user_managed_keys_config: Optional[pulumi.Input[Union['ClusterUserManagedKeysConfigArgs', 'ClusterUserManagedKeysConfigArgsDict']]] = None, vertical_pod_autoscaling: Optional[pulumi.Input[Union['ClusterVerticalPodAutoscalingArgs', 'ClusterVerticalPodAutoscalingArgsDict']]] = None, workload_alts_config: Optional[pulumi.Input[Union['ClusterWorkloadAltsConfigArgs', 'ClusterWorkloadAltsConfigArgsDict']]] = None, workload_identity_config: Optional[pulumi.Input[Union['ClusterWorkloadIdentityConfigArgs', 'ClusterWorkloadIdentityConfigArgsDict']]] = None, @@ -3194,6 +3264,8 @@ def __init__(__self__, [ClusterTelemetry](https://cloud.google.com/monitoring/kubernetes-engine/installing#controlling_the_collection_of_application_logs) feature, Structure is documented below. :param pulumi.Input[Union['ClusterConfidentialNodesArgs', 'ClusterConfidentialNodesArgsDict']] confidential_nodes: Configuration for [Confidential Nodes](https://cloud.google.com/kubernetes-engine/docs/how-to/confidential-gke-nodes) feature. Structure is documented below documented below. + :param pulumi.Input[Union['ClusterControlPlaneEndpointsConfigArgs', 'ClusterControlPlaneEndpointsConfigArgsDict']] control_plane_endpoints_config: Configuration for all of the cluster's control plane endpoints. + Structure is documented below. :param pulumi.Input[Union['ClusterCostManagementConfigArgs', 'ClusterCostManagementConfigArgsDict']] cost_management_config: Configuration for the [Cost Allocation](https://cloud.google.com/kubernetes-engine/docs/how-to/cost-allocations) feature. Structure is documented below. @@ -3370,6 +3442,7 @@ def __init__(__self__, :param pulumi.Input[str] subnetwork: The name or self_link of the Google Compute Engine subnetwork in which the cluster's instances are launched. :param pulumi.Input[Union['ClusterTpuConfigArgs', 'ClusterTpuConfigArgsDict']] tpu_config: TPU configuration for the cluster. + :param pulumi.Input[Union['ClusterUserManagedKeysConfigArgs', 'ClusterUserManagedKeysConfigArgsDict']] user_managed_keys_config: The custom keys configuration of the cluster. :param pulumi.Input[Union['ClusterVerticalPodAutoscalingArgs', 'ClusterVerticalPodAutoscalingArgsDict']] vertical_pod_autoscaling: Vertical Pod Autoscaling automatically adjusts the resources of pods controlled by it. Structure is documented below. :param pulumi.Input[Union['ClusterWorkloadAltsConfigArgs', 'ClusterWorkloadAltsConfigArgsDict']] workload_alts_config: Configuration for [direct-path (via ALTS) with workload identity.](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#workloadaltsconfig). Structure is documented below. @@ -3529,6 +3602,7 @@ def _internal_init(__self__, cluster_ipv4_cidr: Optional[pulumi.Input[str]] = None, cluster_telemetry: Optional[pulumi.Input[Union['ClusterClusterTelemetryArgs', 'ClusterClusterTelemetryArgsDict']]] = None, confidential_nodes: Optional[pulumi.Input[Union['ClusterConfidentialNodesArgs', 'ClusterConfidentialNodesArgsDict']]] = None, + control_plane_endpoints_config: Optional[pulumi.Input[Union['ClusterControlPlaneEndpointsConfigArgs', 'ClusterControlPlaneEndpointsConfigArgsDict']]] = None, cost_management_config: Optional[pulumi.Input[Union['ClusterCostManagementConfigArgs', 'ClusterCostManagementConfigArgsDict']]] = None, database_encryption: Optional[pulumi.Input[Union['ClusterDatabaseEncryptionArgs', 'ClusterDatabaseEncryptionArgsDict']]] = None, datapath_provider: Optional[pulumi.Input[str]] = None, @@ -3588,6 +3662,7 @@ def _internal_init(__self__, service_external_ips_config: Optional[pulumi.Input[Union['ClusterServiceExternalIpsConfigArgs', 'ClusterServiceExternalIpsConfigArgsDict']]] = None, subnetwork: Optional[pulumi.Input[str]] = None, tpu_config: Optional[pulumi.Input[Union['ClusterTpuConfigArgs', 'ClusterTpuConfigArgsDict']]] = None, + user_managed_keys_config: Optional[pulumi.Input[Union['ClusterUserManagedKeysConfigArgs', 'ClusterUserManagedKeysConfigArgsDict']]] = None, vertical_pod_autoscaling: Optional[pulumi.Input[Union['ClusterVerticalPodAutoscalingArgs', 'ClusterVerticalPodAutoscalingArgsDict']]] = None, workload_alts_config: Optional[pulumi.Input[Union['ClusterWorkloadAltsConfigArgs', 'ClusterWorkloadAltsConfigArgsDict']]] = None, workload_identity_config: Optional[pulumi.Input[Union['ClusterWorkloadIdentityConfigArgs', 'ClusterWorkloadIdentityConfigArgsDict']]] = None, @@ -3608,6 +3683,7 @@ def _internal_init(__self__, __props__.__dict__["cluster_ipv4_cidr"] = cluster_ipv4_cidr __props__.__dict__["cluster_telemetry"] = cluster_telemetry __props__.__dict__["confidential_nodes"] = confidential_nodes + __props__.__dict__["control_plane_endpoints_config"] = control_plane_endpoints_config __props__.__dict__["cost_management_config"] = cost_management_config __props__.__dict__["database_encryption"] = database_encryption __props__.__dict__["datapath_provider"] = datapath_provider @@ -3667,6 +3743,7 @@ def _internal_init(__self__, __props__.__dict__["service_external_ips_config"] = service_external_ips_config __props__.__dict__["subnetwork"] = subnetwork __props__.__dict__["tpu_config"] = tpu_config + __props__.__dict__["user_managed_keys_config"] = user_managed_keys_config __props__.__dict__["vertical_pod_autoscaling"] = vertical_pod_autoscaling __props__.__dict__["workload_alts_config"] = workload_alts_config __props__.__dict__["workload_identity_config"] = workload_identity_config @@ -3699,6 +3776,7 @@ def get(resource_name: str, cluster_ipv4_cidr: Optional[pulumi.Input[str]] = None, cluster_telemetry: Optional[pulumi.Input[Union['ClusterClusterTelemetryArgs', 'ClusterClusterTelemetryArgsDict']]] = None, confidential_nodes: Optional[pulumi.Input[Union['ClusterConfidentialNodesArgs', 'ClusterConfidentialNodesArgsDict']]] = None, + control_plane_endpoints_config: Optional[pulumi.Input[Union['ClusterControlPlaneEndpointsConfigArgs', 'ClusterControlPlaneEndpointsConfigArgsDict']]] = None, cost_management_config: Optional[pulumi.Input[Union['ClusterCostManagementConfigArgs', 'ClusterCostManagementConfigArgsDict']]] = None, database_encryption: Optional[pulumi.Input[Union['ClusterDatabaseEncryptionArgs', 'ClusterDatabaseEncryptionArgsDict']]] = None, datapath_provider: Optional[pulumi.Input[str]] = None, @@ -3767,6 +3845,7 @@ def get(resource_name: str, subnetwork: Optional[pulumi.Input[str]] = None, tpu_config: Optional[pulumi.Input[Union['ClusterTpuConfigArgs', 'ClusterTpuConfigArgsDict']]] = None, tpu_ipv4_cidr_block: Optional[pulumi.Input[str]] = None, + user_managed_keys_config: Optional[pulumi.Input[Union['ClusterUserManagedKeysConfigArgs', 'ClusterUserManagedKeysConfigArgsDict']]] = None, vertical_pod_autoscaling: Optional[pulumi.Input[Union['ClusterVerticalPodAutoscalingArgs', 'ClusterVerticalPodAutoscalingArgsDict']]] = None, workload_alts_config: Optional[pulumi.Input[Union['ClusterWorkloadAltsConfigArgs', 'ClusterWorkloadAltsConfigArgsDict']]] = None, workload_identity_config: Optional[pulumi.Input[Union['ClusterWorkloadIdentityConfigArgs', 'ClusterWorkloadIdentityConfigArgsDict']]] = None) -> 'Cluster': @@ -3800,6 +3879,8 @@ def get(resource_name: str, [ClusterTelemetry](https://cloud.google.com/monitoring/kubernetes-engine/installing#controlling_the_collection_of_application_logs) feature, Structure is documented below. :param pulumi.Input[Union['ClusterConfidentialNodesArgs', 'ClusterConfidentialNodesArgsDict']] confidential_nodes: Configuration for [Confidential Nodes](https://cloud.google.com/kubernetes-engine/docs/how-to/confidential-gke-nodes) feature. Structure is documented below documented below. + :param pulumi.Input[Union['ClusterControlPlaneEndpointsConfigArgs', 'ClusterControlPlaneEndpointsConfigArgsDict']] control_plane_endpoints_config: Configuration for all of the cluster's control plane endpoints. + Structure is documented below. :param pulumi.Input[Union['ClusterCostManagementConfigArgs', 'ClusterCostManagementConfigArgsDict']] cost_management_config: Configuration for the [Cost Allocation](https://cloud.google.com/kubernetes-engine/docs/how-to/cost-allocations) feature. Structure is documented below. @@ -3991,6 +4072,7 @@ def get(resource_name: str, :param pulumi.Input[str] tpu_ipv4_cidr_block: The IP address range of the Cloud TPUs in this cluster, in [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `1.2.3.4/29`). + :param pulumi.Input[Union['ClusterUserManagedKeysConfigArgs', 'ClusterUserManagedKeysConfigArgsDict']] user_managed_keys_config: The custom keys configuration of the cluster. :param pulumi.Input[Union['ClusterVerticalPodAutoscalingArgs', 'ClusterVerticalPodAutoscalingArgsDict']] vertical_pod_autoscaling: Vertical Pod Autoscaling automatically adjusts the resources of pods controlled by it. Structure is documented below. :param pulumi.Input[Union['ClusterWorkloadAltsConfigArgs', 'ClusterWorkloadAltsConfigArgsDict']] workload_alts_config: Configuration for [direct-path (via ALTS) with workload identity.](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#workloadaltsconfig). Structure is documented below. @@ -4012,6 +4094,7 @@ def get(resource_name: str, __props__.__dict__["cluster_ipv4_cidr"] = cluster_ipv4_cidr __props__.__dict__["cluster_telemetry"] = cluster_telemetry __props__.__dict__["confidential_nodes"] = confidential_nodes + __props__.__dict__["control_plane_endpoints_config"] = control_plane_endpoints_config __props__.__dict__["cost_management_config"] = cost_management_config __props__.__dict__["database_encryption"] = database_encryption __props__.__dict__["datapath_provider"] = datapath_provider @@ -4080,6 +4163,7 @@ def get(resource_name: str, __props__.__dict__["subnetwork"] = subnetwork __props__.__dict__["tpu_config"] = tpu_config __props__.__dict__["tpu_ipv4_cidr_block"] = tpu_ipv4_cidr_block + __props__.__dict__["user_managed_keys_config"] = user_managed_keys_config __props__.__dict__["vertical_pod_autoscaling"] = vertical_pod_autoscaling __props__.__dict__["workload_alts_config"] = workload_alts_config __props__.__dict__["workload_identity_config"] = workload_identity_config @@ -4164,6 +4248,15 @@ def confidential_nodes(self) -> pulumi.Output['outputs.ClusterConfidentialNodes' """ return pulumi.get(self, "confidential_nodes") + @property + @pulumi.getter(name="controlPlaneEndpointsConfig") + def control_plane_endpoints_config(self) -> pulumi.Output['outputs.ClusterControlPlaneEndpointsConfig']: + """ + Configuration for all of the cluster's control plane endpoints. + Structure is documented below. + """ + return pulumi.get(self, "control_plane_endpoints_config") + @property @pulumi.getter(name="costManagementConfig") def cost_management_config(self) -> pulumi.Output['outputs.ClusterCostManagementConfig']: @@ -4827,6 +4920,14 @@ def tpu_ipv4_cidr_block(self) -> pulumi.Output[str]: """ return pulumi.get(self, "tpu_ipv4_cidr_block") + @property + @pulumi.getter(name="userManagedKeysConfig") + def user_managed_keys_config(self) -> pulumi.Output[Optional['outputs.ClusterUserManagedKeysConfig']]: + """ + The custom keys configuration of the cluster. + """ + return pulumi.get(self, "user_managed_keys_config") + @property @pulumi.getter(name="verticalPodAutoscaling") def vertical_pod_autoscaling(self) -> pulumi.Output['outputs.ClusterVerticalPodAutoscaling']: diff --git a/sdk/python/pulumi_gcp/container/get_cluster.py b/sdk/python/pulumi_gcp/container/get_cluster.py index c8d76e3590..930a033566 100644 --- a/sdk/python/pulumi_gcp/container/get_cluster.py +++ b/sdk/python/pulumi_gcp/container/get_cluster.py @@ -27,7 +27,7 @@ class GetClusterResult: """ A collection of values returned by getCluster. """ - def __init__(__self__, addons_configs=None, allow_net_admin=None, authenticator_groups_configs=None, binary_authorizations=None, cluster_autoscalings=None, cluster_ipv4_cidr=None, cluster_telemetries=None, confidential_nodes=None, cost_management_configs=None, database_encryptions=None, datapath_provider=None, default_max_pods_per_node=None, default_snat_statuses=None, deletion_protection=None, description=None, dns_configs=None, effective_labels=None, enable_autopilot=None, enable_cilium_clusterwide_network_policy=None, enable_fqdn_network_policy=None, enable_intranode_visibility=None, enable_k8s_beta_apis=None, enable_kubernetes_alpha=None, enable_l4_ilb_subsetting=None, enable_legacy_abac=None, enable_multi_networking=None, enable_shielded_nodes=None, enable_tpu=None, endpoint=None, fleets=None, gateway_api_configs=None, id=None, identity_service_configs=None, initial_node_count=None, ip_allocation_policies=None, label_fingerprint=None, location=None, logging_configs=None, logging_service=None, maintenance_policies=None, master_authorized_networks_configs=None, master_auths=None, master_version=None, mesh_certificates=None, min_master_version=None, monitoring_configs=None, monitoring_service=None, name=None, network=None, network_policies=None, networking_mode=None, node_configs=None, node_locations=None, node_pool_auto_configs=None, node_pool_defaults=None, node_pools=None, node_version=None, notification_configs=None, operation=None, pod_security_policy_configs=None, private_cluster_configs=None, private_ipv6_google_access=None, project=None, protect_configs=None, pulumi_labels=None, release_channels=None, remove_default_node_pool=None, resource_labels=None, resource_usage_export_configs=None, secret_manager_configs=None, security_posture_configs=None, self_link=None, service_external_ips_configs=None, services_ipv4_cidr=None, subnetwork=None, tpu_configs=None, tpu_ipv4_cidr_block=None, vertical_pod_autoscalings=None, workload_alts_configs=None, workload_identity_configs=None): + def __init__(__self__, addons_configs=None, allow_net_admin=None, authenticator_groups_configs=None, binary_authorizations=None, cluster_autoscalings=None, cluster_ipv4_cidr=None, cluster_telemetries=None, confidential_nodes=None, control_plane_endpoints_configs=None, cost_management_configs=None, database_encryptions=None, datapath_provider=None, default_max_pods_per_node=None, default_snat_statuses=None, deletion_protection=None, description=None, dns_configs=None, effective_labels=None, enable_autopilot=None, enable_cilium_clusterwide_network_policy=None, enable_fqdn_network_policy=None, enable_intranode_visibility=None, enable_k8s_beta_apis=None, enable_kubernetes_alpha=None, enable_l4_ilb_subsetting=None, enable_legacy_abac=None, enable_multi_networking=None, enable_shielded_nodes=None, enable_tpu=None, endpoint=None, fleets=None, gateway_api_configs=None, id=None, identity_service_configs=None, initial_node_count=None, ip_allocation_policies=None, label_fingerprint=None, location=None, logging_configs=None, logging_service=None, maintenance_policies=None, master_authorized_networks_configs=None, master_auths=None, master_version=None, mesh_certificates=None, min_master_version=None, monitoring_configs=None, monitoring_service=None, name=None, network=None, network_policies=None, networking_mode=None, node_configs=None, node_locations=None, node_pool_auto_configs=None, node_pool_defaults=None, node_pools=None, node_version=None, notification_configs=None, operation=None, pod_security_policy_configs=None, private_cluster_configs=None, private_ipv6_google_access=None, project=None, protect_configs=None, pulumi_labels=None, release_channels=None, remove_default_node_pool=None, resource_labels=None, resource_usage_export_configs=None, secret_manager_configs=None, security_posture_configs=None, self_link=None, service_external_ips_configs=None, services_ipv4_cidr=None, subnetwork=None, tpu_configs=None, tpu_ipv4_cidr_block=None, user_managed_keys_configs=None, vertical_pod_autoscalings=None, workload_alts_configs=None, workload_identity_configs=None): if addons_configs and not isinstance(addons_configs, list): raise TypeError("Expected argument 'addons_configs' to be a list") pulumi.set(__self__, "addons_configs", addons_configs) @@ -52,6 +52,9 @@ def __init__(__self__, addons_configs=None, allow_net_admin=None, authenticator_ if confidential_nodes and not isinstance(confidential_nodes, list): raise TypeError("Expected argument 'confidential_nodes' to be a list") pulumi.set(__self__, "confidential_nodes", confidential_nodes) + if control_plane_endpoints_configs and not isinstance(control_plane_endpoints_configs, list): + raise TypeError("Expected argument 'control_plane_endpoints_configs' to be a list") + pulumi.set(__self__, "control_plane_endpoints_configs", control_plane_endpoints_configs) if cost_management_configs and not isinstance(cost_management_configs, list): raise TypeError("Expected argument 'cost_management_configs' to be a list") pulumi.set(__self__, "cost_management_configs", cost_management_configs) @@ -259,6 +262,9 @@ def __init__(__self__, addons_configs=None, allow_net_admin=None, authenticator_ if tpu_ipv4_cidr_block and not isinstance(tpu_ipv4_cidr_block, str): raise TypeError("Expected argument 'tpu_ipv4_cidr_block' to be a str") pulumi.set(__self__, "tpu_ipv4_cidr_block", tpu_ipv4_cidr_block) + if user_managed_keys_configs and not isinstance(user_managed_keys_configs, list): + raise TypeError("Expected argument 'user_managed_keys_configs' to be a list") + pulumi.set(__self__, "user_managed_keys_configs", user_managed_keys_configs) if vertical_pod_autoscalings and not isinstance(vertical_pod_autoscalings, list): raise TypeError("Expected argument 'vertical_pod_autoscalings' to be a list") pulumi.set(__self__, "vertical_pod_autoscalings", vertical_pod_autoscalings) @@ -309,6 +315,11 @@ def cluster_telemetries(self) -> Sequence['outputs.GetClusterClusterTelemetryRes def confidential_nodes(self) -> Sequence['outputs.GetClusterConfidentialNodeResult']: return pulumi.get(self, "confidential_nodes") + @property + @pulumi.getter(name="controlPlaneEndpointsConfigs") + def control_plane_endpoints_configs(self) -> Sequence['outputs.GetClusterControlPlaneEndpointsConfigResult']: + return pulumi.get(self, "control_plane_endpoints_configs") + @property @pulumi.getter(name="costManagementConfigs") def cost_management_configs(self) -> Sequence['outputs.GetClusterCostManagementConfigResult']: @@ -657,6 +668,11 @@ def tpu_configs(self) -> Sequence['outputs.GetClusterTpuConfigResult']: def tpu_ipv4_cidr_block(self) -> str: return pulumi.get(self, "tpu_ipv4_cidr_block") + @property + @pulumi.getter(name="userManagedKeysConfigs") + def user_managed_keys_configs(self) -> Sequence['outputs.GetClusterUserManagedKeysConfigResult']: + return pulumi.get(self, "user_managed_keys_configs") + @property @pulumi.getter(name="verticalPodAutoscalings") def vertical_pod_autoscalings(self) -> Sequence['outputs.GetClusterVerticalPodAutoscalingResult']: @@ -687,6 +703,7 @@ def __await__(self): cluster_ipv4_cidr=self.cluster_ipv4_cidr, cluster_telemetries=self.cluster_telemetries, confidential_nodes=self.confidential_nodes, + control_plane_endpoints_configs=self.control_plane_endpoints_configs, cost_management_configs=self.cost_management_configs, database_encryptions=self.database_encryptions, datapath_provider=self.datapath_provider, @@ -756,6 +773,7 @@ def __await__(self): subnetwork=self.subnetwork, tpu_configs=self.tpu_configs, tpu_ipv4_cidr_block=self.tpu_ipv4_cidr_block, + user_managed_keys_configs=self.user_managed_keys_configs, vertical_pod_autoscalings=self.vertical_pod_autoscalings, workload_alts_configs=self.workload_alts_configs, workload_identity_configs=self.workload_identity_configs) @@ -806,6 +824,7 @@ def get_cluster(location: Optional[str] = None, cluster_ipv4_cidr=pulumi.get(__ret__, 'cluster_ipv4_cidr'), cluster_telemetries=pulumi.get(__ret__, 'cluster_telemetries'), confidential_nodes=pulumi.get(__ret__, 'confidential_nodes'), + control_plane_endpoints_configs=pulumi.get(__ret__, 'control_plane_endpoints_configs'), cost_management_configs=pulumi.get(__ret__, 'cost_management_configs'), database_encryptions=pulumi.get(__ret__, 'database_encryptions'), datapath_provider=pulumi.get(__ret__, 'datapath_provider'), @@ -875,6 +894,7 @@ def get_cluster(location: Optional[str] = None, subnetwork=pulumi.get(__ret__, 'subnetwork'), tpu_configs=pulumi.get(__ret__, 'tpu_configs'), tpu_ipv4_cidr_block=pulumi.get(__ret__, 'tpu_ipv4_cidr_block'), + user_managed_keys_configs=pulumi.get(__ret__, 'user_managed_keys_configs'), vertical_pod_autoscalings=pulumi.get(__ret__, 'vertical_pod_autoscalings'), workload_alts_configs=pulumi.get(__ret__, 'workload_alts_configs'), workload_identity_configs=pulumi.get(__ret__, 'workload_identity_configs')) @@ -922,6 +942,7 @@ def get_cluster_output(location: Optional[pulumi.Input[Optional[str]]] = None, cluster_ipv4_cidr=pulumi.get(__response__, 'cluster_ipv4_cidr'), cluster_telemetries=pulumi.get(__response__, 'cluster_telemetries'), confidential_nodes=pulumi.get(__response__, 'confidential_nodes'), + control_plane_endpoints_configs=pulumi.get(__response__, 'control_plane_endpoints_configs'), cost_management_configs=pulumi.get(__response__, 'cost_management_configs'), database_encryptions=pulumi.get(__response__, 'database_encryptions'), datapath_provider=pulumi.get(__response__, 'datapath_provider'), @@ -991,6 +1012,7 @@ def get_cluster_output(location: Optional[pulumi.Input[Optional[str]]] = None, subnetwork=pulumi.get(__response__, 'subnetwork'), tpu_configs=pulumi.get(__response__, 'tpu_configs'), tpu_ipv4_cidr_block=pulumi.get(__response__, 'tpu_ipv4_cidr_block'), + user_managed_keys_configs=pulumi.get(__response__, 'user_managed_keys_configs'), vertical_pod_autoscalings=pulumi.get(__response__, 'vertical_pod_autoscalings'), workload_alts_configs=pulumi.get(__response__, 'workload_alts_configs'), workload_identity_configs=pulumi.get(__response__, 'workload_identity_configs'))) diff --git a/sdk/python/pulumi_gcp/container/outputs.py b/sdk/python/pulumi_gcp/container/outputs.py index f0c050a2ab..a71c529222 100644 --- a/sdk/python/pulumi_gcp/container/outputs.py +++ b/sdk/python/pulumi_gcp/container/outputs.py @@ -98,6 +98,7 @@ 'ClusterAddonsConfigIstioConfig', 'ClusterAddonsConfigKalmConfig', 'ClusterAddonsConfigNetworkPolicyConfig', + 'ClusterAddonsConfigParallelstoreCsiDriverConfig', 'ClusterAddonsConfigRayOperatorConfig', 'ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig', 'ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig', @@ -115,6 +116,8 @@ 'ClusterClusterAutoscalingResourceLimit', 'ClusterClusterTelemetry', 'ClusterConfidentialNodes', + 'ClusterControlPlaneEndpointsConfig', + 'ClusterControlPlaneEndpointsConfigDnsEndpointConfig', 'ClusterCostManagementConfig', 'ClusterDatabaseEncryption', 'ClusterDefaultSnatStatus', @@ -237,6 +240,7 @@ 'ClusterSecurityPostureConfig', 'ClusterServiceExternalIpsConfig', 'ClusterTpuConfig', + 'ClusterUserManagedKeysConfig', 'ClusterVerticalPodAutoscaling', 'ClusterWorkloadAltsConfig', 'ClusterWorkloadIdentityConfig', @@ -294,6 +298,7 @@ 'GetClusterAddonsConfigIstioConfigResult', 'GetClusterAddonsConfigKalmConfigResult', 'GetClusterAddonsConfigNetworkPolicyConfigResult', + 'GetClusterAddonsConfigParallelstoreCsiDriverConfigResult', 'GetClusterAddonsConfigRayOperatorConfigResult', 'GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigResult', 'GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigResult', @@ -311,6 +316,8 @@ 'GetClusterClusterAutoscalingResourceLimitResult', 'GetClusterClusterTelemetryResult', 'GetClusterConfidentialNodeResult', + 'GetClusterControlPlaneEndpointsConfigResult', + 'GetClusterControlPlaneEndpointsConfigDnsEndpointConfigResult', 'GetClusterCostManagementConfigResult', 'GetClusterDatabaseEncryptionResult', 'GetClusterDefaultSnatStatusResult', @@ -433,6 +440,7 @@ 'GetClusterSecurityPostureConfigResult', 'GetClusterServiceExternalIpsConfigResult', 'GetClusterTpuConfigResult', + 'GetClusterUserManagedKeysConfigResult', 'GetClusterVerticalPodAutoscalingResult', 'GetClusterWorkloadAltsConfigResult', 'GetClusterWorkloadIdentityConfigResult', @@ -3892,6 +3900,8 @@ def __key_warning(key: str): suggest = "kalm_config" elif key == "networkPolicyConfig": suggest = "network_policy_config" + elif key == "parallelstoreCsiDriverConfig": + suggest = "parallelstore_csi_driver_config" elif key == "rayOperatorConfigs": suggest = "ray_operator_configs" elif key == "statefulHaConfig": @@ -3921,6 +3931,7 @@ def __init__(__self__, *, istio_config: Optional['outputs.ClusterAddonsConfigIstioConfig'] = None, kalm_config: Optional['outputs.ClusterAddonsConfigKalmConfig'] = None, network_policy_config: Optional['outputs.ClusterAddonsConfigNetworkPolicyConfig'] = None, + parallelstore_csi_driver_config: Optional['outputs.ClusterAddonsConfigParallelstoreCsiDriverConfig'] = None, ray_operator_configs: Optional[Sequence['outputs.ClusterAddonsConfigRayOperatorConfig']] = None, stateful_ha_config: Optional['outputs.ClusterAddonsConfigStatefulHaConfig'] = None): """ @@ -3965,6 +3976,13 @@ def __init__(__self__, *, otherwise nothing will happen. It can only be disabled if the nodes already do not have network policies enabled. Defaults to disabled; set `disabled = false` to enable. + :param 'ClusterAddonsConfigParallelstoreCsiDriverConfigArgs' parallelstore_csi_driver_config: The status of the Parallelstore CSI driver addon, + which allows the usage of a Parallelstore instances as volumes. + It is disabled by default for Standard clusters; set `enabled = true` to enable. + It is enabled by default for Autopilot clusters with version 1.29 or later; set `enabled = true` to enable it explicitly. + See [Enable the Parallelstore CSI driver](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/parallelstore-csi-new-volume#enable) for more information. + + This example `addons_config` disables two addons: :param Sequence['ClusterAddonsConfigRayOperatorConfigArgs'] ray_operator_configs: . The status of the [Ray Operator addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview). It is disabled by default. Set `enabled = true` to enable. The minimum @@ -3977,9 +3995,6 @@ def __init__(__self__, *, clusters on GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) for more information. - - - This example `addons_config` disables two addons: :param 'ClusterAddonsConfigStatefulHaConfigArgs' stateful_ha_config: . The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. It is disabled by default for Standard clusters. Set `enabled = true` to enable. @@ -4008,6 +4023,8 @@ def __init__(__self__, *, pulumi.set(__self__, "kalm_config", kalm_config) if network_policy_config is not None: pulumi.set(__self__, "network_policy_config", network_policy_config) + if parallelstore_csi_driver_config is not None: + pulumi.set(__self__, "parallelstore_csi_driver_config", parallelstore_csi_driver_config) if ray_operator_configs is not None: pulumi.set(__self__, "ray_operator_configs", ray_operator_configs) if stateful_ha_config is not None: @@ -4138,6 +4155,20 @@ def network_policy_config(self) -> Optional['outputs.ClusterAddonsConfigNetworkP """ return pulumi.get(self, "network_policy_config") + @property + @pulumi.getter(name="parallelstoreCsiDriverConfig") + def parallelstore_csi_driver_config(self) -> Optional['outputs.ClusterAddonsConfigParallelstoreCsiDriverConfig']: + """ + The status of the Parallelstore CSI driver addon, + which allows the usage of a Parallelstore instances as volumes. + It is disabled by default for Standard clusters; set `enabled = true` to enable. + It is enabled by default for Autopilot clusters with version 1.29 or later; set `enabled = true` to enable it explicitly. + See [Enable the Parallelstore CSI driver](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/parallelstore-csi-new-volume#enable) for more information. + + This example `addons_config` disables two addons: + """ + return pulumi.get(self, "parallelstore_csi_driver_config") + @property @pulumi.getter(name="rayOperatorConfigs") def ray_operator_configs(self) -> Optional[Sequence['outputs.ClusterAddonsConfigRayOperatorConfig']]: @@ -4154,9 +4185,6 @@ def ray_operator_configs(self) -> Optional[Sequence['outputs.ClusterAddonsConfig clusters on GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) for more information. - - - This example `addons_config` disables two addons: """ return pulumi.get(self, "ray_operator_configs") @@ -4402,6 +4430,18 @@ def disabled(self) -> bool: return pulumi.get(self, "disabled") +@pulumi.output_type +class ClusterAddonsConfigParallelstoreCsiDriverConfig(dict): + def __init__(__self__, *, + enabled: bool): + pulumi.set(__self__, "enabled", enabled) + + @property + @pulumi.getter + def enabled(self) -> bool: + return pulumi.get(self, "enabled") + + @pulumi.output_type class ClusterAddonsConfigRayOperatorConfig(dict): @staticmethod @@ -5326,6 +5366,90 @@ def enabled(self) -> bool: return pulumi.get(self, "enabled") +@pulumi.output_type +class ClusterControlPlaneEndpointsConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "dnsEndpointConfig": + suggest = "dns_endpoint_config" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ClusterControlPlaneEndpointsConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ClusterControlPlaneEndpointsConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ClusterControlPlaneEndpointsConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + dns_endpoint_config: Optional['outputs.ClusterControlPlaneEndpointsConfigDnsEndpointConfig'] = None): + """ + :param 'ClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs' dns_endpoint_config: DNS endpoint configuration. + """ + if dns_endpoint_config is not None: + pulumi.set(__self__, "dns_endpoint_config", dns_endpoint_config) + + @property + @pulumi.getter(name="dnsEndpointConfig") + def dns_endpoint_config(self) -> Optional['outputs.ClusterControlPlaneEndpointsConfigDnsEndpointConfig']: + """ + DNS endpoint configuration. + """ + return pulumi.get(self, "dns_endpoint_config") + + +@pulumi.output_type +class ClusterControlPlaneEndpointsConfigDnsEndpointConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "allowExternalTraffic": + suggest = "allow_external_traffic" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ClusterControlPlaneEndpointsConfigDnsEndpointConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ClusterControlPlaneEndpointsConfigDnsEndpointConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ClusterControlPlaneEndpointsConfigDnsEndpointConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + allow_external_traffic: Optional[bool] = None, + endpoint: Optional[str] = None): + """ + :param bool allow_external_traffic: Controls whether user traffic is allowed over this endpoint. Note that GCP-managed services may still use the endpoint even if this is false. + :param str endpoint: The cluster's DNS endpoint. + """ + if allow_external_traffic is not None: + pulumi.set(__self__, "allow_external_traffic", allow_external_traffic) + if endpoint is not None: + pulumi.set(__self__, "endpoint", endpoint) + + @property + @pulumi.getter(name="allowExternalTraffic") + def allow_external_traffic(self) -> Optional[bool]: + """ + Controls whether user traffic is allowed over this endpoint. Note that GCP-managed services may still use the endpoint even if this is false. + """ + return pulumi.get(self, "allow_external_traffic") + + @property + @pulumi.getter + def endpoint(self) -> Optional[str]: + """ + The cluster's DNS endpoint. + """ + return pulumi.get(self, "endpoint") + + @pulumi.output_type class ClusterCostManagementConfig(dict): def __init__(__self__, *, @@ -6393,6 +6517,8 @@ def __key_warning(key: str): suggest = "cidr_blocks" elif key == "gcpPublicCidrsAccessEnabled": suggest = "gcp_public_cidrs_access_enabled" + elif key == "privateEndpointEnforcementEnabled": + suggest = "private_endpoint_enforcement_enabled" if suggest: pulumi.log.warn(f"Key '{key}' not found in ClusterMasterAuthorizedNetworksConfig. Access the value via the '{suggest}' property getter instead.") @@ -6407,17 +6533,21 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, cidr_blocks: Optional[Sequence['outputs.ClusterMasterAuthorizedNetworksConfigCidrBlock']] = None, - gcp_public_cidrs_access_enabled: Optional[bool] = None): + gcp_public_cidrs_access_enabled: Optional[bool] = None, + private_endpoint_enforcement_enabled: Optional[bool] = None): """ :param Sequence['ClusterMasterAuthorizedNetworksConfigCidrBlockArgs'] cidr_blocks: External networks that can access the Kubernetes cluster master through HTTPS. :param bool gcp_public_cidrs_access_enabled: Whether Kubernetes master is accessible via Google Compute Engine Public IPs. + :param bool private_endpoint_enforcement_enabled: Whether authorized networks is enforced on the private endpoint or not. Defaults to false. """ if cidr_blocks is not None: pulumi.set(__self__, "cidr_blocks", cidr_blocks) if gcp_public_cidrs_access_enabled is not None: pulumi.set(__self__, "gcp_public_cidrs_access_enabled", gcp_public_cidrs_access_enabled) + if private_endpoint_enforcement_enabled is not None: + pulumi.set(__self__, "private_endpoint_enforcement_enabled", private_endpoint_enforcement_enabled) @property @pulumi.getter(name="cidrBlocks") @@ -6437,6 +6567,14 @@ def gcp_public_cidrs_access_enabled(self) -> Optional[bool]: """ return pulumi.get(self, "gcp_public_cidrs_access_enabled") + @property + @pulumi.getter(name="privateEndpointEnforcementEnabled") + def private_endpoint_enforcement_enabled(self) -> Optional[bool]: + """ + Whether authorized networks is enforced on the private endpoint or not. Defaults to false. + """ + return pulumi.get(self, "private_endpoint_enforcement_enabled") + @pulumi.output_type class ClusterMasterAuthorizedNetworksConfigCidrBlock(dict): @@ -12660,6 +12798,140 @@ def use_service_networking(self) -> Optional[bool]: return pulumi.get(self, "use_service_networking") +@pulumi.output_type +class ClusterUserManagedKeysConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "aggregationCa": + suggest = "aggregation_ca" + elif key == "clusterCa": + suggest = "cluster_ca" + elif key == "controlPlaneDiskEncryptionKey": + suggest = "control_plane_disk_encryption_key" + elif key == "etcdApiCa": + suggest = "etcd_api_ca" + elif key == "etcdPeerCa": + suggest = "etcd_peer_ca" + elif key == "gkeopsEtcdBackupEncryptionKey": + suggest = "gkeops_etcd_backup_encryption_key" + elif key == "serviceAccountSigningKeys": + suggest = "service_account_signing_keys" + elif key == "serviceAccountVerificationKeys": + suggest = "service_account_verification_keys" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ClusterUserManagedKeysConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ClusterUserManagedKeysConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ClusterUserManagedKeysConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + aggregation_ca: Optional[str] = None, + cluster_ca: Optional[str] = None, + control_plane_disk_encryption_key: Optional[str] = None, + etcd_api_ca: Optional[str] = None, + etcd_peer_ca: Optional[str] = None, + gkeops_etcd_backup_encryption_key: Optional[str] = None, + service_account_signing_keys: Optional[Sequence[str]] = None, + service_account_verification_keys: Optional[Sequence[str]] = None): + """ + :param str aggregation_ca: The Certificate Authority Service caPool to use for the aggreation CA in this cluster. + :param str cluster_ca: The Certificate Authority Service caPool to use for the cluster CA in this cluster. + :param str control_plane_disk_encryption_key: The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes. + :param str etcd_api_ca: The Certificate Authority Service caPool to use for the etcd API CA in this cluster. + :param str etcd_peer_ca: The Certificate Authority Service caPool to use for the etcd peer CA in this cluster. + :param str gkeops_etcd_backup_encryption_key: Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups. + :param Sequence[str] service_account_signing_keys: The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. + :param Sequence[str] service_account_verification_keys: The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. + """ + if aggregation_ca is not None: + pulumi.set(__self__, "aggregation_ca", aggregation_ca) + if cluster_ca is not None: + pulumi.set(__self__, "cluster_ca", cluster_ca) + if control_plane_disk_encryption_key is not None: + pulumi.set(__self__, "control_plane_disk_encryption_key", control_plane_disk_encryption_key) + if etcd_api_ca is not None: + pulumi.set(__self__, "etcd_api_ca", etcd_api_ca) + if etcd_peer_ca is not None: + pulumi.set(__self__, "etcd_peer_ca", etcd_peer_ca) + if gkeops_etcd_backup_encryption_key is not None: + pulumi.set(__self__, "gkeops_etcd_backup_encryption_key", gkeops_etcd_backup_encryption_key) + if service_account_signing_keys is not None: + pulumi.set(__self__, "service_account_signing_keys", service_account_signing_keys) + if service_account_verification_keys is not None: + pulumi.set(__self__, "service_account_verification_keys", service_account_verification_keys) + + @property + @pulumi.getter(name="aggregationCa") + def aggregation_ca(self) -> Optional[str]: + """ + The Certificate Authority Service caPool to use for the aggreation CA in this cluster. + """ + return pulumi.get(self, "aggregation_ca") + + @property + @pulumi.getter(name="clusterCa") + def cluster_ca(self) -> Optional[str]: + """ + The Certificate Authority Service caPool to use for the cluster CA in this cluster. + """ + return pulumi.get(self, "cluster_ca") + + @property + @pulumi.getter(name="controlPlaneDiskEncryptionKey") + def control_plane_disk_encryption_key(self) -> Optional[str]: + """ + The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes. + """ + return pulumi.get(self, "control_plane_disk_encryption_key") + + @property + @pulumi.getter(name="etcdApiCa") + def etcd_api_ca(self) -> Optional[str]: + """ + The Certificate Authority Service caPool to use for the etcd API CA in this cluster. + """ + return pulumi.get(self, "etcd_api_ca") + + @property + @pulumi.getter(name="etcdPeerCa") + def etcd_peer_ca(self) -> Optional[str]: + """ + The Certificate Authority Service caPool to use for the etcd peer CA in this cluster. + """ + return pulumi.get(self, "etcd_peer_ca") + + @property + @pulumi.getter(name="gkeopsEtcdBackupEncryptionKey") + def gkeops_etcd_backup_encryption_key(self) -> Optional[str]: + """ + Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups. + """ + return pulumi.get(self, "gkeops_etcd_backup_encryption_key") + + @property + @pulumi.getter(name="serviceAccountSigningKeys") + def service_account_signing_keys(self) -> Optional[Sequence[str]]: + """ + The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. + """ + return pulumi.get(self, "service_account_signing_keys") + + @property + @pulumi.getter(name="serviceAccountVerificationKeys") + def service_account_verification_keys(self) -> Optional[Sequence[str]]: + """ + The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. + """ + return pulumi.get(self, "service_account_verification_keys") + + @pulumi.output_type class ClusterVerticalPodAutoscaling(dict): def __init__(__self__, *, @@ -15267,6 +15539,7 @@ def __init__(__self__, *, istio_configs: Sequence['outputs.GetClusterAddonsConfigIstioConfigResult'], kalm_configs: Sequence['outputs.GetClusterAddonsConfigKalmConfigResult'], network_policy_configs: Sequence['outputs.GetClusterAddonsConfigNetworkPolicyConfigResult'], + parallelstore_csi_driver_configs: Sequence['outputs.GetClusterAddonsConfigParallelstoreCsiDriverConfigResult'], ray_operator_configs: Sequence['outputs.GetClusterAddonsConfigRayOperatorConfigResult'], stateful_ha_configs: Sequence['outputs.GetClusterAddonsConfigStatefulHaConfigResult']): """ @@ -15282,6 +15555,7 @@ def __init__(__self__, *, :param Sequence['GetClusterAddonsConfigIstioConfigArgs'] istio_configs: The status of the Istio addon. :param Sequence['GetClusterAddonsConfigKalmConfigArgs'] kalm_configs: Configuration for the KALM addon, which manages the lifecycle of k8s. It is disabled by default; Set enabled = true to enable. :param Sequence['GetClusterAddonsConfigNetworkPolicyConfigArgs'] network_policy_configs: Whether we should enable the network policy addon for the master. This must be enabled in order to enable network policy for the nodes. To enable this, you must also define a network_policy block, otherwise nothing will happen. It can only be disabled if the nodes already do not have network policies enabled. Defaults to disabled; set disabled = false to enable. + :param Sequence['GetClusterAddonsConfigParallelstoreCsiDriverConfigArgs'] parallelstore_csi_driver_configs: The status of the Parallelstore CSI driver addon, which allows the usage of Parallelstore instances as volumes. Defaults to disabled; set enabled = true to enable. :param Sequence['GetClusterAddonsConfigRayOperatorConfigArgs'] ray_operator_configs: The status of the Ray Operator addon, which enabled management of Ray AI/ML jobs on GKE. Defaults to disabled; set enabled = true to enable. :param Sequence['GetClusterAddonsConfigStatefulHaConfigArgs'] stateful_ha_configs: The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. Defaults to disabled; set enabled = true to enable. """ @@ -15297,6 +15571,7 @@ def __init__(__self__, *, pulumi.set(__self__, "istio_configs", istio_configs) pulumi.set(__self__, "kalm_configs", kalm_configs) pulumi.set(__self__, "network_policy_configs", network_policy_configs) + pulumi.set(__self__, "parallelstore_csi_driver_configs", parallelstore_csi_driver_configs) pulumi.set(__self__, "ray_operator_configs", ray_operator_configs) pulumi.set(__self__, "stateful_ha_configs", stateful_ha_configs) @@ -15396,6 +15671,14 @@ def network_policy_configs(self) -> Sequence['outputs.GetClusterAddonsConfigNetw """ return pulumi.get(self, "network_policy_configs") + @property + @pulumi.getter(name="parallelstoreCsiDriverConfigs") + def parallelstore_csi_driver_configs(self) -> Sequence['outputs.GetClusterAddonsConfigParallelstoreCsiDriverConfigResult']: + """ + The status of the Parallelstore CSI driver addon, which allows the usage of Parallelstore instances as volumes. Defaults to disabled; set enabled = true to enable. + """ + return pulumi.get(self, "parallelstore_csi_driver_configs") + @property @pulumi.getter(name="rayOperatorConfigs") def ray_operator_configs(self) -> Sequence['outputs.GetClusterAddonsConfigRayOperatorConfigResult']: @@ -15581,6 +15864,18 @@ def disabled(self) -> bool: return pulumi.get(self, "disabled") +@pulumi.output_type +class GetClusterAddonsConfigParallelstoreCsiDriverConfigResult(dict): + def __init__(__self__, *, + enabled: bool): + pulumi.set(__self__, "enabled", enabled) + + @property + @pulumi.getter + def enabled(self) -> bool: + return pulumi.get(self, "enabled") + + @pulumi.output_type class GetClusterAddonsConfigRayOperatorConfigResult(dict): def __init__(__self__, *, @@ -16181,6 +16476,53 @@ def enabled(self) -> bool: return pulumi.get(self, "enabled") +@pulumi.output_type +class GetClusterControlPlaneEndpointsConfigResult(dict): + def __init__(__self__, *, + dns_endpoint_configs: Sequence['outputs.GetClusterControlPlaneEndpointsConfigDnsEndpointConfigResult']): + """ + :param Sequence['GetClusterControlPlaneEndpointsConfigDnsEndpointConfigArgs'] dns_endpoint_configs: DNS endpoint configuration. + """ + pulumi.set(__self__, "dns_endpoint_configs", dns_endpoint_configs) + + @property + @pulumi.getter(name="dnsEndpointConfigs") + def dns_endpoint_configs(self) -> Sequence['outputs.GetClusterControlPlaneEndpointsConfigDnsEndpointConfigResult']: + """ + DNS endpoint configuration. + """ + return pulumi.get(self, "dns_endpoint_configs") + + +@pulumi.output_type +class GetClusterControlPlaneEndpointsConfigDnsEndpointConfigResult(dict): + def __init__(__self__, *, + allow_external_traffic: bool, + endpoint: str): + """ + :param bool allow_external_traffic: Controls whether user traffic is allowed over this endpoint. Note that GCP-managed services may still use the endpoint even if this is false. + :param str endpoint: The cluster's DNS endpoint. + """ + pulumi.set(__self__, "allow_external_traffic", allow_external_traffic) + pulumi.set(__self__, "endpoint", endpoint) + + @property + @pulumi.getter(name="allowExternalTraffic") + def allow_external_traffic(self) -> bool: + """ + Controls whether user traffic is allowed over this endpoint. Note that GCP-managed services may still use the endpoint even if this is false. + """ + return pulumi.get(self, "allow_external_traffic") + + @property + @pulumi.getter + def endpoint(self) -> str: + """ + The cluster's DNS endpoint. + """ + return pulumi.get(self, "endpoint") + + @pulumi.output_type class GetClusterCostManagementConfigResult(dict): def __init__(__self__, *, @@ -16762,13 +17104,16 @@ def issue_client_certificate(self) -> bool: class GetClusterMasterAuthorizedNetworksConfigResult(dict): def __init__(__self__, *, cidr_blocks: Sequence['outputs.GetClusterMasterAuthorizedNetworksConfigCidrBlockResult'], - gcp_public_cidrs_access_enabled: bool): + gcp_public_cidrs_access_enabled: bool, + private_endpoint_enforcement_enabled: bool): """ :param Sequence['GetClusterMasterAuthorizedNetworksConfigCidrBlockArgs'] cidr_blocks: External networks that can access the Kubernetes cluster master through HTTPS. :param bool gcp_public_cidrs_access_enabled: Whether Kubernetes master is accessible via Google Compute Engine Public IPs. + :param bool private_endpoint_enforcement_enabled: Whether authorized networks is enforced on the private endpoint or not. Defaults to false. """ pulumi.set(__self__, "cidr_blocks", cidr_blocks) pulumi.set(__self__, "gcp_public_cidrs_access_enabled", gcp_public_cidrs_access_enabled) + pulumi.set(__self__, "private_endpoint_enforcement_enabled", private_endpoint_enforcement_enabled) @property @pulumi.getter(name="cidrBlocks") @@ -16786,6 +17131,14 @@ def gcp_public_cidrs_access_enabled(self) -> bool: """ return pulumi.get(self, "gcp_public_cidrs_access_enabled") + @property + @pulumi.getter(name="privateEndpointEnforcementEnabled") + def private_endpoint_enforcement_enabled(self) -> bool: + """ + Whether authorized networks is enforced on the private endpoint or not. Defaults to false. + """ + return pulumi.get(self, "private_endpoint_enforcement_enabled") + @pulumi.output_type class GetClusterMasterAuthorizedNetworksConfigCidrBlockResult(dict): @@ -20768,6 +21121,101 @@ def use_service_networking(self) -> bool: return pulumi.get(self, "use_service_networking") +@pulumi.output_type +class GetClusterUserManagedKeysConfigResult(dict): + def __init__(__self__, *, + aggregation_ca: str, + cluster_ca: str, + control_plane_disk_encryption_key: str, + etcd_api_ca: str, + etcd_peer_ca: str, + gkeops_etcd_backup_encryption_key: str, + service_account_signing_keys: Sequence[str], + service_account_verification_keys: Sequence[str]): + """ + :param str aggregation_ca: The Certificate Authority Service caPool to use for the aggreation CA in this cluster. + :param str cluster_ca: The Certificate Authority Service caPool to use for the cluster CA in this cluster. + :param str control_plane_disk_encryption_key: The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes. + :param str etcd_api_ca: The Certificate Authority Service caPool to use for the etcd API CA in this cluster. + :param str etcd_peer_ca: The Certificate Authority Service caPool to use for the etcd peer CA in this cluster. + :param str gkeops_etcd_backup_encryption_key: Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups. + :param Sequence[str] service_account_signing_keys: The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. + :param Sequence[str] service_account_verification_keys: The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. + """ + pulumi.set(__self__, "aggregation_ca", aggregation_ca) + pulumi.set(__self__, "cluster_ca", cluster_ca) + pulumi.set(__self__, "control_plane_disk_encryption_key", control_plane_disk_encryption_key) + pulumi.set(__self__, "etcd_api_ca", etcd_api_ca) + pulumi.set(__self__, "etcd_peer_ca", etcd_peer_ca) + pulumi.set(__self__, "gkeops_etcd_backup_encryption_key", gkeops_etcd_backup_encryption_key) + pulumi.set(__self__, "service_account_signing_keys", service_account_signing_keys) + pulumi.set(__self__, "service_account_verification_keys", service_account_verification_keys) + + @property + @pulumi.getter(name="aggregationCa") + def aggregation_ca(self) -> str: + """ + The Certificate Authority Service caPool to use for the aggreation CA in this cluster. + """ + return pulumi.get(self, "aggregation_ca") + + @property + @pulumi.getter(name="clusterCa") + def cluster_ca(self) -> str: + """ + The Certificate Authority Service caPool to use for the cluster CA in this cluster. + """ + return pulumi.get(self, "cluster_ca") + + @property + @pulumi.getter(name="controlPlaneDiskEncryptionKey") + def control_plane_disk_encryption_key(self) -> str: + """ + The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes. + """ + return pulumi.get(self, "control_plane_disk_encryption_key") + + @property + @pulumi.getter(name="etcdApiCa") + def etcd_api_ca(self) -> str: + """ + The Certificate Authority Service caPool to use for the etcd API CA in this cluster. + """ + return pulumi.get(self, "etcd_api_ca") + + @property + @pulumi.getter(name="etcdPeerCa") + def etcd_peer_ca(self) -> str: + """ + The Certificate Authority Service caPool to use for the etcd peer CA in this cluster. + """ + return pulumi.get(self, "etcd_peer_ca") + + @property + @pulumi.getter(name="gkeopsEtcdBackupEncryptionKey") + def gkeops_etcd_backup_encryption_key(self) -> str: + """ + Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups. + """ + return pulumi.get(self, "gkeops_etcd_backup_encryption_key") + + @property + @pulumi.getter(name="serviceAccountSigningKeys") + def service_account_signing_keys(self) -> Sequence[str]: + """ + The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. + """ + return pulumi.get(self, "service_account_signing_keys") + + @property + @pulumi.getter(name="serviceAccountVerificationKeys") + def service_account_verification_keys(self) -> Sequence[str]: + """ + The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. + """ + return pulumi.get(self, "service_account_verification_keys") + + @pulumi.output_type class GetClusterVerticalPodAutoscalingResult(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_gcp/dataloss/prevention_discovery_config.py b/sdk/python/pulumi_gcp/dataloss/prevention_discovery_config.py index fae072a828..edf13f0bf9 100644 --- a/sdk/python/pulumi_gcp/dataloss/prevention_discovery_config.py +++ b/sdk/python/pulumi_gcp/dataloss/prevention_discovery_config.py @@ -42,7 +42,7 @@ def __init__(__self__, *, Structure is documented below. :param pulumi.Input[str] display_name: Display Name (max 1000 Chars) :param pulumi.Input[Sequence[pulumi.Input[str]]] inspect_templates: Detection logic for profile generation - :param pulumi.Input['PreventionDiscoveryConfigOrgConfigArgs'] org_config: A nested object resource + :param pulumi.Input['PreventionDiscoveryConfigOrgConfigArgs'] org_config: A nested object resource. Structure is documented below. :param pulumi.Input[str] status: Required. A status for this configuration Possible values are: `RUNNING`, `PAUSED`. @@ -134,7 +134,7 @@ def inspect_templates(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[s @pulumi.getter(name="orgConfig") def org_config(self) -> Optional[pulumi.Input['PreventionDiscoveryConfigOrgConfigArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "org_config") @@ -201,7 +201,7 @@ def __init__(__self__, *, - - - :param pulumi.Input[str] name: Unique resource name for the DiscoveryConfig, assigned by the service when the DiscoveryConfig is created. - :param pulumi.Input['PreventionDiscoveryConfigOrgConfigArgs'] org_config: A nested object resource + :param pulumi.Input['PreventionDiscoveryConfigOrgConfigArgs'] org_config: A nested object resource. Structure is documented below. :param pulumi.Input[str] parent: The parent of the discovery config in any of the following formats: * `projects/{{project}}/locations/{{location}}` @@ -344,7 +344,7 @@ def name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="orgConfig") def org_config(self) -> Optional[pulumi.Input['PreventionDiscoveryConfigOrgConfigArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "org_config") @@ -459,7 +459,7 @@ def __init__(__self__, - - - - :param pulumi.Input[Union['PreventionDiscoveryConfigOrgConfigArgs', 'PreventionDiscoveryConfigOrgConfigArgsDict']] org_config: A nested object resource + :param pulumi.Input[Union['PreventionDiscoveryConfigOrgConfigArgs', 'PreventionDiscoveryConfigOrgConfigArgsDict']] org_config: A nested object resource. Structure is documented below. :param pulumi.Input[str] parent: The parent of the discovery config in any of the following formats: * `projects/{{project}}/locations/{{location}}` @@ -596,7 +596,7 @@ def get(resource_name: str, - - - :param pulumi.Input[str] name: Unique resource name for the DiscoveryConfig, assigned by the service when the DiscoveryConfig is created. - :param pulumi.Input[Union['PreventionDiscoveryConfigOrgConfigArgs', 'PreventionDiscoveryConfigOrgConfigArgsDict']] org_config: A nested object resource + :param pulumi.Input[Union['PreventionDiscoveryConfigOrgConfigArgs', 'PreventionDiscoveryConfigOrgConfigArgsDict']] org_config: A nested object resource. Structure is documented below. :param pulumi.Input[str] parent: The parent of the discovery config in any of the following formats: * `projects/{{project}}/locations/{{location}}` @@ -699,7 +699,7 @@ def name(self) -> pulumi.Output[str]: @pulumi.getter(name="orgConfig") def org_config(self) -> pulumi.Output[Optional['outputs.PreventionDiscoveryConfigOrgConfig']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "org_config") diff --git a/sdk/python/pulumi_gcp/dataproc/__init__.py b/sdk/python/pulumi_gcp/dataproc/__init__.py index a418beb5ae..676ca49187 100644 --- a/sdk/python/pulumi_gcp/dataproc/__init__.py +++ b/sdk/python/pulumi_gcp/dataproc/__init__.py @@ -14,6 +14,8 @@ from .cluster_iam_binding import * from .cluster_iam_member import * from .cluster_iam_policy import * +from .gdc_application_environment import * +from .gdc_service_instance import * from .get_autoscaling_policy_iam_policy import * from .get_cluster_iam_policy import * from .get_job_iam_policy import * diff --git a/sdk/python/pulumi_gcp/dataproc/_inputs.py b/sdk/python/pulumi_gcp/dataproc/_inputs.py index d010301663..aeb0e5f61f 100644 --- a/sdk/python/pulumi_gcp/dataproc/_inputs.py +++ b/sdk/python/pulumi_gcp/dataproc/_inputs.py @@ -143,6 +143,12 @@ 'ClusterVirtualClusterConfigKubernetesClusterConfigGkeClusterConfigNodePoolTargetNodePoolConfigConfigArgsDict', 'ClusterVirtualClusterConfigKubernetesClusterConfigKubernetesSoftwareConfigArgs', 'ClusterVirtualClusterConfigKubernetesClusterConfigKubernetesSoftwareConfigArgsDict', + 'GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs', + 'GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgsDict', + 'GdcServiceInstanceGdceClusterArgs', + 'GdcServiceInstanceGdceClusterArgsDict', + 'GdcServiceInstanceSparkServiceInstanceConfigArgs', + 'GdcServiceInstanceSparkServiceInstanceConfigArgsDict', 'JobHadoopConfigArgs', 'JobHadoopConfigArgsDict', 'JobHadoopConfigLoggingConfigArgs', @@ -6568,6 +6574,101 @@ def properties(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str] pulumi.set(self, "properties", value) +if not MYPY: + class GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgsDict(TypedDict): + default_properties: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]] + """ + A map of default Spark properties to apply to workloads in this application environment. These defaults may be overridden by per-application properties. + """ + default_version: NotRequired[pulumi.Input[str]] + """ + The default Dataproc version to use for applications submitted to this application environment + """ +elif False: + GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs: + def __init__(__self__, *, + default_properties: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + default_version: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] default_properties: A map of default Spark properties to apply to workloads in this application environment. These defaults may be overridden by per-application properties. + :param pulumi.Input[str] default_version: The default Dataproc version to use for applications submitted to this application environment + """ + if default_properties is not None: + pulumi.set(__self__, "default_properties", default_properties) + if default_version is not None: + pulumi.set(__self__, "default_version", default_version) + + @property + @pulumi.getter(name="defaultProperties") + def default_properties(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A map of default Spark properties to apply to workloads in this application environment. These defaults may be overridden by per-application properties. + """ + return pulumi.get(self, "default_properties") + + @default_properties.setter + def default_properties(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "default_properties", value) + + @property + @pulumi.getter(name="defaultVersion") + def default_version(self) -> Optional[pulumi.Input[str]]: + """ + The default Dataproc version to use for applications submitted to this application environment + """ + return pulumi.get(self, "default_version") + + @default_version.setter + def default_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "default_version", value) + + +if not MYPY: + class GdcServiceInstanceGdceClusterArgsDict(TypedDict): + gdce_cluster: pulumi.Input[str] + """ + Gdce cluster resource id. + """ +elif False: + GdcServiceInstanceGdceClusterArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class GdcServiceInstanceGdceClusterArgs: + def __init__(__self__, *, + gdce_cluster: pulumi.Input[str]): + """ + :param pulumi.Input[str] gdce_cluster: Gdce cluster resource id. + """ + pulumi.set(__self__, "gdce_cluster", gdce_cluster) + + @property + @pulumi.getter(name="gdceCluster") + def gdce_cluster(self) -> pulumi.Input[str]: + """ + Gdce cluster resource id. + """ + return pulumi.get(self, "gdce_cluster") + + @gdce_cluster.setter + def gdce_cluster(self, value: pulumi.Input[str]): + pulumi.set(self, "gdce_cluster", value) + + +if not MYPY: + class GdcServiceInstanceSparkServiceInstanceConfigArgsDict(TypedDict): + pass +elif False: + GdcServiceInstanceSparkServiceInstanceConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class GdcServiceInstanceSparkServiceInstanceConfigArgs: + def __init__(__self__): + pass + + if not MYPY: class JobHadoopConfigArgsDict(TypedDict): archive_uris: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] diff --git a/sdk/python/pulumi_gcp/dataproc/gdc_application_environment.py b/sdk/python/pulumi_gcp/dataproc/gdc_application_environment.py new file mode 100644 index 0000000000..5c8e15c016 --- /dev/null +++ b/sdk/python/pulumi_gcp/dataproc/gdc_application_environment.py @@ -0,0 +1,931 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['GdcApplicationEnvironmentArgs', 'GdcApplicationEnvironment'] + +@pulumi.input_type +class GdcApplicationEnvironmentArgs: + def __init__(__self__, *, + location: pulumi.Input[str], + serviceinstance: pulumi.Input[str], + annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + application_environment_id: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + namespace: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + spark_application_environment_config: Optional[pulumi.Input['GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs']] = None): + """ + The set of arguments for constructing a GdcApplicationEnvironment resource. + :param pulumi.Input[str] location: The location of the application environment + :param pulumi.Input[str] serviceinstance: The id of the service instance to which this application environment belongs. + + + - - - + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] annotations: The annotations to associate with this application environment. Annotations may be used to store client information, but are not used by the server. + **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + Please refer to the field `effective_annotations` for all of the annotations present on the resource. + :param pulumi.Input[str] application_environment_id: The id of the application environment + :param pulumi.Input[str] display_name: User-provided human-readable name to be used in user interfaces. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: The labels to associate with this application environment. Labels may be used for filtering and billing tracking. + **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + Please refer to the field `effective_labels` for all of the labels present on the resource. + :param pulumi.Input[str] namespace: The name of the namespace in which to create this ApplicationEnvironment. This namespace must already exist in the cluster + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + :param pulumi.Input['GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs'] spark_application_environment_config: Represents the SparkApplicationEnvironmentConfig. + Structure is documented below. + """ + pulumi.set(__self__, "location", location) + pulumi.set(__self__, "serviceinstance", serviceinstance) + if annotations is not None: + pulumi.set(__self__, "annotations", annotations) + if application_environment_id is not None: + pulumi.set(__self__, "application_environment_id", application_environment_id) + if display_name is not None: + pulumi.set(__self__, "display_name", display_name) + if labels is not None: + pulumi.set(__self__, "labels", labels) + if namespace is not None: + pulumi.set(__self__, "namespace", namespace) + if project is not None: + pulumi.set(__self__, "project", project) + if spark_application_environment_config is not None: + pulumi.set(__self__, "spark_application_environment_config", spark_application_environment_config) + + @property + @pulumi.getter + def location(self) -> pulumi.Input[str]: + """ + The location of the application environment + """ + return pulumi.get(self, "location") + + @location.setter + def location(self, value: pulumi.Input[str]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter + def serviceinstance(self) -> pulumi.Input[str]: + """ + The id of the service instance to which this application environment belongs. + + + - - - + """ + return pulumi.get(self, "serviceinstance") + + @serviceinstance.setter + def serviceinstance(self, value: pulumi.Input[str]): + pulumi.set(self, "serviceinstance", value) + + @property + @pulumi.getter + def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + The annotations to associate with this application environment. Annotations may be used to store client information, but are not used by the server. + **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + Please refer to the field `effective_annotations` for all of the annotations present on the resource. + """ + return pulumi.get(self, "annotations") + + @annotations.setter + def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "annotations", value) + + @property + @pulumi.getter(name="applicationEnvironmentId") + def application_environment_id(self) -> Optional[pulumi.Input[str]]: + """ + The id of the application environment + """ + return pulumi.get(self, "application_environment_id") + + @application_environment_id.setter + def application_environment_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "application_environment_id", value) + + @property + @pulumi.getter(name="displayName") + def display_name(self) -> Optional[pulumi.Input[str]]: + """ + User-provided human-readable name to be used in user interfaces. + """ + return pulumi.get(self, "display_name") + + @display_name.setter + def display_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "display_name", value) + + @property + @pulumi.getter + def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + The labels to associate with this application environment. Labels may be used for filtering and billing tracking. + **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + Please refer to the field `effective_labels` for all of the labels present on the resource. + """ + return pulumi.get(self, "labels") + + @labels.setter + def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "labels", value) + + @property + @pulumi.getter + def namespace(self) -> Optional[pulumi.Input[str]]: + """ + The name of the namespace in which to create this ApplicationEnvironment. This namespace must already exist in the cluster + """ + return pulumi.get(self, "namespace") + + @namespace.setter + def namespace(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "namespace", value) + + @property + @pulumi.getter + def project(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + """ + return pulumi.get(self, "project") + + @project.setter + def project(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project", value) + + @property + @pulumi.getter(name="sparkApplicationEnvironmentConfig") + def spark_application_environment_config(self) -> Optional[pulumi.Input['GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs']]: + """ + Represents the SparkApplicationEnvironmentConfig. + Structure is documented below. + """ + return pulumi.get(self, "spark_application_environment_config") + + @spark_application_environment_config.setter + def spark_application_environment_config(self, value: Optional[pulumi.Input['GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs']]): + pulumi.set(self, "spark_application_environment_config", value) + + +@pulumi.input_type +class _GdcApplicationEnvironmentState: + def __init__(__self__, *, + annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + application_environment_id: Optional[pulumi.Input[str]] = None, + create_time: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + effective_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + namespace: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + serviceinstance: Optional[pulumi.Input[str]] = None, + spark_application_environment_config: Optional[pulumi.Input['GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs']] = None, + uid: Optional[pulumi.Input[str]] = None, + update_time: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering GdcApplicationEnvironment resources. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] annotations: The annotations to associate with this application environment. Annotations may be used to store client information, but are not used by the server. + **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + Please refer to the field `effective_annotations` for all of the annotations present on the resource. + :param pulumi.Input[str] application_environment_id: The id of the application environment + :param pulumi.Input[str] create_time: The timestamp when the resource was created. + :param pulumi.Input[str] display_name: User-provided human-readable name to be used in user interfaces. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: The labels to associate with this application environment. Labels may be used for filtering and billing tracking. + **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + Please refer to the field `effective_labels` for all of the labels present on the resource. + :param pulumi.Input[str] location: The location of the application environment + :param pulumi.Input[str] name: Identifier. The name of the application environment. Format: projects/{project}/locations/{location}/serviceInstances/{service_instance}/applicationEnvironments/{application_environment_id} + :param pulumi.Input[str] namespace: The name of the namespace in which to create this ApplicationEnvironment. This namespace must already exist in the cluster + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource + and default labels configured on the provider. + :param pulumi.Input[str] serviceinstance: The id of the service instance to which this application environment belongs. + + + - - - + :param pulumi.Input['GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs'] spark_application_environment_config: Represents the SparkApplicationEnvironmentConfig. + Structure is documented below. + :param pulumi.Input[str] uid: System generated unique identifier for this application environment, formatted as UUID4. + :param pulumi.Input[str] update_time: The timestamp when the resource was most recently updated. + """ + if annotations is not None: + pulumi.set(__self__, "annotations", annotations) + if application_environment_id is not None: + pulumi.set(__self__, "application_environment_id", application_environment_id) + if create_time is not None: + pulumi.set(__self__, "create_time", create_time) + if display_name is not None: + pulumi.set(__self__, "display_name", display_name) + if effective_annotations is not None: + pulumi.set(__self__, "effective_annotations", effective_annotations) + if effective_labels is not None: + pulumi.set(__self__, "effective_labels", effective_labels) + if labels is not None: + pulumi.set(__self__, "labels", labels) + if location is not None: + pulumi.set(__self__, "location", location) + if name is not None: + pulumi.set(__self__, "name", name) + if namespace is not None: + pulumi.set(__self__, "namespace", namespace) + if project is not None: + pulumi.set(__self__, "project", project) + if pulumi_labels is not None: + pulumi.set(__self__, "pulumi_labels", pulumi_labels) + if serviceinstance is not None: + pulumi.set(__self__, "serviceinstance", serviceinstance) + if spark_application_environment_config is not None: + pulumi.set(__self__, "spark_application_environment_config", spark_application_environment_config) + if uid is not None: + pulumi.set(__self__, "uid", uid) + if update_time is not None: + pulumi.set(__self__, "update_time", update_time) + + @property + @pulumi.getter + def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + The annotations to associate with this application environment. Annotations may be used to store client information, but are not used by the server. + **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + Please refer to the field `effective_annotations` for all of the annotations present on the resource. + """ + return pulumi.get(self, "annotations") + + @annotations.setter + def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "annotations", value) + + @property + @pulumi.getter(name="applicationEnvironmentId") + def application_environment_id(self) -> Optional[pulumi.Input[str]]: + """ + The id of the application environment + """ + return pulumi.get(self, "application_environment_id") + + @application_environment_id.setter + def application_environment_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "application_environment_id", value) + + @property + @pulumi.getter(name="createTime") + def create_time(self) -> Optional[pulumi.Input[str]]: + """ + The timestamp when the resource was created. + """ + return pulumi.get(self, "create_time") + + @create_time.setter + def create_time(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "create_time", value) + + @property + @pulumi.getter(name="displayName") + def display_name(self) -> Optional[pulumi.Input[str]]: + """ + User-provided human-readable name to be used in user interfaces. + """ + return pulumi.get(self, "display_name") + + @display_name.setter + def display_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "display_name", value) + + @property + @pulumi.getter(name="effectiveAnnotations") + def effective_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + return pulumi.get(self, "effective_annotations") + + @effective_annotations.setter + def effective_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "effective_annotations", value) + + @property + @pulumi.getter(name="effectiveLabels") + def effective_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + """ + return pulumi.get(self, "effective_labels") + + @effective_labels.setter + def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "effective_labels", value) + + @property + @pulumi.getter + def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + The labels to associate with this application environment. Labels may be used for filtering and billing tracking. + **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + Please refer to the field `effective_labels` for all of the labels present on the resource. + """ + return pulumi.get(self, "labels") + + @labels.setter + def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "labels", value) + + @property + @pulumi.getter + def location(self) -> Optional[pulumi.Input[str]]: + """ + The location of the application environment + """ + return pulumi.get(self, "location") + + @location.setter + def location(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Identifier. The name of the application environment. Format: projects/{project}/locations/{location}/serviceInstances/{service_instance}/applicationEnvironments/{application_environment_id} + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def namespace(self) -> Optional[pulumi.Input[str]]: + """ + The name of the namespace in which to create this ApplicationEnvironment. This namespace must already exist in the cluster + """ + return pulumi.get(self, "namespace") + + @namespace.setter + def namespace(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "namespace", value) + + @property + @pulumi.getter + def project(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + """ + return pulumi.get(self, "project") + + @project.setter + def project(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project", value) + + @property + @pulumi.getter(name="pulumiLabels") + def pulumi_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + The combination of labels configured directly on the resource + and default labels configured on the provider. + """ + return pulumi.get(self, "pulumi_labels") + + @pulumi_labels.setter + def pulumi_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "pulumi_labels", value) + + @property + @pulumi.getter + def serviceinstance(self) -> Optional[pulumi.Input[str]]: + """ + The id of the service instance to which this application environment belongs. + + + - - - + """ + return pulumi.get(self, "serviceinstance") + + @serviceinstance.setter + def serviceinstance(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "serviceinstance", value) + + @property + @pulumi.getter(name="sparkApplicationEnvironmentConfig") + def spark_application_environment_config(self) -> Optional[pulumi.Input['GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs']]: + """ + Represents the SparkApplicationEnvironmentConfig. + Structure is documented below. + """ + return pulumi.get(self, "spark_application_environment_config") + + @spark_application_environment_config.setter + def spark_application_environment_config(self, value: Optional[pulumi.Input['GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs']]): + pulumi.set(self, "spark_application_environment_config", value) + + @property + @pulumi.getter + def uid(self) -> Optional[pulumi.Input[str]]: + """ + System generated unique identifier for this application environment, formatted as UUID4. + """ + return pulumi.get(self, "uid") + + @uid.setter + def uid(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "uid", value) + + @property + @pulumi.getter(name="updateTime") + def update_time(self) -> Optional[pulumi.Input[str]]: + """ + The timestamp when the resource was most recently updated. + """ + return pulumi.get(self, "update_time") + + @update_time.setter + def update_time(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "update_time", value) + + +class GdcApplicationEnvironment(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + application_environment_id: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + location: Optional[pulumi.Input[str]] = None, + namespace: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + serviceinstance: Optional[pulumi.Input[str]] = None, + spark_application_environment_config: Optional[pulumi.Input[Union['GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs', 'GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgsDict']]] = None, + __props__=None): + """ + An ApplicationEnvironment contains shared configuration that may be referenced by multiple SparkApplications. + + To get more information about ApplicationEnvironment, see: + + * [API documentation](https://cloud.google.com/dataproc-gdc/docs/reference/rest/v1/projects.locations.applicationEnvironments) + * How-to Guides + * [Dataproc Intro](https://cloud.google.com/dataproc/) + + ## Example Usage + + ### Dataprocgdc Applicationenvironment Basic + + ```python + import pulumi + import pulumi_gcp as gcp + + application_environment = gcp.dataproc.GdcApplicationEnvironment("application-environment", + application_environment_id="dp-tf-e2e-application-environment-basic", + serviceinstance="do-not-delete-dataproc-gdc-instance", + project="my-project", + location="us-west2", + namespace="default") + ``` + ### Dataprocgdc Applicationenvironment + + ```python + import pulumi + import pulumi_gcp as gcp + + application_environment = gcp.dataproc.GdcApplicationEnvironment("application-environment", + application_environment_id="dp-tf-e2e-application-environment", + serviceinstance="do-not-delete-dataproc-gdc-instance", + project="my-project", + location="us-west2", + namespace="default", + display_name="An application environment", + labels={ + "test-label": "label-value", + }, + annotations={ + "an_annotation": "annotation_value", + }, + spark_application_environment_config={ + "default_properties": { + "spark.executor.memory": "4g", + }, + "default_version": "1.2", + }) + ``` + + ## Import + + ApplicationEnvironment can be imported using any of these accepted formats: + + * `projects/{{project}}/locations/{{location}}/serviceInstances/{{serviceinstance}}/applicationEnvironments/{{application_environment_id}}` + + * `{{project}}/{{location}}/{{serviceinstance}}/{{application_environment_id}}` + + * `{{location}}/{{serviceinstance}}/{{application_environment_id}}` + + When using the `pulumi import` command, ApplicationEnvironment can be imported using one of the formats above. For example: + + ```sh + $ pulumi import gcp:dataproc/gdcApplicationEnvironment:GdcApplicationEnvironment default projects/{{project}}/locations/{{location}}/serviceInstances/{{serviceinstance}}/applicationEnvironments/{{application_environment_id}} + ``` + + ```sh + $ pulumi import gcp:dataproc/gdcApplicationEnvironment:GdcApplicationEnvironment default {{project}}/{{location}}/{{serviceinstance}}/{{application_environment_id}} + ``` + + ```sh + $ pulumi import gcp:dataproc/gdcApplicationEnvironment:GdcApplicationEnvironment default {{location}}/{{serviceinstance}}/{{application_environment_id}} + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] annotations: The annotations to associate with this application environment. Annotations may be used to store client information, but are not used by the server. + **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + Please refer to the field `effective_annotations` for all of the annotations present on the resource. + :param pulumi.Input[str] application_environment_id: The id of the application environment + :param pulumi.Input[str] display_name: User-provided human-readable name to be used in user interfaces. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: The labels to associate with this application environment. Labels may be used for filtering and billing tracking. + **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + Please refer to the field `effective_labels` for all of the labels present on the resource. + :param pulumi.Input[str] location: The location of the application environment + :param pulumi.Input[str] namespace: The name of the namespace in which to create this ApplicationEnvironment. This namespace must already exist in the cluster + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + :param pulumi.Input[str] serviceinstance: The id of the service instance to which this application environment belongs. + + + - - - + :param pulumi.Input[Union['GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs', 'GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgsDict']] spark_application_environment_config: Represents the SparkApplicationEnvironmentConfig. + Structure is documented below. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: GdcApplicationEnvironmentArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + An ApplicationEnvironment contains shared configuration that may be referenced by multiple SparkApplications. + + To get more information about ApplicationEnvironment, see: + + * [API documentation](https://cloud.google.com/dataproc-gdc/docs/reference/rest/v1/projects.locations.applicationEnvironments) + * How-to Guides + * [Dataproc Intro](https://cloud.google.com/dataproc/) + + ## Example Usage + + ### Dataprocgdc Applicationenvironment Basic + + ```python + import pulumi + import pulumi_gcp as gcp + + application_environment = gcp.dataproc.GdcApplicationEnvironment("application-environment", + application_environment_id="dp-tf-e2e-application-environment-basic", + serviceinstance="do-not-delete-dataproc-gdc-instance", + project="my-project", + location="us-west2", + namespace="default") + ``` + ### Dataprocgdc Applicationenvironment + + ```python + import pulumi + import pulumi_gcp as gcp + + application_environment = gcp.dataproc.GdcApplicationEnvironment("application-environment", + application_environment_id="dp-tf-e2e-application-environment", + serviceinstance="do-not-delete-dataproc-gdc-instance", + project="my-project", + location="us-west2", + namespace="default", + display_name="An application environment", + labels={ + "test-label": "label-value", + }, + annotations={ + "an_annotation": "annotation_value", + }, + spark_application_environment_config={ + "default_properties": { + "spark.executor.memory": "4g", + }, + "default_version": "1.2", + }) + ``` + + ## Import + + ApplicationEnvironment can be imported using any of these accepted formats: + + * `projects/{{project}}/locations/{{location}}/serviceInstances/{{serviceinstance}}/applicationEnvironments/{{application_environment_id}}` + + * `{{project}}/{{location}}/{{serviceinstance}}/{{application_environment_id}}` + + * `{{location}}/{{serviceinstance}}/{{application_environment_id}}` + + When using the `pulumi import` command, ApplicationEnvironment can be imported using one of the formats above. For example: + + ```sh + $ pulumi import gcp:dataproc/gdcApplicationEnvironment:GdcApplicationEnvironment default projects/{{project}}/locations/{{location}}/serviceInstances/{{serviceinstance}}/applicationEnvironments/{{application_environment_id}} + ``` + + ```sh + $ pulumi import gcp:dataproc/gdcApplicationEnvironment:GdcApplicationEnvironment default {{project}}/{{location}}/{{serviceinstance}}/{{application_environment_id}} + ``` + + ```sh + $ pulumi import gcp:dataproc/gdcApplicationEnvironment:GdcApplicationEnvironment default {{location}}/{{serviceinstance}}/{{application_environment_id}} + ``` + + :param str resource_name: The name of the resource. + :param GdcApplicationEnvironmentArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(GdcApplicationEnvironmentArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + application_environment_id: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + location: Optional[pulumi.Input[str]] = None, + namespace: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + serviceinstance: Optional[pulumi.Input[str]] = None, + spark_application_environment_config: Optional[pulumi.Input[Union['GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs', 'GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgsDict']]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = GdcApplicationEnvironmentArgs.__new__(GdcApplicationEnvironmentArgs) + + __props__.__dict__["annotations"] = annotations + __props__.__dict__["application_environment_id"] = application_environment_id + __props__.__dict__["display_name"] = display_name + __props__.__dict__["labels"] = labels + if location is None and not opts.urn: + raise TypeError("Missing required property 'location'") + __props__.__dict__["location"] = location + __props__.__dict__["namespace"] = namespace + __props__.__dict__["project"] = project + if serviceinstance is None and not opts.urn: + raise TypeError("Missing required property 'serviceinstance'") + __props__.__dict__["serviceinstance"] = serviceinstance + __props__.__dict__["spark_application_environment_config"] = spark_application_environment_config + __props__.__dict__["create_time"] = None + __props__.__dict__["effective_annotations"] = None + __props__.__dict__["effective_labels"] = None + __props__.__dict__["name"] = None + __props__.__dict__["pulumi_labels"] = None + __props__.__dict__["uid"] = None + __props__.__dict__["update_time"] = None + secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["effectiveLabels", "pulumiLabels"]) + opts = pulumi.ResourceOptions.merge(opts, secret_opts) + super(GdcApplicationEnvironment, __self__).__init__( + 'gcp:dataproc/gdcApplicationEnvironment:GdcApplicationEnvironment', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + application_environment_id: Optional[pulumi.Input[str]] = None, + create_time: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + effective_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + namespace: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + serviceinstance: Optional[pulumi.Input[str]] = None, + spark_application_environment_config: Optional[pulumi.Input[Union['GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs', 'GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgsDict']]] = None, + uid: Optional[pulumi.Input[str]] = None, + update_time: Optional[pulumi.Input[str]] = None) -> 'GdcApplicationEnvironment': + """ + Get an existing GdcApplicationEnvironment resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] annotations: The annotations to associate with this application environment. Annotations may be used to store client information, but are not used by the server. + **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + Please refer to the field `effective_annotations` for all of the annotations present on the resource. + :param pulumi.Input[str] application_environment_id: The id of the application environment + :param pulumi.Input[str] create_time: The timestamp when the resource was created. + :param pulumi.Input[str] display_name: User-provided human-readable name to be used in user interfaces. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: The labels to associate with this application environment. Labels may be used for filtering and billing tracking. + **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + Please refer to the field `effective_labels` for all of the labels present on the resource. + :param pulumi.Input[str] location: The location of the application environment + :param pulumi.Input[str] name: Identifier. The name of the application environment. Format: projects/{project}/locations/{location}/serviceInstances/{service_instance}/applicationEnvironments/{application_environment_id} + :param pulumi.Input[str] namespace: The name of the namespace in which to create this ApplicationEnvironment. This namespace must already exist in the cluster + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource + and default labels configured on the provider. + :param pulumi.Input[str] serviceinstance: The id of the service instance to which this application environment belongs. + + + - - - + :param pulumi.Input[Union['GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgs', 'GdcApplicationEnvironmentSparkApplicationEnvironmentConfigArgsDict']] spark_application_environment_config: Represents the SparkApplicationEnvironmentConfig. + Structure is documented below. + :param pulumi.Input[str] uid: System generated unique identifier for this application environment, formatted as UUID4. + :param pulumi.Input[str] update_time: The timestamp when the resource was most recently updated. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _GdcApplicationEnvironmentState.__new__(_GdcApplicationEnvironmentState) + + __props__.__dict__["annotations"] = annotations + __props__.__dict__["application_environment_id"] = application_environment_id + __props__.__dict__["create_time"] = create_time + __props__.__dict__["display_name"] = display_name + __props__.__dict__["effective_annotations"] = effective_annotations + __props__.__dict__["effective_labels"] = effective_labels + __props__.__dict__["labels"] = labels + __props__.__dict__["location"] = location + __props__.__dict__["name"] = name + __props__.__dict__["namespace"] = namespace + __props__.__dict__["project"] = project + __props__.__dict__["pulumi_labels"] = pulumi_labels + __props__.__dict__["serviceinstance"] = serviceinstance + __props__.__dict__["spark_application_environment_config"] = spark_application_environment_config + __props__.__dict__["uid"] = uid + __props__.__dict__["update_time"] = update_time + return GdcApplicationEnvironment(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def annotations(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + The annotations to associate with this application environment. Annotations may be used to store client information, but are not used by the server. + **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + Please refer to the field `effective_annotations` for all of the annotations present on the resource. + """ + return pulumi.get(self, "annotations") + + @property + @pulumi.getter(name="applicationEnvironmentId") + def application_environment_id(self) -> pulumi.Output[Optional[str]]: + """ + The id of the application environment + """ + return pulumi.get(self, "application_environment_id") + + @property + @pulumi.getter(name="createTime") + def create_time(self) -> pulumi.Output[str]: + """ + The timestamp when the resource was created. + """ + return pulumi.get(self, "create_time") + + @property + @pulumi.getter(name="displayName") + def display_name(self) -> pulumi.Output[Optional[str]]: + """ + User-provided human-readable name to be used in user interfaces. + """ + return pulumi.get(self, "display_name") + + @property + @pulumi.getter(name="effectiveAnnotations") + def effective_annotations(self) -> pulumi.Output[Mapping[str, str]]: + return pulumi.get(self, "effective_annotations") + + @property + @pulumi.getter(name="effectiveLabels") + def effective_labels(self) -> pulumi.Output[Mapping[str, str]]: + """ + All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + """ + return pulumi.get(self, "effective_labels") + + @property + @pulumi.getter + def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + The labels to associate with this application environment. Labels may be used for filtering and billing tracking. + **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + Please refer to the field `effective_labels` for all of the labels present on the resource. + """ + return pulumi.get(self, "labels") + + @property + @pulumi.getter + def location(self) -> pulumi.Output[str]: + """ + The location of the application environment + """ + return pulumi.get(self, "location") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Identifier. The name of the application environment. Format: projects/{project}/locations/{location}/serviceInstances/{service_instance}/applicationEnvironments/{application_environment_id} + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def namespace(self) -> pulumi.Output[Optional[str]]: + """ + The name of the namespace in which to create this ApplicationEnvironment. This namespace must already exist in the cluster + """ + return pulumi.get(self, "namespace") + + @property + @pulumi.getter + def project(self) -> pulumi.Output[str]: + """ + The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + """ + return pulumi.get(self, "project") + + @property + @pulumi.getter(name="pulumiLabels") + def pulumi_labels(self) -> pulumi.Output[Mapping[str, str]]: + """ + The combination of labels configured directly on the resource + and default labels configured on the provider. + """ + return pulumi.get(self, "pulumi_labels") + + @property + @pulumi.getter + def serviceinstance(self) -> pulumi.Output[str]: + """ + The id of the service instance to which this application environment belongs. + + + - - - + """ + return pulumi.get(self, "serviceinstance") + + @property + @pulumi.getter(name="sparkApplicationEnvironmentConfig") + def spark_application_environment_config(self) -> pulumi.Output[Optional['outputs.GdcApplicationEnvironmentSparkApplicationEnvironmentConfig']]: + """ + Represents the SparkApplicationEnvironmentConfig. + Structure is documented below. + """ + return pulumi.get(self, "spark_application_environment_config") + + @property + @pulumi.getter + def uid(self) -> pulumi.Output[str]: + """ + System generated unique identifier for this application environment, formatted as UUID4. + """ + return pulumi.get(self, "uid") + + @property + @pulumi.getter(name="updateTime") + def update_time(self) -> pulumi.Output[str]: + """ + The timestamp when the resource was most recently updated. + """ + return pulumi.get(self, "update_time") + diff --git a/sdk/python/pulumi_gcp/dataproc/gdc_service_instance.py b/sdk/python/pulumi_gcp/dataproc/gdc_service_instance.py new file mode 100644 index 0000000000..a17413bbe4 --- /dev/null +++ b/sdk/python/pulumi_gcp/dataproc/gdc_service_instance.py @@ -0,0 +1,1022 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['GdcServiceInstanceArgs', 'GdcServiceInstance'] + +@pulumi.input_type +class GdcServiceInstanceArgs: + def __init__(__self__, *, + location: pulumi.Input[str], + service_instance_id: pulumi.Input[str], + display_name: Optional[pulumi.Input[str]] = None, + gdce_cluster: Optional[pulumi.Input['GdcServiceInstanceGdceClusterArgs']] = None, + labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + project: Optional[pulumi.Input[str]] = None, + service_account: Optional[pulumi.Input[str]] = None, + spark_service_instance_config: Optional[pulumi.Input['GdcServiceInstanceSparkServiceInstanceConfigArgs']] = None): + """ + The set of arguments for constructing a GdcServiceInstance resource. + :param pulumi.Input[str] location: Location of the resource. + :param pulumi.Input[str] service_instance_id: Id of the service instance. + + + - - - + :param pulumi.Input[str] display_name: User-provided human-readable name to be used in user interfaces. + :param pulumi.Input['GdcServiceInstanceGdceClusterArgs'] gdce_cluster: Gdce cluster information. + Structure is documented below. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: The labels to associate with this service instance. Labels may be used for filtering and billing tracking. + **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + Please refer to the field `effective_labels` for all of the labels present on the resource. + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + :param pulumi.Input[str] service_account: Requested service account to associate with ServiceInstance. + :param pulumi.Input['GdcServiceInstanceSparkServiceInstanceConfigArgs'] spark_service_instance_config: Spark-specific service instance configuration. + """ + pulumi.set(__self__, "location", location) + pulumi.set(__self__, "service_instance_id", service_instance_id) + if display_name is not None: + pulumi.set(__self__, "display_name", display_name) + if gdce_cluster is not None: + pulumi.set(__self__, "gdce_cluster", gdce_cluster) + if labels is not None: + pulumi.set(__self__, "labels", labels) + if project is not None: + pulumi.set(__self__, "project", project) + if service_account is not None: + pulumi.set(__self__, "service_account", service_account) + if spark_service_instance_config is not None: + pulumi.set(__self__, "spark_service_instance_config", spark_service_instance_config) + + @property + @pulumi.getter + def location(self) -> pulumi.Input[str]: + """ + Location of the resource. + """ + return pulumi.get(self, "location") + + @location.setter + def location(self, value: pulumi.Input[str]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter(name="serviceInstanceId") + def service_instance_id(self) -> pulumi.Input[str]: + """ + Id of the service instance. + + + - - - + """ + return pulumi.get(self, "service_instance_id") + + @service_instance_id.setter + def service_instance_id(self, value: pulumi.Input[str]): + pulumi.set(self, "service_instance_id", value) + + @property + @pulumi.getter(name="displayName") + def display_name(self) -> Optional[pulumi.Input[str]]: + """ + User-provided human-readable name to be used in user interfaces. + """ + return pulumi.get(self, "display_name") + + @display_name.setter + def display_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "display_name", value) + + @property + @pulumi.getter(name="gdceCluster") + def gdce_cluster(self) -> Optional[pulumi.Input['GdcServiceInstanceGdceClusterArgs']]: + """ + Gdce cluster information. + Structure is documented below. + """ + return pulumi.get(self, "gdce_cluster") + + @gdce_cluster.setter + def gdce_cluster(self, value: Optional[pulumi.Input['GdcServiceInstanceGdceClusterArgs']]): + pulumi.set(self, "gdce_cluster", value) + + @property + @pulumi.getter + def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + The labels to associate with this service instance. Labels may be used for filtering and billing tracking. + **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + Please refer to the field `effective_labels` for all of the labels present on the resource. + """ + return pulumi.get(self, "labels") + + @labels.setter + def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "labels", value) + + @property + @pulumi.getter + def project(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + """ + return pulumi.get(self, "project") + + @project.setter + def project(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project", value) + + @property + @pulumi.getter(name="serviceAccount") + def service_account(self) -> Optional[pulumi.Input[str]]: + """ + Requested service account to associate with ServiceInstance. + """ + return pulumi.get(self, "service_account") + + @service_account.setter + def service_account(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "service_account", value) + + @property + @pulumi.getter(name="sparkServiceInstanceConfig") + def spark_service_instance_config(self) -> Optional[pulumi.Input['GdcServiceInstanceSparkServiceInstanceConfigArgs']]: + """ + Spark-specific service instance configuration. + """ + return pulumi.get(self, "spark_service_instance_config") + + @spark_service_instance_config.setter + def spark_service_instance_config(self, value: Optional[pulumi.Input['GdcServiceInstanceSparkServiceInstanceConfigArgs']]): + pulumi.set(self, "spark_service_instance_config", value) + + +@pulumi.input_type +class _GdcServiceInstanceState: + def __init__(__self__, *, + create_time: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + effective_service_account: Optional[pulumi.Input[str]] = None, + gdce_cluster: Optional[pulumi.Input['GdcServiceInstanceGdceClusterArgs']] = None, + labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + reconciling: Optional[pulumi.Input[bool]] = None, + requested_state: Optional[pulumi.Input[str]] = None, + service_account: Optional[pulumi.Input[str]] = None, + service_instance_id: Optional[pulumi.Input[str]] = None, + spark_service_instance_config: Optional[pulumi.Input['GdcServiceInstanceSparkServiceInstanceConfigArgs']] = None, + state: Optional[pulumi.Input[str]] = None, + state_message: Optional[pulumi.Input[str]] = None, + uid: Optional[pulumi.Input[str]] = None, + update_time: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering GdcServiceInstance resources. + :param pulumi.Input[str] create_time: The timestamp when the resource was created. + :param pulumi.Input[str] display_name: User-provided human-readable name to be used in user interfaces. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + :param pulumi.Input[str] effective_service_account: Effective service account associated with ServiceInstance. This will be the service_account if specified. Otherwise, it will be an automatically created per-resource P4SA that also automatically has Fleet Workload. Identity bindings applied. + :param pulumi.Input['GdcServiceInstanceGdceClusterArgs'] gdce_cluster: Gdce cluster information. + Structure is documented below. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: The labels to associate with this service instance. Labels may be used for filtering and billing tracking. + **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + Please refer to the field `effective_labels` for all of the labels present on the resource. + :param pulumi.Input[str] location: Location of the resource. + :param pulumi.Input[str] name: Identifier. The name of the service instance. + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource + and default labels configured on the provider. + :param pulumi.Input[bool] reconciling: Whether the service instance is currently reconciling. True if the current state of the resource does not match the intended state, and the system is working to reconcile them, whether or not the change was user initiated. + :param pulumi.Input[str] requested_state: The intended state to which the service instance is reconciling. Possible values: + * `CREATING` + * `ACTIVE` + * `DISCONNECTED` + * `DELETING` + * `STOPPING` + * `STOPPED` + * `STARTING` + * `UPDATING` + * `FAILED` + :param pulumi.Input[str] service_account: Requested service account to associate with ServiceInstance. + :param pulumi.Input[str] service_instance_id: Id of the service instance. + + + - - - + :param pulumi.Input['GdcServiceInstanceSparkServiceInstanceConfigArgs'] spark_service_instance_config: Spark-specific service instance configuration. + :param pulumi.Input[str] state: The current state. Possible values: + * `CREATING` + * `ACTIVE` + * `DISCONNECTED` + * `DELETING` + * `STOPPING` + * `STOPPED` + * `STARTING` + * `UPDATING` + * `FAILED` + :param pulumi.Input[str] state_message: A message explaining the current state. + :param pulumi.Input[str] uid: System generated unique identifier for this service instance, formatted as UUID4. + :param pulumi.Input[str] update_time: The timestamp when the resource was most recently updated. + """ + if create_time is not None: + pulumi.set(__self__, "create_time", create_time) + if display_name is not None: + pulumi.set(__self__, "display_name", display_name) + if effective_labels is not None: + pulumi.set(__self__, "effective_labels", effective_labels) + if effective_service_account is not None: + pulumi.set(__self__, "effective_service_account", effective_service_account) + if gdce_cluster is not None: + pulumi.set(__self__, "gdce_cluster", gdce_cluster) + if labels is not None: + pulumi.set(__self__, "labels", labels) + if location is not None: + pulumi.set(__self__, "location", location) + if name is not None: + pulumi.set(__self__, "name", name) + if project is not None: + pulumi.set(__self__, "project", project) + if pulumi_labels is not None: + pulumi.set(__self__, "pulumi_labels", pulumi_labels) + if reconciling is not None: + pulumi.set(__self__, "reconciling", reconciling) + if requested_state is not None: + pulumi.set(__self__, "requested_state", requested_state) + if service_account is not None: + pulumi.set(__self__, "service_account", service_account) + if service_instance_id is not None: + pulumi.set(__self__, "service_instance_id", service_instance_id) + if spark_service_instance_config is not None: + pulumi.set(__self__, "spark_service_instance_config", spark_service_instance_config) + if state is not None: + pulumi.set(__self__, "state", state) + if state_message is not None: + pulumi.set(__self__, "state_message", state_message) + if uid is not None: + pulumi.set(__self__, "uid", uid) + if update_time is not None: + pulumi.set(__self__, "update_time", update_time) + + @property + @pulumi.getter(name="createTime") + def create_time(self) -> Optional[pulumi.Input[str]]: + """ + The timestamp when the resource was created. + """ + return pulumi.get(self, "create_time") + + @create_time.setter + def create_time(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "create_time", value) + + @property + @pulumi.getter(name="displayName") + def display_name(self) -> Optional[pulumi.Input[str]]: + """ + User-provided human-readable name to be used in user interfaces. + """ + return pulumi.get(self, "display_name") + + @display_name.setter + def display_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "display_name", value) + + @property + @pulumi.getter(name="effectiveLabels") + def effective_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + """ + return pulumi.get(self, "effective_labels") + + @effective_labels.setter + def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "effective_labels", value) + + @property + @pulumi.getter(name="effectiveServiceAccount") + def effective_service_account(self) -> Optional[pulumi.Input[str]]: + """ + Effective service account associated with ServiceInstance. This will be the service_account if specified. Otherwise, it will be an automatically created per-resource P4SA that also automatically has Fleet Workload. Identity bindings applied. + """ + return pulumi.get(self, "effective_service_account") + + @effective_service_account.setter + def effective_service_account(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "effective_service_account", value) + + @property + @pulumi.getter(name="gdceCluster") + def gdce_cluster(self) -> Optional[pulumi.Input['GdcServiceInstanceGdceClusterArgs']]: + """ + Gdce cluster information. + Structure is documented below. + """ + return pulumi.get(self, "gdce_cluster") + + @gdce_cluster.setter + def gdce_cluster(self, value: Optional[pulumi.Input['GdcServiceInstanceGdceClusterArgs']]): + pulumi.set(self, "gdce_cluster", value) + + @property + @pulumi.getter + def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + The labels to associate with this service instance. Labels may be used for filtering and billing tracking. + **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + Please refer to the field `effective_labels` for all of the labels present on the resource. + """ + return pulumi.get(self, "labels") + + @labels.setter + def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "labels", value) + + @property + @pulumi.getter + def location(self) -> Optional[pulumi.Input[str]]: + """ + Location of the resource. + """ + return pulumi.get(self, "location") + + @location.setter + def location(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Identifier. The name of the service instance. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def project(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + """ + return pulumi.get(self, "project") + + @project.setter + def project(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project", value) + + @property + @pulumi.getter(name="pulumiLabels") + def pulumi_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + The combination of labels configured directly on the resource + and default labels configured on the provider. + """ + return pulumi.get(self, "pulumi_labels") + + @pulumi_labels.setter + def pulumi_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "pulumi_labels", value) + + @property + @pulumi.getter + def reconciling(self) -> Optional[pulumi.Input[bool]]: + """ + Whether the service instance is currently reconciling. True if the current state of the resource does not match the intended state, and the system is working to reconcile them, whether or not the change was user initiated. + """ + return pulumi.get(self, "reconciling") + + @reconciling.setter + def reconciling(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "reconciling", value) + + @property + @pulumi.getter(name="requestedState") + def requested_state(self) -> Optional[pulumi.Input[str]]: + """ + The intended state to which the service instance is reconciling. Possible values: + * `CREATING` + * `ACTIVE` + * `DISCONNECTED` + * `DELETING` + * `STOPPING` + * `STOPPED` + * `STARTING` + * `UPDATING` + * `FAILED` + """ + return pulumi.get(self, "requested_state") + + @requested_state.setter + def requested_state(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "requested_state", value) + + @property + @pulumi.getter(name="serviceAccount") + def service_account(self) -> Optional[pulumi.Input[str]]: + """ + Requested service account to associate with ServiceInstance. + """ + return pulumi.get(self, "service_account") + + @service_account.setter + def service_account(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "service_account", value) + + @property + @pulumi.getter(name="serviceInstanceId") + def service_instance_id(self) -> Optional[pulumi.Input[str]]: + """ + Id of the service instance. + + + - - - + """ + return pulumi.get(self, "service_instance_id") + + @service_instance_id.setter + def service_instance_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "service_instance_id", value) + + @property + @pulumi.getter(name="sparkServiceInstanceConfig") + def spark_service_instance_config(self) -> Optional[pulumi.Input['GdcServiceInstanceSparkServiceInstanceConfigArgs']]: + """ + Spark-specific service instance configuration. + """ + return pulumi.get(self, "spark_service_instance_config") + + @spark_service_instance_config.setter + def spark_service_instance_config(self, value: Optional[pulumi.Input['GdcServiceInstanceSparkServiceInstanceConfigArgs']]): + pulumi.set(self, "spark_service_instance_config", value) + + @property + @pulumi.getter + def state(self) -> Optional[pulumi.Input[str]]: + """ + The current state. Possible values: + * `CREATING` + * `ACTIVE` + * `DISCONNECTED` + * `DELETING` + * `STOPPING` + * `STOPPED` + * `STARTING` + * `UPDATING` + * `FAILED` + """ + return pulumi.get(self, "state") + + @state.setter + def state(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "state", value) + + @property + @pulumi.getter(name="stateMessage") + def state_message(self) -> Optional[pulumi.Input[str]]: + """ + A message explaining the current state. + """ + return pulumi.get(self, "state_message") + + @state_message.setter + def state_message(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "state_message", value) + + @property + @pulumi.getter + def uid(self) -> Optional[pulumi.Input[str]]: + """ + System generated unique identifier for this service instance, formatted as UUID4. + """ + return pulumi.get(self, "uid") + + @uid.setter + def uid(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "uid", value) + + @property + @pulumi.getter(name="updateTime") + def update_time(self) -> Optional[pulumi.Input[str]]: + """ + The timestamp when the resource was most recently updated. + """ + return pulumi.get(self, "update_time") + + @update_time.setter + def update_time(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "update_time", value) + + +class GdcServiceInstance(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + display_name: Optional[pulumi.Input[str]] = None, + gdce_cluster: Optional[pulumi.Input[Union['GdcServiceInstanceGdceClusterArgs', 'GdcServiceInstanceGdceClusterArgsDict']]] = None, + labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + location: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + service_account: Optional[pulumi.Input[str]] = None, + service_instance_id: Optional[pulumi.Input[str]] = None, + spark_service_instance_config: Optional[pulumi.Input[Union['GdcServiceInstanceSparkServiceInstanceConfigArgs', 'GdcServiceInstanceSparkServiceInstanceConfigArgsDict']]] = None, + __props__=None): + """ + A service instance is an instance of the Dataproc operator running on a GDC cluster. + + To get more information about ServiceInstance, see: + + * [API documentation](https://cloud.google.com/dataproc-gdc/docs/reference/rest/v1/projects.locations.serviceInstances) + * How-to Guides + * [Dataproc Intro](https://cloud.google.com/dataproc/) + + ## Example Usage + + ### Dataprocgdc Serviceinstance + + ```python + import pulumi + import pulumi_gcp as gcp + + service_instance = gcp.dataproc.GdcServiceInstance("service-instance", + service_instance_id="tf-e2e-service-instance", + project="my-project", + location="us-west2", + gdce_cluster={ + "gdce_cluster": "projects/gdce-cluster-monitoring/locations/us-west2/clusters/gdce-prism-prober-ord106", + }, + display_name="A service instance", + labels={ + "test-label": "label-value", + }, + service_account="dataprocgdc-cep-workflows@gdce-cluster-monitoring.iam.gserviceaccount.com") + ``` + + ## Import + + ServiceInstance can be imported using any of these accepted formats: + + * `projects/{{project}}/locations/{{location}}/serviceInstances/{{service_instance_id}}` + + * `{{project}}/{{location}}/{{service_instance_id}}` + + * `{{location}}/{{service_instance_id}}` + + When using the `pulumi import` command, ServiceInstance can be imported using one of the formats above. For example: + + ```sh + $ pulumi import gcp:dataproc/gdcServiceInstance:GdcServiceInstance default projects/{{project}}/locations/{{location}}/serviceInstances/{{service_instance_id}} + ``` + + ```sh + $ pulumi import gcp:dataproc/gdcServiceInstance:GdcServiceInstance default {{project}}/{{location}}/{{service_instance_id}} + ``` + + ```sh + $ pulumi import gcp:dataproc/gdcServiceInstance:GdcServiceInstance default {{location}}/{{service_instance_id}} + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] display_name: User-provided human-readable name to be used in user interfaces. + :param pulumi.Input[Union['GdcServiceInstanceGdceClusterArgs', 'GdcServiceInstanceGdceClusterArgsDict']] gdce_cluster: Gdce cluster information. + Structure is documented below. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: The labels to associate with this service instance. Labels may be used for filtering and billing tracking. + **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + Please refer to the field `effective_labels` for all of the labels present on the resource. + :param pulumi.Input[str] location: Location of the resource. + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + :param pulumi.Input[str] service_account: Requested service account to associate with ServiceInstance. + :param pulumi.Input[str] service_instance_id: Id of the service instance. + + + - - - + :param pulumi.Input[Union['GdcServiceInstanceSparkServiceInstanceConfigArgs', 'GdcServiceInstanceSparkServiceInstanceConfigArgsDict']] spark_service_instance_config: Spark-specific service instance configuration. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: GdcServiceInstanceArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + A service instance is an instance of the Dataproc operator running on a GDC cluster. + + To get more information about ServiceInstance, see: + + * [API documentation](https://cloud.google.com/dataproc-gdc/docs/reference/rest/v1/projects.locations.serviceInstances) + * How-to Guides + * [Dataproc Intro](https://cloud.google.com/dataproc/) + + ## Example Usage + + ### Dataprocgdc Serviceinstance + + ```python + import pulumi + import pulumi_gcp as gcp + + service_instance = gcp.dataproc.GdcServiceInstance("service-instance", + service_instance_id="tf-e2e-service-instance", + project="my-project", + location="us-west2", + gdce_cluster={ + "gdce_cluster": "projects/gdce-cluster-monitoring/locations/us-west2/clusters/gdce-prism-prober-ord106", + }, + display_name="A service instance", + labels={ + "test-label": "label-value", + }, + service_account="dataprocgdc-cep-workflows@gdce-cluster-monitoring.iam.gserviceaccount.com") + ``` + + ## Import + + ServiceInstance can be imported using any of these accepted formats: + + * `projects/{{project}}/locations/{{location}}/serviceInstances/{{service_instance_id}}` + + * `{{project}}/{{location}}/{{service_instance_id}}` + + * `{{location}}/{{service_instance_id}}` + + When using the `pulumi import` command, ServiceInstance can be imported using one of the formats above. For example: + + ```sh + $ pulumi import gcp:dataproc/gdcServiceInstance:GdcServiceInstance default projects/{{project}}/locations/{{location}}/serviceInstances/{{service_instance_id}} + ``` + + ```sh + $ pulumi import gcp:dataproc/gdcServiceInstance:GdcServiceInstance default {{project}}/{{location}}/{{service_instance_id}} + ``` + + ```sh + $ pulumi import gcp:dataproc/gdcServiceInstance:GdcServiceInstance default {{location}}/{{service_instance_id}} + ``` + + :param str resource_name: The name of the resource. + :param GdcServiceInstanceArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(GdcServiceInstanceArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + display_name: Optional[pulumi.Input[str]] = None, + gdce_cluster: Optional[pulumi.Input[Union['GdcServiceInstanceGdceClusterArgs', 'GdcServiceInstanceGdceClusterArgsDict']]] = None, + labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + location: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + service_account: Optional[pulumi.Input[str]] = None, + service_instance_id: Optional[pulumi.Input[str]] = None, + spark_service_instance_config: Optional[pulumi.Input[Union['GdcServiceInstanceSparkServiceInstanceConfigArgs', 'GdcServiceInstanceSparkServiceInstanceConfigArgsDict']]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = GdcServiceInstanceArgs.__new__(GdcServiceInstanceArgs) + + __props__.__dict__["display_name"] = display_name + __props__.__dict__["gdce_cluster"] = gdce_cluster + __props__.__dict__["labels"] = labels + if location is None and not opts.urn: + raise TypeError("Missing required property 'location'") + __props__.__dict__["location"] = location + __props__.__dict__["project"] = project + __props__.__dict__["service_account"] = service_account + if service_instance_id is None and not opts.urn: + raise TypeError("Missing required property 'service_instance_id'") + __props__.__dict__["service_instance_id"] = service_instance_id + __props__.__dict__["spark_service_instance_config"] = spark_service_instance_config + __props__.__dict__["create_time"] = None + __props__.__dict__["effective_labels"] = None + __props__.__dict__["effective_service_account"] = None + __props__.__dict__["name"] = None + __props__.__dict__["pulumi_labels"] = None + __props__.__dict__["reconciling"] = None + __props__.__dict__["requested_state"] = None + __props__.__dict__["state"] = None + __props__.__dict__["state_message"] = None + __props__.__dict__["uid"] = None + __props__.__dict__["update_time"] = None + secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["effectiveLabels", "pulumiLabels"]) + opts = pulumi.ResourceOptions.merge(opts, secret_opts) + super(GdcServiceInstance, __self__).__init__( + 'gcp:dataproc/gdcServiceInstance:GdcServiceInstance', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + create_time: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + effective_service_account: Optional[pulumi.Input[str]] = None, + gdce_cluster: Optional[pulumi.Input[Union['GdcServiceInstanceGdceClusterArgs', 'GdcServiceInstanceGdceClusterArgsDict']]] = None, + labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + reconciling: Optional[pulumi.Input[bool]] = None, + requested_state: Optional[pulumi.Input[str]] = None, + service_account: Optional[pulumi.Input[str]] = None, + service_instance_id: Optional[pulumi.Input[str]] = None, + spark_service_instance_config: Optional[pulumi.Input[Union['GdcServiceInstanceSparkServiceInstanceConfigArgs', 'GdcServiceInstanceSparkServiceInstanceConfigArgsDict']]] = None, + state: Optional[pulumi.Input[str]] = None, + state_message: Optional[pulumi.Input[str]] = None, + uid: Optional[pulumi.Input[str]] = None, + update_time: Optional[pulumi.Input[str]] = None) -> 'GdcServiceInstance': + """ + Get an existing GdcServiceInstance resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] create_time: The timestamp when the resource was created. + :param pulumi.Input[str] display_name: User-provided human-readable name to be used in user interfaces. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + :param pulumi.Input[str] effective_service_account: Effective service account associated with ServiceInstance. This will be the service_account if specified. Otherwise, it will be an automatically created per-resource P4SA that also automatically has Fleet Workload. Identity bindings applied. + :param pulumi.Input[Union['GdcServiceInstanceGdceClusterArgs', 'GdcServiceInstanceGdceClusterArgsDict']] gdce_cluster: Gdce cluster information. + Structure is documented below. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: The labels to associate with this service instance. Labels may be used for filtering and billing tracking. + **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + Please refer to the field `effective_labels` for all of the labels present on the resource. + :param pulumi.Input[str] location: Location of the resource. + :param pulumi.Input[str] name: Identifier. The name of the service instance. + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource + and default labels configured on the provider. + :param pulumi.Input[bool] reconciling: Whether the service instance is currently reconciling. True if the current state of the resource does not match the intended state, and the system is working to reconcile them, whether or not the change was user initiated. + :param pulumi.Input[str] requested_state: The intended state to which the service instance is reconciling. Possible values: + * `CREATING` + * `ACTIVE` + * `DISCONNECTED` + * `DELETING` + * `STOPPING` + * `STOPPED` + * `STARTING` + * `UPDATING` + * `FAILED` + :param pulumi.Input[str] service_account: Requested service account to associate with ServiceInstance. + :param pulumi.Input[str] service_instance_id: Id of the service instance. + + + - - - + :param pulumi.Input[Union['GdcServiceInstanceSparkServiceInstanceConfigArgs', 'GdcServiceInstanceSparkServiceInstanceConfigArgsDict']] spark_service_instance_config: Spark-specific service instance configuration. + :param pulumi.Input[str] state: The current state. Possible values: + * `CREATING` + * `ACTIVE` + * `DISCONNECTED` + * `DELETING` + * `STOPPING` + * `STOPPED` + * `STARTING` + * `UPDATING` + * `FAILED` + :param pulumi.Input[str] state_message: A message explaining the current state. + :param pulumi.Input[str] uid: System generated unique identifier for this service instance, formatted as UUID4. + :param pulumi.Input[str] update_time: The timestamp when the resource was most recently updated. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _GdcServiceInstanceState.__new__(_GdcServiceInstanceState) + + __props__.__dict__["create_time"] = create_time + __props__.__dict__["display_name"] = display_name + __props__.__dict__["effective_labels"] = effective_labels + __props__.__dict__["effective_service_account"] = effective_service_account + __props__.__dict__["gdce_cluster"] = gdce_cluster + __props__.__dict__["labels"] = labels + __props__.__dict__["location"] = location + __props__.__dict__["name"] = name + __props__.__dict__["project"] = project + __props__.__dict__["pulumi_labels"] = pulumi_labels + __props__.__dict__["reconciling"] = reconciling + __props__.__dict__["requested_state"] = requested_state + __props__.__dict__["service_account"] = service_account + __props__.__dict__["service_instance_id"] = service_instance_id + __props__.__dict__["spark_service_instance_config"] = spark_service_instance_config + __props__.__dict__["state"] = state + __props__.__dict__["state_message"] = state_message + __props__.__dict__["uid"] = uid + __props__.__dict__["update_time"] = update_time + return GdcServiceInstance(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="createTime") + def create_time(self) -> pulumi.Output[str]: + """ + The timestamp when the resource was created. + """ + return pulumi.get(self, "create_time") + + @property + @pulumi.getter(name="displayName") + def display_name(self) -> pulumi.Output[Optional[str]]: + """ + User-provided human-readable name to be used in user interfaces. + """ + return pulumi.get(self, "display_name") + + @property + @pulumi.getter(name="effectiveLabels") + def effective_labels(self) -> pulumi.Output[Mapping[str, str]]: + """ + All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + """ + return pulumi.get(self, "effective_labels") + + @property + @pulumi.getter(name="effectiveServiceAccount") + def effective_service_account(self) -> pulumi.Output[str]: + """ + Effective service account associated with ServiceInstance. This will be the service_account if specified. Otherwise, it will be an automatically created per-resource P4SA that also automatically has Fleet Workload. Identity bindings applied. + """ + return pulumi.get(self, "effective_service_account") + + @property + @pulumi.getter(name="gdceCluster") + def gdce_cluster(self) -> pulumi.Output[Optional['outputs.GdcServiceInstanceGdceCluster']]: + """ + Gdce cluster information. + Structure is documented below. + """ + return pulumi.get(self, "gdce_cluster") + + @property + @pulumi.getter + def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + The labels to associate with this service instance. Labels may be used for filtering and billing tracking. + **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + Please refer to the field `effective_labels` for all of the labels present on the resource. + """ + return pulumi.get(self, "labels") + + @property + @pulumi.getter + def location(self) -> pulumi.Output[str]: + """ + Location of the resource. + """ + return pulumi.get(self, "location") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Identifier. The name of the service instance. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def project(self) -> pulumi.Output[str]: + """ + The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + """ + return pulumi.get(self, "project") + + @property + @pulumi.getter(name="pulumiLabels") + def pulumi_labels(self) -> pulumi.Output[Mapping[str, str]]: + """ + The combination of labels configured directly on the resource + and default labels configured on the provider. + """ + return pulumi.get(self, "pulumi_labels") + + @property + @pulumi.getter + def reconciling(self) -> pulumi.Output[bool]: + """ + Whether the service instance is currently reconciling. True if the current state of the resource does not match the intended state, and the system is working to reconcile them, whether or not the change was user initiated. + """ + return pulumi.get(self, "reconciling") + + @property + @pulumi.getter(name="requestedState") + def requested_state(self) -> pulumi.Output[str]: + """ + The intended state to which the service instance is reconciling. Possible values: + * `CREATING` + * `ACTIVE` + * `DISCONNECTED` + * `DELETING` + * `STOPPING` + * `STOPPED` + * `STARTING` + * `UPDATING` + * `FAILED` + """ + return pulumi.get(self, "requested_state") + + @property + @pulumi.getter(name="serviceAccount") + def service_account(self) -> pulumi.Output[Optional[str]]: + """ + Requested service account to associate with ServiceInstance. + """ + return pulumi.get(self, "service_account") + + @property + @pulumi.getter(name="serviceInstanceId") + def service_instance_id(self) -> pulumi.Output[str]: + """ + Id of the service instance. + + + - - - + """ + return pulumi.get(self, "service_instance_id") + + @property + @pulumi.getter(name="sparkServiceInstanceConfig") + def spark_service_instance_config(self) -> pulumi.Output[Optional['outputs.GdcServiceInstanceSparkServiceInstanceConfig']]: + """ + Spark-specific service instance configuration. + """ + return pulumi.get(self, "spark_service_instance_config") + + @property + @pulumi.getter + def state(self) -> pulumi.Output[str]: + """ + The current state. Possible values: + * `CREATING` + * `ACTIVE` + * `DISCONNECTED` + * `DELETING` + * `STOPPING` + * `STOPPED` + * `STARTING` + * `UPDATING` + * `FAILED` + """ + return pulumi.get(self, "state") + + @property + @pulumi.getter(name="stateMessage") + def state_message(self) -> pulumi.Output[str]: + """ + A message explaining the current state. + """ + return pulumi.get(self, "state_message") + + @property + @pulumi.getter + def uid(self) -> pulumi.Output[str]: + """ + System generated unique identifier for this service instance, formatted as UUID4. + """ + return pulumi.get(self, "uid") + + @property + @pulumi.getter(name="updateTime") + def update_time(self) -> pulumi.Output[str]: + """ + The timestamp when the resource was most recently updated. + """ + return pulumi.get(self, "update_time") + diff --git a/sdk/python/pulumi_gcp/dataproc/outputs.py b/sdk/python/pulumi_gcp/dataproc/outputs.py index 4ea1e241d1..74770ea660 100644 --- a/sdk/python/pulumi_gcp/dataproc/outputs.py +++ b/sdk/python/pulumi_gcp/dataproc/outputs.py @@ -80,6 +80,9 @@ 'ClusterVirtualClusterConfigKubernetesClusterConfigGkeClusterConfigNodePoolTargetNodePoolConfigAutoscaling', 'ClusterVirtualClusterConfigKubernetesClusterConfigGkeClusterConfigNodePoolTargetNodePoolConfigConfig', 'ClusterVirtualClusterConfigKubernetesClusterConfigKubernetesSoftwareConfig', + 'GdcApplicationEnvironmentSparkApplicationEnvironmentConfig', + 'GdcServiceInstanceGdceCluster', + 'GdcServiceInstanceSparkServiceInstanceConfig', 'JobHadoopConfig', 'JobHadoopConfigLoggingConfig', 'JobHiveConfig', @@ -5204,6 +5207,97 @@ def properties(self) -> Optional[Mapping[str, str]]: return pulumi.get(self, "properties") +@pulumi.output_type +class GdcApplicationEnvironmentSparkApplicationEnvironmentConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "defaultProperties": + suggest = "default_properties" + elif key == "defaultVersion": + suggest = "default_version" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in GdcApplicationEnvironmentSparkApplicationEnvironmentConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + GdcApplicationEnvironmentSparkApplicationEnvironmentConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + GdcApplicationEnvironmentSparkApplicationEnvironmentConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + default_properties: Optional[Mapping[str, str]] = None, + default_version: Optional[str] = None): + """ + :param Mapping[str, str] default_properties: A map of default Spark properties to apply to workloads in this application environment. These defaults may be overridden by per-application properties. + :param str default_version: The default Dataproc version to use for applications submitted to this application environment + """ + if default_properties is not None: + pulumi.set(__self__, "default_properties", default_properties) + if default_version is not None: + pulumi.set(__self__, "default_version", default_version) + + @property + @pulumi.getter(name="defaultProperties") + def default_properties(self) -> Optional[Mapping[str, str]]: + """ + A map of default Spark properties to apply to workloads in this application environment. These defaults may be overridden by per-application properties. + """ + return pulumi.get(self, "default_properties") + + @property + @pulumi.getter(name="defaultVersion") + def default_version(self) -> Optional[str]: + """ + The default Dataproc version to use for applications submitted to this application environment + """ + return pulumi.get(self, "default_version") + + +@pulumi.output_type +class GdcServiceInstanceGdceCluster(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "gdceCluster": + suggest = "gdce_cluster" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in GdcServiceInstanceGdceCluster. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + GdcServiceInstanceGdceCluster.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + GdcServiceInstanceGdceCluster.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + gdce_cluster: str): + """ + :param str gdce_cluster: Gdce cluster resource id. + """ + pulumi.set(__self__, "gdce_cluster", gdce_cluster) + + @property + @pulumi.getter(name="gdceCluster") + def gdce_cluster(self) -> str: + """ + Gdce cluster resource id. + """ + return pulumi.get(self, "gdce_cluster") + + +@pulumi.output_type +class GdcServiceInstanceSparkServiceInstanceConfig(dict): + def __init__(__self__): + pass + + @pulumi.output_type class JobHadoopConfig(dict): @staticmethod diff --git a/sdk/python/pulumi_gcp/edgecontainer/vpn_connection.py b/sdk/python/pulumi_gcp/edgecontainer/vpn_connection.py index 10b762283e..766711fd2f 100644 --- a/sdk/python/pulumi_gcp/edgecontainer/vpn_connection.py +++ b/sdk/python/pulumi_gcp/edgecontainer/vpn_connection.py @@ -222,7 +222,7 @@ def __init__(__self__, *, Input properties used for looking up and filtering VpnConnection resources. :param pulumi.Input[str] cluster: The canonical Cluster name to connect to. It is in the form of projects/{project}/locations/{location}/clusters/{cluster}. :param pulumi.Input[str] create_time: The time when the VPN connection was created. - :param pulumi.Input[Sequence[pulumi.Input['VpnConnectionDetailArgs']]] details: A nested object resource + :param pulumi.Input[Sequence[pulumi.Input['VpnConnectionDetailArgs']]] details: A nested object resource. Structure is documented below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. :param pulumi.Input[bool] enable_high_availability: Whether this VPN connection has HA enabled on cluster side. If enabled, when creating VPN connection we will attempt to use 2 ANG floating IPs. @@ -305,7 +305,7 @@ def create_time(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def details(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['VpnConnectionDetailArgs']]]]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "details") @@ -754,7 +754,7 @@ def get(resource_name: str, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] cluster: The canonical Cluster name to connect to. It is in the form of projects/{project}/locations/{location}/clusters/{cluster}. :param pulumi.Input[str] create_time: The time when the VPN connection was created. - :param pulumi.Input[Sequence[pulumi.Input[Union['VpnConnectionDetailArgs', 'VpnConnectionDetailArgsDict']]]] details: A nested object resource + :param pulumi.Input[Sequence[pulumi.Input[Union['VpnConnectionDetailArgs', 'VpnConnectionDetailArgsDict']]]] details: A nested object resource. Structure is documented below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. :param pulumi.Input[bool] enable_high_availability: Whether this VPN connection has HA enabled on cluster side. If enabled, when creating VPN connection we will attempt to use 2 ANG floating IPs. @@ -819,7 +819,7 @@ def create_time(self) -> pulumi.Output[str]: @pulumi.getter def details(self) -> pulumi.Output[Sequence['outputs.VpnConnectionDetail']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "details") diff --git a/sdk/python/pulumi_gcp/firebase/android_app.py b/sdk/python/pulumi_gcp/firebase/android_app.py index 70c76cb232..1ab4de628e 100644 --- a/sdk/python/pulumi_gcp/firebase/android_app.py +++ b/sdk/python/pulumi_gcp/firebase/android_app.py @@ -401,7 +401,7 @@ def __init__(__self__, When using the `pulumi import` command, AndroidApp can be imported using one of the formats above. For example: ```sh - $ pulumi import gcp:firebase/androidApp:AndroidApp default {{project}} projects/{{project}}/androidApps/{{app_id}} + $ pulumi import gcp:firebase/androidApp:AndroidApp default "{{project}} projects/{{project}}/androidApps/{{app_id}}" ``` ```sh @@ -502,7 +502,7 @@ def __init__(__self__, When using the `pulumi import` command, AndroidApp can be imported using one of the formats above. For example: ```sh - $ pulumi import gcp:firebase/androidApp:AndroidApp default {{project}} projects/{{project}}/androidApps/{{app_id}} + $ pulumi import gcp:firebase/androidApp:AndroidApp default "{{project}} projects/{{project}}/androidApps/{{app_id}}" ``` ```sh diff --git a/sdk/python/pulumi_gcp/firebase/apple_app.py b/sdk/python/pulumi_gcp/firebase/apple_app.py index d97a267fd2..e03932a19b 100644 --- a/sdk/python/pulumi_gcp/firebase/apple_app.py +++ b/sdk/python/pulumi_gcp/firebase/apple_app.py @@ -374,7 +374,7 @@ def __init__(__self__, When using the `pulumi import` command, AppleApp can be imported using one of the formats above. For example: ```sh - $ pulumi import gcp:firebase/appleApp:AppleApp default {{project}} projects/{{project}}/iosApps/{{app_id}} + $ pulumi import gcp:firebase/appleApp:AppleApp default "{{project}} projects/{{project}}/iosApps/{{app_id}}" ``` ```sh @@ -469,7 +469,7 @@ def __init__(__self__, When using the `pulumi import` command, AppleApp can be imported using one of the formats above. For example: ```sh - $ pulumi import gcp:firebase/appleApp:AppleApp default {{project}} projects/{{project}}/iosApps/{{app_id}} + $ pulumi import gcp:firebase/appleApp:AppleApp default "{{project}} projects/{{project}}/iosApps/{{app_id}}" ``` ```sh diff --git a/sdk/python/pulumi_gcp/firebase/web_app.py b/sdk/python/pulumi_gcp/firebase/web_app.py index e3361af28e..33aa4d0496 100644 --- a/sdk/python/pulumi_gcp/firebase/web_app.py +++ b/sdk/python/pulumi_gcp/firebase/web_app.py @@ -287,7 +287,7 @@ def __init__(__self__, When using the `pulumi import` command, WebApp can be imported using one of the formats above. For example: ```sh - $ pulumi import gcp:firebase/webApp:WebApp default {{project}} projects/{{project}}/webApps/{{app_id}} + $ pulumi import gcp:firebase/webApp:WebApp default "{{project}} projects/{{project}}/webApps/{{app_id}}" ``` ```sh @@ -374,7 +374,7 @@ def __init__(__self__, When using the `pulumi import` command, WebApp can be imported using one of the formats above. For example: ```sh - $ pulumi import gcp:firebase/webApp:WebApp default {{project}} projects/{{project}}/webApps/{{app_id}} + $ pulumi import gcp:firebase/webApp:WebApp default "{{project}} projects/{{project}}/webApps/{{app_id}}" ``` ```sh diff --git a/sdk/python/pulumi_gcp/firestore/index.py b/sdk/python/pulumi_gcp/firestore/index.py index 7b1ce84175..cd2e737c85 100644 --- a/sdk/python/pulumi_gcp/firestore/index.py +++ b/sdk/python/pulumi_gcp/firestore/index.py @@ -388,6 +388,28 @@ def __init__(__self__, }, ]) ``` + ### Firestore Index Name Descending + + ```python + import pulumi + import pulumi_gcp as gcp + + database = gcp.firestore.Database("database", + project="my-project-name", + name="database-id", + location_id="nam5", + type="FIRESTORE_NATIVE", + delete_protection_state="DELETE_PROTECTION_DISABLED", + deletion_policy="DELETE") + my_index = gcp.firestore.Index("my-index", + project="my-project-name", + database=database.name, + collection="atestcollection", + fields=[{ + "field_path": "__name__", + "order": "DESCENDING", + }]) + ``` ## Import @@ -536,6 +558,28 @@ def __init__(__self__, }, ]) ``` + ### Firestore Index Name Descending + + ```python + import pulumi + import pulumi_gcp as gcp + + database = gcp.firestore.Database("database", + project="my-project-name", + name="database-id", + location_id="nam5", + type="FIRESTORE_NATIVE", + delete_protection_state="DELETE_PROTECTION_DISABLED", + deletion_policy="DELETE") + my_index = gcp.firestore.Index("my-index", + project="my-project-name", + database=database.name, + collection="atestcollection", + fields=[{ + "field_path": "__name__", + "order": "DESCENDING", + }]) + ``` ## Import diff --git a/sdk/python/pulumi_gcp/gkeonprem/_inputs.py b/sdk/python/pulumi_gcp/gkeonprem/_inputs.py index a1e349b097..778246e505 100644 --- a/sdk/python/pulumi_gcp/gkeonprem/_inputs.py +++ b/sdk/python/pulumi_gcp/gkeonprem/_inputs.py @@ -784,7 +784,7 @@ class BareMetalAdminClusterLoadBalancerArgsDict(TypedDict): """ manual_lb_config: NotRequired[pulumi.Input['BareMetalAdminClusterLoadBalancerManualLbConfigArgsDict']] """ - A nested object resource + A nested object resource. Structure is documented below. """ elif False: @@ -801,7 +801,7 @@ def __init__(__self__, *, Structure is documented below. :param pulumi.Input['BareMetalAdminClusterLoadBalancerVipConfigArgs'] vip_config: Specified the Bare Metal Load Balancer Config Structure is documented below. - :param pulumi.Input['BareMetalAdminClusterLoadBalancerManualLbConfigArgs'] manual_lb_config: A nested object resource + :param pulumi.Input['BareMetalAdminClusterLoadBalancerManualLbConfigArgs'] manual_lb_config: A nested object resource. Structure is documented below. """ pulumi.set(__self__, "port_config", port_config) @@ -839,7 +839,7 @@ def vip_config(self, value: pulumi.Input['BareMetalAdminClusterLoadBalancerVipCo @pulumi.getter(name="manualLbConfig") def manual_lb_config(self) -> Optional[pulumi.Input['BareMetalAdminClusterLoadBalancerManualLbConfigArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "manual_lb_config") @@ -986,7 +986,7 @@ def maintenance_address_cidr_blocks(self, value: pulumi.Input[Sequence[pulumi.In class BareMetalAdminClusterNetworkConfigArgsDict(TypedDict): island_mode_cidr: NotRequired[pulumi.Input['BareMetalAdminClusterNetworkConfigIslandModeCidrArgsDict']] """ - A nested object resource + A nested object resource. Structure is documented below. """ elif False: @@ -997,7 +997,7 @@ class BareMetalAdminClusterNetworkConfigArgs: def __init__(__self__, *, island_mode_cidr: Optional[pulumi.Input['BareMetalAdminClusterNetworkConfigIslandModeCidrArgs']] = None): """ - :param pulumi.Input['BareMetalAdminClusterNetworkConfigIslandModeCidrArgs'] island_mode_cidr: A nested object resource + :param pulumi.Input['BareMetalAdminClusterNetworkConfigIslandModeCidrArgs'] island_mode_cidr: A nested object resource. Structure is documented below. """ if island_mode_cidr is not None: @@ -1007,7 +1007,7 @@ def __init__(__self__, *, @pulumi.getter(name="islandModeCidr") def island_mode_cidr(self) -> Optional[pulumi.Input['BareMetalAdminClusterNetworkConfigIslandModeCidrArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "island_mode_cidr") @@ -2527,12 +2527,12 @@ class BareMetalClusterLoadBalancerArgsDict(TypedDict): """ manual_lb_config: NotRequired[pulumi.Input['BareMetalClusterLoadBalancerManualLbConfigArgsDict']] """ - A nested object resource + A nested object resource. Structure is documented below. """ metal_lb_config: NotRequired[pulumi.Input['BareMetalClusterLoadBalancerMetalLbConfigArgsDict']] """ - A nested object resource + A nested object resource. Structure is documented below. """ elif False: @@ -2553,9 +2553,9 @@ def __init__(__self__, *, Structure is documented below. :param pulumi.Input['BareMetalClusterLoadBalancerBgpLbConfigArgs'] bgp_lb_config: Configuration for BGP typed load balancers. Structure is documented below. - :param pulumi.Input['BareMetalClusterLoadBalancerManualLbConfigArgs'] manual_lb_config: A nested object resource + :param pulumi.Input['BareMetalClusterLoadBalancerManualLbConfigArgs'] manual_lb_config: A nested object resource. Structure is documented below. - :param pulumi.Input['BareMetalClusterLoadBalancerMetalLbConfigArgs'] metal_lb_config: A nested object resource + :param pulumi.Input['BareMetalClusterLoadBalancerMetalLbConfigArgs'] metal_lb_config: A nested object resource. Structure is documented below. """ pulumi.set(__self__, "port_config", port_config) @@ -2610,7 +2610,7 @@ def bgp_lb_config(self, value: Optional[pulumi.Input['BareMetalClusterLoadBalanc @pulumi.getter(name="manualLbConfig") def manual_lb_config(self) -> Optional[pulumi.Input['BareMetalClusterLoadBalancerManualLbConfigArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "manual_lb_config") @@ -2623,7 +2623,7 @@ def manual_lb_config(self, value: Optional[pulumi.Input['BareMetalClusterLoadBal @pulumi.getter(name="metalLbConfig") def metal_lb_config(self) -> Optional[pulumi.Input['BareMetalClusterLoadBalancerMetalLbConfigArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "metal_lb_config") @@ -4023,7 +4023,7 @@ class BareMetalClusterNetworkConfigArgsDict(TypedDict): """ island_mode_cidr: NotRequired[pulumi.Input['BareMetalClusterNetworkConfigIslandModeCidrArgsDict']] """ - A nested object resource + A nested object resource. Structure is documented below. """ multiple_network_interfaces_config: NotRequired[pulumi.Input['BareMetalClusterNetworkConfigMultipleNetworkInterfacesConfigArgsDict']] @@ -4051,7 +4051,7 @@ def __init__(__self__, *, Load Balancing with BGP or the egress NAT gateway. Setting configuration for advanced networking features will automatically set this flag. - :param pulumi.Input['BareMetalClusterNetworkConfigIslandModeCidrArgs'] island_mode_cidr: A nested object resource + :param pulumi.Input['BareMetalClusterNetworkConfigIslandModeCidrArgs'] island_mode_cidr: A nested object resource. Structure is documented below. :param pulumi.Input['BareMetalClusterNetworkConfigMultipleNetworkInterfacesConfigArgs'] multiple_network_interfaces_config: Configuration for multiple network interfaces. Structure is documented below. @@ -4086,7 +4086,7 @@ def advanced_networking(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter(name="islandModeCidr") def island_mode_cidr(self) -> Optional[pulumi.Input['BareMetalClusterNetworkConfigIslandModeCidrArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "island_mode_cidr") diff --git a/sdk/python/pulumi_gcp/gkeonprem/outputs.py b/sdk/python/pulumi_gcp/gkeonprem/outputs.py index e630578901..718eae130a 100644 --- a/sdk/python/pulumi_gcp/gkeonprem/outputs.py +++ b/sdk/python/pulumi_gcp/gkeonprem/outputs.py @@ -568,7 +568,7 @@ def __init__(__self__, *, Structure is documented below. :param 'BareMetalAdminClusterLoadBalancerVipConfigArgs' vip_config: Specified the Bare Metal Load Balancer Config Structure is documented below. - :param 'BareMetalAdminClusterLoadBalancerManualLbConfigArgs' manual_lb_config: A nested object resource + :param 'BareMetalAdminClusterLoadBalancerManualLbConfigArgs' manual_lb_config: A nested object resource. Structure is documented below. """ pulumi.set(__self__, "port_config", port_config) @@ -598,7 +598,7 @@ def vip_config(self) -> 'outputs.BareMetalAdminClusterLoadBalancerVipConfig': @pulumi.getter(name="manualLbConfig") def manual_lb_config(self) -> Optional['outputs.BareMetalAdminClusterLoadBalancerManualLbConfig']: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "manual_lb_config") @@ -755,7 +755,7 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, island_mode_cidr: Optional['outputs.BareMetalAdminClusterNetworkConfigIslandModeCidr'] = None): """ - :param 'BareMetalAdminClusterNetworkConfigIslandModeCidrArgs' island_mode_cidr: A nested object resource + :param 'BareMetalAdminClusterNetworkConfigIslandModeCidrArgs' island_mode_cidr: A nested object resource. Structure is documented below. """ if island_mode_cidr is not None: @@ -765,7 +765,7 @@ def __init__(__self__, *, @pulumi.getter(name="islandModeCidr") def island_mode_cidr(self) -> Optional['outputs.BareMetalAdminClusterNetworkConfigIslandModeCidr']: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "island_mode_cidr") @@ -2007,9 +2007,9 @@ def __init__(__self__, *, Structure is documented below. :param 'BareMetalClusterLoadBalancerBgpLbConfigArgs' bgp_lb_config: Configuration for BGP typed load balancers. Structure is documented below. - :param 'BareMetalClusterLoadBalancerManualLbConfigArgs' manual_lb_config: A nested object resource + :param 'BareMetalClusterLoadBalancerManualLbConfigArgs' manual_lb_config: A nested object resource. Structure is documented below. - :param 'BareMetalClusterLoadBalancerMetalLbConfigArgs' metal_lb_config: A nested object resource + :param 'BareMetalClusterLoadBalancerMetalLbConfigArgs' metal_lb_config: A nested object resource. Structure is documented below. """ pulumi.set(__self__, "port_config", port_config) @@ -2052,7 +2052,7 @@ def bgp_lb_config(self) -> Optional['outputs.BareMetalClusterLoadBalancerBgpLbCo @pulumi.getter(name="manualLbConfig") def manual_lb_config(self) -> Optional['outputs.BareMetalClusterLoadBalancerManualLbConfig']: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "manual_lb_config") @@ -2061,7 +2061,7 @@ def manual_lb_config(self) -> Optional['outputs.BareMetalClusterLoadBalancerManu @pulumi.getter(name="metalLbConfig") def metal_lb_config(self) -> Optional['outputs.BareMetalClusterLoadBalancerMetalLbConfig']: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "metal_lb_config") @@ -3216,7 +3216,7 @@ def __init__(__self__, *, Load Balancing with BGP or the egress NAT gateway. Setting configuration for advanced networking features will automatically set this flag. - :param 'BareMetalClusterNetworkConfigIslandModeCidrArgs' island_mode_cidr: A nested object resource + :param 'BareMetalClusterNetworkConfigIslandModeCidrArgs' island_mode_cidr: A nested object resource. Structure is documented below. :param 'BareMetalClusterNetworkConfigMultipleNetworkInterfacesConfigArgs' multiple_network_interfaces_config: Configuration for multiple network interfaces. Structure is documented below. @@ -3247,7 +3247,7 @@ def advanced_networking(self) -> Optional[bool]: @pulumi.getter(name="islandModeCidr") def island_mode_cidr(self) -> Optional['outputs.BareMetalClusterNetworkConfigIslandModeCidr']: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "island_mode_cidr") diff --git a/sdk/python/pulumi_gcp/healthcare/dataset.py b/sdk/python/pulumi_gcp/healthcare/dataset.py index f36af9d0fa..d1c6a37ccb 100644 --- a/sdk/python/pulumi_gcp/healthcare/dataset.py +++ b/sdk/python/pulumi_gcp/healthcare/dataset.py @@ -32,7 +32,7 @@ def __init__(__self__, *, - - - - :param pulumi.Input['DatasetEncryptionSpecArgs'] encryption_spec: A nested object resource + :param pulumi.Input['DatasetEncryptionSpecArgs'] encryption_spec: A nested object resource. Structure is documented below. :param pulumi.Input[str] name: The resource name for the Dataset. :param pulumi.Input[str] project: The ID of the project in which the resource belongs. @@ -70,7 +70,7 @@ def location(self, value: pulumi.Input[str]): @pulumi.getter(name="encryptionSpec") def encryption_spec(self) -> Optional[pulumi.Input['DatasetEncryptionSpecArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "encryption_spec") @@ -130,7 +130,7 @@ def __init__(__self__, *, time_zone: Optional[pulumi.Input[str]] = None): """ Input properties used for looking up and filtering Dataset resources. - :param pulumi.Input['DatasetEncryptionSpecArgs'] encryption_spec: A nested object resource + :param pulumi.Input['DatasetEncryptionSpecArgs'] encryption_spec: A nested object resource. Structure is documented below. :param pulumi.Input[str] location: The location for the Dataset. @@ -161,7 +161,7 @@ def __init__(__self__, *, @pulumi.getter(name="encryptionSpec") def encryption_spec(self) -> Optional[pulumi.Input['DatasetEncryptionSpecArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "encryption_spec") @@ -324,7 +324,7 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[Union['DatasetEncryptionSpecArgs', 'DatasetEncryptionSpecArgsDict']] encryption_spec: A nested object resource + :param pulumi.Input[Union['DatasetEncryptionSpecArgs', 'DatasetEncryptionSpecArgsDict']] encryption_spec: A nested object resource. Structure is documented below. :param pulumi.Input[str] location: The location for the Dataset. @@ -477,7 +477,7 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[Union['DatasetEncryptionSpecArgs', 'DatasetEncryptionSpecArgsDict']] encryption_spec: A nested object resource + :param pulumi.Input[Union['DatasetEncryptionSpecArgs', 'DatasetEncryptionSpecArgsDict']] encryption_spec: A nested object resource. Structure is documented below. :param pulumi.Input[str] location: The location for the Dataset. @@ -507,7 +507,7 @@ def get(resource_name: str, @pulumi.getter(name="encryptionSpec") def encryption_spec(self) -> pulumi.Output['outputs.DatasetEncryptionSpec']: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "encryption_spec") diff --git a/sdk/python/pulumi_gcp/healthcare/dicom_store.py b/sdk/python/pulumi_gcp/healthcare/dicom_store.py index 8d31e8692d..0440b790b1 100644 --- a/sdk/python/pulumi_gcp/healthcare/dicom_store.py +++ b/sdk/python/pulumi_gcp/healthcare/dicom_store.py @@ -46,7 +46,7 @@ def __init__(__self__, *, Please refer to the field `effective_labels` for all of the labels present on the resource. :param pulumi.Input[str] name: The resource name for the DicomStore. ** Changing this property may recreate the Dicom store (removing all data) ** - :param pulumi.Input['DicomStoreNotificationConfigArgs'] notification_config: A nested object resource + :param pulumi.Input['DicomStoreNotificationConfigArgs'] notification_config: A nested object resource. Structure is documented below. :param pulumi.Input[Sequence[pulumi.Input['DicomStoreStreamConfigArgs']]] stream_configs: To enable streaming to BigQuery, configure the streamConfigs object in your DICOM store. streamConfigs is an array, so you can specify multiple BigQuery destinations. You can stream metadata from a single DICOM store to up to five BigQuery tables in a BigQuery dataset. @@ -117,7 +117,7 @@ def name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="notificationConfig") def notification_config(self) -> Optional[pulumi.Input['DicomStoreNotificationConfigArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "notification_config") @@ -173,7 +173,7 @@ def __init__(__self__, *, Please refer to the field `effective_labels` for all of the labels present on the resource. :param pulumi.Input[str] name: The resource name for the DicomStore. ** Changing this property may recreate the Dicom store (removing all data) ** - :param pulumi.Input['DicomStoreNotificationConfigArgs'] notification_config: A nested object resource + :param pulumi.Input['DicomStoreNotificationConfigArgs'] notification_config: A nested object resource. Structure is documented below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource and default labels configured on the provider. @@ -266,7 +266,7 @@ def name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="notificationConfig") def notification_config(self) -> Optional[pulumi.Input['DicomStoreNotificationConfigArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "notification_config") @@ -438,7 +438,7 @@ def __init__(__self__, Please refer to the field `effective_labels` for all of the labels present on the resource. :param pulumi.Input[str] name: The resource name for the DicomStore. ** Changing this property may recreate the Dicom store (removing all data) ** - :param pulumi.Input[Union['DicomStoreNotificationConfigArgs', 'DicomStoreNotificationConfigArgsDict']] notification_config: A nested object resource + :param pulumi.Input[Union['DicomStoreNotificationConfigArgs', 'DicomStoreNotificationConfigArgsDict']] notification_config: A nested object resource. Structure is documented below. :param pulumi.Input[Sequence[pulumi.Input[Union['DicomStoreStreamConfigArgs', 'DicomStoreStreamConfigArgsDict']]]] stream_configs: To enable streaming to BigQuery, configure the streamConfigs object in your DICOM store. streamConfigs is an array, so you can specify multiple BigQuery destinations. You can stream metadata from a single DICOM store to up to five BigQuery tables in a BigQuery dataset. @@ -627,7 +627,7 @@ def get(resource_name: str, Please refer to the field `effective_labels` for all of the labels present on the resource. :param pulumi.Input[str] name: The resource name for the DicomStore. ** Changing this property may recreate the Dicom store (removing all data) ** - :param pulumi.Input[Union['DicomStoreNotificationConfigArgs', 'DicomStoreNotificationConfigArgsDict']] notification_config: A nested object resource + :param pulumi.Input[Union['DicomStoreNotificationConfigArgs', 'DicomStoreNotificationConfigArgsDict']] notification_config: A nested object resource. Structure is documented below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource and default labels configured on the provider. @@ -701,7 +701,7 @@ def name(self) -> pulumi.Output[str]: @pulumi.getter(name="notificationConfig") def notification_config(self) -> pulumi.Output[Optional['outputs.DicomStoreNotificationConfig']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "notification_config") diff --git a/sdk/python/pulumi_gcp/healthcare/fhir_store.py b/sdk/python/pulumi_gcp/healthcare/fhir_store.py index de7d98e5b2..4b90266ed4 100644 --- a/sdk/python/pulumi_gcp/healthcare/fhir_store.py +++ b/sdk/python/pulumi_gcp/healthcare/fhir_store.py @@ -87,7 +87,7 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The resource name for the FhirStore. ** Changing this property may recreate the FHIR store (removing all data) ** :param pulumi.Input['FhirStoreNotificationConfigArgs'] notification_config: (Optional, Deprecated) - A nested object resource + A nested object resource. Structure is documented below. > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. @@ -300,7 +300,7 @@ def name(self, value: Optional[pulumi.Input[str]]): def notification_config(self) -> Optional[pulumi.Input['FhirStoreNotificationConfigArgs']]: """ (Optional, Deprecated) - A nested object resource + A nested object resource. Structure is documented below. > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. @@ -430,7 +430,7 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The resource name for the FhirStore. ** Changing this property may recreate the FHIR store (removing all data) ** :param pulumi.Input['FhirStoreNotificationConfigArgs'] notification_config: (Optional, Deprecated) - A nested object resource + A nested object resource. Structure is documented below. > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. @@ -665,7 +665,7 @@ def name(self, value: Optional[pulumi.Input[str]]): def notification_config(self) -> Optional[pulumi.Input['FhirStoreNotificationConfigArgs']]: """ (Optional, Deprecated) - A nested object resource + A nested object resource. Structure is documented below. > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. @@ -949,7 +949,7 @@ def __init__(__self__, :param pulumi.Input[str] name: The resource name for the FhirStore. ** Changing this property may recreate the FHIR store (removing all data) ** :param pulumi.Input[Union['FhirStoreNotificationConfigArgs', 'FhirStoreNotificationConfigArgsDict']] notification_config: (Optional, Deprecated) - A nested object resource + A nested object resource. Structure is documented below. > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. @@ -1246,7 +1246,7 @@ def get(resource_name: str, :param pulumi.Input[str] name: The resource name for the FhirStore. ** Changing this property may recreate the FHIR store (removing all data) ** :param pulumi.Input[Union['FhirStoreNotificationConfigArgs', 'FhirStoreNotificationConfigArgsDict']] notification_config: (Optional, Deprecated) - A nested object resource + A nested object resource. Structure is documented below. > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. @@ -1422,7 +1422,7 @@ def name(self) -> pulumi.Output[str]: def notification_config(self) -> pulumi.Output[Optional['outputs.FhirStoreNotificationConfig']]: """ (Optional, Deprecated) - A nested object resource + A nested object resource. Structure is documented below. > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. diff --git a/sdk/python/pulumi_gcp/healthcare/hl7_store.py b/sdk/python/pulumi_gcp/healthcare/hl7_store.py index 7935a6bc03..e47a1912e8 100644 --- a/sdk/python/pulumi_gcp/healthcare/hl7_store.py +++ b/sdk/python/pulumi_gcp/healthcare/hl7_store.py @@ -49,7 +49,7 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The resource name for the Hl7V2Store. ** Changing this property may recreate the Hl7v2 store (removing all data) ** :param pulumi.Input['Hl7StoreNotificationConfigArgs'] notification_config: (Optional, Deprecated) - A nested object resource + A nested object resource. Structure is documented below. > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. @@ -57,7 +57,7 @@ def __init__(__self__, *, message (both Ingest & Create) on the corresponding notification destination. Only the message name is sent as part of the notification. Supplied by the client. Structure is documented below. - :param pulumi.Input['Hl7StoreParserConfigArgs'] parser_config: A nested object resource + :param pulumi.Input['Hl7StoreParserConfigArgs'] parser_config: A nested object resource. Structure is documented below. :param pulumi.Input[bool] reject_duplicate_message: Determines whether duplicate messages are allowed. """ @@ -135,7 +135,7 @@ def name(self, value: Optional[pulumi.Input[str]]): def notification_config(self) -> Optional[pulumi.Input['Hl7StoreNotificationConfigArgs']]: """ (Optional, Deprecated) - A nested object resource + A nested object resource. Structure is documented below. > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. @@ -165,7 +165,7 @@ def notification_configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Inpu @pulumi.getter(name="parserConfig") def parser_config(self) -> Optional[pulumi.Input['Hl7StoreParserConfigArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "parser_config") @@ -222,7 +222,7 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The resource name for the Hl7V2Store. ** Changing this property may recreate the Hl7v2 store (removing all data) ** :param pulumi.Input['Hl7StoreNotificationConfigArgs'] notification_config: (Optional, Deprecated) - A nested object resource + A nested object resource. Structure is documented below. > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. @@ -230,7 +230,7 @@ def __init__(__self__, *, message (both Ingest & Create) on the corresponding notification destination. Only the message name is sent as part of the notification. Supplied by the client. Structure is documented below. - :param pulumi.Input['Hl7StoreParserConfigArgs'] parser_config: A nested object resource + :param pulumi.Input['Hl7StoreParserConfigArgs'] parser_config: A nested object resource. Structure is documented below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource and default labels configured on the provider. @@ -330,7 +330,7 @@ def name(self, value: Optional[pulumi.Input[str]]): def notification_config(self) -> Optional[pulumi.Input['Hl7StoreNotificationConfigArgs']]: """ (Optional, Deprecated) - A nested object resource + A nested object resource. Structure is documented below. > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. @@ -360,7 +360,7 @@ def notification_configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Inpu @pulumi.getter(name="parserConfig") def parser_config(self) -> Optional[pulumi.Input['Hl7StoreParserConfigArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "parser_config") @@ -607,7 +607,7 @@ def __init__(__self__, :param pulumi.Input[str] name: The resource name for the Hl7V2Store. ** Changing this property may recreate the Hl7v2 store (removing all data) ** :param pulumi.Input[Union['Hl7StoreNotificationConfigArgs', 'Hl7StoreNotificationConfigArgsDict']] notification_config: (Optional, Deprecated) - A nested object resource + A nested object resource. Structure is documented below. > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. @@ -615,7 +615,7 @@ def __init__(__self__, message (both Ingest & Create) on the corresponding notification destination. Only the message name is sent as part of the notification. Supplied by the client. Structure is documented below. - :param pulumi.Input[Union['Hl7StoreParserConfigArgs', 'Hl7StoreParserConfigArgsDict']] parser_config: A nested object resource + :param pulumi.Input[Union['Hl7StoreParserConfigArgs', 'Hl7StoreParserConfigArgsDict']] parser_config: A nested object resource. Structure is documented below. :param pulumi.Input[bool] reject_duplicate_message: Determines whether duplicate messages are allowed. """ @@ -883,7 +883,7 @@ def get(resource_name: str, :param pulumi.Input[str] name: The resource name for the Hl7V2Store. ** Changing this property may recreate the Hl7v2 store (removing all data) ** :param pulumi.Input[Union['Hl7StoreNotificationConfigArgs', 'Hl7StoreNotificationConfigArgsDict']] notification_config: (Optional, Deprecated) - A nested object resource + A nested object resource. Structure is documented below. > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. @@ -891,7 +891,7 @@ def get(resource_name: str, message (both Ingest & Create) on the corresponding notification destination. Only the message name is sent as part of the notification. Supplied by the client. Structure is documented below. - :param pulumi.Input[Union['Hl7StoreParserConfigArgs', 'Hl7StoreParserConfigArgsDict']] parser_config: A nested object resource + :param pulumi.Input[Union['Hl7StoreParserConfigArgs', 'Hl7StoreParserConfigArgsDict']] parser_config: A nested object resource. Structure is documented below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource and default labels configured on the provider. @@ -967,7 +967,7 @@ def name(self) -> pulumi.Output[str]: def notification_config(self) -> pulumi.Output[Optional['outputs.Hl7StoreNotificationConfig']]: """ (Optional, Deprecated) - A nested object resource + A nested object resource. Structure is documented below. > **Warning:** `notification_config` is deprecated and will be removed in a future major release. Use `notification_configs` instead. @@ -989,7 +989,7 @@ def notification_configs(self) -> pulumi.Output[Optional[Sequence['outputs.Hl7St @pulumi.getter(name="parserConfig") def parser_config(self) -> pulumi.Output['outputs.Hl7StoreParserConfig']: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "parser_config") diff --git a/sdk/python/pulumi_gcp/iam/__init__.py b/sdk/python/pulumi_gcp/iam/__init__.py index 8b66624a82..59e61c9b46 100644 --- a/sdk/python/pulumi_gcp/iam/__init__.py +++ b/sdk/python/pulumi_gcp/iam/__init__.py @@ -11,6 +11,7 @@ from .get_testable_permissions import * from .get_workload_identity_pool import * from .get_workload_identity_pool_provider import * +from .principal_access_boundary_policy import * from .workforce_pool import * from .workforce_pool_provider import * from .workload_identity_pool import * diff --git a/sdk/python/pulumi_gcp/iam/_inputs.py b/sdk/python/pulumi_gcp/iam/_inputs.py index 32fcb3feb5..52296542e0 100644 --- a/sdk/python/pulumi_gcp/iam/_inputs.py +++ b/sdk/python/pulumi_gcp/iam/_inputs.py @@ -27,6 +27,10 @@ 'DenyPolicyRuleDenyRuleArgsDict', 'DenyPolicyRuleDenyRuleDenialConditionArgs', 'DenyPolicyRuleDenyRuleDenialConditionArgsDict', + 'PrincipalAccessBoundaryPolicyDetailsArgs', + 'PrincipalAccessBoundaryPolicyDetailsArgsDict', + 'PrincipalAccessBoundaryPolicyDetailsRuleArgs', + 'PrincipalAccessBoundaryPolicyDetailsRuleArgsDict', 'WorkforcePoolAccessRestrictionsArgs', 'WorkforcePoolAccessRestrictionsArgsDict', 'WorkforcePoolAccessRestrictionsAllowedServiceArgs', @@ -591,6 +595,163 @@ def title(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "title", value) +if not MYPY: + class PrincipalAccessBoundaryPolicyDetailsArgsDict(TypedDict): + rules: pulumi.Input[Sequence[pulumi.Input['PrincipalAccessBoundaryPolicyDetailsRuleArgsDict']]] + """ + A list of principal access boundary policy rules. The number of rules in a policy is limited to 500. + Structure is documented below. + """ + enforcement_version: NotRequired[pulumi.Input[str]] + """ + The version number that indicates which Google Cloud services + are included in the enforcement (e.g. \\"latest\\", \\"1\\", ...). If empty, the + PAB policy version will be set to the current latest version, and this version + won't get updated when new versions are released. + """ +elif False: + PrincipalAccessBoundaryPolicyDetailsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class PrincipalAccessBoundaryPolicyDetailsArgs: + def __init__(__self__, *, + rules: pulumi.Input[Sequence[pulumi.Input['PrincipalAccessBoundaryPolicyDetailsRuleArgs']]], + enforcement_version: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input['PrincipalAccessBoundaryPolicyDetailsRuleArgs']]] rules: A list of principal access boundary policy rules. The number of rules in a policy is limited to 500. + Structure is documented below. + :param pulumi.Input[str] enforcement_version: The version number that indicates which Google Cloud services + are included in the enforcement (e.g. \\"latest\\", \\"1\\", ...). If empty, the + PAB policy version will be set to the current latest version, and this version + won't get updated when new versions are released. + """ + pulumi.set(__self__, "rules", rules) + if enforcement_version is not None: + pulumi.set(__self__, "enforcement_version", enforcement_version) + + @property + @pulumi.getter + def rules(self) -> pulumi.Input[Sequence[pulumi.Input['PrincipalAccessBoundaryPolicyDetailsRuleArgs']]]: + """ + A list of principal access boundary policy rules. The number of rules in a policy is limited to 500. + Structure is documented below. + """ + return pulumi.get(self, "rules") + + @rules.setter + def rules(self, value: pulumi.Input[Sequence[pulumi.Input['PrincipalAccessBoundaryPolicyDetailsRuleArgs']]]): + pulumi.set(self, "rules", value) + + @property + @pulumi.getter(name="enforcementVersion") + def enforcement_version(self) -> Optional[pulumi.Input[str]]: + """ + The version number that indicates which Google Cloud services + are included in the enforcement (e.g. \\"latest\\", \\"1\\", ...). If empty, the + PAB policy version will be set to the current latest version, and this version + won't get updated when new versions are released. + """ + return pulumi.get(self, "enforcement_version") + + @enforcement_version.setter + def enforcement_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "enforcement_version", value) + + +if not MYPY: + class PrincipalAccessBoundaryPolicyDetailsRuleArgsDict(TypedDict): + effect: pulumi.Input[str] + """ + The access relationship of principals to the resources in this rule. + Possible values: ALLOW + """ + resources: pulumi.Input[Sequence[pulumi.Input[str]]] + """ + A list of Cloud Resource Manager resources. The resource + and all the descendants are included. The number of resources in a policy + is limited to 500 across all rules. + The following resource types are supported: + * Organizations, such as `//cloudresourcemanager.googleapis.com/organizations/123`. + * Folders, such as `//cloudresourcemanager.googleapis.com/folders/123`. + * Projects, such as `//cloudresourcemanager.googleapis.com/projects/123` + or `//cloudresourcemanager.googleapis.com/projects/my-project-id`. + """ + description: NotRequired[pulumi.Input[str]] + """ + The description of the principal access boundary policy rule. Must be less than or equal to 256 characters. + """ +elif False: + PrincipalAccessBoundaryPolicyDetailsRuleArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class PrincipalAccessBoundaryPolicyDetailsRuleArgs: + def __init__(__self__, *, + effect: pulumi.Input[str], + resources: pulumi.Input[Sequence[pulumi.Input[str]]], + description: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] effect: The access relationship of principals to the resources in this rule. + Possible values: ALLOW + :param pulumi.Input[Sequence[pulumi.Input[str]]] resources: A list of Cloud Resource Manager resources. The resource + and all the descendants are included. The number of resources in a policy + is limited to 500 across all rules. + The following resource types are supported: + * Organizations, such as `//cloudresourcemanager.googleapis.com/organizations/123`. + * Folders, such as `//cloudresourcemanager.googleapis.com/folders/123`. + * Projects, such as `//cloudresourcemanager.googleapis.com/projects/123` + or `//cloudresourcemanager.googleapis.com/projects/my-project-id`. + :param pulumi.Input[str] description: The description of the principal access boundary policy rule. Must be less than or equal to 256 characters. + """ + pulumi.set(__self__, "effect", effect) + pulumi.set(__self__, "resources", resources) + if description is not None: + pulumi.set(__self__, "description", description) + + @property + @pulumi.getter + def effect(self) -> pulumi.Input[str]: + """ + The access relationship of principals to the resources in this rule. + Possible values: ALLOW + """ + return pulumi.get(self, "effect") + + @effect.setter + def effect(self, value: pulumi.Input[str]): + pulumi.set(self, "effect", value) + + @property + @pulumi.getter + def resources(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: + """ + A list of Cloud Resource Manager resources. The resource + and all the descendants are included. The number of resources in a policy + is limited to 500 across all rules. + The following resource types are supported: + * Organizations, such as `//cloudresourcemanager.googleapis.com/organizations/123`. + * Folders, such as `//cloudresourcemanager.googleapis.com/folders/123`. + * Projects, such as `//cloudresourcemanager.googleapis.com/projects/123` + or `//cloudresourcemanager.googleapis.com/projects/my-project-id`. + """ + return pulumi.get(self, "resources") + + @resources.setter + def resources(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): + pulumi.set(self, "resources", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + The description of the principal access boundary policy rule. Must be less than or equal to 256 characters. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + if not MYPY: class WorkforcePoolAccessRestrictionsArgsDict(TypedDict): allowed_services: NotRequired[pulumi.Input[Sequence[pulumi.Input['WorkforcePoolAccessRestrictionsAllowedServiceArgsDict']]]] diff --git a/sdk/python/pulumi_gcp/iam/outputs.py b/sdk/python/pulumi_gcp/iam/outputs.py index caf8b61fd5..227000256a 100644 --- a/sdk/python/pulumi_gcp/iam/outputs.py +++ b/sdk/python/pulumi_gcp/iam/outputs.py @@ -22,6 +22,8 @@ 'DenyPolicyRule', 'DenyPolicyRuleDenyRule', 'DenyPolicyRuleDenyRuleDenialCondition', + 'PrincipalAccessBoundaryPolicyDetails', + 'PrincipalAccessBoundaryPolicyDetailsRule', 'WorkforcePoolAccessRestrictions', 'WorkforcePoolAccessRestrictionsAllowedService', 'WorkforcePoolProviderExtraAttributesOauth2Client', @@ -446,6 +448,118 @@ def title(self) -> Optional[str]: return pulumi.get(self, "title") +@pulumi.output_type +class PrincipalAccessBoundaryPolicyDetails(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "enforcementVersion": + suggest = "enforcement_version" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in PrincipalAccessBoundaryPolicyDetails. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + PrincipalAccessBoundaryPolicyDetails.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + PrincipalAccessBoundaryPolicyDetails.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + rules: Sequence['outputs.PrincipalAccessBoundaryPolicyDetailsRule'], + enforcement_version: Optional[str] = None): + """ + :param Sequence['PrincipalAccessBoundaryPolicyDetailsRuleArgs'] rules: A list of principal access boundary policy rules. The number of rules in a policy is limited to 500. + Structure is documented below. + :param str enforcement_version: The version number that indicates which Google Cloud services + are included in the enforcement (e.g. \\"latest\\", \\"1\\", ...). If empty, the + PAB policy version will be set to the current latest version, and this version + won't get updated when new versions are released. + """ + pulumi.set(__self__, "rules", rules) + if enforcement_version is not None: + pulumi.set(__self__, "enforcement_version", enforcement_version) + + @property + @pulumi.getter + def rules(self) -> Sequence['outputs.PrincipalAccessBoundaryPolicyDetailsRule']: + """ + A list of principal access boundary policy rules. The number of rules in a policy is limited to 500. + Structure is documented below. + """ + return pulumi.get(self, "rules") + + @property + @pulumi.getter(name="enforcementVersion") + def enforcement_version(self) -> Optional[str]: + """ + The version number that indicates which Google Cloud services + are included in the enforcement (e.g. \\"latest\\", \\"1\\", ...). If empty, the + PAB policy version will be set to the current latest version, and this version + won't get updated when new versions are released. + """ + return pulumi.get(self, "enforcement_version") + + +@pulumi.output_type +class PrincipalAccessBoundaryPolicyDetailsRule(dict): + def __init__(__self__, *, + effect: str, + resources: Sequence[str], + description: Optional[str] = None): + """ + :param str effect: The access relationship of principals to the resources in this rule. + Possible values: ALLOW + :param Sequence[str] resources: A list of Cloud Resource Manager resources. The resource + and all the descendants are included. The number of resources in a policy + is limited to 500 across all rules. + The following resource types are supported: + * Organizations, such as `//cloudresourcemanager.googleapis.com/organizations/123`. + * Folders, such as `//cloudresourcemanager.googleapis.com/folders/123`. + * Projects, such as `//cloudresourcemanager.googleapis.com/projects/123` + or `//cloudresourcemanager.googleapis.com/projects/my-project-id`. + :param str description: The description of the principal access boundary policy rule. Must be less than or equal to 256 characters. + """ + pulumi.set(__self__, "effect", effect) + pulumi.set(__self__, "resources", resources) + if description is not None: + pulumi.set(__self__, "description", description) + + @property + @pulumi.getter + def effect(self) -> str: + """ + The access relationship of principals to the resources in this rule. + Possible values: ALLOW + """ + return pulumi.get(self, "effect") + + @property + @pulumi.getter + def resources(self) -> Sequence[str]: + """ + A list of Cloud Resource Manager resources. The resource + and all the descendants are included. The number of resources in a policy + is limited to 500 across all rules. + The following resource types are supported: + * Organizations, such as `//cloudresourcemanager.googleapis.com/organizations/123`. + * Folders, such as `//cloudresourcemanager.googleapis.com/folders/123`. + * Projects, such as `//cloudresourcemanager.googleapis.com/projects/123` + or `//cloudresourcemanager.googleapis.com/projects/my-project-id`. + """ + return pulumi.get(self, "resources") + + @property + @pulumi.getter + def description(self) -> Optional[str]: + """ + The description of the principal access boundary policy rule. Must be less than or equal to 256 characters. + """ + return pulumi.get(self, "description") + + @pulumi.output_type class WorkforcePoolAccessRestrictions(dict): @staticmethod diff --git a/sdk/python/pulumi_gcp/iam/principal_access_boundary_policy.py b/sdk/python/pulumi_gcp/iam/principal_access_boundary_policy.py new file mode 100644 index 0000000000..fae9f489ab --- /dev/null +++ b/sdk/python/pulumi_gcp/iam/principal_access_boundary_policy.py @@ -0,0 +1,679 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['PrincipalAccessBoundaryPolicyArgs', 'PrincipalAccessBoundaryPolicy'] + +@pulumi.input_type +class PrincipalAccessBoundaryPolicyArgs: + def __init__(__self__, *, + location: pulumi.Input[str], + organization: pulumi.Input[str], + principal_access_boundary_policy_id: pulumi.Input[str], + annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + details: Optional[pulumi.Input['PrincipalAccessBoundaryPolicyDetailsArgs']] = None, + display_name: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a PrincipalAccessBoundaryPolicy resource. + :param pulumi.Input[str] location: The location the principal access boundary policy is in. + :param pulumi.Input[str] organization: The parent organization of the principal access boundary policy. + :param pulumi.Input[str] principal_access_boundary_policy_id: The ID to use to create the principal access boundary policy. + This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, hyphens, or dots. Pattern, /a-z{2,62}/. + + + - - - + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] annotations: User defined annotations. See https://google.aip.dev/148#annotations + for more details such as format and size limitations + + **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + Please refer to the field `effective_annotations` for all of the annotations present on the resource. + :param pulumi.Input['PrincipalAccessBoundaryPolicyDetailsArgs'] details: Principal access boundary policy details + Structure is documented below. + :param pulumi.Input[str] display_name: The description of the principal access boundary policy. Must be less than or equal to 63 characters. + """ + pulumi.set(__self__, "location", location) + pulumi.set(__self__, "organization", organization) + pulumi.set(__self__, "principal_access_boundary_policy_id", principal_access_boundary_policy_id) + if annotations is not None: + pulumi.set(__self__, "annotations", annotations) + if details is not None: + pulumi.set(__self__, "details", details) + if display_name is not None: + pulumi.set(__self__, "display_name", display_name) + + @property + @pulumi.getter + def location(self) -> pulumi.Input[str]: + """ + The location the principal access boundary policy is in. + """ + return pulumi.get(self, "location") + + @location.setter + def location(self, value: pulumi.Input[str]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter + def organization(self) -> pulumi.Input[str]: + """ + The parent organization of the principal access boundary policy. + """ + return pulumi.get(self, "organization") + + @organization.setter + def organization(self, value: pulumi.Input[str]): + pulumi.set(self, "organization", value) + + @property + @pulumi.getter(name="principalAccessBoundaryPolicyId") + def principal_access_boundary_policy_id(self) -> pulumi.Input[str]: + """ + The ID to use to create the principal access boundary policy. + This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, hyphens, or dots. Pattern, /a-z{2,62}/. + + + - - - + """ + return pulumi.get(self, "principal_access_boundary_policy_id") + + @principal_access_boundary_policy_id.setter + def principal_access_boundary_policy_id(self, value: pulumi.Input[str]): + pulumi.set(self, "principal_access_boundary_policy_id", value) + + @property + @pulumi.getter + def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + User defined annotations. See https://google.aip.dev/148#annotations + for more details such as format and size limitations + + **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + Please refer to the field `effective_annotations` for all of the annotations present on the resource. + """ + return pulumi.get(self, "annotations") + + @annotations.setter + def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "annotations", value) + + @property + @pulumi.getter + def details(self) -> Optional[pulumi.Input['PrincipalAccessBoundaryPolicyDetailsArgs']]: + """ + Principal access boundary policy details + Structure is documented below. + """ + return pulumi.get(self, "details") + + @details.setter + def details(self, value: Optional[pulumi.Input['PrincipalAccessBoundaryPolicyDetailsArgs']]): + pulumi.set(self, "details", value) + + @property + @pulumi.getter(name="displayName") + def display_name(self) -> Optional[pulumi.Input[str]]: + """ + The description of the principal access boundary policy. Must be less than or equal to 63 characters. + """ + return pulumi.get(self, "display_name") + + @display_name.setter + def display_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "display_name", value) + + +@pulumi.input_type +class _PrincipalAccessBoundaryPolicyState: + def __init__(__self__, *, + annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + create_time: Optional[pulumi.Input[str]] = None, + details: Optional[pulumi.Input['PrincipalAccessBoundaryPolicyDetailsArgs']] = None, + display_name: Optional[pulumi.Input[str]] = None, + effective_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + etag: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + organization: Optional[pulumi.Input[str]] = None, + principal_access_boundary_policy_id: Optional[pulumi.Input[str]] = None, + uid: Optional[pulumi.Input[str]] = None, + update_time: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering PrincipalAccessBoundaryPolicy resources. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] annotations: User defined annotations. See https://google.aip.dev/148#annotations + for more details such as format and size limitations + + **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + Please refer to the field `effective_annotations` for all of the annotations present on the resource. + :param pulumi.Input[str] create_time: Output only. The time when the principal access boundary policy was created. + :param pulumi.Input['PrincipalAccessBoundaryPolicyDetailsArgs'] details: Principal access boundary policy details + Structure is documented below. + :param pulumi.Input[str] display_name: The description of the principal access boundary policy. Must be less than or equal to 63 characters. + :param pulumi.Input[str] etag: The etag for the principal access boundary. If this is provided on update, it must match the server's etag. + :param pulumi.Input[str] location: The location the principal access boundary policy is in. + :param pulumi.Input[str] name: Identifier. The resource name of the principal access boundary policy. The following format is supported: + `organizations/{organization_id}/locations/{location}/principalAccessBoundaryPolicies/{policy_id}` + :param pulumi.Input[str] organization: The parent organization of the principal access boundary policy. + :param pulumi.Input[str] principal_access_boundary_policy_id: The ID to use to create the principal access boundary policy. + This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, hyphens, or dots. Pattern, /a-z{2,62}/. + + + - - - + :param pulumi.Input[str] uid: Output only. The globally unique ID of the principal access boundary policy. + :param pulumi.Input[str] update_time: Output only. The time when the principal access boundary policy was most recently updated. + """ + if annotations is not None: + pulumi.set(__self__, "annotations", annotations) + if create_time is not None: + pulumi.set(__self__, "create_time", create_time) + if details is not None: + pulumi.set(__self__, "details", details) + if display_name is not None: + pulumi.set(__self__, "display_name", display_name) + if effective_annotations is not None: + pulumi.set(__self__, "effective_annotations", effective_annotations) + if etag is not None: + pulumi.set(__self__, "etag", etag) + if location is not None: + pulumi.set(__self__, "location", location) + if name is not None: + pulumi.set(__self__, "name", name) + if organization is not None: + pulumi.set(__self__, "organization", organization) + if principal_access_boundary_policy_id is not None: + pulumi.set(__self__, "principal_access_boundary_policy_id", principal_access_boundary_policy_id) + if uid is not None: + pulumi.set(__self__, "uid", uid) + if update_time is not None: + pulumi.set(__self__, "update_time", update_time) + + @property + @pulumi.getter + def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + User defined annotations. See https://google.aip.dev/148#annotations + for more details such as format and size limitations + + **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + Please refer to the field `effective_annotations` for all of the annotations present on the resource. + """ + return pulumi.get(self, "annotations") + + @annotations.setter + def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "annotations", value) + + @property + @pulumi.getter(name="createTime") + def create_time(self) -> Optional[pulumi.Input[str]]: + """ + Output only. The time when the principal access boundary policy was created. + """ + return pulumi.get(self, "create_time") + + @create_time.setter + def create_time(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "create_time", value) + + @property + @pulumi.getter + def details(self) -> Optional[pulumi.Input['PrincipalAccessBoundaryPolicyDetailsArgs']]: + """ + Principal access boundary policy details + Structure is documented below. + """ + return pulumi.get(self, "details") + + @details.setter + def details(self, value: Optional[pulumi.Input['PrincipalAccessBoundaryPolicyDetailsArgs']]): + pulumi.set(self, "details", value) + + @property + @pulumi.getter(name="displayName") + def display_name(self) -> Optional[pulumi.Input[str]]: + """ + The description of the principal access boundary policy. Must be less than or equal to 63 characters. + """ + return pulumi.get(self, "display_name") + + @display_name.setter + def display_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "display_name", value) + + @property + @pulumi.getter(name="effectiveAnnotations") + def effective_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + return pulumi.get(self, "effective_annotations") + + @effective_annotations.setter + def effective_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "effective_annotations", value) + + @property + @pulumi.getter + def etag(self) -> Optional[pulumi.Input[str]]: + """ + The etag for the principal access boundary. If this is provided on update, it must match the server's etag. + """ + return pulumi.get(self, "etag") + + @etag.setter + def etag(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "etag", value) + + @property + @pulumi.getter + def location(self) -> Optional[pulumi.Input[str]]: + """ + The location the principal access boundary policy is in. + """ + return pulumi.get(self, "location") + + @location.setter + def location(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Identifier. The resource name of the principal access boundary policy. The following format is supported: + `organizations/{organization_id}/locations/{location}/principalAccessBoundaryPolicies/{policy_id}` + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def organization(self) -> Optional[pulumi.Input[str]]: + """ + The parent organization of the principal access boundary policy. + """ + return pulumi.get(self, "organization") + + @organization.setter + def organization(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "organization", value) + + @property + @pulumi.getter(name="principalAccessBoundaryPolicyId") + def principal_access_boundary_policy_id(self) -> Optional[pulumi.Input[str]]: + """ + The ID to use to create the principal access boundary policy. + This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, hyphens, or dots. Pattern, /a-z{2,62}/. + + + - - - + """ + return pulumi.get(self, "principal_access_boundary_policy_id") + + @principal_access_boundary_policy_id.setter + def principal_access_boundary_policy_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "principal_access_boundary_policy_id", value) + + @property + @pulumi.getter + def uid(self) -> Optional[pulumi.Input[str]]: + """ + Output only. The globally unique ID of the principal access boundary policy. + """ + return pulumi.get(self, "uid") + + @uid.setter + def uid(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "uid", value) + + @property + @pulumi.getter(name="updateTime") + def update_time(self) -> Optional[pulumi.Input[str]]: + """ + Output only. The time when the principal access boundary policy was most recently updated. + """ + return pulumi.get(self, "update_time") + + @update_time.setter + def update_time(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "update_time", value) + + +class PrincipalAccessBoundaryPolicy(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + details: Optional[pulumi.Input[Union['PrincipalAccessBoundaryPolicyDetailsArgs', 'PrincipalAccessBoundaryPolicyDetailsArgsDict']]] = None, + display_name: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + organization: Optional[pulumi.Input[str]] = None, + principal_access_boundary_policy_id: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + ## Example Usage + + ### Iam Principal Access Boundary Policy + + ```python + import pulumi + import pulumi_gcp as gcp + + my_pab_policy = gcp.iam.PrincipalAccessBoundaryPolicy("my-pab-policy", + organization="123456789", + location="global", + display_name="test pab policy", + principal_access_boundary_policy_id="test-pab-policy") + ``` + + ## Import + + PrincipalAccessBoundaryPolicy can be imported using any of these accepted formats: + + * `organizations/{{organization}}/locations/{{location}}/principalAccessBoundaryPolicies/{{principal_access_boundary_policy_id}}` + + * `{{organization}}/{{location}}/{{principal_access_boundary_policy_id}}` + + When using the `pulumi import` command, PrincipalAccessBoundaryPolicy can be imported using one of the formats above. For example: + + ```sh + $ pulumi import gcp:iam/principalAccessBoundaryPolicy:PrincipalAccessBoundaryPolicy default organizations/{{organization}}/locations/{{location}}/principalAccessBoundaryPolicies/{{principal_access_boundary_policy_id}} + ``` + + ```sh + $ pulumi import gcp:iam/principalAccessBoundaryPolicy:PrincipalAccessBoundaryPolicy default {{organization}}/{{location}}/{{principal_access_boundary_policy_id}} + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] annotations: User defined annotations. See https://google.aip.dev/148#annotations + for more details such as format and size limitations + + **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + Please refer to the field `effective_annotations` for all of the annotations present on the resource. + :param pulumi.Input[Union['PrincipalAccessBoundaryPolicyDetailsArgs', 'PrincipalAccessBoundaryPolicyDetailsArgsDict']] details: Principal access boundary policy details + Structure is documented below. + :param pulumi.Input[str] display_name: The description of the principal access boundary policy. Must be less than or equal to 63 characters. + :param pulumi.Input[str] location: The location the principal access boundary policy is in. + :param pulumi.Input[str] organization: The parent organization of the principal access boundary policy. + :param pulumi.Input[str] principal_access_boundary_policy_id: The ID to use to create the principal access boundary policy. + This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, hyphens, or dots. Pattern, /a-z{2,62}/. + + + - - - + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: PrincipalAccessBoundaryPolicyArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + ## Example Usage + + ### Iam Principal Access Boundary Policy + + ```python + import pulumi + import pulumi_gcp as gcp + + my_pab_policy = gcp.iam.PrincipalAccessBoundaryPolicy("my-pab-policy", + organization="123456789", + location="global", + display_name="test pab policy", + principal_access_boundary_policy_id="test-pab-policy") + ``` + + ## Import + + PrincipalAccessBoundaryPolicy can be imported using any of these accepted formats: + + * `organizations/{{organization}}/locations/{{location}}/principalAccessBoundaryPolicies/{{principal_access_boundary_policy_id}}` + + * `{{organization}}/{{location}}/{{principal_access_boundary_policy_id}}` + + When using the `pulumi import` command, PrincipalAccessBoundaryPolicy can be imported using one of the formats above. For example: + + ```sh + $ pulumi import gcp:iam/principalAccessBoundaryPolicy:PrincipalAccessBoundaryPolicy default organizations/{{organization}}/locations/{{location}}/principalAccessBoundaryPolicies/{{principal_access_boundary_policy_id}} + ``` + + ```sh + $ pulumi import gcp:iam/principalAccessBoundaryPolicy:PrincipalAccessBoundaryPolicy default {{organization}}/{{location}}/{{principal_access_boundary_policy_id}} + ``` + + :param str resource_name: The name of the resource. + :param PrincipalAccessBoundaryPolicyArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(PrincipalAccessBoundaryPolicyArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + details: Optional[pulumi.Input[Union['PrincipalAccessBoundaryPolicyDetailsArgs', 'PrincipalAccessBoundaryPolicyDetailsArgsDict']]] = None, + display_name: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + organization: Optional[pulumi.Input[str]] = None, + principal_access_boundary_policy_id: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = PrincipalAccessBoundaryPolicyArgs.__new__(PrincipalAccessBoundaryPolicyArgs) + + __props__.__dict__["annotations"] = annotations + __props__.__dict__["details"] = details + __props__.__dict__["display_name"] = display_name + if location is None and not opts.urn: + raise TypeError("Missing required property 'location'") + __props__.__dict__["location"] = location + if organization is None and not opts.urn: + raise TypeError("Missing required property 'organization'") + __props__.__dict__["organization"] = organization + if principal_access_boundary_policy_id is None and not opts.urn: + raise TypeError("Missing required property 'principal_access_boundary_policy_id'") + __props__.__dict__["principal_access_boundary_policy_id"] = principal_access_boundary_policy_id + __props__.__dict__["create_time"] = None + __props__.__dict__["effective_annotations"] = None + __props__.__dict__["etag"] = None + __props__.__dict__["name"] = None + __props__.__dict__["uid"] = None + __props__.__dict__["update_time"] = None + super(PrincipalAccessBoundaryPolicy, __self__).__init__( + 'gcp:iam/principalAccessBoundaryPolicy:PrincipalAccessBoundaryPolicy', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + create_time: Optional[pulumi.Input[str]] = None, + details: Optional[pulumi.Input[Union['PrincipalAccessBoundaryPolicyDetailsArgs', 'PrincipalAccessBoundaryPolicyDetailsArgsDict']]] = None, + display_name: Optional[pulumi.Input[str]] = None, + effective_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + etag: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + organization: Optional[pulumi.Input[str]] = None, + principal_access_boundary_policy_id: Optional[pulumi.Input[str]] = None, + uid: Optional[pulumi.Input[str]] = None, + update_time: Optional[pulumi.Input[str]] = None) -> 'PrincipalAccessBoundaryPolicy': + """ + Get an existing PrincipalAccessBoundaryPolicy resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] annotations: User defined annotations. See https://google.aip.dev/148#annotations + for more details such as format and size limitations + + **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + Please refer to the field `effective_annotations` for all of the annotations present on the resource. + :param pulumi.Input[str] create_time: Output only. The time when the principal access boundary policy was created. + :param pulumi.Input[Union['PrincipalAccessBoundaryPolicyDetailsArgs', 'PrincipalAccessBoundaryPolicyDetailsArgsDict']] details: Principal access boundary policy details + Structure is documented below. + :param pulumi.Input[str] display_name: The description of the principal access boundary policy. Must be less than or equal to 63 characters. + :param pulumi.Input[str] etag: The etag for the principal access boundary. If this is provided on update, it must match the server's etag. + :param pulumi.Input[str] location: The location the principal access boundary policy is in. + :param pulumi.Input[str] name: Identifier. The resource name of the principal access boundary policy. The following format is supported: + `organizations/{organization_id}/locations/{location}/principalAccessBoundaryPolicies/{policy_id}` + :param pulumi.Input[str] organization: The parent organization of the principal access boundary policy. + :param pulumi.Input[str] principal_access_boundary_policy_id: The ID to use to create the principal access boundary policy. + This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, hyphens, or dots. Pattern, /a-z{2,62}/. + + + - - - + :param pulumi.Input[str] uid: Output only. The globally unique ID of the principal access boundary policy. + :param pulumi.Input[str] update_time: Output only. The time when the principal access boundary policy was most recently updated. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _PrincipalAccessBoundaryPolicyState.__new__(_PrincipalAccessBoundaryPolicyState) + + __props__.__dict__["annotations"] = annotations + __props__.__dict__["create_time"] = create_time + __props__.__dict__["details"] = details + __props__.__dict__["display_name"] = display_name + __props__.__dict__["effective_annotations"] = effective_annotations + __props__.__dict__["etag"] = etag + __props__.__dict__["location"] = location + __props__.__dict__["name"] = name + __props__.__dict__["organization"] = organization + __props__.__dict__["principal_access_boundary_policy_id"] = principal_access_boundary_policy_id + __props__.__dict__["uid"] = uid + __props__.__dict__["update_time"] = update_time + return PrincipalAccessBoundaryPolicy(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def annotations(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + User defined annotations. See https://google.aip.dev/148#annotations + for more details such as format and size limitations + + **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. + Please refer to the field `effective_annotations` for all of the annotations present on the resource. + """ + return pulumi.get(self, "annotations") + + @property + @pulumi.getter(name="createTime") + def create_time(self) -> pulumi.Output[str]: + """ + Output only. The time when the principal access boundary policy was created. + """ + return pulumi.get(self, "create_time") + + @property + @pulumi.getter + def details(self) -> pulumi.Output['outputs.PrincipalAccessBoundaryPolicyDetails']: + """ + Principal access boundary policy details + Structure is documented below. + """ + return pulumi.get(self, "details") + + @property + @pulumi.getter(name="displayName") + def display_name(self) -> pulumi.Output[Optional[str]]: + """ + The description of the principal access boundary policy. Must be less than or equal to 63 characters. + """ + return pulumi.get(self, "display_name") + + @property + @pulumi.getter(name="effectiveAnnotations") + def effective_annotations(self) -> pulumi.Output[Mapping[str, str]]: + return pulumi.get(self, "effective_annotations") + + @property + @pulumi.getter + def etag(self) -> pulumi.Output[str]: + """ + The etag for the principal access boundary. If this is provided on update, it must match the server's etag. + """ + return pulumi.get(self, "etag") + + @property + @pulumi.getter + def location(self) -> pulumi.Output[str]: + """ + The location the principal access boundary policy is in. + """ + return pulumi.get(self, "location") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Identifier. The resource name of the principal access boundary policy. The following format is supported: + `organizations/{organization_id}/locations/{location}/principalAccessBoundaryPolicies/{policy_id}` + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def organization(self) -> pulumi.Output[str]: + """ + The parent organization of the principal access boundary policy. + """ + return pulumi.get(self, "organization") + + @property + @pulumi.getter(name="principalAccessBoundaryPolicyId") + def principal_access_boundary_policy_id(self) -> pulumi.Output[str]: + """ + The ID to use to create the principal access boundary policy. + This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, hyphens, or dots. Pattern, /a-z{2,62}/. + + + - - - + """ + return pulumi.get(self, "principal_access_boundary_policy_id") + + @property + @pulumi.getter + def uid(self) -> pulumi.Output[str]: + """ + Output only. The globally unique ID of the principal access boundary policy. + """ + return pulumi.get(self, "uid") + + @property + @pulumi.getter(name="updateTime") + def update_time(self) -> pulumi.Output[str]: + """ + Output only. The time when the principal access boundary policy was most recently updated. + """ + return pulumi.get(self, "update_time") + diff --git a/sdk/python/pulumi_gcp/logging/metric.py b/sdk/python/pulumi_gcp/logging/metric.py index 90b6924197..efe6fd2f0d 100644 --- a/sdk/python/pulumi_gcp/logging/metric.py +++ b/sdk/python/pulumi_gcp/logging/metric.py @@ -604,7 +604,7 @@ def __init__(__self__, When using the `pulumi import` command, Metric can be imported using one of the formats above. For example: ```sh - $ pulumi import gcp:logging/metric:Metric default {{project}} {{name}} + $ pulumi import gcp:logging/metric:Metric default "{{project}} {{name}}" ``` ```sh @@ -787,7 +787,7 @@ def __init__(__self__, When using the `pulumi import` command, Metric can be imported using one of the formats above. For example: ```sh - $ pulumi import gcp:logging/metric:Metric default {{project}} {{name}} + $ pulumi import gcp:logging/metric:Metric default "{{project}} {{name}}" ``` ```sh diff --git a/sdk/python/pulumi_gcp/looker/_inputs.py b/sdk/python/pulumi_gcp/looker/_inputs.py index 9495d534f3..65db7255fc 100644 --- a/sdk/python/pulumi_gcp/looker/_inputs.py +++ b/sdk/python/pulumi_gcp/looker/_inputs.py @@ -711,6 +711,8 @@ class InstanceOauthConfigArgsDict(TypedDict): client_secret: pulumi.Input[str] """ The client secret for the Oauth config. + + - - - """ elif False: InstanceOauthConfigArgsDict: TypeAlias = Mapping[str, Any] @@ -723,6 +725,8 @@ def __init__(__self__, *, """ :param pulumi.Input[str] client_id: The client ID for the Oauth config. :param pulumi.Input[str] client_secret: The client secret for the Oauth config. + + - - - """ pulumi.set(__self__, "client_id", client_id) pulumi.set(__self__, "client_secret", client_secret) @@ -744,6 +748,8 @@ def client_id(self, value: pulumi.Input[str]): def client_secret(self) -> pulumi.Input[str]: """ The client secret for the Oauth config. + + - - - """ return pulumi.get(self, "client_secret") diff --git a/sdk/python/pulumi_gcp/looker/instance.py b/sdk/python/pulumi_gcp/looker/instance.py index 453c5b6d23..7d6c49808d 100644 --- a/sdk/python/pulumi_gcp/looker/instance.py +++ b/sdk/python/pulumi_gcp/looker/instance.py @@ -21,6 +21,7 @@ @pulumi.input_type class InstanceArgs: def __init__(__self__, *, + oauth_config: pulumi.Input['InstanceOauthConfigArgs'], admin_settings: Optional[pulumi.Input['InstanceAdminSettingsArgs']] = None, consumer_network: Optional[pulumi.Input[str]] = None, custom_domain: Optional[pulumi.Input['InstanceCustomDomainArgs']] = None, @@ -30,7 +31,6 @@ def __init__(__self__, *, fips_enabled: Optional[pulumi.Input[bool]] = None, maintenance_window: Optional[pulumi.Input['InstanceMaintenanceWindowArgs']] = None, name: Optional[pulumi.Input[str]] = None, - oauth_config: Optional[pulumi.Input['InstanceOauthConfigArgs']] = None, platform_edition: Optional[pulumi.Input[str]] = None, private_ip_enabled: Optional[pulumi.Input[bool]] = None, project: Optional[pulumi.Input[str]] = None, @@ -42,62 +42,42 @@ def __init__(__self__, *, user_metadata: Optional[pulumi.Input['InstanceUserMetadataArgs']] = None): """ The set of arguments for constructing a Instance resource. - :param pulumi.Input['InstanceAdminSettingsArgs'] admin_settings: Looker instance Admin settings. + :param pulumi.Input['InstanceOauthConfigArgs'] oauth_config: Looker Instance OAuth login settings. Structure is documented below. - :param pulumi.Input[str] consumer_network: Network name in the consumer project in the format of: projects/{project}/global/networks/{network} - Note that the consumer network may be in a different GCP project than the consumer - project that is hosting the Looker Instance. + :param pulumi.Input['InstanceAdminSettingsArgs'] admin_settings: Looker instance Admin settings. + :param pulumi.Input[str] consumer_network: Network name in the consumer project in the format of: projects/{project}/global/networks/{network} Note that the + consumer network may be in a different GCP project than the consumer project that is hosting the Looker Instance. :param pulumi.Input['InstanceCustomDomainArgs'] custom_domain: Custom domain settings for a Looker instance. - Structure is documented below. - :param pulumi.Input[str] deletion_policy: Policy to determine if the cluster should be deleted forcefully. - If setting deletion_policy = "FORCE", the Looker instance will be deleted regardless - of its nested resources. If set to "DEFAULT", Looker instances that still have + :param pulumi.Input[str] deletion_policy: Policy to determine if the cluster should be deleted forcefully. If setting deletion_policy = "FORCE", the Looker + instance will be deleted regardless of its nested resources. If set to "DEFAULT", Looker instances that still have nested resources will return an error. Possible values: DEFAULT, FORCE - :param pulumi.Input['InstanceDenyMaintenancePeriodArgs'] deny_maintenance_period: Maintenance denial period for this instance. - You must allow at least 14 days of maintenance availability - between any two deny maintenance periods. - Structure is documented below. + :param pulumi.Input['InstanceDenyMaintenancePeriodArgs'] deny_maintenance_period: Maintenance denial period for this instance. You must allow at least 14 days of maintenance availability between any two + deny maintenance periods. :param pulumi.Input['InstanceEncryptionConfigArgs'] encryption_config: Looker instance encryption settings. - Structure is documented below. :param pulumi.Input[bool] fips_enabled: FIPS 140-2 Encryption enablement for Looker (Google Cloud Core). - :param pulumi.Input['InstanceMaintenanceWindowArgs'] maintenance_window: Maintenance window for an instance. - Maintenance of your instance takes place once a month, and will require - your instance to be restarted during updates, which will temporarily - disrupt service. - Structure is documented below. + :param pulumi.Input['InstanceMaintenanceWindowArgs'] maintenance_window: Maintenance window for an instance. Maintenance of your instance takes place once a month, and will require your + instance to be restarted during updates, which will temporarily disrupt service. :param pulumi.Input[str] name: The ID of the instance or a fully qualified identifier for the instance. - - - - - - - :param pulumi.Input['InstanceOauthConfigArgs'] oauth_config: Looker Instance OAuth login settings. - Structure is documented below. - :param pulumi.Input[str] platform_edition: Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values: - - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable) - - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance - Default value is `LOOKER_CORE_TRIAL`. - Possible values are: `LOOKER_CORE_TRIAL`, `LOOKER_CORE_STANDARD`, `LOOKER_CORE_STANDARD_ANNUAL`, `LOOKER_CORE_ENTERPRISE_ANNUAL`, `LOOKER_CORE_EMBED_ANNUAL`. + :param pulumi.Input[str] platform_edition: Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of + these values: - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - LOOKER_CORE_STANDARD: pay as you go standard + instance (Currently Unavailable) - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - + LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance + Default value: "LOOKER_CORE_TRIAL" Possible values: ["LOOKER_CORE_TRIAL", "LOOKER_CORE_STANDARD", + "LOOKER_CORE_STANDARD_ANNUAL", "LOOKER_CORE_ENTERPRISE_ANNUAL", "LOOKER_CORE_EMBED_ANNUAL"] :param pulumi.Input[bool] private_ip_enabled: Whether private IP is enabled on the Looker instance. - :param pulumi.Input[str] project: The ID of the project in which the resource belongs. - If it is not provided, the provider project is used. :param pulumi.Input['InstancePscConfigArgs'] psc_config: Information for Private Service Connect (PSC) setup for a Looker instance. - Structure is documented below. :param pulumi.Input[bool] psc_enabled: Whether Public Service Connect (PSC) is enabled on the Looker instance :param pulumi.Input[bool] public_ip_enabled: Whether public IP is enabled on the Looker instance. :param pulumi.Input[str] region: The name of the Looker region of the instance. - :param pulumi.Input[str] reserved_range: Name of a reserved IP address range within the consumer network, to be used for - private service access connection. User may or may not specify this in a request. - :param pulumi.Input['InstanceUserMetadataArgs'] user_metadata: Metadata about users for a Looker instance. - These settings are only available when platform edition LOOKER_CORE_STANDARD is set. - There are ten Standard and two Developer users included in the cost of the product. - You can allocate additional Standard, Viewer, and Developer users for this instance. - It is an optional step and can be modified later. - With the Standard edition of Looker (Google Cloud core), you can provision up to 50 - total users, distributed across Viewer, Standard, and Developer. - Structure is documented below. - """ + :param pulumi.Input[str] reserved_range: Name of a reserved IP address range within the consumer network, to be used for private service access connection. User + may or may not specify this in a request. + :param pulumi.Input['InstanceUserMetadataArgs'] user_metadata: Metadata about users for a Looker instance. These settings are only available when platform edition LOOKER_CORE_STANDARD + is set. There are ten Standard and two Developer users included in the cost of the product. You can allocate additional + Standard, Viewer, and Developer users for this instance. It is an optional step and can be modified later. With the + Standard edition of Looker (Google Cloud core), you can provision up to 50 total users, distributed across Viewer, + Standard, and Developer. + """ + pulumi.set(__self__, "oauth_config", oauth_config) if admin_settings is not None: pulumi.set(__self__, "admin_settings", admin_settings) if consumer_network is not None: @@ -116,8 +96,6 @@ def __init__(__self__, *, pulumi.set(__self__, "maintenance_window", maintenance_window) if name is not None: pulumi.set(__self__, "name", name) - if oauth_config is not None: - pulumi.set(__self__, "oauth_config", oauth_config) if platform_edition is not None: pulumi.set(__self__, "platform_edition", platform_edition) if private_ip_enabled is not None: @@ -137,12 +115,24 @@ def __init__(__self__, *, if user_metadata is not None: pulumi.set(__self__, "user_metadata", user_metadata) + @property + @pulumi.getter(name="oauthConfig") + def oauth_config(self) -> pulumi.Input['InstanceOauthConfigArgs']: + """ + Looker Instance OAuth login settings. + Structure is documented below. + """ + return pulumi.get(self, "oauth_config") + + @oauth_config.setter + def oauth_config(self, value: pulumi.Input['InstanceOauthConfigArgs']): + pulumi.set(self, "oauth_config", value) + @property @pulumi.getter(name="adminSettings") def admin_settings(self) -> Optional[pulumi.Input['InstanceAdminSettingsArgs']]: """ Looker instance Admin settings. - Structure is documented below. """ return pulumi.get(self, "admin_settings") @@ -154,9 +144,8 @@ def admin_settings(self, value: Optional[pulumi.Input['InstanceAdminSettingsArgs @pulumi.getter(name="consumerNetwork") def consumer_network(self) -> Optional[pulumi.Input[str]]: """ - Network name in the consumer project in the format of: projects/{project}/global/networks/{network} - Note that the consumer network may be in a different GCP project than the consumer - project that is hosting the Looker Instance. + Network name in the consumer project in the format of: projects/{project}/global/networks/{network} Note that the + consumer network may be in a different GCP project than the consumer project that is hosting the Looker Instance. """ return pulumi.get(self, "consumer_network") @@ -169,7 +158,6 @@ def consumer_network(self, value: Optional[pulumi.Input[str]]): def custom_domain(self) -> Optional[pulumi.Input['InstanceCustomDomainArgs']]: """ Custom domain settings for a Looker instance. - Structure is documented below. """ return pulumi.get(self, "custom_domain") @@ -181,9 +169,8 @@ def custom_domain(self, value: Optional[pulumi.Input['InstanceCustomDomainArgs'] @pulumi.getter(name="deletionPolicy") def deletion_policy(self) -> Optional[pulumi.Input[str]]: """ - Policy to determine if the cluster should be deleted forcefully. - If setting deletion_policy = "FORCE", the Looker instance will be deleted regardless - of its nested resources. If set to "DEFAULT", Looker instances that still have + Policy to determine if the cluster should be deleted forcefully. If setting deletion_policy = "FORCE", the Looker + instance will be deleted regardless of its nested resources. If set to "DEFAULT", Looker instances that still have nested resources will return an error. Possible values: DEFAULT, FORCE """ return pulumi.get(self, "deletion_policy") @@ -196,10 +183,8 @@ def deletion_policy(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="denyMaintenancePeriod") def deny_maintenance_period(self) -> Optional[pulumi.Input['InstanceDenyMaintenancePeriodArgs']]: """ - Maintenance denial period for this instance. - You must allow at least 14 days of maintenance availability - between any two deny maintenance periods. - Structure is documented below. + Maintenance denial period for this instance. You must allow at least 14 days of maintenance availability between any two + deny maintenance periods. """ return pulumi.get(self, "deny_maintenance_period") @@ -212,7 +197,6 @@ def deny_maintenance_period(self, value: Optional[pulumi.Input['InstanceDenyMain def encryption_config(self) -> Optional[pulumi.Input['InstanceEncryptionConfigArgs']]: """ Looker instance encryption settings. - Structure is documented below. """ return pulumi.get(self, "encryption_config") @@ -236,11 +220,8 @@ def fips_enabled(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter(name="maintenanceWindow") def maintenance_window(self) -> Optional[pulumi.Input['InstanceMaintenanceWindowArgs']]: """ - Maintenance window for an instance. - Maintenance of your instance takes place once a month, and will require - your instance to be restarted during updates, which will temporarily - disrupt service. - Structure is documented below. + Maintenance window for an instance. Maintenance of your instance takes place once a month, and will require your + instance to be restarted during updates, which will temporarily disrupt service. """ return pulumi.get(self, "maintenance_window") @@ -253,9 +234,6 @@ def maintenance_window(self, value: Optional[pulumi.Input['InstanceMaintenanceWi def name(self) -> Optional[pulumi.Input[str]]: """ The ID of the instance or a fully qualified identifier for the instance. - - - - - - """ return pulumi.get(self, "name") @@ -263,31 +241,16 @@ def name(self) -> Optional[pulumi.Input[str]]: def name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "name", value) - @property - @pulumi.getter(name="oauthConfig") - def oauth_config(self) -> Optional[pulumi.Input['InstanceOauthConfigArgs']]: - """ - Looker Instance OAuth login settings. - Structure is documented below. - """ - return pulumi.get(self, "oauth_config") - - @oauth_config.setter - def oauth_config(self, value: Optional[pulumi.Input['InstanceOauthConfigArgs']]): - pulumi.set(self, "oauth_config", value) - @property @pulumi.getter(name="platformEdition") def platform_edition(self) -> Optional[pulumi.Input[str]]: """ - Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values: - - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable) - - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance - Default value is `LOOKER_CORE_TRIAL`. - Possible values are: `LOOKER_CORE_TRIAL`, `LOOKER_CORE_STANDARD`, `LOOKER_CORE_STANDARD_ANNUAL`, `LOOKER_CORE_ENTERPRISE_ANNUAL`, `LOOKER_CORE_EMBED_ANNUAL`. + Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of + these values: - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - LOOKER_CORE_STANDARD: pay as you go standard + instance (Currently Unavailable) - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - + LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance + Default value: "LOOKER_CORE_TRIAL" Possible values: ["LOOKER_CORE_TRIAL", "LOOKER_CORE_STANDARD", + "LOOKER_CORE_STANDARD_ANNUAL", "LOOKER_CORE_ENTERPRISE_ANNUAL", "LOOKER_CORE_EMBED_ANNUAL"] """ return pulumi.get(self, "platform_edition") @@ -310,10 +273,6 @@ def private_ip_enabled(self, value: Optional[pulumi.Input[bool]]): @property @pulumi.getter def project(self) -> Optional[pulumi.Input[str]]: - """ - The ID of the project in which the resource belongs. - If it is not provided, the provider project is used. - """ return pulumi.get(self, "project") @project.setter @@ -325,7 +284,6 @@ def project(self, value: Optional[pulumi.Input[str]]): def psc_config(self) -> Optional[pulumi.Input['InstancePscConfigArgs']]: """ Information for Private Service Connect (PSC) setup for a Looker instance. - Structure is documented below. """ return pulumi.get(self, "psc_config") @@ -373,8 +331,8 @@ def region(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="reservedRange") def reserved_range(self) -> Optional[pulumi.Input[str]]: """ - Name of a reserved IP address range within the consumer network, to be used for - private service access connection. User may or may not specify this in a request. + Name of a reserved IP address range within the consumer network, to be used for private service access connection. User + may or may not specify this in a request. """ return pulumi.get(self, "reserved_range") @@ -386,14 +344,11 @@ def reserved_range(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="userMetadata") def user_metadata(self) -> Optional[pulumi.Input['InstanceUserMetadataArgs']]: """ - Metadata about users for a Looker instance. - These settings are only available when platform edition LOOKER_CORE_STANDARD is set. - There are ten Standard and two Developer users included in the cost of the product. - You can allocate additional Standard, Viewer, and Developer users for this instance. - It is an optional step and can be modified later. - With the Standard edition of Looker (Google Cloud core), you can provision up to 50 - total users, distributed across Viewer, Standard, and Developer. - Structure is documented below. + Metadata about users for a Looker instance. These settings are only available when platform edition LOOKER_CORE_STANDARD + is set. There are ten Standard and two Developer users included in the cost of the product. You can allocate additional + Standard, Viewer, and Developer users for this instance. It is an optional step and can be modified later. With the + Standard edition of Looker (Google Cloud core), you can provision up to 50 total users, distributed across Viewer, + Standard, and Developer. """ return pulumi.get(self, "user_metadata") @@ -434,69 +389,48 @@ def __init__(__self__, *, """ Input properties used for looking up and filtering Instance resources. :param pulumi.Input['InstanceAdminSettingsArgs'] admin_settings: Looker instance Admin settings. - Structure is documented below. - :param pulumi.Input[str] consumer_network: Network name in the consumer project in the format of: projects/{project}/global/networks/{network} - Note that the consumer network may be in a different GCP project than the consumer - project that is hosting the Looker Instance. + :param pulumi.Input[str] consumer_network: Network name in the consumer project in the format of: projects/{project}/global/networks/{network} Note that the + consumer network may be in a different GCP project than the consumer project that is hosting the Looker Instance. :param pulumi.Input[str] create_time: The time the instance was created in RFC3339 UTC "Zulu" format, accurate to nanoseconds. :param pulumi.Input['InstanceCustomDomainArgs'] custom_domain: Custom domain settings for a Looker instance. - Structure is documented below. - :param pulumi.Input[str] deletion_policy: Policy to determine if the cluster should be deleted forcefully. - If setting deletion_policy = "FORCE", the Looker instance will be deleted regardless - of its nested resources. If set to "DEFAULT", Looker instances that still have + :param pulumi.Input[str] deletion_policy: Policy to determine if the cluster should be deleted forcefully. If setting deletion_policy = "FORCE", the Looker + instance will be deleted regardless of its nested resources. If set to "DEFAULT", Looker instances that still have nested resources will return an error. Possible values: DEFAULT, FORCE - :param pulumi.Input['InstanceDenyMaintenancePeriodArgs'] deny_maintenance_period: Maintenance denial period for this instance. - You must allow at least 14 days of maintenance availability - between any two deny maintenance periods. - Structure is documented below. + :param pulumi.Input['InstanceDenyMaintenancePeriodArgs'] deny_maintenance_period: Maintenance denial period for this instance. You must allow at least 14 days of maintenance availability between any two + deny maintenance periods. :param pulumi.Input[str] egress_public_ip: Public Egress IP (IPv4). :param pulumi.Input['InstanceEncryptionConfigArgs'] encryption_config: Looker instance encryption settings. - Structure is documented below. :param pulumi.Input[bool] fips_enabled: FIPS 140-2 Encryption enablement for Looker (Google Cloud Core). :param pulumi.Input[str] ingress_private_ip: Private Ingress IP (IPv4). :param pulumi.Input[str] ingress_public_ip: Public Ingress IP (IPv4). :param pulumi.Input[str] looker_uri: Looker instance URI which can be used to access the Looker Instance UI. :param pulumi.Input[str] looker_version: The Looker version that the instance is using. - :param pulumi.Input['InstanceMaintenanceWindowArgs'] maintenance_window: Maintenance window for an instance. - Maintenance of your instance takes place once a month, and will require - your instance to be restarted during updates, which will temporarily - disrupt service. - Structure is documented below. + :param pulumi.Input['InstanceMaintenanceWindowArgs'] maintenance_window: Maintenance window for an instance. Maintenance of your instance takes place once a month, and will require your + instance to be restarted during updates, which will temporarily disrupt service. :param pulumi.Input[str] name: The ID of the instance or a fully qualified identifier for the instance. - - - - - - :param pulumi.Input['InstanceOauthConfigArgs'] oauth_config: Looker Instance OAuth login settings. Structure is documented below. - :param pulumi.Input[str] platform_edition: Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values: - - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable) - - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance - Default value is `LOOKER_CORE_TRIAL`. - Possible values are: `LOOKER_CORE_TRIAL`, `LOOKER_CORE_STANDARD`, `LOOKER_CORE_STANDARD_ANNUAL`, `LOOKER_CORE_ENTERPRISE_ANNUAL`, `LOOKER_CORE_EMBED_ANNUAL`. + :param pulumi.Input[str] platform_edition: Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of + these values: - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - LOOKER_CORE_STANDARD: pay as you go standard + instance (Currently Unavailable) - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - + LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance + Default value: "LOOKER_CORE_TRIAL" Possible values: ["LOOKER_CORE_TRIAL", "LOOKER_CORE_STANDARD", + "LOOKER_CORE_STANDARD_ANNUAL", "LOOKER_CORE_ENTERPRISE_ANNUAL", "LOOKER_CORE_EMBED_ANNUAL"] :param pulumi.Input[bool] private_ip_enabled: Whether private IP is enabled on the Looker instance. - :param pulumi.Input[str] project: The ID of the project in which the resource belongs. - If it is not provided, the provider project is used. :param pulumi.Input['InstancePscConfigArgs'] psc_config: Information for Private Service Connect (PSC) setup for a Looker instance. - Structure is documented below. :param pulumi.Input[bool] psc_enabled: Whether Public Service Connect (PSC) is enabled on the Looker instance :param pulumi.Input[bool] public_ip_enabled: Whether public IP is enabled on the Looker instance. :param pulumi.Input[str] region: The name of the Looker region of the instance. - :param pulumi.Input[str] reserved_range: Name of a reserved IP address range within the consumer network, to be used for - private service access connection. User may or may not specify this in a request. + :param pulumi.Input[str] reserved_range: Name of a reserved IP address range within the consumer network, to be used for private service access connection. User + may or may not specify this in a request. :param pulumi.Input[str] update_time: The time the instance was updated in RFC3339 UTC "Zulu" format, accurate to nanoseconds. - :param pulumi.Input['InstanceUserMetadataArgs'] user_metadata: Metadata about users for a Looker instance. - These settings are only available when platform edition LOOKER_CORE_STANDARD is set. - There are ten Standard and two Developer users included in the cost of the product. - You can allocate additional Standard, Viewer, and Developer users for this instance. - It is an optional step and can be modified later. - With the Standard edition of Looker (Google Cloud core), you can provision up to 50 - total users, distributed across Viewer, Standard, and Developer. - Structure is documented below. + :param pulumi.Input['InstanceUserMetadataArgs'] user_metadata: Metadata about users for a Looker instance. These settings are only available when platform edition LOOKER_CORE_STANDARD + is set. There are ten Standard and two Developer users included in the cost of the product. You can allocate additional + Standard, Viewer, and Developer users for this instance. It is an optional step and can be modified later. With the + Standard edition of Looker (Google Cloud core), you can provision up to 50 total users, distributed across Viewer, + Standard, and Developer. """ if admin_settings is not None: pulumi.set(__self__, "admin_settings", admin_settings) @@ -556,7 +490,6 @@ def __init__(__self__, *, def admin_settings(self) -> Optional[pulumi.Input['InstanceAdminSettingsArgs']]: """ Looker instance Admin settings. - Structure is documented below. """ return pulumi.get(self, "admin_settings") @@ -568,9 +501,8 @@ def admin_settings(self, value: Optional[pulumi.Input['InstanceAdminSettingsArgs @pulumi.getter(name="consumerNetwork") def consumer_network(self) -> Optional[pulumi.Input[str]]: """ - Network name in the consumer project in the format of: projects/{project}/global/networks/{network} - Note that the consumer network may be in a different GCP project than the consumer - project that is hosting the Looker Instance. + Network name in the consumer project in the format of: projects/{project}/global/networks/{network} Note that the + consumer network may be in a different GCP project than the consumer project that is hosting the Looker Instance. """ return pulumi.get(self, "consumer_network") @@ -596,7 +528,6 @@ def create_time(self, value: Optional[pulumi.Input[str]]): def custom_domain(self) -> Optional[pulumi.Input['InstanceCustomDomainArgs']]: """ Custom domain settings for a Looker instance. - Structure is documented below. """ return pulumi.get(self, "custom_domain") @@ -608,9 +539,8 @@ def custom_domain(self, value: Optional[pulumi.Input['InstanceCustomDomainArgs'] @pulumi.getter(name="deletionPolicy") def deletion_policy(self) -> Optional[pulumi.Input[str]]: """ - Policy to determine if the cluster should be deleted forcefully. - If setting deletion_policy = "FORCE", the Looker instance will be deleted regardless - of its nested resources. If set to "DEFAULT", Looker instances that still have + Policy to determine if the cluster should be deleted forcefully. If setting deletion_policy = "FORCE", the Looker + instance will be deleted regardless of its nested resources. If set to "DEFAULT", Looker instances that still have nested resources will return an error. Possible values: DEFAULT, FORCE """ return pulumi.get(self, "deletion_policy") @@ -623,10 +553,8 @@ def deletion_policy(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="denyMaintenancePeriod") def deny_maintenance_period(self) -> Optional[pulumi.Input['InstanceDenyMaintenancePeriodArgs']]: """ - Maintenance denial period for this instance. - You must allow at least 14 days of maintenance availability - between any two deny maintenance periods. - Structure is documented below. + Maintenance denial period for this instance. You must allow at least 14 days of maintenance availability between any two + deny maintenance periods. """ return pulumi.get(self, "deny_maintenance_period") @@ -651,7 +579,6 @@ def egress_public_ip(self, value: Optional[pulumi.Input[str]]): def encryption_config(self) -> Optional[pulumi.Input['InstanceEncryptionConfigArgs']]: """ Looker instance encryption settings. - Structure is documented below. """ return pulumi.get(self, "encryption_config") @@ -723,11 +650,8 @@ def looker_version(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="maintenanceWindow") def maintenance_window(self) -> Optional[pulumi.Input['InstanceMaintenanceWindowArgs']]: """ - Maintenance window for an instance. - Maintenance of your instance takes place once a month, and will require - your instance to be restarted during updates, which will temporarily - disrupt service. - Structure is documented below. + Maintenance window for an instance. Maintenance of your instance takes place once a month, and will require your + instance to be restarted during updates, which will temporarily disrupt service. """ return pulumi.get(self, "maintenance_window") @@ -740,9 +664,6 @@ def maintenance_window(self, value: Optional[pulumi.Input['InstanceMaintenanceWi def name(self) -> Optional[pulumi.Input[str]]: """ The ID of the instance or a fully qualified identifier for the instance. - - - - - - """ return pulumi.get(self, "name") @@ -767,14 +688,12 @@ def oauth_config(self, value: Optional[pulumi.Input['InstanceOauthConfigArgs']]) @pulumi.getter(name="platformEdition") def platform_edition(self) -> Optional[pulumi.Input[str]]: """ - Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values: - - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable) - - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance - Default value is `LOOKER_CORE_TRIAL`. - Possible values are: `LOOKER_CORE_TRIAL`, `LOOKER_CORE_STANDARD`, `LOOKER_CORE_STANDARD_ANNUAL`, `LOOKER_CORE_ENTERPRISE_ANNUAL`, `LOOKER_CORE_EMBED_ANNUAL`. + Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of + these values: - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - LOOKER_CORE_STANDARD: pay as you go standard + instance (Currently Unavailable) - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - + LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance + Default value: "LOOKER_CORE_TRIAL" Possible values: ["LOOKER_CORE_TRIAL", "LOOKER_CORE_STANDARD", + "LOOKER_CORE_STANDARD_ANNUAL", "LOOKER_CORE_ENTERPRISE_ANNUAL", "LOOKER_CORE_EMBED_ANNUAL"] """ return pulumi.get(self, "platform_edition") @@ -797,10 +716,6 @@ def private_ip_enabled(self, value: Optional[pulumi.Input[bool]]): @property @pulumi.getter def project(self) -> Optional[pulumi.Input[str]]: - """ - The ID of the project in which the resource belongs. - If it is not provided, the provider project is used. - """ return pulumi.get(self, "project") @project.setter @@ -812,7 +727,6 @@ def project(self, value: Optional[pulumi.Input[str]]): def psc_config(self) -> Optional[pulumi.Input['InstancePscConfigArgs']]: """ Information for Private Service Connect (PSC) setup for a Looker instance. - Structure is documented below. """ return pulumi.get(self, "psc_config") @@ -860,8 +774,8 @@ def region(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="reservedRange") def reserved_range(self) -> Optional[pulumi.Input[str]]: """ - Name of a reserved IP address range within the consumer network, to be used for - private service access connection. User may or may not specify this in a request. + Name of a reserved IP address range within the consumer network, to be used for private service access connection. User + may or may not specify this in a request. """ return pulumi.get(self, "reserved_range") @@ -886,14 +800,11 @@ def update_time(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="userMetadata") def user_metadata(self) -> Optional[pulumi.Input['InstanceUserMetadataArgs']]: """ - Metadata about users for a Looker instance. - These settings are only available when platform edition LOOKER_CORE_STANDARD is set. - There are ten Standard and two Developer users included in the cost of the product. - You can allocate additional Standard, Viewer, and Developer users for this instance. - It is an optional step and can be modified later. - With the Standard edition of Looker (Google Cloud core), you can provision up to 50 - total users, distributed across Viewer, Standard, and Developer. - Structure is documented below. + Metadata about users for a Looker instance. These settings are only available when platform edition LOOKER_CORE_STANDARD + is set. There are ten Standard and two Developer users included in the cost of the product. You can allocate additional + Standard, Viewer, and Developer users for this instance. It is an optional step and can be modified later. With the + Standard edition of Looker (Google Cloud core), you can provision up to 50 total users, distributed across Viewer, + Standard, and Developer. """ return pulumi.get(self, "user_metadata") @@ -1176,66 +1087,45 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[Union['InstanceAdminSettingsArgs', 'InstanceAdminSettingsArgsDict']] admin_settings: Looker instance Admin settings. - Structure is documented below. - :param pulumi.Input[str] consumer_network: Network name in the consumer project in the format of: projects/{project}/global/networks/{network} - Note that the consumer network may be in a different GCP project than the consumer - project that is hosting the Looker Instance. + :param pulumi.Input[str] consumer_network: Network name in the consumer project in the format of: projects/{project}/global/networks/{network} Note that the + consumer network may be in a different GCP project than the consumer project that is hosting the Looker Instance. :param pulumi.Input[Union['InstanceCustomDomainArgs', 'InstanceCustomDomainArgsDict']] custom_domain: Custom domain settings for a Looker instance. - Structure is documented below. - :param pulumi.Input[str] deletion_policy: Policy to determine if the cluster should be deleted forcefully. - If setting deletion_policy = "FORCE", the Looker instance will be deleted regardless - of its nested resources. If set to "DEFAULT", Looker instances that still have + :param pulumi.Input[str] deletion_policy: Policy to determine if the cluster should be deleted forcefully. If setting deletion_policy = "FORCE", the Looker + instance will be deleted regardless of its nested resources. If set to "DEFAULT", Looker instances that still have nested resources will return an error. Possible values: DEFAULT, FORCE - :param pulumi.Input[Union['InstanceDenyMaintenancePeriodArgs', 'InstanceDenyMaintenancePeriodArgsDict']] deny_maintenance_period: Maintenance denial period for this instance. - You must allow at least 14 days of maintenance availability - between any two deny maintenance periods. - Structure is documented below. + :param pulumi.Input[Union['InstanceDenyMaintenancePeriodArgs', 'InstanceDenyMaintenancePeriodArgsDict']] deny_maintenance_period: Maintenance denial period for this instance. You must allow at least 14 days of maintenance availability between any two + deny maintenance periods. :param pulumi.Input[Union['InstanceEncryptionConfigArgs', 'InstanceEncryptionConfigArgsDict']] encryption_config: Looker instance encryption settings. - Structure is documented below. :param pulumi.Input[bool] fips_enabled: FIPS 140-2 Encryption enablement for Looker (Google Cloud Core). - :param pulumi.Input[Union['InstanceMaintenanceWindowArgs', 'InstanceMaintenanceWindowArgsDict']] maintenance_window: Maintenance window for an instance. - Maintenance of your instance takes place once a month, and will require - your instance to be restarted during updates, which will temporarily - disrupt service. - Structure is documented below. + :param pulumi.Input[Union['InstanceMaintenanceWindowArgs', 'InstanceMaintenanceWindowArgsDict']] maintenance_window: Maintenance window for an instance. Maintenance of your instance takes place once a month, and will require your + instance to be restarted during updates, which will temporarily disrupt service. :param pulumi.Input[str] name: The ID of the instance or a fully qualified identifier for the instance. - - - - - - :param pulumi.Input[Union['InstanceOauthConfigArgs', 'InstanceOauthConfigArgsDict']] oauth_config: Looker Instance OAuth login settings. Structure is documented below. - :param pulumi.Input[str] platform_edition: Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values: - - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable) - - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance - Default value is `LOOKER_CORE_TRIAL`. - Possible values are: `LOOKER_CORE_TRIAL`, `LOOKER_CORE_STANDARD`, `LOOKER_CORE_STANDARD_ANNUAL`, `LOOKER_CORE_ENTERPRISE_ANNUAL`, `LOOKER_CORE_EMBED_ANNUAL`. + :param pulumi.Input[str] platform_edition: Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of + these values: - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - LOOKER_CORE_STANDARD: pay as you go standard + instance (Currently Unavailable) - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - + LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance + Default value: "LOOKER_CORE_TRIAL" Possible values: ["LOOKER_CORE_TRIAL", "LOOKER_CORE_STANDARD", + "LOOKER_CORE_STANDARD_ANNUAL", "LOOKER_CORE_ENTERPRISE_ANNUAL", "LOOKER_CORE_EMBED_ANNUAL"] :param pulumi.Input[bool] private_ip_enabled: Whether private IP is enabled on the Looker instance. - :param pulumi.Input[str] project: The ID of the project in which the resource belongs. - If it is not provided, the provider project is used. :param pulumi.Input[Union['InstancePscConfigArgs', 'InstancePscConfigArgsDict']] psc_config: Information for Private Service Connect (PSC) setup for a Looker instance. - Structure is documented below. :param pulumi.Input[bool] psc_enabled: Whether Public Service Connect (PSC) is enabled on the Looker instance :param pulumi.Input[bool] public_ip_enabled: Whether public IP is enabled on the Looker instance. :param pulumi.Input[str] region: The name of the Looker region of the instance. - :param pulumi.Input[str] reserved_range: Name of a reserved IP address range within the consumer network, to be used for - private service access connection. User may or may not specify this in a request. - :param pulumi.Input[Union['InstanceUserMetadataArgs', 'InstanceUserMetadataArgsDict']] user_metadata: Metadata about users for a Looker instance. - These settings are only available when platform edition LOOKER_CORE_STANDARD is set. - There are ten Standard and two Developer users included in the cost of the product. - You can allocate additional Standard, Viewer, and Developer users for this instance. - It is an optional step and can be modified later. - With the Standard edition of Looker (Google Cloud core), you can provision up to 50 - total users, distributed across Viewer, Standard, and Developer. - Structure is documented below. + :param pulumi.Input[str] reserved_range: Name of a reserved IP address range within the consumer network, to be used for private service access connection. User + may or may not specify this in a request. + :param pulumi.Input[Union['InstanceUserMetadataArgs', 'InstanceUserMetadataArgsDict']] user_metadata: Metadata about users for a Looker instance. These settings are only available when platform edition LOOKER_CORE_STANDARD + is set. There are ten Standard and two Developer users included in the cost of the product. You can allocate additional + Standard, Viewer, and Developer users for this instance. It is an optional step and can be modified later. With the + Standard edition of Looker (Google Cloud core), you can provision up to 50 total users, distributed across Viewer, + Standard, and Developer. """ ... @overload def __init__(__self__, resource_name: str, - args: Optional[InstanceArgs] = None, + args: InstanceArgs, opts: Optional[pulumi.ResourceOptions] = None): """ A Google Cloud Looker instance. @@ -1535,6 +1425,8 @@ def _internal_init(__self__, __props__.__dict__["fips_enabled"] = fips_enabled __props__.__dict__["maintenance_window"] = maintenance_window __props__.__dict__["name"] = name + if oauth_config is None and not opts.urn: + raise TypeError("Missing required property 'oauth_config'") __props__.__dict__["oauth_config"] = oauth_config __props__.__dict__["platform_edition"] = platform_edition __props__.__dict__["private_ip_enabled"] = private_ip_enabled @@ -1596,69 +1488,48 @@ def get(resource_name: str, :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[Union['InstanceAdminSettingsArgs', 'InstanceAdminSettingsArgsDict']] admin_settings: Looker instance Admin settings. - Structure is documented below. - :param pulumi.Input[str] consumer_network: Network name in the consumer project in the format of: projects/{project}/global/networks/{network} - Note that the consumer network may be in a different GCP project than the consumer - project that is hosting the Looker Instance. + :param pulumi.Input[str] consumer_network: Network name in the consumer project in the format of: projects/{project}/global/networks/{network} Note that the + consumer network may be in a different GCP project than the consumer project that is hosting the Looker Instance. :param pulumi.Input[str] create_time: The time the instance was created in RFC3339 UTC "Zulu" format, accurate to nanoseconds. :param pulumi.Input[Union['InstanceCustomDomainArgs', 'InstanceCustomDomainArgsDict']] custom_domain: Custom domain settings for a Looker instance. - Structure is documented below. - :param pulumi.Input[str] deletion_policy: Policy to determine if the cluster should be deleted forcefully. - If setting deletion_policy = "FORCE", the Looker instance will be deleted regardless - of its nested resources. If set to "DEFAULT", Looker instances that still have + :param pulumi.Input[str] deletion_policy: Policy to determine if the cluster should be deleted forcefully. If setting deletion_policy = "FORCE", the Looker + instance will be deleted regardless of its nested resources. If set to "DEFAULT", Looker instances that still have nested resources will return an error. Possible values: DEFAULT, FORCE - :param pulumi.Input[Union['InstanceDenyMaintenancePeriodArgs', 'InstanceDenyMaintenancePeriodArgsDict']] deny_maintenance_period: Maintenance denial period for this instance. - You must allow at least 14 days of maintenance availability - between any two deny maintenance periods. - Structure is documented below. + :param pulumi.Input[Union['InstanceDenyMaintenancePeriodArgs', 'InstanceDenyMaintenancePeriodArgsDict']] deny_maintenance_period: Maintenance denial period for this instance. You must allow at least 14 days of maintenance availability between any two + deny maintenance periods. :param pulumi.Input[str] egress_public_ip: Public Egress IP (IPv4). :param pulumi.Input[Union['InstanceEncryptionConfigArgs', 'InstanceEncryptionConfigArgsDict']] encryption_config: Looker instance encryption settings. - Structure is documented below. :param pulumi.Input[bool] fips_enabled: FIPS 140-2 Encryption enablement for Looker (Google Cloud Core). :param pulumi.Input[str] ingress_private_ip: Private Ingress IP (IPv4). :param pulumi.Input[str] ingress_public_ip: Public Ingress IP (IPv4). :param pulumi.Input[str] looker_uri: Looker instance URI which can be used to access the Looker Instance UI. :param pulumi.Input[str] looker_version: The Looker version that the instance is using. - :param pulumi.Input[Union['InstanceMaintenanceWindowArgs', 'InstanceMaintenanceWindowArgsDict']] maintenance_window: Maintenance window for an instance. - Maintenance of your instance takes place once a month, and will require - your instance to be restarted during updates, which will temporarily - disrupt service. - Structure is documented below. + :param pulumi.Input[Union['InstanceMaintenanceWindowArgs', 'InstanceMaintenanceWindowArgsDict']] maintenance_window: Maintenance window for an instance. Maintenance of your instance takes place once a month, and will require your + instance to be restarted during updates, which will temporarily disrupt service. :param pulumi.Input[str] name: The ID of the instance or a fully qualified identifier for the instance. - - - - - - :param pulumi.Input[Union['InstanceOauthConfigArgs', 'InstanceOauthConfigArgsDict']] oauth_config: Looker Instance OAuth login settings. Structure is documented below. - :param pulumi.Input[str] platform_edition: Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values: - - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable) - - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance - Default value is `LOOKER_CORE_TRIAL`. - Possible values are: `LOOKER_CORE_TRIAL`, `LOOKER_CORE_STANDARD`, `LOOKER_CORE_STANDARD_ANNUAL`, `LOOKER_CORE_ENTERPRISE_ANNUAL`, `LOOKER_CORE_EMBED_ANNUAL`. + :param pulumi.Input[str] platform_edition: Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of + these values: - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - LOOKER_CORE_STANDARD: pay as you go standard + instance (Currently Unavailable) - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - + LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance + Default value: "LOOKER_CORE_TRIAL" Possible values: ["LOOKER_CORE_TRIAL", "LOOKER_CORE_STANDARD", + "LOOKER_CORE_STANDARD_ANNUAL", "LOOKER_CORE_ENTERPRISE_ANNUAL", "LOOKER_CORE_EMBED_ANNUAL"] :param pulumi.Input[bool] private_ip_enabled: Whether private IP is enabled on the Looker instance. - :param pulumi.Input[str] project: The ID of the project in which the resource belongs. - If it is not provided, the provider project is used. :param pulumi.Input[Union['InstancePscConfigArgs', 'InstancePscConfigArgsDict']] psc_config: Information for Private Service Connect (PSC) setup for a Looker instance. - Structure is documented below. :param pulumi.Input[bool] psc_enabled: Whether Public Service Connect (PSC) is enabled on the Looker instance :param pulumi.Input[bool] public_ip_enabled: Whether public IP is enabled on the Looker instance. :param pulumi.Input[str] region: The name of the Looker region of the instance. - :param pulumi.Input[str] reserved_range: Name of a reserved IP address range within the consumer network, to be used for - private service access connection. User may or may not specify this in a request. + :param pulumi.Input[str] reserved_range: Name of a reserved IP address range within the consumer network, to be used for private service access connection. User + may or may not specify this in a request. :param pulumi.Input[str] update_time: The time the instance was updated in RFC3339 UTC "Zulu" format, accurate to nanoseconds. - :param pulumi.Input[Union['InstanceUserMetadataArgs', 'InstanceUserMetadataArgsDict']] user_metadata: Metadata about users for a Looker instance. - These settings are only available when platform edition LOOKER_CORE_STANDARD is set. - There are ten Standard and two Developer users included in the cost of the product. - You can allocate additional Standard, Viewer, and Developer users for this instance. - It is an optional step and can be modified later. - With the Standard edition of Looker (Google Cloud core), you can provision up to 50 - total users, distributed across Viewer, Standard, and Developer. - Structure is documented below. + :param pulumi.Input[Union['InstanceUserMetadataArgs', 'InstanceUserMetadataArgsDict']] user_metadata: Metadata about users for a Looker instance. These settings are only available when platform edition LOOKER_CORE_STANDARD + is set. There are ten Standard and two Developer users included in the cost of the product. You can allocate additional + Standard, Viewer, and Developer users for this instance. It is an optional step and can be modified later. With the + Standard edition of Looker (Google Cloud core), you can provision up to 50 total users, distributed across Viewer, + Standard, and Developer. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -1697,7 +1568,6 @@ def get(resource_name: str, def admin_settings(self) -> pulumi.Output[Optional['outputs.InstanceAdminSettings']]: """ Looker instance Admin settings. - Structure is documented below. """ return pulumi.get(self, "admin_settings") @@ -1705,9 +1575,8 @@ def admin_settings(self) -> pulumi.Output[Optional['outputs.InstanceAdminSetting @pulumi.getter(name="consumerNetwork") def consumer_network(self) -> pulumi.Output[Optional[str]]: """ - Network name in the consumer project in the format of: projects/{project}/global/networks/{network} - Note that the consumer network may be in a different GCP project than the consumer - project that is hosting the Looker Instance. + Network name in the consumer project in the format of: projects/{project}/global/networks/{network} Note that the + consumer network may be in a different GCP project than the consumer project that is hosting the Looker Instance. """ return pulumi.get(self, "consumer_network") @@ -1725,7 +1594,6 @@ def create_time(self) -> pulumi.Output[str]: def custom_domain(self) -> pulumi.Output[Optional['outputs.InstanceCustomDomain']]: """ Custom domain settings for a Looker instance. - Structure is documented below. """ return pulumi.get(self, "custom_domain") @@ -1733,9 +1601,8 @@ def custom_domain(self) -> pulumi.Output[Optional['outputs.InstanceCustomDomain' @pulumi.getter(name="deletionPolicy") def deletion_policy(self) -> pulumi.Output[Optional[str]]: """ - Policy to determine if the cluster should be deleted forcefully. - If setting deletion_policy = "FORCE", the Looker instance will be deleted regardless - of its nested resources. If set to "DEFAULT", Looker instances that still have + Policy to determine if the cluster should be deleted forcefully. If setting deletion_policy = "FORCE", the Looker + instance will be deleted regardless of its nested resources. If set to "DEFAULT", Looker instances that still have nested resources will return an error. Possible values: DEFAULT, FORCE """ return pulumi.get(self, "deletion_policy") @@ -1744,10 +1611,8 @@ def deletion_policy(self) -> pulumi.Output[Optional[str]]: @pulumi.getter(name="denyMaintenancePeriod") def deny_maintenance_period(self) -> pulumi.Output[Optional['outputs.InstanceDenyMaintenancePeriod']]: """ - Maintenance denial period for this instance. - You must allow at least 14 days of maintenance availability - between any two deny maintenance periods. - Structure is documented below. + Maintenance denial period for this instance. You must allow at least 14 days of maintenance availability between any two + deny maintenance periods. """ return pulumi.get(self, "deny_maintenance_period") @@ -1764,7 +1629,6 @@ def egress_public_ip(self) -> pulumi.Output[str]: def encryption_config(self) -> pulumi.Output['outputs.InstanceEncryptionConfig']: """ Looker instance encryption settings. - Structure is documented below. """ return pulumi.get(self, "encryption_config") @@ -1812,11 +1676,8 @@ def looker_version(self) -> pulumi.Output[str]: @pulumi.getter(name="maintenanceWindow") def maintenance_window(self) -> pulumi.Output[Optional['outputs.InstanceMaintenanceWindow']]: """ - Maintenance window for an instance. - Maintenance of your instance takes place once a month, and will require - your instance to be restarted during updates, which will temporarily - disrupt service. - Structure is documented below. + Maintenance window for an instance. Maintenance of your instance takes place once a month, and will require your + instance to be restarted during updates, which will temporarily disrupt service. """ return pulumi.get(self, "maintenance_window") @@ -1825,15 +1686,12 @@ def maintenance_window(self) -> pulumi.Output[Optional['outputs.InstanceMaintena def name(self) -> pulumi.Output[str]: """ The ID of the instance or a fully qualified identifier for the instance. - - - - - - """ return pulumi.get(self, "name") @property @pulumi.getter(name="oauthConfig") - def oauth_config(self) -> pulumi.Output[Optional['outputs.InstanceOauthConfig']]: + def oauth_config(self) -> pulumi.Output['outputs.InstanceOauthConfig']: """ Looker Instance OAuth login settings. Structure is documented below. @@ -1844,14 +1702,12 @@ def oauth_config(self) -> pulumi.Output[Optional['outputs.InstanceOauthConfig']] @pulumi.getter(name="platformEdition") def platform_edition(self) -> pulumi.Output[Optional[str]]: """ - Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of these values: - - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - - LOOKER_CORE_STANDARD: pay as you go standard instance (Currently Unavailable) - - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - - LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance - Default value is `LOOKER_CORE_TRIAL`. - Possible values are: `LOOKER_CORE_TRIAL`, `LOOKER_CORE_STANDARD`, `LOOKER_CORE_STANDARD_ANNUAL`, `LOOKER_CORE_ENTERPRISE_ANNUAL`, `LOOKER_CORE_EMBED_ANNUAL`. + Platform editions for a Looker instance. Each edition maps to a set of instance features, like its size. Must be one of + these values: - LOOKER_CORE_TRIAL: trial instance (Currently Unavailable) - LOOKER_CORE_STANDARD: pay as you go standard + instance (Currently Unavailable) - LOOKER_CORE_STANDARD_ANNUAL: subscription standard instance - + LOOKER_CORE_ENTERPRISE_ANNUAL: subscription enterprise instance - LOOKER_CORE_EMBED_ANNUAL: subscription embed instance + Default value: "LOOKER_CORE_TRIAL" Possible values: ["LOOKER_CORE_TRIAL", "LOOKER_CORE_STANDARD", + "LOOKER_CORE_STANDARD_ANNUAL", "LOOKER_CORE_ENTERPRISE_ANNUAL", "LOOKER_CORE_EMBED_ANNUAL"] """ return pulumi.get(self, "platform_edition") @@ -1866,10 +1722,6 @@ def private_ip_enabled(self) -> pulumi.Output[Optional[bool]]: @property @pulumi.getter def project(self) -> pulumi.Output[str]: - """ - The ID of the project in which the resource belongs. - If it is not provided, the provider project is used. - """ return pulumi.get(self, "project") @property @@ -1877,7 +1729,6 @@ def project(self) -> pulumi.Output[str]: def psc_config(self) -> pulumi.Output[Optional['outputs.InstancePscConfig']]: """ Information for Private Service Connect (PSC) setup for a Looker instance. - Structure is documented below. """ return pulumi.get(self, "psc_config") @@ -1909,8 +1760,8 @@ def region(self) -> pulumi.Output[str]: @pulumi.getter(name="reservedRange") def reserved_range(self) -> pulumi.Output[Optional[str]]: """ - Name of a reserved IP address range within the consumer network, to be used for - private service access connection. User may or may not specify this in a request. + Name of a reserved IP address range within the consumer network, to be used for private service access connection. User + may or may not specify this in a request. """ return pulumi.get(self, "reserved_range") @@ -1927,14 +1778,11 @@ def update_time(self) -> pulumi.Output[str]: @pulumi.getter(name="userMetadata") def user_metadata(self) -> pulumi.Output[Optional['outputs.InstanceUserMetadata']]: """ - Metadata about users for a Looker instance. - These settings are only available when platform edition LOOKER_CORE_STANDARD is set. - There are ten Standard and two Developer users included in the cost of the product. - You can allocate additional Standard, Viewer, and Developer users for this instance. - It is an optional step and can be modified later. - With the Standard edition of Looker (Google Cloud core), you can provision up to 50 - total users, distributed across Viewer, Standard, and Developer. - Structure is documented below. + Metadata about users for a Looker instance. These settings are only available when platform edition LOOKER_CORE_STANDARD + is set. There are ten Standard and two Developer users included in the cost of the product. You can allocate additional + Standard, Viewer, and Developer users for this instance. It is an optional step and can be modified later. With the + Standard edition of Looker (Google Cloud core), you can provision up to 50 total users, distributed across Viewer, + Standard, and Developer. """ return pulumi.get(self, "user_metadata") diff --git a/sdk/python/pulumi_gcp/looker/outputs.py b/sdk/python/pulumi_gcp/looker/outputs.py index c3436cda70..be01c02b94 100644 --- a/sdk/python/pulumi_gcp/looker/outputs.py +++ b/sdk/python/pulumi_gcp/looker/outputs.py @@ -528,6 +528,8 @@ def __init__(__self__, *, """ :param str client_id: The client ID for the Oauth config. :param str client_secret: The client secret for the Oauth config. + + - - - """ pulumi.set(__self__, "client_id", client_id) pulumi.set(__self__, "client_secret", client_secret) @@ -545,6 +547,8 @@ def client_id(self) -> str: def client_secret(self) -> str: """ The client secret for the Oauth config. + + - - - """ return pulumi.get(self, "client_secret") diff --git a/sdk/python/pulumi_gcp/memorystore/instance.py b/sdk/python/pulumi_gcp/memorystore/instance.py index 1c94220d0c..863c229057 100644 --- a/sdk/python/pulumi_gcp/memorystore/instance.py +++ b/sdk/python/pulumi_gcp/memorystore/instance.py @@ -897,6 +897,8 @@ def __init__(__self__, zone_distribution_config: Optional[pulumi.Input[Union['InstanceZoneDistributionConfigArgs', 'InstanceZoneDistributionConfigArgsDict']]] = None, __props__=None): """ + A Google Cloud Memorystore instance. + ## Example Usage ### Memorystore Instance Basic @@ -1113,6 +1115,8 @@ def __init__(__self__, args: InstanceArgs, opts: Optional[pulumi.ResourceOptions] = None): """ + A Google Cloud Memorystore instance. + ## Example Usage ### Memorystore Instance Basic diff --git a/sdk/python/pulumi_gcp/monitoring/alert_policy.py b/sdk/python/pulumi_gcp/monitoring/alert_policy.py index 88de61ecca..fc80b14699 100644 --- a/sdk/python/pulumi_gcp/monitoring/alert_policy.py +++ b/sdk/python/pulumi_gcp/monitoring/alert_policy.py @@ -591,10 +591,22 @@ def __init__(__self__, AlertPolicy can be imported using any of these accepted formats: + * `{{project}}/{{name}}` + + * `{{project}} {{name}}` + * `{{name}}` When using the `pulumi import` command, AlertPolicy can be imported using one of the formats above. For example: + ```sh + $ pulumi import gcp:monitoring/alertPolicy:AlertPolicy default {{project}}/{{name}} + ``` + + ```sh + $ pulumi import gcp:monitoring/alertPolicy:AlertPolicy default "{{project}} {{name}}" + ``` + ```sh $ pulumi import gcp:monitoring/alertPolicy:AlertPolicy default {{name}} ``` @@ -755,10 +767,22 @@ def __init__(__self__, AlertPolicy can be imported using any of these accepted formats: + * `{{project}}/{{name}}` + + * `{{project}} {{name}}` + * `{{name}}` When using the `pulumi import` command, AlertPolicy can be imported using one of the formats above. For example: + ```sh + $ pulumi import gcp:monitoring/alertPolicy:AlertPolicy default {{project}}/{{name}} + ``` + + ```sh + $ pulumi import gcp:monitoring/alertPolicy:AlertPolicy default "{{project}} {{name}}" + ``` + ```sh $ pulumi import gcp:monitoring/alertPolicy:AlertPolicy default {{name}} ``` diff --git a/sdk/python/pulumi_gcp/monitoring/custom_service.py b/sdk/python/pulumi_gcp/monitoring/custom_service.py index f230f0c6d0..b0c29626b7 100644 --- a/sdk/python/pulumi_gcp/monitoring/custom_service.py +++ b/sdk/python/pulumi_gcp/monitoring/custom_service.py @@ -293,10 +293,22 @@ def __init__(__self__, Service can be imported using any of these accepted formats: + * `{{project}}/{{name}}` + + * `{{project}} {{name}}` + * `{{name}}` When using the `pulumi import` command, Service can be imported using one of the formats above. For example: + ```sh + $ pulumi import gcp:monitoring/customService:CustomService default {{project}}/{{name}} + ``` + + ```sh + $ pulumi import gcp:monitoring/customService:CustomService default "{{project}} {{name}}" + ``` + ```sh $ pulumi import gcp:monitoring/customService:CustomService default {{name}} ``` @@ -361,10 +373,22 @@ def __init__(__self__, Service can be imported using any of these accepted formats: + * `{{project}}/{{name}}` + + * `{{project}} {{name}}` + * `{{name}}` When using the `pulumi import` command, Service can be imported using one of the formats above. For example: + ```sh + $ pulumi import gcp:monitoring/customService:CustomService default {{project}}/{{name}} + ``` + + ```sh + $ pulumi import gcp:monitoring/customService:CustomService default "{{project}} {{name}}" + ``` + ```sh $ pulumi import gcp:monitoring/customService:CustomService default {{name}} ``` diff --git a/sdk/python/pulumi_gcp/monitoring/group.py b/sdk/python/pulumi_gcp/monitoring/group.py index 001ac55890..095ab28ff6 100644 --- a/sdk/python/pulumi_gcp/monitoring/group.py +++ b/sdk/python/pulumi_gcp/monitoring/group.py @@ -302,10 +302,22 @@ def __init__(__self__, Group can be imported using any of these accepted formats: + * `{{project}}/{{name}}` + + * `{{project}} {{name}}` + * `{{name}}` When using the `pulumi import` command, Group can be imported using one of the formats above. For example: + ```sh + $ pulumi import gcp:monitoring/group:Group default {{project}}/{{name}} + ``` + + ```sh + $ pulumi import gcp:monitoring/group:Group default "{{project}} {{name}}" + ``` + ```sh $ pulumi import gcp:monitoring/group:Group default {{name}} ``` @@ -377,10 +389,22 @@ def __init__(__self__, Group can be imported using any of these accepted formats: + * `{{project}}/{{name}}` + + * `{{project}} {{name}}` + * `{{name}}` When using the `pulumi import` command, Group can be imported using one of the formats above. For example: + ```sh + $ pulumi import gcp:monitoring/group:Group default {{project}}/{{name}} + ``` + + ```sh + $ pulumi import gcp:monitoring/group:Group default "{{project}} {{name}}" + ``` + ```sh $ pulumi import gcp:monitoring/group:Group default {{name}} ``` diff --git a/sdk/python/pulumi_gcp/monitoring/metric_descriptor.py b/sdk/python/pulumi_gcp/monitoring/metric_descriptor.py index 9c9642e8f9..a14f23137b 100644 --- a/sdk/python/pulumi_gcp/monitoring/metric_descriptor.py +++ b/sdk/python/pulumi_gcp/monitoring/metric_descriptor.py @@ -562,10 +562,22 @@ def __init__(__self__, MetricDescriptor can be imported using any of these accepted formats: + * `{{project}}/{{name}}` + + * `{{project}} {{name}}` + * `{{name}}` When using the `pulumi import` command, MetricDescriptor can be imported using one of the formats above. For example: + ```sh + $ pulumi import gcp:monitoring/metricDescriptor:MetricDescriptor default {{project}}/{{name}} + ``` + + ```sh + $ pulumi import gcp:monitoring/metricDescriptor:MetricDescriptor default "{{project}} {{name}}" + ``` + ```sh $ pulumi import gcp:monitoring/metricDescriptor:MetricDescriptor default {{name}} ``` @@ -679,10 +691,22 @@ def __init__(__self__, MetricDescriptor can be imported using any of these accepted formats: + * `{{project}}/{{name}}` + + * `{{project}} {{name}}` + * `{{name}}` When using the `pulumi import` command, MetricDescriptor can be imported using one of the formats above. For example: + ```sh + $ pulumi import gcp:monitoring/metricDescriptor:MetricDescriptor default {{project}}/{{name}} + ``` + + ```sh + $ pulumi import gcp:monitoring/metricDescriptor:MetricDescriptor default "{{project}} {{name}}" + ``` + ```sh $ pulumi import gcp:monitoring/metricDescriptor:MetricDescriptor default {{name}} ``` diff --git a/sdk/python/pulumi_gcp/monitoring/slo.py b/sdk/python/pulumi_gcp/monitoring/slo.py index fd82e643b8..8da66c32f8 100644 --- a/sdk/python/pulumi_gcp/monitoring/slo.py +++ b/sdk/python/pulumi_gcp/monitoring/slo.py @@ -738,10 +738,22 @@ def __init__(__self__, Slo can be imported using any of these accepted formats: + * `{{project}}/{{name}}` + + * `{{project}} {{name}}` + * `{{name}}` When using the `pulumi import` command, Slo can be imported using one of the formats above. For example: + ```sh + $ pulumi import gcp:monitoring/slo:Slo default {{project}}/{{name}} + ``` + + ```sh + $ pulumi import gcp:monitoring/slo:Slo default "{{project}} {{name}}" + ``` + ```sh $ pulumi import gcp:monitoring/slo:Slo default {{name}} ``` @@ -986,10 +998,22 @@ def __init__(__self__, Slo can be imported using any of these accepted formats: + * `{{project}}/{{name}}` + + * `{{project}} {{name}}` + * `{{name}}` When using the `pulumi import` command, Slo can be imported using one of the formats above. For example: + ```sh + $ pulumi import gcp:monitoring/slo:Slo default {{project}}/{{name}} + ``` + + ```sh + $ pulumi import gcp:monitoring/slo:Slo default "{{project}} {{name}}" + ``` + ```sh $ pulumi import gcp:monitoring/slo:Slo default {{name}} ``` diff --git a/sdk/python/pulumi_gcp/monitoring/uptime_check_config.py b/sdk/python/pulumi_gcp/monitoring/uptime_check_config.py index 8493e96bf5..ff6742eaae 100644 --- a/sdk/python/pulumi_gcp/monitoring/uptime_check_config.py +++ b/sdk/python/pulumi_gcp/monitoring/uptime_check_config.py @@ -749,10 +749,22 @@ def __init__(__self__, UptimeCheckConfig can be imported using any of these accepted formats: + * `{{project}}/{{name}}` + + * `{{project}} {{name}}` + * `{{name}}` When using the `pulumi import` command, UptimeCheckConfig can be imported using one of the formats above. For example: + ```sh + $ pulumi import gcp:monitoring/uptimeCheckConfig:UptimeCheckConfig default {{project}}/{{name}} + ``` + + ```sh + $ pulumi import gcp:monitoring/uptimeCheckConfig:UptimeCheckConfig default "{{project}} {{name}}" + ``` + ```sh $ pulumi import gcp:monitoring/uptimeCheckConfig:UptimeCheckConfig default {{name}} ``` @@ -990,10 +1002,22 @@ def __init__(__self__, UptimeCheckConfig can be imported using any of these accepted formats: + * `{{project}}/{{name}}` + + * `{{project}} {{name}}` + * `{{name}}` When using the `pulumi import` command, UptimeCheckConfig can be imported using one of the formats above. For example: + ```sh + $ pulumi import gcp:monitoring/uptimeCheckConfig:UptimeCheckConfig default {{project}}/{{name}} + ``` + + ```sh + $ pulumi import gcp:monitoring/uptimeCheckConfig:UptimeCheckConfig default "{{project}} {{name}}" + ``` + ```sh $ pulumi import gcp:monitoring/uptimeCheckConfig:UptimeCheckConfig default {{name}} ``` diff --git a/sdk/python/pulumi_gcp/networkmanagement/__init__.py b/sdk/python/pulumi_gcp/networkmanagement/__init__.py index 28f7cda4d2..bca1fd78c5 100644 --- a/sdk/python/pulumi_gcp/networkmanagement/__init__.py +++ b/sdk/python/pulumi_gcp/networkmanagement/__init__.py @@ -6,5 +6,6 @@ import typing # Export this package's modules as members: from .connectivity_test import * +from .vpc_flow_logs_config import * from ._inputs import * from . import outputs diff --git a/sdk/python/pulumi_gcp/networkmanagement/vpc_flow_logs_config.py b/sdk/python/pulumi_gcp/networkmanagement/vpc_flow_logs_config.py new file mode 100644 index 0000000000..ce728a460e --- /dev/null +++ b/sdk/python/pulumi_gcp/networkmanagement/vpc_flow_logs_config.py @@ -0,0 +1,1358 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities + +__all__ = ['VpcFlowLogsConfigArgs', 'VpcFlowLogsConfig'] + +@pulumi.input_type +class VpcFlowLogsConfigArgs: + def __init__(__self__, *, + location: pulumi.Input[str], + vpc_flow_logs_config_id: pulumi.Input[str], + aggregation_interval: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + filter_expr: Optional[pulumi.Input[str]] = None, + flow_sampling: Optional[pulumi.Input[float]] = None, + interconnect_attachment: Optional[pulumi.Input[str]] = None, + labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + metadata: Optional[pulumi.Input[str]] = None, + metadata_fields: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + project: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + vpn_tunnel: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a VpcFlowLogsConfig resource. + :param pulumi.Input[str] location: Resource ID segment making up resource `name`. It identifies the resource + within its parent collection as described in https://google.aip.dev/122. See documentation + for resource type `networkmanagement.googleapis.com/VpcFlowLogsConfig`. + :param pulumi.Input[str] vpc_flow_logs_config_id: Required. ID of the `VpcFlowLogsConfig`. + + + - - - + :param pulumi.Input[str] aggregation_interval: Optional. The aggregation interval for the logs. Default value is + INTERVAL_5_SEC. Possible values: AGGREGATION_INTERVAL_UNSPECIFIED INTERVAL_5_SEC INTERVAL_30_SEC INTERVAL_1_MIN INTERVAL_5_MIN INTERVAL_10_MIN INTERVAL_15_MIN" + :param pulumi.Input[str] description: Optional. The user-supplied description of the VPC Flow Logs configuration. Maximum + of 512 characters. + :param pulumi.Input[str] filter_expr: Optional. Export filter used to define which VPC Flow Logs should be logged. + :param pulumi.Input[float] flow_sampling: Optional. The value of the field must be in (0, 1]. The sampling rate + of VPC Flow Logs where 1.0 means all collected logs are reported. Setting the + sampling rate to 0.0 is not allowed. If you want to disable VPC Flow Logs, use + the state field instead. Default value is 1.0. + :param pulumi.Input[str] interconnect_attachment: Traffic will be logged from the Interconnect Attachment. Format: projects/{project_id}/regions/{region}/interconnectAttachments/{name} + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Resource labels to represent user-provided metadata. + + **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + Please refer to the field `effective_labels` for all of the labels present on the resource. + :param pulumi.Input[str] metadata: Optional. Configures whether all, none or a subset of metadata fields + should be added to the reported VPC flow logs. Default value is INCLUDE_ALL_METADATA. + Possible values: METADATA_UNSPECIFIED INCLUDE_ALL_METADATA EXCLUDE_ALL_METADATA CUSTOM_METADATA + :param pulumi.Input[Sequence[pulumi.Input[str]]] metadata_fields: Optional. Custom metadata fields to include in the reported VPC flow + logs. Can only be specified if \\"metadata\\" was set to CUSTOM_METADATA. + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + :param pulumi.Input[str] state: Optional. The state of the VPC Flow Log configuration. Default value + is ENABLED. When creating a new configuration, it must be enabled. Possible + :param pulumi.Input[str] vpn_tunnel: Traffic will be logged from the VPN Tunnel. Format: projects/{project_id}/regions/{region}/vpnTunnels/{name} + """ + pulumi.set(__self__, "location", location) + pulumi.set(__self__, "vpc_flow_logs_config_id", vpc_flow_logs_config_id) + if aggregation_interval is not None: + pulumi.set(__self__, "aggregation_interval", aggregation_interval) + if description is not None: + pulumi.set(__self__, "description", description) + if filter_expr is not None: + pulumi.set(__self__, "filter_expr", filter_expr) + if flow_sampling is not None: + pulumi.set(__self__, "flow_sampling", flow_sampling) + if interconnect_attachment is not None: + pulumi.set(__self__, "interconnect_attachment", interconnect_attachment) + if labels is not None: + pulumi.set(__self__, "labels", labels) + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + if metadata_fields is not None: + pulumi.set(__self__, "metadata_fields", metadata_fields) + if project is not None: + pulumi.set(__self__, "project", project) + if state is not None: + pulumi.set(__self__, "state", state) + if vpn_tunnel is not None: + pulumi.set(__self__, "vpn_tunnel", vpn_tunnel) + + @property + @pulumi.getter + def location(self) -> pulumi.Input[str]: + """ + Resource ID segment making up resource `name`. It identifies the resource + within its parent collection as described in https://google.aip.dev/122. See documentation + for resource type `networkmanagement.googleapis.com/VpcFlowLogsConfig`. + """ + return pulumi.get(self, "location") + + @location.setter + def location(self, value: pulumi.Input[str]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter(name="vpcFlowLogsConfigId") + def vpc_flow_logs_config_id(self) -> pulumi.Input[str]: + """ + Required. ID of the `VpcFlowLogsConfig`. + + + - - - + """ + return pulumi.get(self, "vpc_flow_logs_config_id") + + @vpc_flow_logs_config_id.setter + def vpc_flow_logs_config_id(self, value: pulumi.Input[str]): + pulumi.set(self, "vpc_flow_logs_config_id", value) + + @property + @pulumi.getter(name="aggregationInterval") + def aggregation_interval(self) -> Optional[pulumi.Input[str]]: + """ + Optional. The aggregation interval for the logs. Default value is + INTERVAL_5_SEC. Possible values: AGGREGATION_INTERVAL_UNSPECIFIED INTERVAL_5_SEC INTERVAL_30_SEC INTERVAL_1_MIN INTERVAL_5_MIN INTERVAL_10_MIN INTERVAL_15_MIN" + """ + return pulumi.get(self, "aggregation_interval") + + @aggregation_interval.setter + def aggregation_interval(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "aggregation_interval", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + Optional. The user-supplied description of the VPC Flow Logs configuration. Maximum + of 512 characters. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter(name="filterExpr") + def filter_expr(self) -> Optional[pulumi.Input[str]]: + """ + Optional. Export filter used to define which VPC Flow Logs should be logged. + """ + return pulumi.get(self, "filter_expr") + + @filter_expr.setter + def filter_expr(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "filter_expr", value) + + @property + @pulumi.getter(name="flowSampling") + def flow_sampling(self) -> Optional[pulumi.Input[float]]: + """ + Optional. The value of the field must be in (0, 1]. The sampling rate + of VPC Flow Logs where 1.0 means all collected logs are reported. Setting the + sampling rate to 0.0 is not allowed. If you want to disable VPC Flow Logs, use + the state field instead. Default value is 1.0. + """ + return pulumi.get(self, "flow_sampling") + + @flow_sampling.setter + def flow_sampling(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "flow_sampling", value) + + @property + @pulumi.getter(name="interconnectAttachment") + def interconnect_attachment(self) -> Optional[pulumi.Input[str]]: + """ + Traffic will be logged from the Interconnect Attachment. Format: projects/{project_id}/regions/{region}/interconnectAttachments/{name} + """ + return pulumi.get(self, "interconnect_attachment") + + @interconnect_attachment.setter + def interconnect_attachment(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "interconnect_attachment", value) + + @property + @pulumi.getter + def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + Optional. Resource labels to represent user-provided metadata. + + **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + Please refer to the field `effective_labels` for all of the labels present on the resource. + """ + return pulumi.get(self, "labels") + + @labels.setter + def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "labels", value) + + @property + @pulumi.getter + def metadata(self) -> Optional[pulumi.Input[str]]: + """ + Optional. Configures whether all, none or a subset of metadata fields + should be added to the reported VPC flow logs. Default value is INCLUDE_ALL_METADATA. + Possible values: METADATA_UNSPECIFIED INCLUDE_ALL_METADATA EXCLUDE_ALL_METADATA CUSTOM_METADATA + """ + return pulumi.get(self, "metadata") + + @metadata.setter + def metadata(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "metadata", value) + + @property + @pulumi.getter(name="metadataFields") + def metadata_fields(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Optional. Custom metadata fields to include in the reported VPC flow + logs. Can only be specified if \\"metadata\\" was set to CUSTOM_METADATA. + """ + return pulumi.get(self, "metadata_fields") + + @metadata_fields.setter + def metadata_fields(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "metadata_fields", value) + + @property + @pulumi.getter + def project(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + """ + return pulumi.get(self, "project") + + @project.setter + def project(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project", value) + + @property + @pulumi.getter + def state(self) -> Optional[pulumi.Input[str]]: + """ + Optional. The state of the VPC Flow Log configuration. Default value + is ENABLED. When creating a new configuration, it must be enabled. Possible + """ + return pulumi.get(self, "state") + + @state.setter + def state(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "state", value) + + @property + @pulumi.getter(name="vpnTunnel") + def vpn_tunnel(self) -> Optional[pulumi.Input[str]]: + """ + Traffic will be logged from the VPN Tunnel. Format: projects/{project_id}/regions/{region}/vpnTunnels/{name} + """ + return pulumi.get(self, "vpn_tunnel") + + @vpn_tunnel.setter + def vpn_tunnel(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "vpn_tunnel", value) + + +@pulumi.input_type +class _VpcFlowLogsConfigState: + def __init__(__self__, *, + aggregation_interval: Optional[pulumi.Input[str]] = None, + create_time: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + filter_expr: Optional[pulumi.Input[str]] = None, + flow_sampling: Optional[pulumi.Input[float]] = None, + interconnect_attachment: Optional[pulumi.Input[str]] = None, + labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + location: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[str]] = None, + metadata_fields: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + state: Optional[pulumi.Input[str]] = None, + update_time: Optional[pulumi.Input[str]] = None, + vpc_flow_logs_config_id: Optional[pulumi.Input[str]] = None, + vpn_tunnel: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering VpcFlowLogsConfig resources. + :param pulumi.Input[str] aggregation_interval: Optional. The aggregation interval for the logs. Default value is + INTERVAL_5_SEC. Possible values: AGGREGATION_INTERVAL_UNSPECIFIED INTERVAL_5_SEC INTERVAL_30_SEC INTERVAL_1_MIN INTERVAL_5_MIN INTERVAL_10_MIN INTERVAL_15_MIN" + :param pulumi.Input[str] create_time: Output only. The time the config was created. + :param pulumi.Input[str] description: Optional. The user-supplied description of the VPC Flow Logs configuration. Maximum + of 512 characters. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + :param pulumi.Input[str] filter_expr: Optional. Export filter used to define which VPC Flow Logs should be logged. + :param pulumi.Input[float] flow_sampling: Optional. The value of the field must be in (0, 1]. The sampling rate + of VPC Flow Logs where 1.0 means all collected logs are reported. Setting the + sampling rate to 0.0 is not allowed. If you want to disable VPC Flow Logs, use + the state field instead. Default value is 1.0. + :param pulumi.Input[str] interconnect_attachment: Traffic will be logged from the Interconnect Attachment. Format: projects/{project_id}/regions/{region}/interconnectAttachments/{name} + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Resource labels to represent user-provided metadata. + + **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + Please refer to the field `effective_labels` for all of the labels present on the resource. + :param pulumi.Input[str] location: Resource ID segment making up resource `name`. It identifies the resource + within its parent collection as described in https://google.aip.dev/122. See documentation + for resource type `networkmanagement.googleapis.com/VpcFlowLogsConfig`. + :param pulumi.Input[str] metadata: Optional. Configures whether all, none or a subset of metadata fields + should be added to the reported VPC flow logs. Default value is INCLUDE_ALL_METADATA. + Possible values: METADATA_UNSPECIFIED INCLUDE_ALL_METADATA EXCLUDE_ALL_METADATA CUSTOM_METADATA + :param pulumi.Input[Sequence[pulumi.Input[str]]] metadata_fields: Optional. Custom metadata fields to include in the reported VPC flow + logs. Can only be specified if \\"metadata\\" was set to CUSTOM_METADATA. + :param pulumi.Input[str] name: Identifier. Unique name of the configuration using the form: `projects/{project_id}/locations/global/vpcFlowLogsConfigs/{vpc_flow_logs_config_id}` + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource + and default labels configured on the provider. + :param pulumi.Input[str] state: Optional. The state of the VPC Flow Log configuration. Default value + is ENABLED. When creating a new configuration, it must be enabled. Possible + :param pulumi.Input[str] update_time: Output only. The time the config was updated. + :param pulumi.Input[str] vpc_flow_logs_config_id: Required. ID of the `VpcFlowLogsConfig`. + + + - - - + :param pulumi.Input[str] vpn_tunnel: Traffic will be logged from the VPN Tunnel. Format: projects/{project_id}/regions/{region}/vpnTunnels/{name} + """ + if aggregation_interval is not None: + pulumi.set(__self__, "aggregation_interval", aggregation_interval) + if create_time is not None: + pulumi.set(__self__, "create_time", create_time) + if description is not None: + pulumi.set(__self__, "description", description) + if effective_labels is not None: + pulumi.set(__self__, "effective_labels", effective_labels) + if filter_expr is not None: + pulumi.set(__self__, "filter_expr", filter_expr) + if flow_sampling is not None: + pulumi.set(__self__, "flow_sampling", flow_sampling) + if interconnect_attachment is not None: + pulumi.set(__self__, "interconnect_attachment", interconnect_attachment) + if labels is not None: + pulumi.set(__self__, "labels", labels) + if location is not None: + pulumi.set(__self__, "location", location) + if metadata is not None: + pulumi.set(__self__, "metadata", metadata) + if metadata_fields is not None: + pulumi.set(__self__, "metadata_fields", metadata_fields) + if name is not None: + pulumi.set(__self__, "name", name) + if project is not None: + pulumi.set(__self__, "project", project) + if pulumi_labels is not None: + pulumi.set(__self__, "pulumi_labels", pulumi_labels) + if state is not None: + pulumi.set(__self__, "state", state) + if update_time is not None: + pulumi.set(__self__, "update_time", update_time) + if vpc_flow_logs_config_id is not None: + pulumi.set(__self__, "vpc_flow_logs_config_id", vpc_flow_logs_config_id) + if vpn_tunnel is not None: + pulumi.set(__self__, "vpn_tunnel", vpn_tunnel) + + @property + @pulumi.getter(name="aggregationInterval") + def aggregation_interval(self) -> Optional[pulumi.Input[str]]: + """ + Optional. The aggregation interval for the logs. Default value is + INTERVAL_5_SEC. Possible values: AGGREGATION_INTERVAL_UNSPECIFIED INTERVAL_5_SEC INTERVAL_30_SEC INTERVAL_1_MIN INTERVAL_5_MIN INTERVAL_10_MIN INTERVAL_15_MIN" + """ + return pulumi.get(self, "aggregation_interval") + + @aggregation_interval.setter + def aggregation_interval(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "aggregation_interval", value) + + @property + @pulumi.getter(name="createTime") + def create_time(self) -> Optional[pulumi.Input[str]]: + """ + Output only. The time the config was created. + """ + return pulumi.get(self, "create_time") + + @create_time.setter + def create_time(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "create_time", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + Optional. The user-supplied description of the VPC Flow Logs configuration. Maximum + of 512 characters. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter(name="effectiveLabels") + def effective_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + """ + return pulumi.get(self, "effective_labels") + + @effective_labels.setter + def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "effective_labels", value) + + @property + @pulumi.getter(name="filterExpr") + def filter_expr(self) -> Optional[pulumi.Input[str]]: + """ + Optional. Export filter used to define which VPC Flow Logs should be logged. + """ + return pulumi.get(self, "filter_expr") + + @filter_expr.setter + def filter_expr(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "filter_expr", value) + + @property + @pulumi.getter(name="flowSampling") + def flow_sampling(self) -> Optional[pulumi.Input[float]]: + """ + Optional. The value of the field must be in (0, 1]. The sampling rate + of VPC Flow Logs where 1.0 means all collected logs are reported. Setting the + sampling rate to 0.0 is not allowed. If you want to disable VPC Flow Logs, use + the state field instead. Default value is 1.0. + """ + return pulumi.get(self, "flow_sampling") + + @flow_sampling.setter + def flow_sampling(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "flow_sampling", value) + + @property + @pulumi.getter(name="interconnectAttachment") + def interconnect_attachment(self) -> Optional[pulumi.Input[str]]: + """ + Traffic will be logged from the Interconnect Attachment. Format: projects/{project_id}/regions/{region}/interconnectAttachments/{name} + """ + return pulumi.get(self, "interconnect_attachment") + + @interconnect_attachment.setter + def interconnect_attachment(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "interconnect_attachment", value) + + @property + @pulumi.getter + def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + Optional. Resource labels to represent user-provided metadata. + + **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + Please refer to the field `effective_labels` for all of the labels present on the resource. + """ + return pulumi.get(self, "labels") + + @labels.setter + def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "labels", value) + + @property + @pulumi.getter + def location(self) -> Optional[pulumi.Input[str]]: + """ + Resource ID segment making up resource `name`. It identifies the resource + within its parent collection as described in https://google.aip.dev/122. See documentation + for resource type `networkmanagement.googleapis.com/VpcFlowLogsConfig`. + """ + return pulumi.get(self, "location") + + @location.setter + def location(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter + def metadata(self) -> Optional[pulumi.Input[str]]: + """ + Optional. Configures whether all, none or a subset of metadata fields + should be added to the reported VPC flow logs. Default value is INCLUDE_ALL_METADATA. + Possible values: METADATA_UNSPECIFIED INCLUDE_ALL_METADATA EXCLUDE_ALL_METADATA CUSTOM_METADATA + """ + return pulumi.get(self, "metadata") + + @metadata.setter + def metadata(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "metadata", value) + + @property + @pulumi.getter(name="metadataFields") + def metadata_fields(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Optional. Custom metadata fields to include in the reported VPC flow + logs. Can only be specified if \\"metadata\\" was set to CUSTOM_METADATA. + """ + return pulumi.get(self, "metadata_fields") + + @metadata_fields.setter + def metadata_fields(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "metadata_fields", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Identifier. Unique name of the configuration using the form: `projects/{project_id}/locations/global/vpcFlowLogsConfigs/{vpc_flow_logs_config_id}` + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def project(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + """ + return pulumi.get(self, "project") + + @project.setter + def project(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project", value) + + @property + @pulumi.getter(name="pulumiLabels") + def pulumi_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + The combination of labels configured directly on the resource + and default labels configured on the provider. + """ + return pulumi.get(self, "pulumi_labels") + + @pulumi_labels.setter + def pulumi_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "pulumi_labels", value) + + @property + @pulumi.getter + def state(self) -> Optional[pulumi.Input[str]]: + """ + Optional. The state of the VPC Flow Log configuration. Default value + is ENABLED. When creating a new configuration, it must be enabled. Possible + """ + return pulumi.get(self, "state") + + @state.setter + def state(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "state", value) + + @property + @pulumi.getter(name="updateTime") + def update_time(self) -> Optional[pulumi.Input[str]]: + """ + Output only. The time the config was updated. + """ + return pulumi.get(self, "update_time") + + @update_time.setter + def update_time(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "update_time", value) + + @property + @pulumi.getter(name="vpcFlowLogsConfigId") + def vpc_flow_logs_config_id(self) -> Optional[pulumi.Input[str]]: + """ + Required. ID of the `VpcFlowLogsConfig`. + + + - - - + """ + return pulumi.get(self, "vpc_flow_logs_config_id") + + @vpc_flow_logs_config_id.setter + def vpc_flow_logs_config_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "vpc_flow_logs_config_id", value) + + @property + @pulumi.getter(name="vpnTunnel") + def vpn_tunnel(self) -> Optional[pulumi.Input[str]]: + """ + Traffic will be logged from the VPN Tunnel. Format: projects/{project_id}/regions/{region}/vpnTunnels/{name} + """ + return pulumi.get(self, "vpn_tunnel") + + @vpn_tunnel.setter + def vpn_tunnel(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "vpn_tunnel", value) + + +class VpcFlowLogsConfig(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + aggregation_interval: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + filter_expr: Optional[pulumi.Input[str]] = None, + flow_sampling: Optional[pulumi.Input[float]] = None, + interconnect_attachment: Optional[pulumi.Input[str]] = None, + labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + location: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[str]] = None, + metadata_fields: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + project: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + vpc_flow_logs_config_id: Optional[pulumi.Input[str]] = None, + vpn_tunnel: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + ## Example Usage + + ### Network Management Vpc Flow Logs Config Interconnect Full + + ```python + import pulumi + import pulumi_gcp as gcp + + project = gcp.organizations.get_project() + network = gcp.compute.Network("network", name="full-interconnect-test-network") + router = gcp.compute.Router("router", + name="full-interconnect-test-router", + network=network.name, + bgp={ + "asn": 16550, + }) + attachment = gcp.compute.InterconnectAttachment("attachment", + name="full-interconnect-test-id", + edge_availability_domain="AVAILABILITY_DOMAIN_1", + type="PARTNER", + router=router.id, + mtu="1500") + interconnect_test = gcp.networkmanagement.VpcFlowLogsConfig("interconnect-test", + vpc_flow_logs_config_id="full-interconnect-test-id", + location="global", + interconnect_attachment=attachment.name.apply(lambda name: f"projects/{project.number}/regions/us-east4/interconnectAttachments/{name}"), + state="ENABLED", + aggregation_interval="INTERVAL_5_SEC", + description="VPC Flow Logs over a VPN Gateway.", + flow_sampling=0.5, + metadata="INCLUDE_ALL_METADATA") + ``` + ### Network Management Vpc Flow Logs Config Interconnect Basic + + ```python + import pulumi + import pulumi_gcp as gcp + + project = gcp.organizations.get_project() + network = gcp.compute.Network("network", name="basic-interconnect-test-network") + router = gcp.compute.Router("router", + name="basic-interconnect-test-router", + network=network.name, + bgp={ + "asn": 16550, + }) + attachment = gcp.compute.InterconnectAttachment("attachment", + name="basic-interconnect-test-id", + edge_availability_domain="AVAILABILITY_DOMAIN_1", + type="PARTNER", + router=router.id, + mtu="1500") + interconnect_test = gcp.networkmanagement.VpcFlowLogsConfig("interconnect-test", + vpc_flow_logs_config_id="basic-interconnect-test-id", + location="global", + interconnect_attachment=attachment.name.apply(lambda name: f"projects/{project.number}/regions/us-east4/interconnectAttachments/{name}")) + ``` + ### Network Management Vpc Flow Logs Config Vpn Basic + + ```python + import pulumi + import pulumi_gcp as gcp + + project = gcp.organizations.get_project() + network = gcp.compute.Network("network", name="basic-test-network") + target_gateway = gcp.compute.VPNGateway("target_gateway", + name="basic-test-gateway", + network=network.id) + vpn_static_ip = gcp.compute.Address("vpn_static_ip", name="basic-test-address") + fr_esp = gcp.compute.ForwardingRule("fr_esp", + name="basic-test-fresp", + ip_protocol="ESP", + ip_address=vpn_static_ip.address, + target=target_gateway.id) + fr_udp500 = gcp.compute.ForwardingRule("fr_udp500", + name="basic-test-fr500", + ip_protocol="UDP", + port_range="500", + ip_address=vpn_static_ip.address, + target=target_gateway.id) + fr_udp4500 = gcp.compute.ForwardingRule("fr_udp4500", + name="basic-test-fr4500", + ip_protocol="UDP", + port_range="4500", + ip_address=vpn_static_ip.address, + target=target_gateway.id) + tunnel = gcp.compute.VPNTunnel("tunnel", + name="basic-test-tunnel", + peer_ip="15.0.0.120", + shared_secret="a secret message", + target_vpn_gateway=target_gateway.id, + opts = pulumi.ResourceOptions(depends_on=[ + fr_esp, + fr_udp500, + fr_udp4500, + ])) + vpn_test = gcp.networkmanagement.VpcFlowLogsConfig("vpn-test", + vpc_flow_logs_config_id="basic-test-id", + location="global", + vpn_tunnel=tunnel.name.apply(lambda name: f"projects/{project.number}/regions/us-central1/vpnTunnels/{name}")) + route = gcp.compute.Route("route", + name="basic-test-route", + network=network.name, + dest_range="15.0.0.0/24", + priority=1000, + next_hop_vpn_tunnel=tunnel.id) + ``` + ### Network Management Vpc Flow Logs Config Vpn Full + + ```python + import pulumi + import pulumi_gcp as gcp + + project = gcp.organizations.get_project() + network = gcp.compute.Network("network", name="full-test-network") + target_gateway = gcp.compute.VPNGateway("target_gateway", + name="full-test-gateway", + network=network.id) + vpn_static_ip = gcp.compute.Address("vpn_static_ip", name="full-test-address") + fr_esp = gcp.compute.ForwardingRule("fr_esp", + name="full-test-fresp", + ip_protocol="ESP", + ip_address=vpn_static_ip.address, + target=target_gateway.id) + fr_udp500 = gcp.compute.ForwardingRule("fr_udp500", + name="full-test-fr500", + ip_protocol="UDP", + port_range="500", + ip_address=vpn_static_ip.address, + target=target_gateway.id) + fr_udp4500 = gcp.compute.ForwardingRule("fr_udp4500", + name="full-test-fr4500", + ip_protocol="UDP", + port_range="4500", + ip_address=vpn_static_ip.address, + target=target_gateway.id) + tunnel = gcp.compute.VPNTunnel("tunnel", + name="full-test-tunnel", + peer_ip="15.0.0.120", + shared_secret="a secret message", + target_vpn_gateway=target_gateway.id, + opts = pulumi.ResourceOptions(depends_on=[ + fr_esp, + fr_udp500, + fr_udp4500, + ])) + vpn_test = gcp.networkmanagement.VpcFlowLogsConfig("vpn-test", + vpc_flow_logs_config_id="full-test-id", + location="global", + vpn_tunnel=tunnel.name.apply(lambda name: f"projects/{project.number}/regions/us-central1/vpnTunnels/{name}"), + state="ENABLED", + aggregation_interval="INTERVAL_5_SEC", + description="VPC Flow Logs over a VPN Gateway.", + flow_sampling=0.5, + metadata="INCLUDE_ALL_METADATA") + route = gcp.compute.Route("route", + name="full-test-route", + network=network.name, + dest_range="15.0.0.0/24", + priority=1000, + next_hop_vpn_tunnel=tunnel.id) + ``` + + ## Import + + VpcFlowLogsConfig can be imported using any of these accepted formats: + + * `projects/{{project}}/locations/{{location}}/vpcFlowLogsConfigs/{{vpc_flow_logs_config_id}}` + + * `{{project}}/{{location}}/{{vpc_flow_logs_config_id}}` + + * `{{location}}/{{vpc_flow_logs_config_id}}` + + When using the `pulumi import` command, VpcFlowLogsConfig can be imported using one of the formats above. For example: + + ```sh + $ pulumi import gcp:networkmanagement/vpcFlowLogsConfig:VpcFlowLogsConfig default projects/{{project}}/locations/{{location}}/vpcFlowLogsConfigs/{{vpc_flow_logs_config_id}} + ``` + + ```sh + $ pulumi import gcp:networkmanagement/vpcFlowLogsConfig:VpcFlowLogsConfig default {{project}}/{{location}}/{{vpc_flow_logs_config_id}} + ``` + + ```sh + $ pulumi import gcp:networkmanagement/vpcFlowLogsConfig:VpcFlowLogsConfig default {{location}}/{{vpc_flow_logs_config_id}} + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] aggregation_interval: Optional. The aggregation interval for the logs. Default value is + INTERVAL_5_SEC. Possible values: AGGREGATION_INTERVAL_UNSPECIFIED INTERVAL_5_SEC INTERVAL_30_SEC INTERVAL_1_MIN INTERVAL_5_MIN INTERVAL_10_MIN INTERVAL_15_MIN" + :param pulumi.Input[str] description: Optional. The user-supplied description of the VPC Flow Logs configuration. Maximum + of 512 characters. + :param pulumi.Input[str] filter_expr: Optional. Export filter used to define which VPC Flow Logs should be logged. + :param pulumi.Input[float] flow_sampling: Optional. The value of the field must be in (0, 1]. The sampling rate + of VPC Flow Logs where 1.0 means all collected logs are reported. Setting the + sampling rate to 0.0 is not allowed. If you want to disable VPC Flow Logs, use + the state field instead. Default value is 1.0. + :param pulumi.Input[str] interconnect_attachment: Traffic will be logged from the Interconnect Attachment. Format: projects/{project_id}/regions/{region}/interconnectAttachments/{name} + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Resource labels to represent user-provided metadata. + + **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + Please refer to the field `effective_labels` for all of the labels present on the resource. + :param pulumi.Input[str] location: Resource ID segment making up resource `name`. It identifies the resource + within its parent collection as described in https://google.aip.dev/122. See documentation + for resource type `networkmanagement.googleapis.com/VpcFlowLogsConfig`. + :param pulumi.Input[str] metadata: Optional. Configures whether all, none or a subset of metadata fields + should be added to the reported VPC flow logs. Default value is INCLUDE_ALL_METADATA. + Possible values: METADATA_UNSPECIFIED INCLUDE_ALL_METADATA EXCLUDE_ALL_METADATA CUSTOM_METADATA + :param pulumi.Input[Sequence[pulumi.Input[str]]] metadata_fields: Optional. Custom metadata fields to include in the reported VPC flow + logs. Can only be specified if \\"metadata\\" was set to CUSTOM_METADATA. + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + :param pulumi.Input[str] state: Optional. The state of the VPC Flow Log configuration. Default value + is ENABLED. When creating a new configuration, it must be enabled. Possible + :param pulumi.Input[str] vpc_flow_logs_config_id: Required. ID of the `VpcFlowLogsConfig`. + + + - - - + :param pulumi.Input[str] vpn_tunnel: Traffic will be logged from the VPN Tunnel. Format: projects/{project_id}/regions/{region}/vpnTunnels/{name} + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: VpcFlowLogsConfigArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + ## Example Usage + + ### Network Management Vpc Flow Logs Config Interconnect Full + + ```python + import pulumi + import pulumi_gcp as gcp + + project = gcp.organizations.get_project() + network = gcp.compute.Network("network", name="full-interconnect-test-network") + router = gcp.compute.Router("router", + name="full-interconnect-test-router", + network=network.name, + bgp={ + "asn": 16550, + }) + attachment = gcp.compute.InterconnectAttachment("attachment", + name="full-interconnect-test-id", + edge_availability_domain="AVAILABILITY_DOMAIN_1", + type="PARTNER", + router=router.id, + mtu="1500") + interconnect_test = gcp.networkmanagement.VpcFlowLogsConfig("interconnect-test", + vpc_flow_logs_config_id="full-interconnect-test-id", + location="global", + interconnect_attachment=attachment.name.apply(lambda name: f"projects/{project.number}/regions/us-east4/interconnectAttachments/{name}"), + state="ENABLED", + aggregation_interval="INTERVAL_5_SEC", + description="VPC Flow Logs over a VPN Gateway.", + flow_sampling=0.5, + metadata="INCLUDE_ALL_METADATA") + ``` + ### Network Management Vpc Flow Logs Config Interconnect Basic + + ```python + import pulumi + import pulumi_gcp as gcp + + project = gcp.organizations.get_project() + network = gcp.compute.Network("network", name="basic-interconnect-test-network") + router = gcp.compute.Router("router", + name="basic-interconnect-test-router", + network=network.name, + bgp={ + "asn": 16550, + }) + attachment = gcp.compute.InterconnectAttachment("attachment", + name="basic-interconnect-test-id", + edge_availability_domain="AVAILABILITY_DOMAIN_1", + type="PARTNER", + router=router.id, + mtu="1500") + interconnect_test = gcp.networkmanagement.VpcFlowLogsConfig("interconnect-test", + vpc_flow_logs_config_id="basic-interconnect-test-id", + location="global", + interconnect_attachment=attachment.name.apply(lambda name: f"projects/{project.number}/regions/us-east4/interconnectAttachments/{name}")) + ``` + ### Network Management Vpc Flow Logs Config Vpn Basic + + ```python + import pulumi + import pulumi_gcp as gcp + + project = gcp.organizations.get_project() + network = gcp.compute.Network("network", name="basic-test-network") + target_gateway = gcp.compute.VPNGateway("target_gateway", + name="basic-test-gateway", + network=network.id) + vpn_static_ip = gcp.compute.Address("vpn_static_ip", name="basic-test-address") + fr_esp = gcp.compute.ForwardingRule("fr_esp", + name="basic-test-fresp", + ip_protocol="ESP", + ip_address=vpn_static_ip.address, + target=target_gateway.id) + fr_udp500 = gcp.compute.ForwardingRule("fr_udp500", + name="basic-test-fr500", + ip_protocol="UDP", + port_range="500", + ip_address=vpn_static_ip.address, + target=target_gateway.id) + fr_udp4500 = gcp.compute.ForwardingRule("fr_udp4500", + name="basic-test-fr4500", + ip_protocol="UDP", + port_range="4500", + ip_address=vpn_static_ip.address, + target=target_gateway.id) + tunnel = gcp.compute.VPNTunnel("tunnel", + name="basic-test-tunnel", + peer_ip="15.0.0.120", + shared_secret="a secret message", + target_vpn_gateway=target_gateway.id, + opts = pulumi.ResourceOptions(depends_on=[ + fr_esp, + fr_udp500, + fr_udp4500, + ])) + vpn_test = gcp.networkmanagement.VpcFlowLogsConfig("vpn-test", + vpc_flow_logs_config_id="basic-test-id", + location="global", + vpn_tunnel=tunnel.name.apply(lambda name: f"projects/{project.number}/regions/us-central1/vpnTunnels/{name}")) + route = gcp.compute.Route("route", + name="basic-test-route", + network=network.name, + dest_range="15.0.0.0/24", + priority=1000, + next_hop_vpn_tunnel=tunnel.id) + ``` + ### Network Management Vpc Flow Logs Config Vpn Full + + ```python + import pulumi + import pulumi_gcp as gcp + + project = gcp.organizations.get_project() + network = gcp.compute.Network("network", name="full-test-network") + target_gateway = gcp.compute.VPNGateway("target_gateway", + name="full-test-gateway", + network=network.id) + vpn_static_ip = gcp.compute.Address("vpn_static_ip", name="full-test-address") + fr_esp = gcp.compute.ForwardingRule("fr_esp", + name="full-test-fresp", + ip_protocol="ESP", + ip_address=vpn_static_ip.address, + target=target_gateway.id) + fr_udp500 = gcp.compute.ForwardingRule("fr_udp500", + name="full-test-fr500", + ip_protocol="UDP", + port_range="500", + ip_address=vpn_static_ip.address, + target=target_gateway.id) + fr_udp4500 = gcp.compute.ForwardingRule("fr_udp4500", + name="full-test-fr4500", + ip_protocol="UDP", + port_range="4500", + ip_address=vpn_static_ip.address, + target=target_gateway.id) + tunnel = gcp.compute.VPNTunnel("tunnel", + name="full-test-tunnel", + peer_ip="15.0.0.120", + shared_secret="a secret message", + target_vpn_gateway=target_gateway.id, + opts = pulumi.ResourceOptions(depends_on=[ + fr_esp, + fr_udp500, + fr_udp4500, + ])) + vpn_test = gcp.networkmanagement.VpcFlowLogsConfig("vpn-test", + vpc_flow_logs_config_id="full-test-id", + location="global", + vpn_tunnel=tunnel.name.apply(lambda name: f"projects/{project.number}/regions/us-central1/vpnTunnels/{name}"), + state="ENABLED", + aggregation_interval="INTERVAL_5_SEC", + description="VPC Flow Logs over a VPN Gateway.", + flow_sampling=0.5, + metadata="INCLUDE_ALL_METADATA") + route = gcp.compute.Route("route", + name="full-test-route", + network=network.name, + dest_range="15.0.0.0/24", + priority=1000, + next_hop_vpn_tunnel=tunnel.id) + ``` + + ## Import + + VpcFlowLogsConfig can be imported using any of these accepted formats: + + * `projects/{{project}}/locations/{{location}}/vpcFlowLogsConfigs/{{vpc_flow_logs_config_id}}` + + * `{{project}}/{{location}}/{{vpc_flow_logs_config_id}}` + + * `{{location}}/{{vpc_flow_logs_config_id}}` + + When using the `pulumi import` command, VpcFlowLogsConfig can be imported using one of the formats above. For example: + + ```sh + $ pulumi import gcp:networkmanagement/vpcFlowLogsConfig:VpcFlowLogsConfig default projects/{{project}}/locations/{{location}}/vpcFlowLogsConfigs/{{vpc_flow_logs_config_id}} + ``` + + ```sh + $ pulumi import gcp:networkmanagement/vpcFlowLogsConfig:VpcFlowLogsConfig default {{project}}/{{location}}/{{vpc_flow_logs_config_id}} + ``` + + ```sh + $ pulumi import gcp:networkmanagement/vpcFlowLogsConfig:VpcFlowLogsConfig default {{location}}/{{vpc_flow_logs_config_id}} + ``` + + :param str resource_name: The name of the resource. + :param VpcFlowLogsConfigArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(VpcFlowLogsConfigArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + aggregation_interval: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + filter_expr: Optional[pulumi.Input[str]] = None, + flow_sampling: Optional[pulumi.Input[float]] = None, + interconnect_attachment: Optional[pulumi.Input[str]] = None, + labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + location: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[str]] = None, + metadata_fields: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + project: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + vpc_flow_logs_config_id: Optional[pulumi.Input[str]] = None, + vpn_tunnel: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = VpcFlowLogsConfigArgs.__new__(VpcFlowLogsConfigArgs) + + __props__.__dict__["aggregation_interval"] = aggregation_interval + __props__.__dict__["description"] = description + __props__.__dict__["filter_expr"] = filter_expr + __props__.__dict__["flow_sampling"] = flow_sampling + __props__.__dict__["interconnect_attachment"] = interconnect_attachment + __props__.__dict__["labels"] = labels + if location is None and not opts.urn: + raise TypeError("Missing required property 'location'") + __props__.__dict__["location"] = location + __props__.__dict__["metadata"] = metadata + __props__.__dict__["metadata_fields"] = metadata_fields + __props__.__dict__["project"] = project + __props__.__dict__["state"] = state + if vpc_flow_logs_config_id is None and not opts.urn: + raise TypeError("Missing required property 'vpc_flow_logs_config_id'") + __props__.__dict__["vpc_flow_logs_config_id"] = vpc_flow_logs_config_id + __props__.__dict__["vpn_tunnel"] = vpn_tunnel + __props__.__dict__["create_time"] = None + __props__.__dict__["effective_labels"] = None + __props__.__dict__["name"] = None + __props__.__dict__["pulumi_labels"] = None + __props__.__dict__["update_time"] = None + secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["effectiveLabels", "pulumiLabels"]) + opts = pulumi.ResourceOptions.merge(opts, secret_opts) + super(VpcFlowLogsConfig, __self__).__init__( + 'gcp:networkmanagement/vpcFlowLogsConfig:VpcFlowLogsConfig', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + aggregation_interval: Optional[pulumi.Input[str]] = None, + create_time: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + filter_expr: Optional[pulumi.Input[str]] = None, + flow_sampling: Optional[pulumi.Input[float]] = None, + interconnect_attachment: Optional[pulumi.Input[str]] = None, + labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + location: Optional[pulumi.Input[str]] = None, + metadata: Optional[pulumi.Input[str]] = None, + metadata_fields: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + state: Optional[pulumi.Input[str]] = None, + update_time: Optional[pulumi.Input[str]] = None, + vpc_flow_logs_config_id: Optional[pulumi.Input[str]] = None, + vpn_tunnel: Optional[pulumi.Input[str]] = None) -> 'VpcFlowLogsConfig': + """ + Get an existing VpcFlowLogsConfig resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] aggregation_interval: Optional. The aggregation interval for the logs. Default value is + INTERVAL_5_SEC. Possible values: AGGREGATION_INTERVAL_UNSPECIFIED INTERVAL_5_SEC INTERVAL_30_SEC INTERVAL_1_MIN INTERVAL_5_MIN INTERVAL_10_MIN INTERVAL_15_MIN" + :param pulumi.Input[str] create_time: Output only. The time the config was created. + :param pulumi.Input[str] description: Optional. The user-supplied description of the VPC Flow Logs configuration. Maximum + of 512 characters. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + :param pulumi.Input[str] filter_expr: Optional. Export filter used to define which VPC Flow Logs should be logged. + :param pulumi.Input[float] flow_sampling: Optional. The value of the field must be in (0, 1]. The sampling rate + of VPC Flow Logs where 1.0 means all collected logs are reported. Setting the + sampling rate to 0.0 is not allowed. If you want to disable VPC Flow Logs, use + the state field instead. Default value is 1.0. + :param pulumi.Input[str] interconnect_attachment: Traffic will be logged from the Interconnect Attachment. Format: projects/{project_id}/regions/{region}/interconnectAttachments/{name} + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Resource labels to represent user-provided metadata. + + **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + Please refer to the field `effective_labels` for all of the labels present on the resource. + :param pulumi.Input[str] location: Resource ID segment making up resource `name`. It identifies the resource + within its parent collection as described in https://google.aip.dev/122. See documentation + for resource type `networkmanagement.googleapis.com/VpcFlowLogsConfig`. + :param pulumi.Input[str] metadata: Optional. Configures whether all, none or a subset of metadata fields + should be added to the reported VPC flow logs. Default value is INCLUDE_ALL_METADATA. + Possible values: METADATA_UNSPECIFIED INCLUDE_ALL_METADATA EXCLUDE_ALL_METADATA CUSTOM_METADATA + :param pulumi.Input[Sequence[pulumi.Input[str]]] metadata_fields: Optional. Custom metadata fields to include in the reported VPC flow + logs. Can only be specified if \\"metadata\\" was set to CUSTOM_METADATA. + :param pulumi.Input[str] name: Identifier. Unique name of the configuration using the form: `projects/{project_id}/locations/global/vpcFlowLogsConfigs/{vpc_flow_logs_config_id}` + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource + and default labels configured on the provider. + :param pulumi.Input[str] state: Optional. The state of the VPC Flow Log configuration. Default value + is ENABLED. When creating a new configuration, it must be enabled. Possible + :param pulumi.Input[str] update_time: Output only. The time the config was updated. + :param pulumi.Input[str] vpc_flow_logs_config_id: Required. ID of the `VpcFlowLogsConfig`. + + + - - - + :param pulumi.Input[str] vpn_tunnel: Traffic will be logged from the VPN Tunnel. Format: projects/{project_id}/regions/{region}/vpnTunnels/{name} + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _VpcFlowLogsConfigState.__new__(_VpcFlowLogsConfigState) + + __props__.__dict__["aggregation_interval"] = aggregation_interval + __props__.__dict__["create_time"] = create_time + __props__.__dict__["description"] = description + __props__.__dict__["effective_labels"] = effective_labels + __props__.__dict__["filter_expr"] = filter_expr + __props__.__dict__["flow_sampling"] = flow_sampling + __props__.__dict__["interconnect_attachment"] = interconnect_attachment + __props__.__dict__["labels"] = labels + __props__.__dict__["location"] = location + __props__.__dict__["metadata"] = metadata + __props__.__dict__["metadata_fields"] = metadata_fields + __props__.__dict__["name"] = name + __props__.__dict__["project"] = project + __props__.__dict__["pulumi_labels"] = pulumi_labels + __props__.__dict__["state"] = state + __props__.__dict__["update_time"] = update_time + __props__.__dict__["vpc_flow_logs_config_id"] = vpc_flow_logs_config_id + __props__.__dict__["vpn_tunnel"] = vpn_tunnel + return VpcFlowLogsConfig(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="aggregationInterval") + def aggregation_interval(self) -> pulumi.Output[str]: + """ + Optional. The aggregation interval for the logs. Default value is + INTERVAL_5_SEC. Possible values: AGGREGATION_INTERVAL_UNSPECIFIED INTERVAL_5_SEC INTERVAL_30_SEC INTERVAL_1_MIN INTERVAL_5_MIN INTERVAL_10_MIN INTERVAL_15_MIN" + """ + return pulumi.get(self, "aggregation_interval") + + @property + @pulumi.getter(name="createTime") + def create_time(self) -> pulumi.Output[str]: + """ + Output only. The time the config was created. + """ + return pulumi.get(self, "create_time") + + @property + @pulumi.getter + def description(self) -> pulumi.Output[Optional[str]]: + """ + Optional. The user-supplied description of the VPC Flow Logs configuration. Maximum + of 512 characters. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="effectiveLabels") + def effective_labels(self) -> pulumi.Output[Mapping[str, str]]: + """ + All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + """ + return pulumi.get(self, "effective_labels") + + @property + @pulumi.getter(name="filterExpr") + def filter_expr(self) -> pulumi.Output[Optional[str]]: + """ + Optional. Export filter used to define which VPC Flow Logs should be logged. + """ + return pulumi.get(self, "filter_expr") + + @property + @pulumi.getter(name="flowSampling") + def flow_sampling(self) -> pulumi.Output[float]: + """ + Optional. The value of the field must be in (0, 1]. The sampling rate + of VPC Flow Logs where 1.0 means all collected logs are reported. Setting the + sampling rate to 0.0 is not allowed. If you want to disable VPC Flow Logs, use + the state field instead. Default value is 1.0. + """ + return pulumi.get(self, "flow_sampling") + + @property + @pulumi.getter(name="interconnectAttachment") + def interconnect_attachment(self) -> pulumi.Output[Optional[str]]: + """ + Traffic will be logged from the Interconnect Attachment. Format: projects/{project_id}/regions/{region}/interconnectAttachments/{name} + """ + return pulumi.get(self, "interconnect_attachment") + + @property + @pulumi.getter + def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + Optional. Resource labels to represent user-provided metadata. + + **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + Please refer to the field `effective_labels` for all of the labels present on the resource. + """ + return pulumi.get(self, "labels") + + @property + @pulumi.getter + def location(self) -> pulumi.Output[str]: + """ + Resource ID segment making up resource `name`. It identifies the resource + within its parent collection as described in https://google.aip.dev/122. See documentation + for resource type `networkmanagement.googleapis.com/VpcFlowLogsConfig`. + """ + return pulumi.get(self, "location") + + @property + @pulumi.getter + def metadata(self) -> pulumi.Output[str]: + """ + Optional. Configures whether all, none or a subset of metadata fields + should be added to the reported VPC flow logs. Default value is INCLUDE_ALL_METADATA. + Possible values: METADATA_UNSPECIFIED INCLUDE_ALL_METADATA EXCLUDE_ALL_METADATA CUSTOM_METADATA + """ + return pulumi.get(self, "metadata") + + @property + @pulumi.getter(name="metadataFields") + def metadata_fields(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + Optional. Custom metadata fields to include in the reported VPC flow + logs. Can only be specified if \\"metadata\\" was set to CUSTOM_METADATA. + """ + return pulumi.get(self, "metadata_fields") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Identifier. Unique name of the configuration using the form: `projects/{project_id}/locations/global/vpcFlowLogsConfigs/{vpc_flow_logs_config_id}` + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def project(self) -> pulumi.Output[str]: + """ + The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + """ + return pulumi.get(self, "project") + + @property + @pulumi.getter(name="pulumiLabels") + def pulumi_labels(self) -> pulumi.Output[Mapping[str, str]]: + """ + The combination of labels configured directly on the resource + and default labels configured on the provider. + """ + return pulumi.get(self, "pulumi_labels") + + @property + @pulumi.getter + def state(self) -> pulumi.Output[str]: + """ + Optional. The state of the VPC Flow Log configuration. Default value + is ENABLED. When creating a new configuration, it must be enabled. Possible + """ + return pulumi.get(self, "state") + + @property + @pulumi.getter(name="updateTime") + def update_time(self) -> pulumi.Output[str]: + """ + Output only. The time the config was updated. + """ + return pulumi.get(self, "update_time") + + @property + @pulumi.getter(name="vpcFlowLogsConfigId") + def vpc_flow_logs_config_id(self) -> pulumi.Output[str]: + """ + Required. ID of the `VpcFlowLogsConfig`. + + + - - - + """ + return pulumi.get(self, "vpc_flow_logs_config_id") + + @property + @pulumi.getter(name="vpnTunnel") + def vpn_tunnel(self) -> pulumi.Output[Optional[str]]: + """ + Traffic will be logged from the VPN Tunnel. Format: projects/{project_id}/regions/{region}/vpnTunnels/{name} + """ + return pulumi.get(self, "vpn_tunnel") + diff --git a/sdk/python/pulumi_gcp/osconfig/patch_deployment.py b/sdk/python/pulumi_gcp/osconfig/patch_deployment.py index 3d224833e3..1a6d95fd14 100644 --- a/sdk/python/pulumi_gcp/osconfig/patch_deployment.py +++ b/sdk/python/pulumi_gcp/osconfig/patch_deployment.py @@ -668,20 +668,20 @@ def __init__(__self__, PatchDeployment can be imported using any of these accepted formats: - * `projects/{{project}}/patchDeployments/{{name}}` - * `{{project}}/{{name}}` + * `{{project}} {{name}}` + * `{{name}}` When using the `pulumi import` command, PatchDeployment can be imported using one of the formats above. For example: ```sh - $ pulumi import gcp:osconfig/patchDeployment:PatchDeployment default projects/{{project}}/patchDeployments/{{name}} + $ pulumi import gcp:osconfig/patchDeployment:PatchDeployment default {{project}}/{{name}} ``` ```sh - $ pulumi import gcp:osconfig/patchDeployment:PatchDeployment default {{project}}/{{name}} + $ pulumi import gcp:osconfig/patchDeployment:PatchDeployment default "{{project}} {{name}}" ``` ```sh @@ -953,20 +953,20 @@ def __init__(__self__, PatchDeployment can be imported using any of these accepted formats: - * `projects/{{project}}/patchDeployments/{{name}}` - * `{{project}}/{{name}}` + * `{{project}} {{name}}` + * `{{name}}` When using the `pulumi import` command, PatchDeployment can be imported using one of the formats above. For example: ```sh - $ pulumi import gcp:osconfig/patchDeployment:PatchDeployment default projects/{{project}}/patchDeployments/{{name}} + $ pulumi import gcp:osconfig/patchDeployment:PatchDeployment default {{project}}/{{name}} ``` ```sh - $ pulumi import gcp:osconfig/patchDeployment:PatchDeployment default {{project}}/{{name}} + $ pulumi import gcp:osconfig/patchDeployment:PatchDeployment default "{{project}} {{name}}" ``` ```sh diff --git a/sdk/python/pulumi_gcp/provider.py b/sdk/python/pulumi_gcp/provider.py index ecfbbbaf3a..29d359e2ce 100644 --- a/sdk/python/pulumi_gcp/provider.py +++ b/sdk/python/pulumi_gcp/provider.py @@ -84,6 +84,7 @@ def __init__(__self__, *, dataform_custom_endpoint: Optional[pulumi.Input[str]] = None, dataplex_custom_endpoint: Optional[pulumi.Input[str]] = None, dataproc_custom_endpoint: Optional[pulumi.Input[str]] = None, + dataproc_gdc_custom_endpoint: Optional[pulumi.Input[str]] = None, dataproc_metastore_custom_endpoint: Optional[pulumi.Input[str]] = None, datastream_custom_endpoint: Optional[pulumi.Input[str]] = None, default_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, @@ -117,6 +118,7 @@ def __init__(__self__, *, google_partner_name: Optional[pulumi.Input[str]] = None, healthcare_custom_endpoint: Optional[pulumi.Input[str]] = None, iam2_custom_endpoint: Optional[pulumi.Input[str]] = None, + iam3_custom_endpoint: Optional[pulumi.Input[str]] = None, iam_beta_custom_endpoint: Optional[pulumi.Input[str]] = None, iam_credentials_custom_endpoint: Optional[pulumi.Input[str]] = None, iam_custom_endpoint: Optional[pulumi.Input[str]] = None, @@ -328,6 +330,8 @@ def __init__(__self__, *, pulumi.set(__self__, "dataplex_custom_endpoint", dataplex_custom_endpoint) if dataproc_custom_endpoint is not None: pulumi.set(__self__, "dataproc_custom_endpoint", dataproc_custom_endpoint) + if dataproc_gdc_custom_endpoint is not None: + pulumi.set(__self__, "dataproc_gdc_custom_endpoint", dataproc_gdc_custom_endpoint) if dataproc_metastore_custom_endpoint is not None: pulumi.set(__self__, "dataproc_metastore_custom_endpoint", dataproc_metastore_custom_endpoint) if datastream_custom_endpoint is not None: @@ -394,6 +398,8 @@ def __init__(__self__, *, pulumi.set(__self__, "healthcare_custom_endpoint", healthcare_custom_endpoint) if iam2_custom_endpoint is not None: pulumi.set(__self__, "iam2_custom_endpoint", iam2_custom_endpoint) + if iam3_custom_endpoint is not None: + pulumi.set(__self__, "iam3_custom_endpoint", iam3_custom_endpoint) if iam_beta_custom_endpoint is not None: pulumi.set(__self__, "iam_beta_custom_endpoint", iam_beta_custom_endpoint) if iam_credentials_custom_endpoint is not None: @@ -1137,6 +1143,15 @@ def dataproc_custom_endpoint(self) -> Optional[pulumi.Input[str]]: def dataproc_custom_endpoint(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "dataproc_custom_endpoint", value) + @property + @pulumi.getter(name="dataprocGdcCustomEndpoint") + def dataproc_gdc_custom_endpoint(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "dataproc_gdc_custom_endpoint") + + @dataproc_gdc_custom_endpoint.setter + def dataproc_gdc_custom_endpoint(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "dataproc_gdc_custom_endpoint", value) + @property @pulumi.getter(name="dataprocMetastoreCustomEndpoint") def dataproc_metastore_custom_endpoint(self) -> Optional[pulumi.Input[str]]: @@ -1434,6 +1449,15 @@ def iam2_custom_endpoint(self) -> Optional[pulumi.Input[str]]: def iam2_custom_endpoint(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "iam2_custom_endpoint", value) + @property + @pulumi.getter(name="iam3CustomEndpoint") + def iam3_custom_endpoint(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "iam3_custom_endpoint") + + @iam3_custom_endpoint.setter + def iam3_custom_endpoint(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "iam3_custom_endpoint", value) + @property @pulumi.getter(name="iamBetaCustomEndpoint") def iam_beta_custom_endpoint(self) -> Optional[pulumi.Input[str]]: @@ -2224,6 +2248,7 @@ def __init__(__self__, dataform_custom_endpoint: Optional[pulumi.Input[str]] = None, dataplex_custom_endpoint: Optional[pulumi.Input[str]] = None, dataproc_custom_endpoint: Optional[pulumi.Input[str]] = None, + dataproc_gdc_custom_endpoint: Optional[pulumi.Input[str]] = None, dataproc_metastore_custom_endpoint: Optional[pulumi.Input[str]] = None, datastream_custom_endpoint: Optional[pulumi.Input[str]] = None, default_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, @@ -2257,6 +2282,7 @@ def __init__(__self__, google_partner_name: Optional[pulumi.Input[str]] = None, healthcare_custom_endpoint: Optional[pulumi.Input[str]] = None, iam2_custom_endpoint: Optional[pulumi.Input[str]] = None, + iam3_custom_endpoint: Optional[pulumi.Input[str]] = None, iam_beta_custom_endpoint: Optional[pulumi.Input[str]] = None, iam_credentials_custom_endpoint: Optional[pulumi.Input[str]] = None, iam_custom_endpoint: Optional[pulumi.Input[str]] = None, @@ -2438,6 +2464,7 @@ def _internal_init(__self__, dataform_custom_endpoint: Optional[pulumi.Input[str]] = None, dataplex_custom_endpoint: Optional[pulumi.Input[str]] = None, dataproc_custom_endpoint: Optional[pulumi.Input[str]] = None, + dataproc_gdc_custom_endpoint: Optional[pulumi.Input[str]] = None, dataproc_metastore_custom_endpoint: Optional[pulumi.Input[str]] = None, datastream_custom_endpoint: Optional[pulumi.Input[str]] = None, default_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, @@ -2471,6 +2498,7 @@ def _internal_init(__self__, google_partner_name: Optional[pulumi.Input[str]] = None, healthcare_custom_endpoint: Optional[pulumi.Input[str]] = None, iam2_custom_endpoint: Optional[pulumi.Input[str]] = None, + iam3_custom_endpoint: Optional[pulumi.Input[str]] = None, iam_beta_custom_endpoint: Optional[pulumi.Input[str]] = None, iam_credentials_custom_endpoint: Optional[pulumi.Input[str]] = None, iam_custom_endpoint: Optional[pulumi.Input[str]] = None, @@ -2624,6 +2652,7 @@ def _internal_init(__self__, __props__.__dict__["dataform_custom_endpoint"] = dataform_custom_endpoint __props__.__dict__["dataplex_custom_endpoint"] = dataplex_custom_endpoint __props__.__dict__["dataproc_custom_endpoint"] = dataproc_custom_endpoint + __props__.__dict__["dataproc_gdc_custom_endpoint"] = dataproc_gdc_custom_endpoint __props__.__dict__["dataproc_metastore_custom_endpoint"] = dataproc_metastore_custom_endpoint __props__.__dict__["datastream_custom_endpoint"] = datastream_custom_endpoint __props__.__dict__["default_labels"] = pulumi.Output.from_input(default_labels).apply(pulumi.runtime.to_json) if default_labels is not None else None @@ -2657,6 +2686,7 @@ def _internal_init(__self__, __props__.__dict__["google_partner_name"] = google_partner_name __props__.__dict__["healthcare_custom_endpoint"] = healthcare_custom_endpoint __props__.__dict__["iam2_custom_endpoint"] = iam2_custom_endpoint + __props__.__dict__["iam3_custom_endpoint"] = iam3_custom_endpoint __props__.__dict__["iam_beta_custom_endpoint"] = iam_beta_custom_endpoint __props__.__dict__["iam_credentials_custom_endpoint"] = iam_credentials_custom_endpoint __props__.__dict__["iam_custom_endpoint"] = iam_custom_endpoint @@ -3061,6 +3091,11 @@ def dataplex_custom_endpoint(self) -> pulumi.Output[Optional[str]]: def dataproc_custom_endpoint(self) -> pulumi.Output[Optional[str]]: return pulumi.get(self, "dataproc_custom_endpoint") + @property + @pulumi.getter(name="dataprocGdcCustomEndpoint") + def dataproc_gdc_custom_endpoint(self) -> pulumi.Output[Optional[str]]: + return pulumi.get(self, "dataproc_gdc_custom_endpoint") + @property @pulumi.getter(name="dataprocMetastoreCustomEndpoint") def dataproc_metastore_custom_endpoint(self) -> pulumi.Output[Optional[str]]: @@ -3216,6 +3251,11 @@ def healthcare_custom_endpoint(self) -> pulumi.Output[Optional[str]]: def iam2_custom_endpoint(self) -> pulumi.Output[Optional[str]]: return pulumi.get(self, "iam2_custom_endpoint") + @property + @pulumi.getter(name="iam3CustomEndpoint") + def iam3_custom_endpoint(self) -> pulumi.Output[Optional[str]]: + return pulumi.get(self, "iam3_custom_endpoint") + @property @pulumi.getter(name="iamBetaCustomEndpoint") def iam_beta_custom_endpoint(self) -> pulumi.Output[Optional[str]]: diff --git a/sdk/python/pulumi_gcp/redis/_inputs.py b/sdk/python/pulumi_gcp/redis/_inputs.py index 1e41c842f5..f4c40f16e8 100644 --- a/sdk/python/pulumi_gcp/redis/_inputs.py +++ b/sdk/python/pulumi_gcp/redis/_inputs.py @@ -735,7 +735,7 @@ def psc_connection_id(self, value: Optional[pulumi.Input[str]]): class ClusterStateInfoArgsDict(TypedDict): update_info: NotRequired[pulumi.Input['ClusterStateInfoUpdateInfoArgsDict']] """ - A nested object resource + A nested object resource. Structure is documented below. """ elif False: @@ -746,7 +746,7 @@ class ClusterStateInfoArgs: def __init__(__self__, *, update_info: Optional[pulumi.Input['ClusterStateInfoUpdateInfoArgs']] = None): """ - :param pulumi.Input['ClusterStateInfoUpdateInfoArgs'] update_info: A nested object resource + :param pulumi.Input['ClusterStateInfoUpdateInfoArgs'] update_info: A nested object resource. Structure is documented below. """ if update_info is not None: @@ -756,7 +756,7 @@ def __init__(__self__, *, @pulumi.getter(name="updateInfo") def update_info(self) -> Optional[pulumi.Input['ClusterStateInfoUpdateInfoArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "update_info") diff --git a/sdk/python/pulumi_gcp/redis/outputs.py b/sdk/python/pulumi_gcp/redis/outputs.py index 0aa9ccfa94..c20e62c1a7 100644 --- a/sdk/python/pulumi_gcp/redis/outputs.py +++ b/sdk/python/pulumi_gcp/redis/outputs.py @@ -573,7 +573,7 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, update_info: Optional['outputs.ClusterStateInfoUpdateInfo'] = None): """ - :param 'ClusterStateInfoUpdateInfoArgs' update_info: A nested object resource + :param 'ClusterStateInfoUpdateInfoArgs' update_info: A nested object resource. Structure is documented below. """ if update_info is not None: @@ -583,7 +583,7 @@ def __init__(__self__, *, @pulumi.getter(name="updateInfo") def update_info(self) -> Optional['outputs.ClusterStateInfoUpdateInfo']: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "update_info") diff --git a/sdk/python/pulumi_gcp/securitycenter/notification_config.py b/sdk/python/pulumi_gcp/securitycenter/notification_config.py index 0fb5fb181a..45d57f91ca 100644 --- a/sdk/python/pulumi_gcp/securitycenter/notification_config.py +++ b/sdk/python/pulumi_gcp/securitycenter/notification_config.py @@ -287,18 +287,12 @@ def __init__(__self__, NotificationConfig can be imported using any of these accepted formats: - * `organizations/{{organization}}/notificationConfigs/{{name}}` - - * `{{organization}}/{{name}}` + * `{{name}}` When using the `pulumi import` command, NotificationConfig can be imported using one of the formats above. For example: ```sh - $ pulumi import gcp:securitycenter/notificationConfig:NotificationConfig default organizations/{{organization}}/notificationConfigs/{{name}} - ``` - - ```sh - $ pulumi import gcp:securitycenter/notificationConfig:NotificationConfig default {{organization}}/{{name}} + $ pulumi import gcp:securitycenter/notificationConfig:NotificationConfig default {{name}} ``` :param str resource_name: The name of the resource. @@ -356,18 +350,12 @@ def __init__(__self__, NotificationConfig can be imported using any of these accepted formats: - * `organizations/{{organization}}/notificationConfigs/{{name}}` - - * `{{organization}}/{{name}}` + * `{{name}}` When using the `pulumi import` command, NotificationConfig can be imported using one of the formats above. For example: ```sh - $ pulumi import gcp:securitycenter/notificationConfig:NotificationConfig default organizations/{{organization}}/notificationConfigs/{{name}} - ``` - - ```sh - $ pulumi import gcp:securitycenter/notificationConfig:NotificationConfig default {{organization}}/{{name}} + $ pulumi import gcp:securitycenter/notificationConfig:NotificationConfig default {{name}} ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_gcp/securitycenter/project_notification_config.py b/sdk/python/pulumi_gcp/securitycenter/project_notification_config.py index e2c9083d5d..802a3348f0 100644 --- a/sdk/python/pulumi_gcp/securitycenter/project_notification_config.py +++ b/sdk/python/pulumi_gcp/securitycenter/project_notification_config.py @@ -276,22 +276,10 @@ def __init__(__self__, ProjectNotificationConfig can be imported using any of these accepted formats: - * `projects/{{project}}/notificationConfigs/{{name}}` - - * `{{project}}/{{name}}` - * `{{name}}` When using the `pulumi import` command, ProjectNotificationConfig can be imported using one of the formats above. For example: - ```sh - $ pulumi import gcp:securitycenter/projectNotificationConfig:ProjectNotificationConfig default projects/{{project}}/notificationConfigs/{{name}} - ``` - - ```sh - $ pulumi import gcp:securitycenter/projectNotificationConfig:ProjectNotificationConfig default {{project}}/{{name}} - ``` - ```sh $ pulumi import gcp:securitycenter/projectNotificationConfig:ProjectNotificationConfig default {{name}} ``` @@ -349,22 +337,10 @@ def __init__(__self__, ProjectNotificationConfig can be imported using any of these accepted formats: - * `projects/{{project}}/notificationConfigs/{{name}}` - - * `{{project}}/{{name}}` - * `{{name}}` When using the `pulumi import` command, ProjectNotificationConfig can be imported using one of the formats above. For example: - ```sh - $ pulumi import gcp:securitycenter/projectNotificationConfig:ProjectNotificationConfig default projects/{{project}}/notificationConfigs/{{name}} - ``` - - ```sh - $ pulumi import gcp:securitycenter/projectNotificationConfig:ProjectNotificationConfig default {{project}}/{{name}} - ``` - ```sh $ pulumi import gcp:securitycenter/projectNotificationConfig:ProjectNotificationConfig default {{name}} ``` diff --git a/sdk/python/pulumi_gcp/securitycenter/v2_organization_notification_config.py b/sdk/python/pulumi_gcp/securitycenter/v2_organization_notification_config.py index f1fb4db9c5..e206889ca4 100644 --- a/sdk/python/pulumi_gcp/securitycenter/v2_organization_notification_config.py +++ b/sdk/python/pulumi_gcp/securitycenter/v2_organization_notification_config.py @@ -321,18 +321,12 @@ def __init__(__self__, OrganizationNotificationConfig can be imported using any of these accepted formats: - * `organizations/{{organization}}/locations/{{location}}/notificationConfigs/{{name}}` - - * `{{organization}}/{{location}}/{{name}}` + * `{{name}}` When using the `pulumi import` command, OrganizationNotificationConfig can be imported using one of the formats above. For example: ```sh - $ pulumi import gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig default organizations/{{organization}}/locations/{{location}}/notificationConfigs/{{name}} - ``` - - ```sh - $ pulumi import gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig default {{organization}}/{{location}}/{{name}} + $ pulumi import gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig default {{name}} ``` :param str resource_name: The name of the resource. @@ -392,18 +386,12 @@ def __init__(__self__, OrganizationNotificationConfig can be imported using any of these accepted formats: - * `organizations/{{organization}}/locations/{{location}}/notificationConfigs/{{name}}` - - * `{{organization}}/{{location}}/{{name}}` + * `{{name}}` When using the `pulumi import` command, OrganizationNotificationConfig can be imported using one of the formats above. For example: ```sh - $ pulumi import gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig default organizations/{{organization}}/locations/{{location}}/notificationConfigs/{{name}} - ``` - - ```sh - $ pulumi import gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig default {{organization}}/{{location}}/{{name}} + $ pulumi import gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig default {{name}} ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_gcp/spanner/__init__.py b/sdk/python/pulumi_gcp/spanner/__init__.py index 3cb5c64e03..0c96c9bd60 100644 --- a/sdk/python/pulumi_gcp/spanner/__init__.py +++ b/sdk/python/pulumi_gcp/spanner/__init__.py @@ -10,6 +10,7 @@ from .database_iam_binding import * from .database_iam_member import * from .database_iam_policy import * +from .get_database import * from .get_database_iam_policy import * from .get_instance import * from .get_instance_iam_policy import * diff --git a/sdk/python/pulumi_gcp/spanner/_inputs.py b/sdk/python/pulumi_gcp/spanner/_inputs.py index fce953fab0..566fee7880 100644 --- a/sdk/python/pulumi_gcp/spanner/_inputs.py +++ b/sdk/python/pulumi_gcp/spanner/_inputs.py @@ -461,12 +461,12 @@ def autoscaling_targets(self, value: Optional[pulumi.Input['InstanceAutoscalingC class InstanceAutoscalingConfigAsymmetricAutoscalingOptionArgsDict(TypedDict): overrides: pulumi.Input['InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesArgsDict'] """ - A nested object resource + A nested object resource. Structure is documented below. """ replica_selection: pulumi.Input['InstanceAutoscalingConfigAsymmetricAutoscalingOptionReplicaSelectionArgsDict'] """ - A nested object resource + A nested object resource. Structure is documented below. """ elif False: @@ -478,9 +478,9 @@ def __init__(__self__, *, overrides: pulumi.Input['InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesArgs'], replica_selection: pulumi.Input['InstanceAutoscalingConfigAsymmetricAutoscalingOptionReplicaSelectionArgs']): """ - :param pulumi.Input['InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesArgs'] overrides: A nested object resource + :param pulumi.Input['InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesArgs'] overrides: A nested object resource. Structure is documented below. - :param pulumi.Input['InstanceAutoscalingConfigAsymmetricAutoscalingOptionReplicaSelectionArgs'] replica_selection: A nested object resource + :param pulumi.Input['InstanceAutoscalingConfigAsymmetricAutoscalingOptionReplicaSelectionArgs'] replica_selection: A nested object resource. Structure is documented below. """ pulumi.set(__self__, "overrides", overrides) @@ -490,7 +490,7 @@ def __init__(__self__, *, @pulumi.getter def overrides(self) -> pulumi.Input['InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesArgs']: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "overrides") @@ -503,7 +503,7 @@ def overrides(self, value: pulumi.Input['InstanceAutoscalingConfigAsymmetricAuto @pulumi.getter(name="replicaSelection") def replica_selection(self) -> pulumi.Input['InstanceAutoscalingConfigAsymmetricAutoscalingOptionReplicaSelectionArgs']: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "replica_selection") @@ -517,7 +517,7 @@ def replica_selection(self, value: pulumi.Input['InstanceAutoscalingConfigAsymme class InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesArgsDict(TypedDict): autoscaling_limits: pulumi.Input['InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesAutoscalingLimitsArgsDict'] """ - A nested object resource + A nested object resource. Structure is documented below. """ elif False: @@ -528,7 +528,7 @@ class InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesArgs: def __init__(__self__, *, autoscaling_limits: pulumi.Input['InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesAutoscalingLimitsArgs']): """ - :param pulumi.Input['InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesAutoscalingLimitsArgs'] autoscaling_limits: A nested object resource + :param pulumi.Input['InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesAutoscalingLimitsArgs'] autoscaling_limits: A nested object resource. Structure is documented below. """ pulumi.set(__self__, "autoscaling_limits", autoscaling_limits) @@ -537,7 +537,7 @@ def __init__(__self__, *, @pulumi.getter(name="autoscalingLimits") def autoscaling_limits(self) -> pulumi.Input['InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesAutoscalingLimitsArgs']: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "autoscaling_limits") diff --git a/sdk/python/pulumi_gcp/spanner/get_database.py b/sdk/python/pulumi_gcp/spanner/get_database.py new file mode 100644 index 0000000000..bc7cc77133 --- /dev/null +++ b/sdk/python/pulumi_gcp/spanner/get_database.py @@ -0,0 +1,229 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs + +__all__ = [ + 'GetDatabaseResult', + 'AwaitableGetDatabaseResult', + 'get_database', + 'get_database_output', +] + +@pulumi.output_type +class GetDatabaseResult: + """ + A collection of values returned by getDatabase. + """ + def __init__(__self__, database_dialect=None, ddls=None, deletion_protection=None, enable_drop_protection=None, encryption_configs=None, id=None, instance=None, name=None, project=None, state=None, version_retention_period=None): + if database_dialect and not isinstance(database_dialect, str): + raise TypeError("Expected argument 'database_dialect' to be a str") + pulumi.set(__self__, "database_dialect", database_dialect) + if ddls and not isinstance(ddls, list): + raise TypeError("Expected argument 'ddls' to be a list") + pulumi.set(__self__, "ddls", ddls) + if deletion_protection and not isinstance(deletion_protection, bool): + raise TypeError("Expected argument 'deletion_protection' to be a bool") + pulumi.set(__self__, "deletion_protection", deletion_protection) + if enable_drop_protection and not isinstance(enable_drop_protection, bool): + raise TypeError("Expected argument 'enable_drop_protection' to be a bool") + pulumi.set(__self__, "enable_drop_protection", enable_drop_protection) + if encryption_configs and not isinstance(encryption_configs, list): + raise TypeError("Expected argument 'encryption_configs' to be a list") + pulumi.set(__self__, "encryption_configs", encryption_configs) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if instance and not isinstance(instance, str): + raise TypeError("Expected argument 'instance' to be a str") + pulumi.set(__self__, "instance", instance) + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + pulumi.set(__self__, "name", name) + if project and not isinstance(project, str): + raise TypeError("Expected argument 'project' to be a str") + pulumi.set(__self__, "project", project) + if state and not isinstance(state, str): + raise TypeError("Expected argument 'state' to be a str") + pulumi.set(__self__, "state", state) + if version_retention_period and not isinstance(version_retention_period, str): + raise TypeError("Expected argument 'version_retention_period' to be a str") + pulumi.set(__self__, "version_retention_period", version_retention_period) + + @property + @pulumi.getter(name="databaseDialect") + def database_dialect(self) -> str: + return pulumi.get(self, "database_dialect") + + @property + @pulumi.getter + def ddls(self) -> Sequence[str]: + return pulumi.get(self, "ddls") + + @property + @pulumi.getter(name="deletionProtection") + def deletion_protection(self) -> bool: + return pulumi.get(self, "deletion_protection") + + @property + @pulumi.getter(name="enableDropProtection") + def enable_drop_protection(self) -> bool: + return pulumi.get(self, "enable_drop_protection") + + @property + @pulumi.getter(name="encryptionConfigs") + def encryption_configs(self) -> Sequence['outputs.GetDatabaseEncryptionConfigResult']: + return pulumi.get(self, "encryption_configs") + + @property + @pulumi.getter + def id(self) -> str: + """ + The provider-assigned unique ID for this managed resource. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter + def instance(self) -> str: + return pulumi.get(self, "instance") + + @property + @pulumi.getter + def name(self) -> str: + return pulumi.get(self, "name") + + @property + @pulumi.getter + def project(self) -> Optional[str]: + return pulumi.get(self, "project") + + @property + @pulumi.getter + def state(self) -> str: + return pulumi.get(self, "state") + + @property + @pulumi.getter(name="versionRetentionPeriod") + def version_retention_period(self) -> str: + return pulumi.get(self, "version_retention_period") + + +class AwaitableGetDatabaseResult(GetDatabaseResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetDatabaseResult( + database_dialect=self.database_dialect, + ddls=self.ddls, + deletion_protection=self.deletion_protection, + enable_drop_protection=self.enable_drop_protection, + encryption_configs=self.encryption_configs, + id=self.id, + instance=self.instance, + name=self.name, + project=self.project, + state=self.state, + version_retention_period=self.version_retention_period) + + +def get_database(instance: Optional[str] = None, + name: Optional[str] = None, + project: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetDatabaseResult: + """ + Get a spanner database from Google Cloud by its name and instance name. + + ## Example Usage + + ```python + import pulumi + import pulumi_gcp as gcp + + foo = gcp.spanner.get_database(name="foo", + instance=instance["name"]) + ``` + + + :param str instance: The name of the database's spanner instance. + + - - - + :param str name: The name of the spanner database. + :param str project: The project in which the resource belongs. If it + is not provided, the provider project is used. + """ + __args__ = dict() + __args__['instance'] = instance + __args__['name'] = name + __args__['project'] = project + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('gcp:spanner/getDatabase:getDatabase', __args__, opts=opts, typ=GetDatabaseResult).value + + return AwaitableGetDatabaseResult( + database_dialect=pulumi.get(__ret__, 'database_dialect'), + ddls=pulumi.get(__ret__, 'ddls'), + deletion_protection=pulumi.get(__ret__, 'deletion_protection'), + enable_drop_protection=pulumi.get(__ret__, 'enable_drop_protection'), + encryption_configs=pulumi.get(__ret__, 'encryption_configs'), + id=pulumi.get(__ret__, 'id'), + instance=pulumi.get(__ret__, 'instance'), + name=pulumi.get(__ret__, 'name'), + project=pulumi.get(__ret__, 'project'), + state=pulumi.get(__ret__, 'state'), + version_retention_period=pulumi.get(__ret__, 'version_retention_period')) +def get_database_output(instance: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[Optional[str]]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetDatabaseResult]: + """ + Get a spanner database from Google Cloud by its name and instance name. + + ## Example Usage + + ```python + import pulumi + import pulumi_gcp as gcp + + foo = gcp.spanner.get_database(name="foo", + instance=instance["name"]) + ``` + + + :param str instance: The name of the database's spanner instance. + + - - - + :param str name: The name of the spanner database. + :param str project: The project in which the resource belongs. If it + is not provided, the provider project is used. + """ + __args__ = dict() + __args__['instance'] = instance + __args__['name'] = name + __args__['project'] = project + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('gcp:spanner/getDatabase:getDatabase', __args__, opts=opts, typ=GetDatabaseResult) + return __ret__.apply(lambda __response__: GetDatabaseResult( + database_dialect=pulumi.get(__response__, 'database_dialect'), + ddls=pulumi.get(__response__, 'ddls'), + deletion_protection=pulumi.get(__response__, 'deletion_protection'), + enable_drop_protection=pulumi.get(__response__, 'enable_drop_protection'), + encryption_configs=pulumi.get(__response__, 'encryption_configs'), + id=pulumi.get(__response__, 'id'), + instance=pulumi.get(__response__, 'instance'), + name=pulumi.get(__response__, 'name'), + project=pulumi.get(__response__, 'project'), + state=pulumi.get(__response__, 'state'), + version_retention_period=pulumi.get(__response__, 'version_retention_period'))) diff --git a/sdk/python/pulumi_gcp/spanner/get_instance.py b/sdk/python/pulumi_gcp/spanner/get_instance.py index c66d39982c..c1087d4d84 100644 --- a/sdk/python/pulumi_gcp/spanner/get_instance.py +++ b/sdk/python/pulumi_gcp/spanner/get_instance.py @@ -27,13 +27,16 @@ class GetInstanceResult: """ A collection of values returned by getInstance. """ - def __init__(__self__, autoscaling_configs=None, config=None, display_name=None, edition=None, effective_labels=None, force_destroy=None, id=None, labels=None, name=None, num_nodes=None, processing_units=None, project=None, pulumi_labels=None, state=None): + def __init__(__self__, autoscaling_configs=None, config=None, default_backup_schedule_type=None, display_name=None, edition=None, effective_labels=None, force_destroy=None, id=None, labels=None, name=None, num_nodes=None, processing_units=None, project=None, pulumi_labels=None, state=None): if autoscaling_configs and not isinstance(autoscaling_configs, list): raise TypeError("Expected argument 'autoscaling_configs' to be a list") pulumi.set(__self__, "autoscaling_configs", autoscaling_configs) if config and not isinstance(config, str): raise TypeError("Expected argument 'config' to be a str") pulumi.set(__self__, "config", config) + if default_backup_schedule_type and not isinstance(default_backup_schedule_type, str): + raise TypeError("Expected argument 'default_backup_schedule_type' to be a str") + pulumi.set(__self__, "default_backup_schedule_type", default_backup_schedule_type) if display_name and not isinstance(display_name, str): raise TypeError("Expected argument 'display_name' to be a str") pulumi.set(__self__, "display_name", display_name) @@ -81,6 +84,11 @@ def autoscaling_configs(self) -> Sequence['outputs.GetInstanceAutoscalingConfigR def config(self) -> Optional[str]: return pulumi.get(self, "config") + @property + @pulumi.getter(name="defaultBackupScheduleType") + def default_backup_schedule_type(self) -> str: + return pulumi.get(self, "default_backup_schedule_type") + @property @pulumi.getter(name="displayName") def display_name(self) -> Optional[str]: @@ -153,6 +161,7 @@ def __await__(self): return GetInstanceResult( autoscaling_configs=self.autoscaling_configs, config=self.config, + default_backup_schedule_type=self.default_backup_schedule_type, display_name=self.display_name, edition=self.edition, effective_labels=self.effective_labels, @@ -202,6 +211,7 @@ def get_instance(config: Optional[str] = None, return AwaitableGetInstanceResult( autoscaling_configs=pulumi.get(__ret__, 'autoscaling_configs'), config=pulumi.get(__ret__, 'config'), + default_backup_schedule_type=pulumi.get(__ret__, 'default_backup_schedule_type'), display_name=pulumi.get(__ret__, 'display_name'), edition=pulumi.get(__ret__, 'edition'), effective_labels=pulumi.get(__ret__, 'effective_labels'), @@ -248,6 +258,7 @@ def get_instance_output(config: Optional[pulumi.Input[Optional[str]]] = None, return __ret__.apply(lambda __response__: GetInstanceResult( autoscaling_configs=pulumi.get(__response__, 'autoscaling_configs'), config=pulumi.get(__response__, 'config'), + default_backup_schedule_type=pulumi.get(__response__, 'default_backup_schedule_type'), display_name=pulumi.get(__response__, 'display_name'), edition=pulumi.get(__response__, 'edition'), effective_labels=pulumi.get(__response__, 'effective_labels'), diff --git a/sdk/python/pulumi_gcp/spanner/instance.py b/sdk/python/pulumi_gcp/spanner/instance.py index 8a5222bbb8..c1f49c31cd 100644 --- a/sdk/python/pulumi_gcp/spanner/instance.py +++ b/sdk/python/pulumi_gcp/spanner/instance.py @@ -24,6 +24,7 @@ def __init__(__self__, *, config: pulumi.Input[str], display_name: pulumi.Input[str], autoscaling_config: Optional[pulumi.Input['InstanceAutoscalingConfigArgs']] = None, + default_backup_schedule_type: Optional[pulumi.Input[str]] = None, edition: Optional[pulumi.Input[str]] = None, force_destroy: Optional[pulumi.Input[bool]] = None, labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, @@ -49,6 +50,10 @@ def __init__(__self__, *, OUTPUT_ONLY fields and reflect the current compute capacity allocated to the instance. Structure is documented below. + :param pulumi.Input[str] default_backup_schedule_type: Controls the default backup behavior for new databases within the instance. + Note that `AUTOMATIC` is not permitted for free instances, as backups and backup schedules are not allowed for free instances. + if unset or NONE, no default backup schedule will be created for new databases within the instance. + Possible values are: `NONE`, `AUTOMATIC`. :param pulumi.Input[str] edition: The edition selected for this instance. Different editions provide different capabilities at different price points. Possible values are: `EDITION_UNSPECIFIED`, `STANDARD`, `ENTERPRISE`, `ENTERPRISE_PLUS`. :param pulumi.Input[bool] force_destroy: When deleting a spanner instance, this boolean option will delete all backups of this instance. @@ -69,6 +74,8 @@ def __init__(__self__, *, pulumi.set(__self__, "display_name", display_name) if autoscaling_config is not None: pulumi.set(__self__, "autoscaling_config", autoscaling_config) + if default_backup_schedule_type is not None: + pulumi.set(__self__, "default_backup_schedule_type", default_backup_schedule_type) if edition is not None: pulumi.set(__self__, "edition", edition) if force_destroy is not None: @@ -133,6 +140,21 @@ def autoscaling_config(self) -> Optional[pulumi.Input['InstanceAutoscalingConfig def autoscaling_config(self, value: Optional[pulumi.Input['InstanceAutoscalingConfigArgs']]): pulumi.set(self, "autoscaling_config", value) + @property + @pulumi.getter(name="defaultBackupScheduleType") + def default_backup_schedule_type(self) -> Optional[pulumi.Input[str]]: + """ + Controls the default backup behavior for new databases within the instance. + Note that `AUTOMATIC` is not permitted for free instances, as backups and backup schedules are not allowed for free instances. + if unset or NONE, no default backup schedule will be created for new databases within the instance. + Possible values are: `NONE`, `AUTOMATIC`. + """ + return pulumi.get(self, "default_backup_schedule_type") + + @default_backup_schedule_type.setter + def default_backup_schedule_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "default_backup_schedule_type", value) + @property @pulumi.getter def edition(self) -> Optional[pulumi.Input[str]]: @@ -227,6 +249,7 @@ class _InstanceState: def __init__(__self__, *, autoscaling_config: Optional[pulumi.Input['InstanceAutoscalingConfigArgs']] = None, config: Optional[pulumi.Input[str]] = None, + default_backup_schedule_type: Optional[pulumi.Input[str]] = None, display_name: Optional[pulumi.Input[str]] = None, edition: Optional[pulumi.Input[str]] = None, effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, @@ -251,6 +274,10 @@ def __init__(__self__, *, is stored. Values are typically of the form `regional-europe-west1` , `us-central` etc. In order to obtain a valid list please consult the [Configuration section of the docs](https://cloud.google.com/spanner/docs/instances). + :param pulumi.Input[str] default_backup_schedule_type: Controls the default backup behavior for new databases within the instance. + Note that `AUTOMATIC` is not permitted for free instances, as backups and backup schedules are not allowed for free instances. + if unset or NONE, no default backup schedule will be created for new databases within the instance. + Possible values are: `NONE`, `AUTOMATIC`. :param pulumi.Input[str] display_name: The descriptive name for this instance as it appears in UIs. Must be unique per project and between 4 and 30 characters in length. @@ -280,6 +307,8 @@ def __init__(__self__, *, pulumi.set(__self__, "autoscaling_config", autoscaling_config) if config is not None: pulumi.set(__self__, "config", config) + if default_backup_schedule_type is not None: + pulumi.set(__self__, "default_backup_schedule_type", default_backup_schedule_type) if display_name is not None: pulumi.set(__self__, "display_name", display_name) if edition is not None: @@ -336,6 +365,21 @@ def config(self) -> Optional[pulumi.Input[str]]: def config(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "config", value) + @property + @pulumi.getter(name="defaultBackupScheduleType") + def default_backup_schedule_type(self) -> Optional[pulumi.Input[str]]: + """ + Controls the default backup behavior for new databases within the instance. + Note that `AUTOMATIC` is not permitted for free instances, as backups and backup schedules are not allowed for free instances. + if unset or NONE, no default backup schedule will be created for new databases within the instance. + Possible values are: `NONE`, `AUTOMATIC`. + """ + return pulumi.get(self, "default_backup_schedule_type") + + @default_backup_schedule_type.setter + def default_backup_schedule_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "default_backup_schedule_type", value) + @property @pulumi.getter(name="displayName") def display_name(self) -> Optional[pulumi.Input[str]]: @@ -485,6 +529,7 @@ def __init__(__self__, opts: Optional[pulumi.ResourceOptions] = None, autoscaling_config: Optional[pulumi.Input[Union['InstanceAutoscalingConfigArgs', 'InstanceAutoscalingConfigArgsDict']]] = None, config: Optional[pulumi.Input[str]] = None, + default_backup_schedule_type: Optional[pulumi.Input[str]] = None, display_name: Optional[pulumi.Input[str]] = None, edition: Optional[pulumi.Input[str]] = None, force_destroy: Optional[pulumi.Input[bool]] = None, @@ -517,6 +562,7 @@ def __init__(__self__, display_name="Test Spanner Instance", num_nodes=2, edition="STANDARD", + default_backup_schedule_type="AUTOMATIC", labels={ "foo": "bar", }) @@ -610,6 +656,10 @@ def __init__(__self__, is stored. Values are typically of the form `regional-europe-west1` , `us-central` etc. In order to obtain a valid list please consult the [Configuration section of the docs](https://cloud.google.com/spanner/docs/instances). + :param pulumi.Input[str] default_backup_schedule_type: Controls the default backup behavior for new databases within the instance. + Note that `AUTOMATIC` is not permitted for free instances, as backups and backup schedules are not allowed for free instances. + if unset or NONE, no default backup schedule will be created for new databases within the instance. + Possible values are: `NONE`, `AUTOMATIC`. :param pulumi.Input[str] display_name: The descriptive name for this instance as it appears in UIs. Must be unique per project and between 4 and 30 characters in length. @@ -660,6 +710,7 @@ def __init__(__self__, display_name="Test Spanner Instance", num_nodes=2, edition="STANDARD", + default_backup_schedule_type="AUTOMATIC", labels={ "foo": "bar", }) @@ -757,6 +808,7 @@ def _internal_init(__self__, opts: Optional[pulumi.ResourceOptions] = None, autoscaling_config: Optional[pulumi.Input[Union['InstanceAutoscalingConfigArgs', 'InstanceAutoscalingConfigArgsDict']]] = None, config: Optional[pulumi.Input[str]] = None, + default_backup_schedule_type: Optional[pulumi.Input[str]] = None, display_name: Optional[pulumi.Input[str]] = None, edition: Optional[pulumi.Input[str]] = None, force_destroy: Optional[pulumi.Input[bool]] = None, @@ -778,6 +830,7 @@ def _internal_init(__self__, if config is None and not opts.urn: raise TypeError("Missing required property 'config'") __props__.__dict__["config"] = config + __props__.__dict__["default_backup_schedule_type"] = default_backup_schedule_type if display_name is None and not opts.urn: raise TypeError("Missing required property 'display_name'") __props__.__dict__["display_name"] = display_name @@ -805,6 +858,7 @@ def get(resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, autoscaling_config: Optional[pulumi.Input[Union['InstanceAutoscalingConfigArgs', 'InstanceAutoscalingConfigArgsDict']]] = None, config: Optional[pulumi.Input[str]] = None, + default_backup_schedule_type: Optional[pulumi.Input[str]] = None, display_name: Optional[pulumi.Input[str]] = None, edition: Optional[pulumi.Input[str]] = None, effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, @@ -834,6 +888,10 @@ def get(resource_name: str, is stored. Values are typically of the form `regional-europe-west1` , `us-central` etc. In order to obtain a valid list please consult the [Configuration section of the docs](https://cloud.google.com/spanner/docs/instances). + :param pulumi.Input[str] default_backup_schedule_type: Controls the default backup behavior for new databases within the instance. + Note that `AUTOMATIC` is not permitted for free instances, as backups and backup schedules are not allowed for free instances. + if unset or NONE, no default backup schedule will be created for new databases within the instance. + Possible values are: `NONE`, `AUTOMATIC`. :param pulumi.Input[str] display_name: The descriptive name for this instance as it appears in UIs. Must be unique per project and between 4 and 30 characters in length. @@ -865,6 +923,7 @@ def get(resource_name: str, __props__.__dict__["autoscaling_config"] = autoscaling_config __props__.__dict__["config"] = config + __props__.__dict__["default_backup_schedule_type"] = default_backup_schedule_type __props__.__dict__["display_name"] = display_name __props__.__dict__["edition"] = edition __props__.__dict__["effective_labels"] = effective_labels @@ -903,6 +962,17 @@ def config(self) -> pulumi.Output[str]: """ return pulumi.get(self, "config") + @property + @pulumi.getter(name="defaultBackupScheduleType") + def default_backup_schedule_type(self) -> pulumi.Output[str]: + """ + Controls the default backup behavior for new databases within the instance. + Note that `AUTOMATIC` is not permitted for free instances, as backups and backup schedules are not allowed for free instances. + if unset or NONE, no default backup schedule will be created for new databases within the instance. + Possible values are: `NONE`, `AUTOMATIC`. + """ + return pulumi.get(self, "default_backup_schedule_type") + @property @pulumi.getter(name="displayName") def display_name(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_gcp/spanner/outputs.py b/sdk/python/pulumi_gcp/spanner/outputs.py index fb26d83ef9..c452a62182 100644 --- a/sdk/python/pulumi_gcp/spanner/outputs.py +++ b/sdk/python/pulumi_gcp/spanner/outputs.py @@ -33,6 +33,7 @@ 'InstanceConfigReplica', 'InstanceIAMBindingCondition', 'InstanceIAMMemberCondition', + 'GetDatabaseEncryptionConfigResult', 'GetInstanceAutoscalingConfigResult', 'GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionResult', 'GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrideResult', @@ -364,9 +365,9 @@ def __init__(__self__, *, overrides: 'outputs.InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrides', replica_selection: 'outputs.InstanceAutoscalingConfigAsymmetricAutoscalingOptionReplicaSelection'): """ - :param 'InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesArgs' overrides: A nested object resource + :param 'InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesArgs' overrides: A nested object resource. Structure is documented below. - :param 'InstanceAutoscalingConfigAsymmetricAutoscalingOptionReplicaSelectionArgs' replica_selection: A nested object resource + :param 'InstanceAutoscalingConfigAsymmetricAutoscalingOptionReplicaSelectionArgs' replica_selection: A nested object resource. Structure is documented below. """ pulumi.set(__self__, "overrides", overrides) @@ -376,7 +377,7 @@ def __init__(__self__, *, @pulumi.getter def overrides(self) -> 'outputs.InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrides': """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "overrides") @@ -385,7 +386,7 @@ def overrides(self) -> 'outputs.InstanceAutoscalingConfigAsymmetricAutoscalingOp @pulumi.getter(name="replicaSelection") def replica_selection(self) -> 'outputs.InstanceAutoscalingConfigAsymmetricAutoscalingOptionReplicaSelection': """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "replica_selection") @@ -413,7 +414,7 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, autoscaling_limits: 'outputs.InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesAutoscalingLimits'): """ - :param 'InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesAutoscalingLimitsArgs' autoscaling_limits: A nested object resource + :param 'InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesAutoscalingLimitsArgs' autoscaling_limits: A nested object resource. Structure is documented below. """ pulumi.set(__self__, "autoscaling_limits", autoscaling_limits) @@ -422,7 +423,7 @@ def __init__(__self__, *, @pulumi.getter(name="autoscalingLimits") def autoscaling_limits(self) -> 'outputs.InstanceAutoscalingConfigAsymmetricAutoscalingOptionOverridesAutoscalingLimits': """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "autoscaling_limits") @@ -762,6 +763,39 @@ def description(self) -> Optional[str]: return pulumi.get(self, "description") +@pulumi.output_type +class GetDatabaseEncryptionConfigResult(dict): + def __init__(__self__, *, + kms_key_name: str, + kms_key_names: Sequence[str]): + """ + :param str kms_key_name: Fully qualified name of the KMS key to use to encrypt this database. This key must exist + in the same location as the Spanner Database. + :param Sequence[str] kms_key_names: Fully qualified name of the KMS keys to use to encrypt this database. The keys must exist + in the same locations as the Spanner Database. + """ + pulumi.set(__self__, "kms_key_name", kms_key_name) + pulumi.set(__self__, "kms_key_names", kms_key_names) + + @property + @pulumi.getter(name="kmsKeyName") + def kms_key_name(self) -> str: + """ + Fully qualified name of the KMS key to use to encrypt this database. This key must exist + in the same location as the Spanner Database. + """ + return pulumi.get(self, "kms_key_name") + + @property + @pulumi.getter(name="kmsKeyNames") + def kms_key_names(self) -> Sequence[str]: + """ + Fully qualified name of the KMS keys to use to encrypt this database. The keys must exist + in the same locations as the Spanner Database. + """ + return pulumi.get(self, "kms_key_names") + + @pulumi.output_type class GetInstanceAutoscalingConfigResult(dict): def __init__(__self__, *, @@ -820,8 +854,8 @@ def __init__(__self__, *, overrides: Sequence['outputs.GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrideResult'], replica_selections: Sequence['outputs.GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionReplicaSelectionResult']): """ - :param Sequence['GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrideArgs'] overrides: A nested object resource - :param Sequence['GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionReplicaSelectionArgs'] replica_selections: A nested object resource + :param Sequence['GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrideArgs'] overrides: A nested object resource. + :param Sequence['GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionReplicaSelectionArgs'] replica_selections: A nested object resource. """ pulumi.set(__self__, "overrides", overrides) pulumi.set(__self__, "replica_selections", replica_selections) @@ -830,7 +864,7 @@ def __init__(__self__, *, @pulumi.getter def overrides(self) -> Sequence['outputs.GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrideResult']: """ - A nested object resource + A nested object resource. """ return pulumi.get(self, "overrides") @@ -838,7 +872,7 @@ def overrides(self) -> Sequence['outputs.GetInstanceAutoscalingConfigAsymmetricA @pulumi.getter(name="replicaSelections") def replica_selections(self) -> Sequence['outputs.GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionReplicaSelectionResult']: """ - A nested object resource + A nested object resource. """ return pulumi.get(self, "replica_selections") @@ -848,7 +882,7 @@ class GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrideResult(dict def __init__(__self__, *, autoscaling_limits: Sequence['outputs.GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrideAutoscalingLimitResult']): """ - :param Sequence['GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrideAutoscalingLimitArgs'] autoscaling_limits: A nested object resource + :param Sequence['GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrideAutoscalingLimitArgs'] autoscaling_limits: A nested object resource. """ pulumi.set(__self__, "autoscaling_limits", autoscaling_limits) @@ -856,7 +890,7 @@ def __init__(__self__, *, @pulumi.getter(name="autoscalingLimits") def autoscaling_limits(self) -> Sequence['outputs.GetInstanceAutoscalingConfigAsymmetricAutoscalingOptionOverrideAutoscalingLimitResult']: """ - A nested object resource + A nested object resource. """ return pulumi.get(self, "autoscaling_limits") diff --git a/sdk/python/pulumi_gcp/sql/_inputs.py b/sdk/python/pulumi_gcp/sql/_inputs.py index dcbaa07d91..50107a1392 100644 --- a/sdk/python/pulumi_gcp/sql/_inputs.py +++ b/sdk/python/pulumi_gcp/sql/_inputs.py @@ -266,6 +266,12 @@ class DatabaseInstanceReplicaConfigurationArgsDict(TypedDict): PEM representation of the trusted CA's x509 certificate. """ + cascadable_replica: NotRequired[pulumi.Input[bool]] + """ + Specifies if the replica is a cascadable replica. If true, instance must be in different region from primary. + + > **NOTE:** Only supported for SQL Server database. + """ client_certificate: NotRequired[pulumi.Input[str]] """ PEM representation of the replica's x509 @@ -324,6 +330,7 @@ class DatabaseInstanceReplicaConfigurationArgsDict(TypedDict): class DatabaseInstanceReplicaConfigurationArgs: def __init__(__self__, *, ca_certificate: Optional[pulumi.Input[str]] = None, + cascadable_replica: Optional[pulumi.Input[bool]] = None, client_certificate: Optional[pulumi.Input[str]] = None, client_key: Optional[pulumi.Input[str]] = None, connect_retry_interval: Optional[pulumi.Input[int]] = None, @@ -337,6 +344,9 @@ def __init__(__self__, *, """ :param pulumi.Input[str] ca_certificate: PEM representation of the trusted CA's x509 certificate. + :param pulumi.Input[bool] cascadable_replica: Specifies if the replica is a cascadable replica. If true, instance must be in different region from primary. + + > **NOTE:** Only supported for SQL Server database. :param pulumi.Input[str] client_certificate: PEM representation of the replica's x509 certificate. :param pulumi.Input[str] client_key: PEM representation of the replica's private key. The @@ -361,6 +371,8 @@ def __init__(__self__, *, """ if ca_certificate is not None: pulumi.set(__self__, "ca_certificate", ca_certificate) + if cascadable_replica is not None: + pulumi.set(__self__, "cascadable_replica", cascadable_replica) if client_certificate is not None: pulumi.set(__self__, "client_certificate", client_certificate) if client_key is not None: @@ -395,6 +407,20 @@ def ca_certificate(self) -> Optional[pulumi.Input[str]]: def ca_certificate(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "ca_certificate", value) + @property + @pulumi.getter(name="cascadableReplica") + def cascadable_replica(self) -> Optional[pulumi.Input[bool]]: + """ + Specifies if the replica is a cascadable replica. If true, instance must be in different region from primary. + + > **NOTE:** Only supported for SQL Server database. + """ + return pulumi.get(self, "cascadable_replica") + + @cascadable_replica.setter + def cascadable_replica(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "cascadable_replica", value) + @property @pulumi.getter(name="clientCertificate") def client_certificate(self) -> Optional[pulumi.Input[str]]: diff --git a/sdk/python/pulumi_gcp/sql/database_instance.py b/sdk/python/pulumi_gcp/sql/database_instance.py index f8d10d2d0c..7c9296c47d 100644 --- a/sdk/python/pulumi_gcp/sql/database_instance.py +++ b/sdk/python/pulumi_gcp/sql/database_instance.py @@ -32,6 +32,7 @@ def __init__(__self__, *, project: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, replica_configuration: Optional[pulumi.Input['DatabaseInstanceReplicaConfigurationArgs']] = None, + replica_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, restore_backup_context: Optional[pulumi.Input['DatabaseInstanceRestoreBackupContextArgs']] = None, root_password: Optional[pulumi.Input[str]] = None, settings: Optional[pulumi.Input['DatabaseInstanceSettingsArgs']] = None): @@ -75,7 +76,8 @@ def __init__(__self__, *, - - - :param pulumi.Input['DatabaseInstanceReplicaConfigurationArgs'] replica_configuration: The configuration for replication. The - configuration is detailed below. Valid only for MySQL instances. + configuration is detailed below. + :param pulumi.Input[Sequence[pulumi.Input[str]]] replica_names: List of replica names. Can be updated. :param pulumi.Input['DatabaseInstanceRestoreBackupContextArgs'] restore_backup_context: The context needed to restore the database to a backup run. This field will cause the provider to trigger the database to restore from the backup run indicated. The configuration is detailed below. **NOTE:** Restoring from a backup is an imperative action and not recommended via this provider. Adding or modifying this @@ -105,6 +107,8 @@ def __init__(__self__, *, pulumi.set(__self__, "region", region) if replica_configuration is not None: pulumi.set(__self__, "replica_configuration", replica_configuration) + if replica_names is not None: + pulumi.set(__self__, "replica_names", replica_names) if restore_backup_context is not None: pulumi.set(__self__, "restore_backup_context", restore_backup_context) if root_password is not None: @@ -264,7 +268,7 @@ def region(self, value: Optional[pulumi.Input[str]]): def replica_configuration(self) -> Optional[pulumi.Input['DatabaseInstanceReplicaConfigurationArgs']]: """ The configuration for replication. The - configuration is detailed below. Valid only for MySQL instances. + configuration is detailed below. """ return pulumi.get(self, "replica_configuration") @@ -272,6 +276,18 @@ def replica_configuration(self) -> Optional[pulumi.Input['DatabaseInstanceReplic def replica_configuration(self, value: Optional[pulumi.Input['DatabaseInstanceReplicaConfigurationArgs']]): pulumi.set(self, "replica_configuration", value) + @property + @pulumi.getter(name="replicaNames") + def replica_names(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + List of replica names. Can be updated. + """ + return pulumi.get(self, "replica_names") + + @replica_names.setter + def replica_names(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "replica_names", value) + @property @pulumi.getter(name="restoreBackupContext") def restore_backup_context(self) -> Optional[pulumi.Input['DatabaseInstanceRestoreBackupContextArgs']]: @@ -335,6 +351,7 @@ def __init__(__self__, *, public_ip_address: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, replica_configuration: Optional[pulumi.Input['DatabaseInstanceReplicaConfigurationArgs']] = None, + replica_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, restore_backup_context: Optional[pulumi.Input['DatabaseInstanceRestoreBackupContextArgs']] = None, root_password: Optional[pulumi.Input[str]] = None, self_link: Optional[pulumi.Input[str]] = None, @@ -360,7 +377,7 @@ def __init__(__self__, *, includes an up-to-date reference of supported versions. :param pulumi.Input[bool] deletion_protection: Whether or not to allow the provider to destroy the instance. Unless this field is set to false in state, a `destroy` or `update` command that deletes the instance will fail. Defaults to `true`. - :param pulumi.Input[str] dns_name: The dns name of the instance. + :param pulumi.Input[str] dns_name: The DNS name of the instance. See [Connect to an instance using Private Service Connect](https://cloud.google.com/sql/docs/mysql/configure-private-service-connect#view-summary-information-cloud-sql-instances-psc-enabled) for more details. :param pulumi.Input[str] encryption_key_name: The full path to the encryption key used for the CMEK disk encryption. Setting up disk encryption currently requires manual steps outside of this provider. The provided key must be in the same region as the SQL instance. In order @@ -389,7 +406,8 @@ def __init__(__self__, *, - - - :param pulumi.Input['DatabaseInstanceReplicaConfigurationArgs'] replica_configuration: The configuration for replication. The - configuration is detailed below. Valid only for MySQL instances. + configuration is detailed below. + :param pulumi.Input[Sequence[pulumi.Input[str]]] replica_names: List of replica names. Can be updated. :param pulumi.Input['DatabaseInstanceRestoreBackupContextArgs'] restore_backup_context: The context needed to restore the database to a backup run. This field will cause the provider to trigger the database to restore from the backup run indicated. The configuration is detailed below. **NOTE:** Restoring from a backup is an imperative action and not recommended via this provider. Adding or modifying this @@ -439,6 +457,8 @@ def __init__(__self__, *, pulumi.set(__self__, "region", region) if replica_configuration is not None: pulumi.set(__self__, "replica_configuration", replica_configuration) + if replica_names is not None: + pulumi.set(__self__, "replica_names", replica_names) if restore_backup_context is not None: pulumi.set(__self__, "restore_backup_context", restore_backup_context) if root_password is not None: @@ -528,7 +548,7 @@ def deletion_protection(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter(name="dnsName") def dns_name(self) -> Optional[pulumi.Input[str]]: """ - The dns name of the instance. + The DNS name of the instance. See [Connect to an instance using Private Service Connect](https://cloud.google.com/sql/docs/mysql/configure-private-service-connect#view-summary-information-cloud-sql-instances-psc-enabled) for more details. """ return pulumi.get(self, "dns_name") @@ -698,7 +718,7 @@ def region(self, value: Optional[pulumi.Input[str]]): def replica_configuration(self) -> Optional[pulumi.Input['DatabaseInstanceReplicaConfigurationArgs']]: """ The configuration for replication. The - configuration is detailed below. Valid only for MySQL instances. + configuration is detailed below. """ return pulumi.get(self, "replica_configuration") @@ -706,6 +726,18 @@ def replica_configuration(self) -> Optional[pulumi.Input['DatabaseInstanceReplic def replica_configuration(self, value: Optional[pulumi.Input['DatabaseInstanceReplicaConfigurationArgs']]): pulumi.set(self, "replica_configuration", value) + @property + @pulumi.getter(name="replicaNames") + def replica_names(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + List of replica names. Can be updated. + """ + return pulumi.get(self, "replica_names") + + @replica_names.setter + def replica_names(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "replica_names", value) + @property @pulumi.getter(name="restoreBackupContext") def restore_backup_context(self) -> Optional[pulumi.Input['DatabaseInstanceRestoreBackupContextArgs']]: @@ -797,6 +829,7 @@ def __init__(__self__, project: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, replica_configuration: Optional[pulumi.Input[Union['DatabaseInstanceReplicaConfigurationArgs', 'DatabaseInstanceReplicaConfigurationArgsDict']]] = None, + replica_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, restore_backup_context: Optional[pulumi.Input[Union['DatabaseInstanceRestoreBackupContextArgs', 'DatabaseInstanceRestoreBackupContextArgsDict']]] = None, root_password: Optional[pulumi.Input[str]] = None, settings: Optional[pulumi.Input[Union['DatabaseInstanceSettingsArgs', 'DatabaseInstanceSettingsArgsDict']]] = None, @@ -910,6 +943,39 @@ def __init__(__self__, }) ``` + ## Switchover (SQL Server Only) + + Users can perform a switchover on any direct `cascadable` replica by following the steps below. + + ~>**WARNING:** Failure to follow these steps can lead to data loss (You will be warned during plan stage). To prevent data loss during a switchover, please verify your plan with the checklist below. + + For a more in-depth walkthrough with example code, see the Switchover Guide + + ### Steps to Invoke Switchover + + Create a `cascadable` replica in a different region from the primary (`cascadable_replica` is set to true in `replica_configuration`) + + #### Invoking switchover in the replica resource: + 1. Change instance_type from `READ_REPLICA_INSTANCE` to `CLOUD_SQL_INSTANCE` + 2. Remove `master_instance_name` + 3. Remove `replica_configuration` + 4. Add current primary's name to the replica's `replica_names` list + + #### Updating the primary resource: + 1. Change `instance_type` from `CLOUD_SQL_INSTANCE` to `READ_REPLICA_INSTANCE` + 2. Set `master_instance_name` to the original replica (which will be primary after switchover) + 3. Set `replica_configuration` and set `cascadable_replica` to `true` + 4. Remove original replica from `replica_names` + + > **NOTE**: Do **not** delete the replica_names field, even if it has no replicas remaining. Set replica_names = [ ] to indicate it having no replicas. + + #### Plan and verify that: + - `pulumi preview` outputs **"0 to add, 0 to destroy"** + - `pulumi preview` does not say **"must be replaced"** for any resource + - Every resource **"will be updated in-place"** + - Only the 2 instances involved in switchover have planned changes + - (Recommended) Use `deletion_protection` on instances as a safety measure + ## Import Database instances can be imported using one of any of these accepted formats: @@ -980,7 +1046,8 @@ def __init__(__self__, - - - :param pulumi.Input[Union['DatabaseInstanceReplicaConfigurationArgs', 'DatabaseInstanceReplicaConfigurationArgsDict']] replica_configuration: The configuration for replication. The - configuration is detailed below. Valid only for MySQL instances. + configuration is detailed below. + :param pulumi.Input[Sequence[pulumi.Input[str]]] replica_names: List of replica names. Can be updated. :param pulumi.Input[Union['DatabaseInstanceRestoreBackupContextArgs', 'DatabaseInstanceRestoreBackupContextArgsDict']] restore_backup_context: The context needed to restore the database to a backup run. This field will cause the provider to trigger the database to restore from the backup run indicated. The configuration is detailed below. **NOTE:** Restoring from a backup is an imperative action and not recommended via this provider. Adding or modifying this @@ -1104,6 +1171,39 @@ def __init__(__self__, }) ``` + ## Switchover (SQL Server Only) + + Users can perform a switchover on any direct `cascadable` replica by following the steps below. + + ~>**WARNING:** Failure to follow these steps can lead to data loss (You will be warned during plan stage). To prevent data loss during a switchover, please verify your plan with the checklist below. + + For a more in-depth walkthrough with example code, see the Switchover Guide + + ### Steps to Invoke Switchover + + Create a `cascadable` replica in a different region from the primary (`cascadable_replica` is set to true in `replica_configuration`) + + #### Invoking switchover in the replica resource: + 1. Change instance_type from `READ_REPLICA_INSTANCE` to `CLOUD_SQL_INSTANCE` + 2. Remove `master_instance_name` + 3. Remove `replica_configuration` + 4. Add current primary's name to the replica's `replica_names` list + + #### Updating the primary resource: + 1. Change `instance_type` from `CLOUD_SQL_INSTANCE` to `READ_REPLICA_INSTANCE` + 2. Set `master_instance_name` to the original replica (which will be primary after switchover) + 3. Set `replica_configuration` and set `cascadable_replica` to `true` + 4. Remove original replica from `replica_names` + + > **NOTE**: Do **not** delete the replica_names field, even if it has no replicas remaining. Set replica_names = [ ] to indicate it having no replicas. + + #### Plan and verify that: + - `pulumi preview` outputs **"0 to add, 0 to destroy"** + - `pulumi preview` does not say **"must be replaced"** for any resource + - Every resource **"will be updated in-place"** + - Only the 2 instances involved in switchover have planned changes + - (Recommended) Use `deletion_protection` on instances as a safety measure + ## Import Database instances can be imported using one of any of these accepted formats: @@ -1160,6 +1260,7 @@ def _internal_init(__self__, project: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, replica_configuration: Optional[pulumi.Input[Union['DatabaseInstanceReplicaConfigurationArgs', 'DatabaseInstanceReplicaConfigurationArgsDict']]] = None, + replica_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, restore_backup_context: Optional[pulumi.Input[Union['DatabaseInstanceRestoreBackupContextArgs', 'DatabaseInstanceRestoreBackupContextArgsDict']]] = None, root_password: Optional[pulumi.Input[str]] = None, settings: Optional[pulumi.Input[Union['DatabaseInstanceSettingsArgs', 'DatabaseInstanceSettingsArgsDict']]] = None, @@ -1185,6 +1286,7 @@ def _internal_init(__self__, __props__.__dict__["project"] = project __props__.__dict__["region"] = region __props__.__dict__["replica_configuration"] = None if replica_configuration is None else pulumi.Output.secret(replica_configuration) + __props__.__dict__["replica_names"] = replica_names __props__.__dict__["restore_backup_context"] = restore_backup_context __props__.__dict__["root_password"] = None if root_password is None else pulumi.Output.secret(root_password) __props__.__dict__["settings"] = settings @@ -1230,6 +1332,7 @@ def get(resource_name: str, public_ip_address: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, replica_configuration: Optional[pulumi.Input[Union['DatabaseInstanceReplicaConfigurationArgs', 'DatabaseInstanceReplicaConfigurationArgsDict']]] = None, + replica_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, restore_backup_context: Optional[pulumi.Input[Union['DatabaseInstanceRestoreBackupContextArgs', 'DatabaseInstanceRestoreBackupContextArgsDict']]] = None, root_password: Optional[pulumi.Input[str]] = None, self_link: Optional[pulumi.Input[str]] = None, @@ -1260,7 +1363,7 @@ def get(resource_name: str, includes an up-to-date reference of supported versions. :param pulumi.Input[bool] deletion_protection: Whether or not to allow the provider to destroy the instance. Unless this field is set to false in state, a `destroy` or `update` command that deletes the instance will fail. Defaults to `true`. - :param pulumi.Input[str] dns_name: The dns name of the instance. + :param pulumi.Input[str] dns_name: The DNS name of the instance. See [Connect to an instance using Private Service Connect](https://cloud.google.com/sql/docs/mysql/configure-private-service-connect#view-summary-information-cloud-sql-instances-psc-enabled) for more details. :param pulumi.Input[str] encryption_key_name: The full path to the encryption key used for the CMEK disk encryption. Setting up disk encryption currently requires manual steps outside of this provider. The provided key must be in the same region as the SQL instance. In order @@ -1289,7 +1392,8 @@ def get(resource_name: str, - - - :param pulumi.Input[Union['DatabaseInstanceReplicaConfigurationArgs', 'DatabaseInstanceReplicaConfigurationArgsDict']] replica_configuration: The configuration for replication. The - configuration is detailed below. Valid only for MySQL instances. + configuration is detailed below. + :param pulumi.Input[Sequence[pulumi.Input[str]]] replica_names: List of replica names. Can be updated. :param pulumi.Input[Union['DatabaseInstanceRestoreBackupContextArgs', 'DatabaseInstanceRestoreBackupContextArgsDict']] restore_backup_context: The context needed to restore the database to a backup run. This field will cause the provider to trigger the database to restore from the backup run indicated. The configuration is detailed below. **NOTE:** Restoring from a backup is an imperative action and not recommended via this provider. Adding or modifying this @@ -1324,6 +1428,7 @@ def get(resource_name: str, __props__.__dict__["public_ip_address"] = public_ip_address __props__.__dict__["region"] = region __props__.__dict__["replica_configuration"] = replica_configuration + __props__.__dict__["replica_names"] = replica_names __props__.__dict__["restore_backup_context"] = restore_backup_context __props__.__dict__["root_password"] = root_password __props__.__dict__["self_link"] = self_link @@ -1388,7 +1493,7 @@ def deletion_protection(self) -> pulumi.Output[Optional[bool]]: @pulumi.getter(name="dnsName") def dns_name(self) -> pulumi.Output[str]: """ - The dns name of the instance. + The DNS name of the instance. See [Connect to an instance using Private Service Connect](https://cloud.google.com/sql/docs/mysql/configure-private-service-connect#view-summary-information-cloud-sql-instances-psc-enabled) for more details. """ return pulumi.get(self, "dns_name") @@ -1506,10 +1611,18 @@ def region(self) -> pulumi.Output[str]: def replica_configuration(self) -> pulumi.Output['outputs.DatabaseInstanceReplicaConfiguration']: """ The configuration for replication. The - configuration is detailed below. Valid only for MySQL instances. + configuration is detailed below. """ return pulumi.get(self, "replica_configuration") + @property + @pulumi.getter(name="replicaNames") + def replica_names(self) -> pulumi.Output[Sequence[str]]: + """ + List of replica names. Can be updated. + """ + return pulumi.get(self, "replica_names") + @property @pulumi.getter(name="restoreBackupContext") def restore_backup_context(self) -> pulumi.Output[Optional['outputs.DatabaseInstanceRestoreBackupContext']]: diff --git a/sdk/python/pulumi_gcp/sql/get_database_instance.py b/sdk/python/pulumi_gcp/sql/get_database_instance.py index 71d9c3a965..33ac490c8a 100644 --- a/sdk/python/pulumi_gcp/sql/get_database_instance.py +++ b/sdk/python/pulumi_gcp/sql/get_database_instance.py @@ -27,7 +27,7 @@ class GetDatabaseInstanceResult: """ A collection of values returned by getDatabaseInstance. """ - def __init__(__self__, available_maintenance_versions=None, clones=None, connection_name=None, database_version=None, deletion_protection=None, dns_name=None, encryption_key_name=None, first_ip_address=None, id=None, instance_type=None, ip_addresses=None, maintenance_version=None, master_instance_name=None, name=None, private_ip_address=None, project=None, psc_service_attachment_link=None, public_ip_address=None, region=None, replica_configurations=None, restore_backup_contexts=None, root_password=None, self_link=None, server_ca_certs=None, service_account_email_address=None, settings=None): + def __init__(__self__, available_maintenance_versions=None, clones=None, connection_name=None, database_version=None, deletion_protection=None, dns_name=None, encryption_key_name=None, first_ip_address=None, id=None, instance_type=None, ip_addresses=None, maintenance_version=None, master_instance_name=None, name=None, private_ip_address=None, project=None, psc_service_attachment_link=None, public_ip_address=None, region=None, replica_configurations=None, replica_names=None, restore_backup_contexts=None, root_password=None, self_link=None, server_ca_certs=None, service_account_email_address=None, settings=None): if available_maintenance_versions and not isinstance(available_maintenance_versions, list): raise TypeError("Expected argument 'available_maintenance_versions' to be a list") pulumi.set(__self__, "available_maintenance_versions", available_maintenance_versions) @@ -88,6 +88,9 @@ def __init__(__self__, available_maintenance_versions=None, clones=None, connect if replica_configurations and not isinstance(replica_configurations, list): raise TypeError("Expected argument 'replica_configurations' to be a list") pulumi.set(__self__, "replica_configurations", replica_configurations) + if replica_names and not isinstance(replica_names, list): + raise TypeError("Expected argument 'replica_names' to be a list") + pulumi.set(__self__, "replica_names", replica_names) if restore_backup_contexts and not isinstance(restore_backup_contexts, list): raise TypeError("Expected argument 'restore_backup_contexts' to be a list") pulumi.set(__self__, "restore_backup_contexts", restore_backup_contexts) @@ -210,6 +213,11 @@ def region(self) -> str: def replica_configurations(self) -> Sequence['outputs.GetDatabaseInstanceReplicaConfigurationResult']: return pulumi.get(self, "replica_configurations") + @property + @pulumi.getter(name="replicaNames") + def replica_names(self) -> Sequence[str]: + return pulumi.get(self, "replica_names") + @property @pulumi.getter(name="restoreBackupContexts") def restore_backup_contexts(self) -> Sequence['outputs.GetDatabaseInstanceRestoreBackupContextResult']: @@ -267,6 +275,7 @@ def __await__(self): public_ip_address=self.public_ip_address, region=self.region, replica_configurations=self.replica_configurations, + replica_names=self.replica_names, restore_backup_contexts=self.restore_backup_contexts, root_password=self.root_password, self_link=self.self_link, @@ -321,6 +330,7 @@ def get_database_instance(name: Optional[str] = None, public_ip_address=pulumi.get(__ret__, 'public_ip_address'), region=pulumi.get(__ret__, 'region'), replica_configurations=pulumi.get(__ret__, 'replica_configurations'), + replica_names=pulumi.get(__ret__, 'replica_names'), restore_backup_contexts=pulumi.get(__ret__, 'restore_backup_contexts'), root_password=pulumi.get(__ret__, 'root_password'), self_link=pulumi.get(__ret__, 'self_link'), @@ -372,6 +382,7 @@ def get_database_instance_output(name: Optional[pulumi.Input[str]] = None, public_ip_address=pulumi.get(__response__, 'public_ip_address'), region=pulumi.get(__response__, 'region'), replica_configurations=pulumi.get(__response__, 'replica_configurations'), + replica_names=pulumi.get(__response__, 'replica_names'), restore_backup_contexts=pulumi.get(__response__, 'restore_backup_contexts'), root_password=pulumi.get(__response__, 'root_password'), self_link=pulumi.get(__response__, 'self_link'), diff --git a/sdk/python/pulumi_gcp/sql/outputs.py b/sdk/python/pulumi_gcp/sql/outputs.py index a1a97eeaa7..528149bcfa 100644 --- a/sdk/python/pulumi_gcp/sql/outputs.py +++ b/sdk/python/pulumi_gcp/sql/outputs.py @@ -254,6 +254,8 @@ def __key_warning(key: str): suggest = None if key == "caCertificate": suggest = "ca_certificate" + elif key == "cascadableReplica": + suggest = "cascadable_replica" elif key == "clientCertificate": suggest = "client_certificate" elif key == "clientKey": @@ -284,6 +286,7 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, ca_certificate: Optional[str] = None, + cascadable_replica: Optional[bool] = None, client_certificate: Optional[str] = None, client_key: Optional[str] = None, connect_retry_interval: Optional[int] = None, @@ -297,6 +300,9 @@ def __init__(__self__, *, """ :param str ca_certificate: PEM representation of the trusted CA's x509 certificate. + :param bool cascadable_replica: Specifies if the replica is a cascadable replica. If true, instance must be in different region from primary. + + > **NOTE:** Only supported for SQL Server database. :param str client_certificate: PEM representation of the replica's x509 certificate. :param str client_key: PEM representation of the replica's private key. The @@ -321,6 +327,8 @@ def __init__(__self__, *, """ if ca_certificate is not None: pulumi.set(__self__, "ca_certificate", ca_certificate) + if cascadable_replica is not None: + pulumi.set(__self__, "cascadable_replica", cascadable_replica) if client_certificate is not None: pulumi.set(__self__, "client_certificate", client_certificate) if client_key is not None: @@ -351,6 +359,16 @@ def ca_certificate(self) -> Optional[str]: """ return pulumi.get(self, "ca_certificate") + @property + @pulumi.getter(name="cascadableReplica") + def cascadable_replica(self) -> Optional[bool]: + """ + Specifies if the replica is a cascadable replica. If true, instance must be in different region from primary. + + > **NOTE:** Only supported for SQL Server database. + """ + return pulumi.get(self, "cascadable_replica") + @property @pulumi.getter(name="clientCertificate") def client_certificate(self) -> Optional[str]: @@ -2324,6 +2342,7 @@ def type(self) -> str: class GetDatabaseInstanceReplicaConfigurationResult(dict): def __init__(__self__, *, ca_certificate: str, + cascadable_replica: bool, client_certificate: str, client_key: str, connect_retry_interval: int, @@ -2336,6 +2355,7 @@ def __init__(__self__, *, verify_server_certificate: bool): """ :param str ca_certificate: PEM representation of the trusted CA's x509 certificate. + :param bool cascadable_replica: Specifies if a SQL Server replica is a cascadable replica. A cascadable replica is a SQL Server cross region replica that supports replica(s) under it. :param str client_certificate: PEM representation of the replica's x509 certificate. :param str client_key: PEM representation of the replica's private key. The corresponding public key in encoded in the client_certificate. :param int connect_retry_interval: The number of seconds between connect retries. MySQL's default is 60 seconds. @@ -2348,6 +2368,7 @@ def __init__(__self__, *, :param bool verify_server_certificate: True if the master's common name value is checked during the SSL handshake. """ pulumi.set(__self__, "ca_certificate", ca_certificate) + pulumi.set(__self__, "cascadable_replica", cascadable_replica) pulumi.set(__self__, "client_certificate", client_certificate) pulumi.set(__self__, "client_key", client_key) pulumi.set(__self__, "connect_retry_interval", connect_retry_interval) @@ -2367,6 +2388,14 @@ def ca_certificate(self) -> str: """ return pulumi.get(self, "ca_certificate") + @property + @pulumi.getter(name="cascadableReplica") + def cascadable_replica(self) -> bool: + """ + Specifies if a SQL Server replica is a cascadable replica. A cascadable replica is a SQL Server cross region replica that supports replica(s) under it. + """ + return pulumi.get(self, "cascadable_replica") + @property @pulumi.getter(name="clientCertificate") def client_certificate(self) -> str: @@ -3511,6 +3540,7 @@ def __init__(__self__, *, public_ip_address: str, region: str, replica_configurations: Sequence['outputs.GetDatabaseInstancesInstanceReplicaConfigurationResult'], + replica_names: Sequence[str], restore_backup_contexts: Sequence['outputs.GetDatabaseInstancesInstanceRestoreBackupContextResult'], root_password: str, self_link: str, @@ -3530,6 +3560,7 @@ def __init__(__self__, *, :param str psc_service_attachment_link: The link to service attachment of PSC instance. :param str region: To filter out the Cloud SQL instances which are located in the specified region. :param Sequence['GetDatabaseInstancesInstanceReplicaConfigurationArgs'] replica_configurations: The configuration for replication. + :param Sequence[str] replica_names: The replicas of the instance. :param str root_password: Initial root password. Required for MS SQL Server. :param str self_link: The URI of the created resource. :param str service_account_email_address: The service account email address assigned to the instance. @@ -3554,6 +3585,7 @@ def __init__(__self__, *, pulumi.set(__self__, "public_ip_address", public_ip_address) pulumi.set(__self__, "region", region) pulumi.set(__self__, "replica_configurations", replica_configurations) + pulumi.set(__self__, "replica_names", replica_names) pulumi.set(__self__, "restore_backup_contexts", restore_backup_contexts) pulumi.set(__self__, "root_password", root_password) pulumi.set(__self__, "self_link", self_link) @@ -3692,6 +3724,14 @@ def replica_configurations(self) -> Sequence['outputs.GetDatabaseInstancesInstan """ return pulumi.get(self, "replica_configurations") + @property + @pulumi.getter(name="replicaNames") + def replica_names(self) -> Sequence[str]: + """ + The replicas of the instance. + """ + return pulumi.get(self, "replica_names") + @property @pulumi.getter(name="restoreBackupContexts") def restore_backup_contexts(self) -> Sequence['outputs.GetDatabaseInstancesInstanceRestoreBackupContextResult']: @@ -3827,6 +3867,7 @@ def type(self) -> str: class GetDatabaseInstancesInstanceReplicaConfigurationResult(dict): def __init__(__self__, *, ca_certificate: str, + cascadable_replica: bool, client_certificate: str, client_key: str, connect_retry_interval: int, @@ -3839,6 +3880,7 @@ def __init__(__self__, *, verify_server_certificate: bool): """ :param str ca_certificate: PEM representation of the trusted CA's x509 certificate. + :param bool cascadable_replica: Specifies if a SQL Server replica is a cascadable replica. A cascadable replica is a SQL Server cross region replica that supports replica(s) under it. :param str client_certificate: PEM representation of the replica's x509 certificate. :param str client_key: PEM representation of the replica's private key. The corresponding public key in encoded in the client_certificate. :param int connect_retry_interval: The number of seconds between connect retries. MySQL's default is 60 seconds. @@ -3851,6 +3893,7 @@ def __init__(__self__, *, :param bool verify_server_certificate: True if the master's common name value is checked during the SSL handshake. """ pulumi.set(__self__, "ca_certificate", ca_certificate) + pulumi.set(__self__, "cascadable_replica", cascadable_replica) pulumi.set(__self__, "client_certificate", client_certificate) pulumi.set(__self__, "client_key", client_key) pulumi.set(__self__, "connect_retry_interval", connect_retry_interval) @@ -3870,6 +3913,14 @@ def ca_certificate(self) -> str: """ return pulumi.get(self, "ca_certificate") + @property + @pulumi.getter(name="cascadableReplica") + def cascadable_replica(self) -> bool: + """ + Specifies if a SQL Server replica is a cascadable replica. A cascadable replica is a SQL Server cross region replica that supports replica(s) under it. + """ + return pulumi.get(self, "cascadable_replica") + @property @pulumi.getter(name="clientCertificate") def client_certificate(self) -> str: diff --git a/sdk/python/pulumi_gcp/storage/_inputs.py b/sdk/python/pulumi_gcp/storage/_inputs.py index 317a51f52d..6f5995dfa4 100644 --- a/sdk/python/pulumi_gcp/storage/_inputs.py +++ b/sdk/python/pulumi_gcp/storage/_inputs.py @@ -1683,7 +1683,7 @@ class InsightsReportConfigObjectMetadataReportOptionsArgsDict(TypedDict): """ storage_filters: NotRequired[pulumi.Input['InsightsReportConfigObjectMetadataReportOptionsStorageFiltersArgsDict']] """ - A nested object resource + A nested object resource. Structure is documented below. """ elif False: @@ -1699,7 +1699,7 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] metadata_fields: The metadata fields included in an inventory report. :param pulumi.Input['InsightsReportConfigObjectMetadataReportOptionsStorageDestinationOptionsArgs'] storage_destination_options: Options for where the inventory reports are stored. Structure is documented below. - :param pulumi.Input['InsightsReportConfigObjectMetadataReportOptionsStorageFiltersArgs'] storage_filters: A nested object resource + :param pulumi.Input['InsightsReportConfigObjectMetadataReportOptionsStorageFiltersArgs'] storage_filters: A nested object resource. Structure is documented below. """ pulumi.set(__self__, "metadata_fields", metadata_fields) @@ -1736,7 +1736,7 @@ def storage_destination_options(self, value: pulumi.Input['InsightsReportConfigO @pulumi.getter(name="storageFilters") def storage_filters(self) -> Optional[pulumi.Input['InsightsReportConfigObjectMetadataReportOptionsStorageFiltersArgs']]: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "storage_filters") diff --git a/sdk/python/pulumi_gcp/storage/outputs.py b/sdk/python/pulumi_gcp/storage/outputs.py index d25cc47310..0ec6556dbd 100644 --- a/sdk/python/pulumi_gcp/storage/outputs.py +++ b/sdk/python/pulumi_gcp/storage/outputs.py @@ -1338,7 +1338,7 @@ def __init__(__self__, *, :param Sequence[str] metadata_fields: The metadata fields included in an inventory report. :param 'InsightsReportConfigObjectMetadataReportOptionsStorageDestinationOptionsArgs' storage_destination_options: Options for where the inventory reports are stored. Structure is documented below. - :param 'InsightsReportConfigObjectMetadataReportOptionsStorageFiltersArgs' storage_filters: A nested object resource + :param 'InsightsReportConfigObjectMetadataReportOptionsStorageFiltersArgs' storage_filters: A nested object resource. Structure is documented below. """ pulumi.set(__self__, "metadata_fields", metadata_fields) @@ -1367,7 +1367,7 @@ def storage_destination_options(self) -> 'outputs.InsightsReportConfigObjectMeta @pulumi.getter(name="storageFilters") def storage_filters(self) -> Optional['outputs.InsightsReportConfigObjectMetadataReportOptionsStorageFilters']: """ - A nested object resource + A nested object resource. Structure is documented below. """ return pulumi.get(self, "storage_filters") diff --git a/sdk/python/pulumi_gcp/tags/tag_binding.py b/sdk/python/pulumi_gcp/tags/tag_binding.py index d5f4b104d8..3b0474b6eb 100644 --- a/sdk/python/pulumi_gcp/tags/tag_binding.py +++ b/sdk/python/pulumi_gcp/tags/tag_binding.py @@ -157,12 +157,12 @@ def __init__(__self__, short_name="keyname", description="For keyname resources.") value = gcp.tags.TagValue("value", - parent=key.name.apply(lambda name: f"tagKeys/{name}"), + parent=key.id, short_name="valuename", description="For valuename resources.") binding = gcp.tags.TagBinding("binding", parent=project.number.apply(lambda number: f"//cloudresourcemanager.googleapis.com/projects/{number}"), - tag_value=value.name.apply(lambda name: f"tagValues/{name}")) + tag_value=value.id) ``` ## Import @@ -224,12 +224,12 @@ def __init__(__self__, short_name="keyname", description="For keyname resources.") value = gcp.tags.TagValue("value", - parent=key.name.apply(lambda name: f"tagKeys/{name}"), + parent=key.id, short_name="valuename", description="For valuename resources.") binding = gcp.tags.TagBinding("binding", parent=project.number.apply(lambda number: f"//cloudresourcemanager.googleapis.com/projects/{number}"), - tag_value=value.name.apply(lambda name: f"tagValues/{name}")) + tag_value=value.id) ``` ## Import diff --git a/sdk/python/pulumi_gcp/tags/tag_value.py b/sdk/python/pulumi_gcp/tags/tag_value.py index a83f0b5f03..a221c72426 100644 --- a/sdk/python/pulumi_gcp/tags/tag_value.py +++ b/sdk/python/pulumi_gcp/tags/tag_value.py @@ -241,7 +241,7 @@ def __init__(__self__, short_name="keyname", description="For keyname resources.") value = gcp.tags.TagValue("value", - parent=key.name.apply(lambda name: f"tagKeys/{name}"), + parent=key.id, short_name="valuename", description="For valuename resources.") ``` @@ -302,7 +302,7 @@ def __init__(__self__, short_name="keyname", description="For keyname resources.") value = gcp.tags.TagValue("value", - parent=key.name.apply(lambda name: f"tagKeys/{name}"), + parent=key.id, short_name="valuename", description="For valuename resources.") ``` diff --git a/sdk/python/pulumi_gcp/transcoder/job.py b/sdk/python/pulumi_gcp/transcoder/job.py index b1c73bfb0a..4c9f598e9b 100644 --- a/sdk/python/pulumi_gcp/transcoder/job.py +++ b/sdk/python/pulumi_gcp/transcoder/job.py @@ -1113,10 +1113,22 @@ def __init__(__self__, Job can be imported using any of these accepted formats: + * `{{project}}/{{name}}` + + * `{{project}} {{name}}` + * `{{name}}` When using the `pulumi import` command, Job can be imported using one of the formats above. For example: + ```sh + $ pulumi import gcp:transcoder/job:Job default {{project}}/{{name}} + ``` + + ```sh + $ pulumi import gcp:transcoder/job:Job default "{{project}} {{name}}" + ``` + ```sh $ pulumi import gcp:transcoder/job:Job default {{name}} ``` @@ -1903,10 +1915,22 @@ def __init__(__self__, Job can be imported using any of these accepted formats: + * `{{project}}/{{name}}` + + * `{{project}} {{name}}` + * `{{name}}` When using the `pulumi import` command, Job can be imported using one of the formats above. For example: + ```sh + $ pulumi import gcp:transcoder/job:Job default {{project}}/{{name}} + ``` + + ```sh + $ pulumi import gcp:transcoder/job:Job default "{{project}} {{name}}" + ``` + ```sh $ pulumi import gcp:transcoder/job:Job default {{name}} ``` diff --git a/sdk/python/pulumi_gcp/vertex/_inputs.py b/sdk/python/pulumi_gcp/vertex/_inputs.py index 0802f3c0d8..cf232c5e96 100644 --- a/sdk/python/pulumi_gcp/vertex/_inputs.py +++ b/sdk/python/pulumi_gcp/vertex/_inputs.py @@ -41,6 +41,12 @@ 'AiEndpointIamBindingConditionArgsDict', 'AiEndpointIamMemberConditionArgs', 'AiEndpointIamMemberConditionArgsDict', + 'AiEndpointPredictRequestResponseLoggingConfigArgs', + 'AiEndpointPredictRequestResponseLoggingConfigArgsDict', + 'AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs', + 'AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgsDict', + 'AiEndpointPrivateServiceConnectConfigArgs', + 'AiEndpointPrivateServiceConnectConfigArgsDict', 'AiFeatureGroupBigQueryArgs', 'AiFeatureGroupBigQueryArgsDict', 'AiFeatureGroupBigQueryBigQuerySourceArgs', @@ -1219,6 +1225,184 @@ def description(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "description", value) +if not MYPY: + class AiEndpointPredictRequestResponseLoggingConfigArgsDict(TypedDict): + bigquery_destination: NotRequired[pulumi.Input['AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgsDict']] + """ + BigQuery table for logging. If only given a project, a new dataset will be created with name `logging__` where will be made BigQuery-dataset-name compatible (e.g. most special characters will become underscores). If no table name is given, a new table will be created with name `request_response_logging` + Structure is documented below. + """ + enabled: NotRequired[pulumi.Input[bool]] + """ + If logging is enabled or not. + """ + sampling_rate: NotRequired[pulumi.Input[float]] + """ + Percentage of requests to be logged, expressed as a fraction in range(0,1] + """ +elif False: + AiEndpointPredictRequestResponseLoggingConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class AiEndpointPredictRequestResponseLoggingConfigArgs: + def __init__(__self__, *, + bigquery_destination: Optional[pulumi.Input['AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs']] = None, + enabled: Optional[pulumi.Input[bool]] = None, + sampling_rate: Optional[pulumi.Input[float]] = None): + """ + :param pulumi.Input['AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs'] bigquery_destination: BigQuery table for logging. If only given a project, a new dataset will be created with name `logging__` where will be made BigQuery-dataset-name compatible (e.g. most special characters will become underscores). If no table name is given, a new table will be created with name `request_response_logging` + Structure is documented below. + :param pulumi.Input[bool] enabled: If logging is enabled or not. + :param pulumi.Input[float] sampling_rate: Percentage of requests to be logged, expressed as a fraction in range(0,1] + """ + if bigquery_destination is not None: + pulumi.set(__self__, "bigquery_destination", bigquery_destination) + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if sampling_rate is not None: + pulumi.set(__self__, "sampling_rate", sampling_rate) + + @property + @pulumi.getter(name="bigqueryDestination") + def bigquery_destination(self) -> Optional[pulumi.Input['AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs']]: + """ + BigQuery table for logging. If only given a project, a new dataset will be created with name `logging__` where will be made BigQuery-dataset-name compatible (e.g. most special characters will become underscores). If no table name is given, a new table will be created with name `request_response_logging` + Structure is documented below. + """ + return pulumi.get(self, "bigquery_destination") + + @bigquery_destination.setter + def bigquery_destination(self, value: Optional[pulumi.Input['AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs']]): + pulumi.set(self, "bigquery_destination", value) + + @property + @pulumi.getter + def enabled(self) -> Optional[pulumi.Input[bool]]: + """ + If logging is enabled or not. + """ + return pulumi.get(self, "enabled") + + @enabled.setter + def enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "enabled", value) + + @property + @pulumi.getter(name="samplingRate") + def sampling_rate(self) -> Optional[pulumi.Input[float]]: + """ + Percentage of requests to be logged, expressed as a fraction in range(0,1] + """ + return pulumi.get(self, "sampling_rate") + + @sampling_rate.setter + def sampling_rate(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "sampling_rate", value) + + +if not MYPY: + class AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgsDict(TypedDict): + output_uri: NotRequired[pulumi.Input[str]] + """ + BigQuery URI to a project or table, up to 2000 characters long. When only the project is specified, the Dataset and Table is created. When the full table reference is specified, the Dataset must exist and table must not exist. Accepted forms: - BigQuery path. For example: `bq://projectId` or `bq://projectId.bqDatasetId` or `bq://projectId.bqDatasetId.bqTableId`. + """ +elif False: + AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs: + def __init__(__self__, *, + output_uri: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] output_uri: BigQuery URI to a project or table, up to 2000 characters long. When only the project is specified, the Dataset and Table is created. When the full table reference is specified, the Dataset must exist and table must not exist. Accepted forms: - BigQuery path. For example: `bq://projectId` or `bq://projectId.bqDatasetId` or `bq://projectId.bqDatasetId.bqTableId`. + """ + if output_uri is not None: + pulumi.set(__self__, "output_uri", output_uri) + + @property + @pulumi.getter(name="outputUri") + def output_uri(self) -> Optional[pulumi.Input[str]]: + """ + BigQuery URI to a project or table, up to 2000 characters long. When only the project is specified, the Dataset and Table is created. When the full table reference is specified, the Dataset must exist and table must not exist. Accepted forms: - BigQuery path. For example: `bq://projectId` or `bq://projectId.bqDatasetId` or `bq://projectId.bqDatasetId.bqTableId`. + """ + return pulumi.get(self, "output_uri") + + @output_uri.setter + def output_uri(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "output_uri", value) + + +if not MYPY: + class AiEndpointPrivateServiceConnectConfigArgsDict(TypedDict): + enable_private_service_connect: pulumi.Input[bool] + """ + Required. If true, expose the IndexEndpoint via private service connect. + """ + enable_secure_private_service_connect: NotRequired[pulumi.Input[bool]] + """ + If set to true, enable secure private service connect with IAM authorization. Otherwise, private service connect will be done without authorization. Note latency will be slightly increased if authorization is enabled. + """ + project_allowlists: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + A list of Projects from which the forwarding rule will target the service attachment. + """ +elif False: + AiEndpointPrivateServiceConnectConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class AiEndpointPrivateServiceConnectConfigArgs: + def __init__(__self__, *, + enable_private_service_connect: pulumi.Input[bool], + enable_secure_private_service_connect: Optional[pulumi.Input[bool]] = None, + project_allowlists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + :param pulumi.Input[bool] enable_private_service_connect: Required. If true, expose the IndexEndpoint via private service connect. + :param pulumi.Input[bool] enable_secure_private_service_connect: If set to true, enable secure private service connect with IAM authorization. Otherwise, private service connect will be done without authorization. Note latency will be slightly increased if authorization is enabled. + :param pulumi.Input[Sequence[pulumi.Input[str]]] project_allowlists: A list of Projects from which the forwarding rule will target the service attachment. + """ + pulumi.set(__self__, "enable_private_service_connect", enable_private_service_connect) + if enable_secure_private_service_connect is not None: + pulumi.set(__self__, "enable_secure_private_service_connect", enable_secure_private_service_connect) + if project_allowlists is not None: + pulumi.set(__self__, "project_allowlists", project_allowlists) + + @property + @pulumi.getter(name="enablePrivateServiceConnect") + def enable_private_service_connect(self) -> pulumi.Input[bool]: + """ + Required. If true, expose the IndexEndpoint via private service connect. + """ + return pulumi.get(self, "enable_private_service_connect") + + @enable_private_service_connect.setter + def enable_private_service_connect(self, value: pulumi.Input[bool]): + pulumi.set(self, "enable_private_service_connect", value) + + @property + @pulumi.getter(name="enableSecurePrivateServiceConnect") + def enable_secure_private_service_connect(self) -> Optional[pulumi.Input[bool]]: + """ + If set to true, enable secure private service connect with IAM authorization. Otherwise, private service connect will be done without authorization. Note latency will be slightly increased if authorization is enabled. + """ + return pulumi.get(self, "enable_secure_private_service_connect") + + @enable_secure_private_service_connect.setter + def enable_secure_private_service_connect(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "enable_secure_private_service_connect", value) + + @property + @pulumi.getter(name="projectAllowlists") + def project_allowlists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + A list of Projects from which the forwarding rule will target the service attachment. + """ + return pulumi.get(self, "project_allowlists") + + @project_allowlists.setter + def project_allowlists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "project_allowlists", value) + + if not MYPY: class AiFeatureGroupBigQueryArgsDict(TypedDict): big_query_source: pulumi.Input['AiFeatureGroupBigQueryBigQuerySourceArgsDict'] diff --git a/sdk/python/pulumi_gcp/vertex/ai_endpoint.py b/sdk/python/pulumi_gcp/vertex/ai_endpoint.py index 8635b1be0c..8b52287116 100644 --- a/sdk/python/pulumi_gcp/vertex/ai_endpoint.py +++ b/sdk/python/pulumi_gcp/vertex/ai_endpoint.py @@ -23,13 +23,17 @@ class AiEndpointArgs: def __init__(__self__, *, display_name: pulumi.Input[str], location: pulumi.Input[str], + dedicated_endpoint_enabled: Optional[pulumi.Input[bool]] = None, description: Optional[pulumi.Input[str]] = None, encryption_spec: Optional[pulumi.Input['AiEndpointEncryptionSpecArgs']] = None, labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, name: Optional[pulumi.Input[str]] = None, network: Optional[pulumi.Input[str]] = None, + predict_request_response_logging_config: Optional[pulumi.Input['AiEndpointPredictRequestResponseLoggingConfigArgs']] = None, + private_service_connect_config: Optional[pulumi.Input['AiEndpointPrivateServiceConnectConfigArgs']] = None, project: Optional[pulumi.Input[str]] = None, - region: Optional[pulumi.Input[str]] = None): + region: Optional[pulumi.Input[str]] = None, + traffic_split: Optional[pulumi.Input[str]] = None): """ The set of arguments for constructing a AiEndpoint resource. :param pulumi.Input[str] display_name: Required. The display name of the Endpoint. The name can be up to 128 characters long and can consist of any UTF-8 characters. @@ -37,6 +41,7 @@ def __init__(__self__, *, - - - + :param pulumi.Input[bool] dedicated_endpoint_enabled: If true, the endpoint will be exposed through a dedicated DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS will be isolated from other users' traffic and will have better performance and reliability. Note: Once you enabled dedicated endpoint, you won't be able to send request to the shared DNS {region}-aiplatform.googleapis.com. The limitation will be removed soon. :param pulumi.Input[str] description: The description of the Endpoint. :param pulumi.Input['AiEndpointEncryptionSpecArgs'] encryption_spec: Customer-managed encryption key spec for an Endpoint. If set, this Endpoint and all sub-resources of this Endpoint will be secured by this key. Structure is documented below. @@ -44,13 +49,26 @@ def __init__(__self__, *, **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field `effective_labels` for all of the labels present on the resource. :param pulumi.Input[str] name: The resource name of the Endpoint. The name must be numeric with no leading zeros and can be at most 10 digits. - :param pulumi.Input[str] network: The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. + :param pulumi.Input[str] network: The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. Only one of the fields, `network` or `privateServiceConnectConfig`, can be set. + :param pulumi.Input['AiEndpointPredictRequestResponseLoggingConfigArgs'] predict_request_response_logging_config: Configures the request-response logging for online prediction. + Structure is documented below. + :param pulumi.Input['AiEndpointPrivateServiceConnectConfigArgs'] private_service_connect_config: Configuration for private service connect. `network` and `privateServiceConnectConfig` are mutually exclusive. + Structure is documented below. :param pulumi.Input[str] project: The ID of the project in which the resource belongs. If it is not provided, the provider project is used. :param pulumi.Input[str] region: The region for the resource + :param pulumi.Input[str] traffic_split: A map from a DeployedModel's id to the percentage of this Endpoint's traffic that should be forwarded to that DeployedModel. + If a DeployedModel's id is not listed in this map, then it receives no traffic. + The traffic percentage values must add up to 100, or map must be empty if the Endpoint is to not accept any traffic at a moment. + > **Note:** The `traffic_split` setting only applies after a model has been deployed to the endpoint. Re-applying a `vertex.AiEndpoint` + resource without updating the `traffic_split` post-deployment may lead to your deployed `traffic_split` being lost; see + the `deployModel` [example](https://cloud.google.com/vertex-ai/docs/general/deployment#deploy_a_model_to_an_endpoint) and + [documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1beta1/projects.locations.endpoints/deployModel) for details. """ pulumi.set(__self__, "display_name", display_name) pulumi.set(__self__, "location", location) + if dedicated_endpoint_enabled is not None: + pulumi.set(__self__, "dedicated_endpoint_enabled", dedicated_endpoint_enabled) if description is not None: pulumi.set(__self__, "description", description) if encryption_spec is not None: @@ -61,10 +79,16 @@ def __init__(__self__, *, pulumi.set(__self__, "name", name) if network is not None: pulumi.set(__self__, "network", network) + if predict_request_response_logging_config is not None: + pulumi.set(__self__, "predict_request_response_logging_config", predict_request_response_logging_config) + if private_service_connect_config is not None: + pulumi.set(__self__, "private_service_connect_config", private_service_connect_config) if project is not None: pulumi.set(__self__, "project", project) if region is not None: pulumi.set(__self__, "region", region) + if traffic_split is not None: + pulumi.set(__self__, "traffic_split", traffic_split) @property @pulumi.getter(name="displayName") @@ -93,6 +117,18 @@ def location(self) -> pulumi.Input[str]: def location(self, value: pulumi.Input[str]): pulumi.set(self, "location", value) + @property + @pulumi.getter(name="dedicatedEndpointEnabled") + def dedicated_endpoint_enabled(self) -> Optional[pulumi.Input[bool]]: + """ + If true, the endpoint will be exposed through a dedicated DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS will be isolated from other users' traffic and will have better performance and reliability. Note: Once you enabled dedicated endpoint, you won't be able to send request to the shared DNS {region}-aiplatform.googleapis.com. The limitation will be removed soon. + """ + return pulumi.get(self, "dedicated_endpoint_enabled") + + @dedicated_endpoint_enabled.setter + def dedicated_endpoint_enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "dedicated_endpoint_enabled", value) + @property @pulumi.getter def description(self) -> Optional[pulumi.Input[str]]: @@ -148,7 +184,7 @@ def name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def network(self) -> Optional[pulumi.Input[str]]: """ - The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. + The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. Only one of the fields, `network` or `privateServiceConnectConfig`, can be set. """ return pulumi.get(self, "network") @@ -156,6 +192,32 @@ def network(self) -> Optional[pulumi.Input[str]]: def network(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "network", value) + @property + @pulumi.getter(name="predictRequestResponseLoggingConfig") + def predict_request_response_logging_config(self) -> Optional[pulumi.Input['AiEndpointPredictRequestResponseLoggingConfigArgs']]: + """ + Configures the request-response logging for online prediction. + Structure is documented below. + """ + return pulumi.get(self, "predict_request_response_logging_config") + + @predict_request_response_logging_config.setter + def predict_request_response_logging_config(self, value: Optional[pulumi.Input['AiEndpointPredictRequestResponseLoggingConfigArgs']]): + pulumi.set(self, "predict_request_response_logging_config", value) + + @property + @pulumi.getter(name="privateServiceConnectConfig") + def private_service_connect_config(self) -> Optional[pulumi.Input['AiEndpointPrivateServiceConnectConfigArgs']]: + """ + Configuration for private service connect. `network` and `privateServiceConnectConfig` are mutually exclusive. + Structure is documented below. + """ + return pulumi.get(self, "private_service_connect_config") + + @private_service_connect_config.setter + def private_service_connect_config(self, value: Optional[pulumi.Input['AiEndpointPrivateServiceConnectConfigArgs']]): + pulumi.set(self, "private_service_connect_config", value) + @property @pulumi.getter def project(self) -> Optional[pulumi.Input[str]]: @@ -181,11 +243,31 @@ def region(self) -> Optional[pulumi.Input[str]]: def region(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "region", value) + @property + @pulumi.getter(name="trafficSplit") + def traffic_split(self) -> Optional[pulumi.Input[str]]: + """ + A map from a DeployedModel's id to the percentage of this Endpoint's traffic that should be forwarded to that DeployedModel. + If a DeployedModel's id is not listed in this map, then it receives no traffic. + The traffic percentage values must add up to 100, or map must be empty if the Endpoint is to not accept any traffic at a moment. + > **Note:** The `traffic_split` setting only applies after a model has been deployed to the endpoint. Re-applying a `vertex.AiEndpoint` + resource without updating the `traffic_split` post-deployment may lead to your deployed `traffic_split` being lost; see + the `deployModel` [example](https://cloud.google.com/vertex-ai/docs/general/deployment#deploy_a_model_to_an_endpoint) and + [documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1beta1/projects.locations.endpoints/deployModel) for details. + """ + return pulumi.get(self, "traffic_split") + + @traffic_split.setter + def traffic_split(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "traffic_split", value) + @pulumi.input_type class _AiEndpointState: def __init__(__self__, *, create_time: Optional[pulumi.Input[str]] = None, + dedicated_endpoint_dns: Optional[pulumi.Input[str]] = None, + dedicated_endpoint_enabled: Optional[pulumi.Input[bool]] = None, deployed_models: Optional[pulumi.Input[Sequence[pulumi.Input['AiEndpointDeployedModelArgs']]]] = None, description: Optional[pulumi.Input[str]] = None, display_name: Optional[pulumi.Input[str]] = None, @@ -197,14 +279,19 @@ def __init__(__self__, *, model_deployment_monitoring_job: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, network: Optional[pulumi.Input[str]] = None, + predict_request_response_logging_config: Optional[pulumi.Input['AiEndpointPredictRequestResponseLoggingConfigArgs']] = None, + private_service_connect_config: Optional[pulumi.Input['AiEndpointPrivateServiceConnectConfigArgs']] = None, project: Optional[pulumi.Input[str]] = None, pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, region: Optional[pulumi.Input[str]] = None, + traffic_split: Optional[pulumi.Input[str]] = None, update_time: Optional[pulumi.Input[str]] = None): """ Input properties used for looking up and filtering AiEndpoint resources. :param pulumi.Input[str] create_time: (Output) Output only. Timestamp when the DeployedModel was created. + :param pulumi.Input[str] dedicated_endpoint_dns: Output only. DNS of the dedicated endpoint. Will only be populated if dedicatedEndpointEnabled is true. Format: `https://{endpointId}.{region}-{projectNumber}.prediction.vertexai.goog`. + :param pulumi.Input[bool] dedicated_endpoint_enabled: If true, the endpoint will be exposed through a dedicated DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS will be isolated from other users' traffic and will have better performance and reliability. Note: Once you enabled dedicated endpoint, you won't be able to send request to the shared DNS {region}-aiplatform.googleapis.com. The limitation will be removed soon. :param pulumi.Input[Sequence[pulumi.Input['AiEndpointDeployedModelArgs']]] deployed_models: Output only. The models deployed in this Endpoint. To add or remove DeployedModels use EndpointService.DeployModel and EndpointService.UndeployModel respectively. Models can also be deployed and undeployed using the [Cloud Console](https://console.cloud.google.com/vertex-ai/). Structure is documented below. :param pulumi.Input[str] description: The description of the Endpoint. @@ -222,16 +309,31 @@ def __init__(__self__, *, - - - :param pulumi.Input[str] model_deployment_monitoring_job: Output only. Resource name of the Model Monitoring job associated with this Endpoint if monitoring is enabled by CreateModelDeploymentMonitoringJob. Format: `projects/{project}/locations/{location}/modelDeploymentMonitoringJobs/{model_deployment_monitoring_job}` :param pulumi.Input[str] name: The resource name of the Endpoint. The name must be numeric with no leading zeros and can be at most 10 digits. - :param pulumi.Input[str] network: The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. + :param pulumi.Input[str] network: The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. Only one of the fields, `network` or `privateServiceConnectConfig`, can be set. + :param pulumi.Input['AiEndpointPredictRequestResponseLoggingConfigArgs'] predict_request_response_logging_config: Configures the request-response logging for online prediction. + Structure is documented below. + :param pulumi.Input['AiEndpointPrivateServiceConnectConfigArgs'] private_service_connect_config: Configuration for private service connect. `network` and `privateServiceConnectConfig` are mutually exclusive. + Structure is documented below. :param pulumi.Input[str] project: The ID of the project in which the resource belongs. If it is not provided, the provider project is used. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource and default labels configured on the provider. :param pulumi.Input[str] region: The region for the resource + :param pulumi.Input[str] traffic_split: A map from a DeployedModel's id to the percentage of this Endpoint's traffic that should be forwarded to that DeployedModel. + If a DeployedModel's id is not listed in this map, then it receives no traffic. + The traffic percentage values must add up to 100, or map must be empty if the Endpoint is to not accept any traffic at a moment. + > **Note:** The `traffic_split` setting only applies after a model has been deployed to the endpoint. Re-applying a `vertex.AiEndpoint` + resource without updating the `traffic_split` post-deployment may lead to your deployed `traffic_split` being lost; see + the `deployModel` [example](https://cloud.google.com/vertex-ai/docs/general/deployment#deploy_a_model_to_an_endpoint) and + [documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1beta1/projects.locations.endpoints/deployModel) for details. :param pulumi.Input[str] update_time: Output only. Timestamp when this Endpoint was last updated. """ if create_time is not None: pulumi.set(__self__, "create_time", create_time) + if dedicated_endpoint_dns is not None: + pulumi.set(__self__, "dedicated_endpoint_dns", dedicated_endpoint_dns) + if dedicated_endpoint_enabled is not None: + pulumi.set(__self__, "dedicated_endpoint_enabled", dedicated_endpoint_enabled) if deployed_models is not None: pulumi.set(__self__, "deployed_models", deployed_models) if description is not None: @@ -254,12 +356,18 @@ def __init__(__self__, *, pulumi.set(__self__, "name", name) if network is not None: pulumi.set(__self__, "network", network) + if predict_request_response_logging_config is not None: + pulumi.set(__self__, "predict_request_response_logging_config", predict_request_response_logging_config) + if private_service_connect_config is not None: + pulumi.set(__self__, "private_service_connect_config", private_service_connect_config) if project is not None: pulumi.set(__self__, "project", project) if pulumi_labels is not None: pulumi.set(__self__, "pulumi_labels", pulumi_labels) if region is not None: pulumi.set(__self__, "region", region) + if traffic_split is not None: + pulumi.set(__self__, "traffic_split", traffic_split) if update_time is not None: pulumi.set(__self__, "update_time", update_time) @@ -276,6 +384,30 @@ def create_time(self) -> Optional[pulumi.Input[str]]: def create_time(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "create_time", value) + @property + @pulumi.getter(name="dedicatedEndpointDns") + def dedicated_endpoint_dns(self) -> Optional[pulumi.Input[str]]: + """ + Output only. DNS of the dedicated endpoint. Will only be populated if dedicatedEndpointEnabled is true. Format: `https://{endpointId}.{region}-{projectNumber}.prediction.vertexai.goog`. + """ + return pulumi.get(self, "dedicated_endpoint_dns") + + @dedicated_endpoint_dns.setter + def dedicated_endpoint_dns(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "dedicated_endpoint_dns", value) + + @property + @pulumi.getter(name="dedicatedEndpointEnabled") + def dedicated_endpoint_enabled(self) -> Optional[pulumi.Input[bool]]: + """ + If true, the endpoint will be exposed through a dedicated DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS will be isolated from other users' traffic and will have better performance and reliability. Note: Once you enabled dedicated endpoint, you won't be able to send request to the shared DNS {region}-aiplatform.googleapis.com. The limitation will be removed soon. + """ + return pulumi.get(self, "dedicated_endpoint_enabled") + + @dedicated_endpoint_enabled.setter + def dedicated_endpoint_enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "dedicated_endpoint_enabled", value) + @property @pulumi.getter(name="deployedModels") def deployed_models(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AiEndpointDeployedModelArgs']]]]: @@ -407,7 +539,7 @@ def name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def network(self) -> Optional[pulumi.Input[str]]: """ - The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. + The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. Only one of the fields, `network` or `privateServiceConnectConfig`, can be set. """ return pulumi.get(self, "network") @@ -415,6 +547,32 @@ def network(self) -> Optional[pulumi.Input[str]]: def network(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "network", value) + @property + @pulumi.getter(name="predictRequestResponseLoggingConfig") + def predict_request_response_logging_config(self) -> Optional[pulumi.Input['AiEndpointPredictRequestResponseLoggingConfigArgs']]: + """ + Configures the request-response logging for online prediction. + Structure is documented below. + """ + return pulumi.get(self, "predict_request_response_logging_config") + + @predict_request_response_logging_config.setter + def predict_request_response_logging_config(self, value: Optional[pulumi.Input['AiEndpointPredictRequestResponseLoggingConfigArgs']]): + pulumi.set(self, "predict_request_response_logging_config", value) + + @property + @pulumi.getter(name="privateServiceConnectConfig") + def private_service_connect_config(self) -> Optional[pulumi.Input['AiEndpointPrivateServiceConnectConfigArgs']]: + """ + Configuration for private service connect. `network` and `privateServiceConnectConfig` are mutually exclusive. + Structure is documented below. + """ + return pulumi.get(self, "private_service_connect_config") + + @private_service_connect_config.setter + def private_service_connect_config(self, value: Optional[pulumi.Input['AiEndpointPrivateServiceConnectConfigArgs']]): + pulumi.set(self, "private_service_connect_config", value) + @property @pulumi.getter def project(self) -> Optional[pulumi.Input[str]]: @@ -453,6 +611,24 @@ def region(self) -> Optional[pulumi.Input[str]]: def region(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "region", value) + @property + @pulumi.getter(name="trafficSplit") + def traffic_split(self) -> Optional[pulumi.Input[str]]: + """ + A map from a DeployedModel's id to the percentage of this Endpoint's traffic that should be forwarded to that DeployedModel. + If a DeployedModel's id is not listed in this map, then it receives no traffic. + The traffic percentage values must add up to 100, or map must be empty if the Endpoint is to not accept any traffic at a moment. + > **Note:** The `traffic_split` setting only applies after a model has been deployed to the endpoint. Re-applying a `vertex.AiEndpoint` + resource without updating the `traffic_split` post-deployment may lead to your deployed `traffic_split` being lost; see + the `deployModel` [example](https://cloud.google.com/vertex-ai/docs/general/deployment#deploy_a_model_to_an_endpoint) and + [documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1beta1/projects.locations.endpoints/deployModel) for details. + """ + return pulumi.get(self, "traffic_split") + + @traffic_split.setter + def traffic_split(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "traffic_split", value) + @property @pulumi.getter(name="updateTime") def update_time(self) -> Optional[pulumi.Input[str]]: @@ -471,6 +647,7 @@ class AiEndpoint(pulumi.CustomResource): def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + dedicated_endpoint_enabled: Optional[pulumi.Input[bool]] = None, description: Optional[pulumi.Input[str]] = None, display_name: Optional[pulumi.Input[str]] = None, encryption_spec: Optional[pulumi.Input[Union['AiEndpointEncryptionSpecArgs', 'AiEndpointEncryptionSpecArgsDict']]] = None, @@ -478,8 +655,11 @@ def __init__(__self__, location: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, network: Optional[pulumi.Input[str]] = None, + predict_request_response_logging_config: Optional[pulumi.Input[Union['AiEndpointPredictRequestResponseLoggingConfigArgs', 'AiEndpointPredictRequestResponseLoggingConfigArgsDict']]] = None, + private_service_connect_config: Optional[pulumi.Input[Union['AiEndpointPrivateServiceConnectConfigArgs', 'AiEndpointPrivateServiceConnectConfigArgsDict']]] = None, project: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, + traffic_split: Optional[pulumi.Input[str]] = None, __props__=None): """ Models are deployed into it, and afterwards Endpoint is called to obtain predictions and explanations. @@ -496,6 +676,7 @@ def __init__(__self__, ```python import pulumi + import json import pulumi_gcp as gcp vertex_network = gcp.compute.Network("vertex_network", name="network-name") @@ -509,6 +690,12 @@ def __init__(__self__, network=vertex_network.id, service="servicenetworking.googleapis.com", reserved_peering_ranges=[vertex_range.name]) + bq_dataset = gcp.bigquery.Dataset("bq_dataset", + dataset_id="some_dataset", + friendly_name="logging dataset", + description="This is a dataset that requests are logged to", + location="US", + delete_contents_on_destroy=True) project = gcp.organizations.get_project() endpoint = gcp.vertex.AiEndpoint("endpoint", name="endpoint-name", @@ -523,12 +710,62 @@ def __init__(__self__, encryption_spec={ "kms_key_name": "kms-name", }, + predict_request_response_logging_config={ + "bigquery_destination": { + "output_uri": bq_dataset.dataset_id.apply(lambda dataset_id: f"bq://{project.project_id}.{dataset_id}.request_response_logging"), + }, + "enabled": True, + "sampling_rate": 0.1, + }, + traffic_split=json.dumps({ + "12345": 100, + }), opts = pulumi.ResourceOptions(depends_on=[vertex_vpc_connection])) crypto_key = gcp.kms.CryptoKeyIAMMember("crypto_key", crypto_key_id="kms-name", role="roles/cloudkms.cryptoKeyEncrypterDecrypter", member=f"serviceAccount:service-{project.number}@gcp-sa-aiplatform.iam.gserviceaccount.com") ``` + ### Vertex Ai Endpoint Private Service Connect + + ```python + import pulumi + import pulumi_gcp as gcp + + project = gcp.organizations.get_project() + endpoint = gcp.vertex.AiEndpoint("endpoint", + name="endpoint-name_69391", + display_name="sample-endpoint", + description="A sample vertex endpoint", + location="us-central1", + region="us-central1", + labels={ + "label-one": "value-one", + }, + private_service_connect_config={ + "enable_private_service_connect": True, + "project_allowlists": [project.project_id], + "enable_secure_private_service_connect": False, + }) + ``` + ### Vertex Ai Endpoint Dedicated Endpoint + + ```python + import pulumi + import pulumi_gcp as gcp + + endpoint = gcp.vertex.AiEndpoint("endpoint", + name="endpoint-name_8270", + display_name="sample-endpoint", + description="A sample vertex endpoint", + location="us-central1", + region="us-central1", + labels={ + "label-one": "value-one", + }, + dedicated_endpoint_enabled=True) + project = gcp.organizations.get_project() + ``` ## Import @@ -556,6 +793,7 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[bool] dedicated_endpoint_enabled: If true, the endpoint will be exposed through a dedicated DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS will be isolated from other users' traffic and will have better performance and reliability. Note: Once you enabled dedicated endpoint, you won't be able to send request to the shared DNS {region}-aiplatform.googleapis.com. The limitation will be removed soon. :param pulumi.Input[str] description: The description of the Endpoint. :param pulumi.Input[str] display_name: Required. The display name of the Endpoint. The name can be up to 128 characters long and can consist of any UTF-8 characters. :param pulumi.Input[Union['AiEndpointEncryptionSpecArgs', 'AiEndpointEncryptionSpecArgsDict']] encryption_spec: Customer-managed encryption key spec for an Endpoint. If set, this Endpoint and all sub-resources of this Endpoint will be secured by this key. @@ -568,10 +806,21 @@ def __init__(__self__, - - - :param pulumi.Input[str] name: The resource name of the Endpoint. The name must be numeric with no leading zeros and can be at most 10 digits. - :param pulumi.Input[str] network: The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. + :param pulumi.Input[str] network: The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. Only one of the fields, `network` or `privateServiceConnectConfig`, can be set. + :param pulumi.Input[Union['AiEndpointPredictRequestResponseLoggingConfigArgs', 'AiEndpointPredictRequestResponseLoggingConfigArgsDict']] predict_request_response_logging_config: Configures the request-response logging for online prediction. + Structure is documented below. + :param pulumi.Input[Union['AiEndpointPrivateServiceConnectConfigArgs', 'AiEndpointPrivateServiceConnectConfigArgsDict']] private_service_connect_config: Configuration for private service connect. `network` and `privateServiceConnectConfig` are mutually exclusive. + Structure is documented below. :param pulumi.Input[str] project: The ID of the project in which the resource belongs. If it is not provided, the provider project is used. :param pulumi.Input[str] region: The region for the resource + :param pulumi.Input[str] traffic_split: A map from a DeployedModel's id to the percentage of this Endpoint's traffic that should be forwarded to that DeployedModel. + If a DeployedModel's id is not listed in this map, then it receives no traffic. + The traffic percentage values must add up to 100, or map must be empty if the Endpoint is to not accept any traffic at a moment. + > **Note:** The `traffic_split` setting only applies after a model has been deployed to the endpoint. Re-applying a `vertex.AiEndpoint` + resource without updating the `traffic_split` post-deployment may lead to your deployed `traffic_split` being lost; see + the `deployModel` [example](https://cloud.google.com/vertex-ai/docs/general/deployment#deploy_a_model_to_an_endpoint) and + [documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1beta1/projects.locations.endpoints/deployModel) for details. """ ... @overload @@ -594,6 +843,7 @@ def __init__(__self__, ```python import pulumi + import json import pulumi_gcp as gcp vertex_network = gcp.compute.Network("vertex_network", name="network-name") @@ -607,6 +857,12 @@ def __init__(__self__, network=vertex_network.id, service="servicenetworking.googleapis.com", reserved_peering_ranges=[vertex_range.name]) + bq_dataset = gcp.bigquery.Dataset("bq_dataset", + dataset_id="some_dataset", + friendly_name="logging dataset", + description="This is a dataset that requests are logged to", + location="US", + delete_contents_on_destroy=True) project = gcp.organizations.get_project() endpoint = gcp.vertex.AiEndpoint("endpoint", name="endpoint-name", @@ -621,12 +877,62 @@ def __init__(__self__, encryption_spec={ "kms_key_name": "kms-name", }, + predict_request_response_logging_config={ + "bigquery_destination": { + "output_uri": bq_dataset.dataset_id.apply(lambda dataset_id: f"bq://{project.project_id}.{dataset_id}.request_response_logging"), + }, + "enabled": True, + "sampling_rate": 0.1, + }, + traffic_split=json.dumps({ + "12345": 100, + }), opts = pulumi.ResourceOptions(depends_on=[vertex_vpc_connection])) crypto_key = gcp.kms.CryptoKeyIAMMember("crypto_key", crypto_key_id="kms-name", role="roles/cloudkms.cryptoKeyEncrypterDecrypter", member=f"serviceAccount:service-{project.number}@gcp-sa-aiplatform.iam.gserviceaccount.com") ``` + ### Vertex Ai Endpoint Private Service Connect + + ```python + import pulumi + import pulumi_gcp as gcp + + project = gcp.organizations.get_project() + endpoint = gcp.vertex.AiEndpoint("endpoint", + name="endpoint-name_69391", + display_name="sample-endpoint", + description="A sample vertex endpoint", + location="us-central1", + region="us-central1", + labels={ + "label-one": "value-one", + }, + private_service_connect_config={ + "enable_private_service_connect": True, + "project_allowlists": [project.project_id], + "enable_secure_private_service_connect": False, + }) + ``` + ### Vertex Ai Endpoint Dedicated Endpoint + + ```python + import pulumi + import pulumi_gcp as gcp + + endpoint = gcp.vertex.AiEndpoint("endpoint", + name="endpoint-name_8270", + display_name="sample-endpoint", + description="A sample vertex endpoint", + location="us-central1", + region="us-central1", + labels={ + "label-one": "value-one", + }, + dedicated_endpoint_enabled=True) + project = gcp.organizations.get_project() + ``` ## Import @@ -667,6 +973,7 @@ def __init__(__self__, resource_name: str, *args, **kwargs): def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + dedicated_endpoint_enabled: Optional[pulumi.Input[bool]] = None, description: Optional[pulumi.Input[str]] = None, display_name: Optional[pulumi.Input[str]] = None, encryption_spec: Optional[pulumi.Input[Union['AiEndpointEncryptionSpecArgs', 'AiEndpointEncryptionSpecArgsDict']]] = None, @@ -674,8 +981,11 @@ def _internal_init(__self__, location: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, network: Optional[pulumi.Input[str]] = None, + predict_request_response_logging_config: Optional[pulumi.Input[Union['AiEndpointPredictRequestResponseLoggingConfigArgs', 'AiEndpointPredictRequestResponseLoggingConfigArgsDict']]] = None, + private_service_connect_config: Optional[pulumi.Input[Union['AiEndpointPrivateServiceConnectConfigArgs', 'AiEndpointPrivateServiceConnectConfigArgsDict']]] = None, project: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, + traffic_split: Optional[pulumi.Input[str]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) if not isinstance(opts, pulumi.ResourceOptions): @@ -685,6 +995,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = AiEndpointArgs.__new__(AiEndpointArgs) + __props__.__dict__["dedicated_endpoint_enabled"] = dedicated_endpoint_enabled __props__.__dict__["description"] = description if display_name is None and not opts.urn: raise TypeError("Missing required property 'display_name'") @@ -696,9 +1007,13 @@ def _internal_init(__self__, __props__.__dict__["location"] = location __props__.__dict__["name"] = name __props__.__dict__["network"] = network + __props__.__dict__["predict_request_response_logging_config"] = predict_request_response_logging_config + __props__.__dict__["private_service_connect_config"] = private_service_connect_config __props__.__dict__["project"] = project __props__.__dict__["region"] = region + __props__.__dict__["traffic_split"] = traffic_split __props__.__dict__["create_time"] = None + __props__.__dict__["dedicated_endpoint_dns"] = None __props__.__dict__["deployed_models"] = None __props__.__dict__["effective_labels"] = None __props__.__dict__["etag"] = None @@ -718,6 +1033,8 @@ def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, create_time: Optional[pulumi.Input[str]] = None, + dedicated_endpoint_dns: Optional[pulumi.Input[str]] = None, + dedicated_endpoint_enabled: Optional[pulumi.Input[bool]] = None, deployed_models: Optional[pulumi.Input[Sequence[pulumi.Input[Union['AiEndpointDeployedModelArgs', 'AiEndpointDeployedModelArgsDict']]]]] = None, description: Optional[pulumi.Input[str]] = None, display_name: Optional[pulumi.Input[str]] = None, @@ -729,9 +1046,12 @@ def get(resource_name: str, model_deployment_monitoring_job: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, network: Optional[pulumi.Input[str]] = None, + predict_request_response_logging_config: Optional[pulumi.Input[Union['AiEndpointPredictRequestResponseLoggingConfigArgs', 'AiEndpointPredictRequestResponseLoggingConfigArgsDict']]] = None, + private_service_connect_config: Optional[pulumi.Input[Union['AiEndpointPrivateServiceConnectConfigArgs', 'AiEndpointPrivateServiceConnectConfigArgsDict']]] = None, project: Optional[pulumi.Input[str]] = None, pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, region: Optional[pulumi.Input[str]] = None, + traffic_split: Optional[pulumi.Input[str]] = None, update_time: Optional[pulumi.Input[str]] = None) -> 'AiEndpoint': """ Get an existing AiEndpoint resource's state with the given name, id, and optional extra @@ -742,6 +1062,8 @@ def get(resource_name: str, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] create_time: (Output) Output only. Timestamp when the DeployedModel was created. + :param pulumi.Input[str] dedicated_endpoint_dns: Output only. DNS of the dedicated endpoint. Will only be populated if dedicatedEndpointEnabled is true. Format: `https://{endpointId}.{region}-{projectNumber}.prediction.vertexai.goog`. + :param pulumi.Input[bool] dedicated_endpoint_enabled: If true, the endpoint will be exposed through a dedicated DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS will be isolated from other users' traffic and will have better performance and reliability. Note: Once you enabled dedicated endpoint, you won't be able to send request to the shared DNS {region}-aiplatform.googleapis.com. The limitation will be removed soon. :param pulumi.Input[Sequence[pulumi.Input[Union['AiEndpointDeployedModelArgs', 'AiEndpointDeployedModelArgsDict']]]] deployed_models: Output only. The models deployed in this Endpoint. To add or remove DeployedModels use EndpointService.DeployModel and EndpointService.UndeployModel respectively. Models can also be deployed and undeployed using the [Cloud Console](https://console.cloud.google.com/vertex-ai/). Structure is documented below. :param pulumi.Input[str] description: The description of the Endpoint. @@ -759,12 +1081,23 @@ def get(resource_name: str, - - - :param pulumi.Input[str] model_deployment_monitoring_job: Output only. Resource name of the Model Monitoring job associated with this Endpoint if monitoring is enabled by CreateModelDeploymentMonitoringJob. Format: `projects/{project}/locations/{location}/modelDeploymentMonitoringJobs/{model_deployment_monitoring_job}` :param pulumi.Input[str] name: The resource name of the Endpoint. The name must be numeric with no leading zeros and can be at most 10 digits. - :param pulumi.Input[str] network: The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. + :param pulumi.Input[str] network: The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. Only one of the fields, `network` or `privateServiceConnectConfig`, can be set. + :param pulumi.Input[Union['AiEndpointPredictRequestResponseLoggingConfigArgs', 'AiEndpointPredictRequestResponseLoggingConfigArgsDict']] predict_request_response_logging_config: Configures the request-response logging for online prediction. + Structure is documented below. + :param pulumi.Input[Union['AiEndpointPrivateServiceConnectConfigArgs', 'AiEndpointPrivateServiceConnectConfigArgsDict']] private_service_connect_config: Configuration for private service connect. `network` and `privateServiceConnectConfig` are mutually exclusive. + Structure is documented below. :param pulumi.Input[str] project: The ID of the project in which the resource belongs. If it is not provided, the provider project is used. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource and default labels configured on the provider. :param pulumi.Input[str] region: The region for the resource + :param pulumi.Input[str] traffic_split: A map from a DeployedModel's id to the percentage of this Endpoint's traffic that should be forwarded to that DeployedModel. + If a DeployedModel's id is not listed in this map, then it receives no traffic. + The traffic percentage values must add up to 100, or map must be empty if the Endpoint is to not accept any traffic at a moment. + > **Note:** The `traffic_split` setting only applies after a model has been deployed to the endpoint. Re-applying a `vertex.AiEndpoint` + resource without updating the `traffic_split` post-deployment may lead to your deployed `traffic_split` being lost; see + the `deployModel` [example](https://cloud.google.com/vertex-ai/docs/general/deployment#deploy_a_model_to_an_endpoint) and + [documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1beta1/projects.locations.endpoints/deployModel) for details. :param pulumi.Input[str] update_time: Output only. Timestamp when this Endpoint was last updated. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -772,6 +1105,8 @@ def get(resource_name: str, __props__ = _AiEndpointState.__new__(_AiEndpointState) __props__.__dict__["create_time"] = create_time + __props__.__dict__["dedicated_endpoint_dns"] = dedicated_endpoint_dns + __props__.__dict__["dedicated_endpoint_enabled"] = dedicated_endpoint_enabled __props__.__dict__["deployed_models"] = deployed_models __props__.__dict__["description"] = description __props__.__dict__["display_name"] = display_name @@ -783,9 +1118,12 @@ def get(resource_name: str, __props__.__dict__["model_deployment_monitoring_job"] = model_deployment_monitoring_job __props__.__dict__["name"] = name __props__.__dict__["network"] = network + __props__.__dict__["predict_request_response_logging_config"] = predict_request_response_logging_config + __props__.__dict__["private_service_connect_config"] = private_service_connect_config __props__.__dict__["project"] = project __props__.__dict__["pulumi_labels"] = pulumi_labels __props__.__dict__["region"] = region + __props__.__dict__["traffic_split"] = traffic_split __props__.__dict__["update_time"] = update_time return AiEndpoint(resource_name, opts=opts, __props__=__props__) @@ -798,6 +1136,22 @@ def create_time(self) -> pulumi.Output[str]: """ return pulumi.get(self, "create_time") + @property + @pulumi.getter(name="dedicatedEndpointDns") + def dedicated_endpoint_dns(self) -> pulumi.Output[str]: + """ + Output only. DNS of the dedicated endpoint. Will only be populated if dedicatedEndpointEnabled is true. Format: `https://{endpointId}.{region}-{projectNumber}.prediction.vertexai.goog`. + """ + return pulumi.get(self, "dedicated_endpoint_dns") + + @property + @pulumi.getter(name="dedicatedEndpointEnabled") + def dedicated_endpoint_enabled(self) -> pulumi.Output[Optional[bool]]: + """ + If true, the endpoint will be exposed through a dedicated DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS will be isolated from other users' traffic and will have better performance and reliability. Note: Once you enabled dedicated endpoint, you won't be able to send request to the shared DNS {region}-aiplatform.googleapis.com. The limitation will be removed soon. + """ + return pulumi.get(self, "dedicated_endpoint_enabled") + @property @pulumi.getter(name="deployedModels") def deployed_models(self) -> pulumi.Output[Sequence['outputs.AiEndpointDeployedModel']]: @@ -889,10 +1243,28 @@ def name(self) -> pulumi.Output[str]: @pulumi.getter def network(self) -> pulumi.Output[Optional[str]]: """ - The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. + The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name. Only one of the fields, `network` or `privateServiceConnectConfig`, can be set. """ return pulumi.get(self, "network") + @property + @pulumi.getter(name="predictRequestResponseLoggingConfig") + def predict_request_response_logging_config(self) -> pulumi.Output[Optional['outputs.AiEndpointPredictRequestResponseLoggingConfig']]: + """ + Configures the request-response logging for online prediction. + Structure is documented below. + """ + return pulumi.get(self, "predict_request_response_logging_config") + + @property + @pulumi.getter(name="privateServiceConnectConfig") + def private_service_connect_config(self) -> pulumi.Output[Optional['outputs.AiEndpointPrivateServiceConnectConfig']]: + """ + Configuration for private service connect. `network` and `privateServiceConnectConfig` are mutually exclusive. + Structure is documented below. + """ + return pulumi.get(self, "private_service_connect_config") + @property @pulumi.getter def project(self) -> pulumi.Output[str]: @@ -919,6 +1291,20 @@ def region(self) -> pulumi.Output[Optional[str]]: """ return pulumi.get(self, "region") + @property + @pulumi.getter(name="trafficSplit") + def traffic_split(self) -> pulumi.Output[Optional[str]]: + """ + A map from a DeployedModel's id to the percentage of this Endpoint's traffic that should be forwarded to that DeployedModel. + If a DeployedModel's id is not listed in this map, then it receives no traffic. + The traffic percentage values must add up to 100, or map must be empty if the Endpoint is to not accept any traffic at a moment. + > **Note:** The `traffic_split` setting only applies after a model has been deployed to the endpoint. Re-applying a `vertex.AiEndpoint` + resource without updating the `traffic_split` post-deployment may lead to your deployed `traffic_split` being lost; see + the `deployModel` [example](https://cloud.google.com/vertex-ai/docs/general/deployment#deploy_a_model_to_an_endpoint) and + [documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1beta1/projects.locations.endpoints/deployModel) for details. + """ + return pulumi.get(self, "traffic_split") + @property @pulumi.getter(name="updateTime") def update_time(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_gcp/vertex/ai_feature_online_store_featureview.py b/sdk/python/pulumi_gcp/vertex/ai_feature_online_store_featureview.py index d0e3c90321..446b5e21bb 100644 --- a/sdk/python/pulumi_gcp/vertex/ai_feature_online_store_featureview.py +++ b/sdk/python/pulumi_gcp/vertex/ai_feature_online_store_featureview.py @@ -618,8 +618,8 @@ def __init__(__self__, test_project = gcp.organizations.get_project() project = gcp.organizations.Project("project", - project_id="tf-test_69391", - name="tf-test_8270", + project_id="tf-test_41150", + name="tf-test_89313", org_id="123456789", billing_account="000000-0000000-0000000-000000", deletion_policy="DELETE") @@ -1063,8 +1063,8 @@ def __init__(__self__, test_project = gcp.organizations.get_project() project = gcp.organizations.Project("project", - project_id="tf-test_69391", - name="tf-test_8270", + project_id="tf-test_41150", + name="tf-test_89313", org_id="123456789", billing_account="000000-0000000-0000000-000000", deletion_policy="DELETE") diff --git a/sdk/python/pulumi_gcp/vertex/outputs.py b/sdk/python/pulumi_gcp/vertex/outputs.py index a0525cafa6..dfcef6b679 100644 --- a/sdk/python/pulumi_gcp/vertex/outputs.py +++ b/sdk/python/pulumi_gcp/vertex/outputs.py @@ -29,6 +29,9 @@ 'AiEndpointEncryptionSpec', 'AiEndpointIamBindingCondition', 'AiEndpointIamMemberCondition', + 'AiEndpointPredictRequestResponseLoggingConfig', + 'AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination', + 'AiEndpointPrivateServiceConnectConfig', 'AiFeatureGroupBigQuery', 'AiFeatureGroupBigQueryBigQuerySource', 'AiFeatureOnlineStoreBigtable', @@ -967,6 +970,169 @@ def description(self) -> Optional[str]: return pulumi.get(self, "description") +@pulumi.output_type +class AiEndpointPredictRequestResponseLoggingConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "bigqueryDestination": + suggest = "bigquery_destination" + elif key == "samplingRate": + suggest = "sampling_rate" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AiEndpointPredictRequestResponseLoggingConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AiEndpointPredictRequestResponseLoggingConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AiEndpointPredictRequestResponseLoggingConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + bigquery_destination: Optional['outputs.AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination'] = None, + enabled: Optional[bool] = None, + sampling_rate: Optional[float] = None): + """ + :param 'AiEndpointPredictRequestResponseLoggingConfigBigqueryDestinationArgs' bigquery_destination: BigQuery table for logging. If only given a project, a new dataset will be created with name `logging__` where will be made BigQuery-dataset-name compatible (e.g. most special characters will become underscores). If no table name is given, a new table will be created with name `request_response_logging` + Structure is documented below. + :param bool enabled: If logging is enabled or not. + :param float sampling_rate: Percentage of requests to be logged, expressed as a fraction in range(0,1] + """ + if bigquery_destination is not None: + pulumi.set(__self__, "bigquery_destination", bigquery_destination) + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if sampling_rate is not None: + pulumi.set(__self__, "sampling_rate", sampling_rate) + + @property + @pulumi.getter(name="bigqueryDestination") + def bigquery_destination(self) -> Optional['outputs.AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination']: + """ + BigQuery table for logging. If only given a project, a new dataset will be created with name `logging__` where will be made BigQuery-dataset-name compatible (e.g. most special characters will become underscores). If no table name is given, a new table will be created with name `request_response_logging` + Structure is documented below. + """ + return pulumi.get(self, "bigquery_destination") + + @property + @pulumi.getter + def enabled(self) -> Optional[bool]: + """ + If logging is enabled or not. + """ + return pulumi.get(self, "enabled") + + @property + @pulumi.getter(name="samplingRate") + def sampling_rate(self) -> Optional[float]: + """ + Percentage of requests to be logged, expressed as a fraction in range(0,1] + """ + return pulumi.get(self, "sampling_rate") + + +@pulumi.output_type +class AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "outputUri": + suggest = "output_uri" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AiEndpointPredictRequestResponseLoggingConfigBigqueryDestination.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + output_uri: Optional[str] = None): + """ + :param str output_uri: BigQuery URI to a project or table, up to 2000 characters long. When only the project is specified, the Dataset and Table is created. When the full table reference is specified, the Dataset must exist and table must not exist. Accepted forms: - BigQuery path. For example: `bq://projectId` or `bq://projectId.bqDatasetId` or `bq://projectId.bqDatasetId.bqTableId`. + """ + if output_uri is not None: + pulumi.set(__self__, "output_uri", output_uri) + + @property + @pulumi.getter(name="outputUri") + def output_uri(self) -> Optional[str]: + """ + BigQuery URI to a project or table, up to 2000 characters long. When only the project is specified, the Dataset and Table is created. When the full table reference is specified, the Dataset must exist and table must not exist. Accepted forms: - BigQuery path. For example: `bq://projectId` or `bq://projectId.bqDatasetId` or `bq://projectId.bqDatasetId.bqTableId`. + """ + return pulumi.get(self, "output_uri") + + +@pulumi.output_type +class AiEndpointPrivateServiceConnectConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "enablePrivateServiceConnect": + suggest = "enable_private_service_connect" + elif key == "enableSecurePrivateServiceConnect": + suggest = "enable_secure_private_service_connect" + elif key == "projectAllowlists": + suggest = "project_allowlists" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AiEndpointPrivateServiceConnectConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AiEndpointPrivateServiceConnectConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AiEndpointPrivateServiceConnectConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + enable_private_service_connect: bool, + enable_secure_private_service_connect: Optional[bool] = None, + project_allowlists: Optional[Sequence[str]] = None): + """ + :param bool enable_private_service_connect: Required. If true, expose the IndexEndpoint via private service connect. + :param bool enable_secure_private_service_connect: If set to true, enable secure private service connect with IAM authorization. Otherwise, private service connect will be done without authorization. Note latency will be slightly increased if authorization is enabled. + :param Sequence[str] project_allowlists: A list of Projects from which the forwarding rule will target the service attachment. + """ + pulumi.set(__self__, "enable_private_service_connect", enable_private_service_connect) + if enable_secure_private_service_connect is not None: + pulumi.set(__self__, "enable_secure_private_service_connect", enable_secure_private_service_connect) + if project_allowlists is not None: + pulumi.set(__self__, "project_allowlists", project_allowlists) + + @property + @pulumi.getter(name="enablePrivateServiceConnect") + def enable_private_service_connect(self) -> bool: + """ + Required. If true, expose the IndexEndpoint via private service connect. + """ + return pulumi.get(self, "enable_private_service_connect") + + @property + @pulumi.getter(name="enableSecurePrivateServiceConnect") + def enable_secure_private_service_connect(self) -> Optional[bool]: + """ + If set to true, enable secure private service connect with IAM authorization. Otherwise, private service connect will be done without authorization. Note latency will be slightly increased if authorization is enabled. + """ + return pulumi.get(self, "enable_secure_private_service_connect") + + @property + @pulumi.getter(name="projectAllowlists") + def project_allowlists(self) -> Optional[Sequence[str]]: + """ + A list of Projects from which the forwarding rule will target the service attachment. + """ + return pulumi.get(self, "project_allowlists") + + @pulumi.output_type class AiFeatureGroupBigQuery(dict): @staticmethod diff --git a/sdk/python/pulumi_gcp/workbench/instance.py b/sdk/python/pulumi_gcp/workbench/instance.py index f8fa14b63d..7c6ff0087b 100644 --- a/sdk/python/pulumi_gcp/workbench/instance.py +++ b/sdk/python/pulumi_gcp/workbench/instance.py @@ -43,7 +43,9 @@ def __init__(__self__, *, :param pulumi.Input[str] instance_id: Required. User-defined unique ID of this instance. :param pulumi.Input[Sequence[pulumi.Input[str]]] instance_owners: 'Optional. Input only. The owner of this instance after creation. Format: `alias@example.com` Currently supports one owner only. If not specified, all of - the service account users of your VM instance''s service account can use the instance.' + the service account users of your VM instance''s service account can use the instance. + If specified, sets the access mode to `Single user`. For more details, see + https://cloud.google.com/vertex-ai/docs/workbench/instances/manage-access-jupyterlab' :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Labels to apply to this instance. These can be later modified by the UpdateInstance method. @@ -141,7 +143,9 @@ def instance_owners(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] """ 'Optional. Input only. The owner of this instance after creation. Format: `alias@example.com` Currently supports one owner only. If not specified, all of - the service account users of your VM instance''s service account can use the instance.' + the service account users of your VM instance''s service account can use the instance. + If specified, sets the access mode to `Single user`. For more details, see + https://cloud.google.com/vertex-ai/docs/workbench/instances/manage-access-jupyterlab' """ return pulumi.get(self, "instance_owners") @@ -230,7 +234,9 @@ def __init__(__self__, *, :param pulumi.Input[str] instance_id: Required. User-defined unique ID of this instance. :param pulumi.Input[Sequence[pulumi.Input[str]]] instance_owners: 'Optional. Input only. The owner of this instance after creation. Format: `alias@example.com` Currently supports one owner only. If not specified, all of - the service account users of your VM instance''s service account can use the instance.' + the service account users of your VM instance''s service account can use the instance. + If specified, sets the access mode to `Single user`. For more details, see + https://cloud.google.com/vertex-ai/docs/workbench/instances/manage-access-jupyterlab' :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Labels to apply to this instance. These can be later modified by the UpdateInstance method. @@ -410,7 +416,9 @@ def instance_owners(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] """ 'Optional. Input only. The owner of this instance after creation. Format: `alias@example.com` Currently supports one owner only. If not specified, all of - the service account users of your VM instance''s service account can use the instance.' + the service account users of your VM instance''s service account can use the instance. + If specified, sets the access mode to `Single user`. For more details, see + https://cloud.google.com/vertex-ai/docs/workbench/instances/manage-access-jupyterlab' """ return pulumi.get(self, "instance_owners") @@ -741,7 +749,9 @@ def __init__(__self__, :param pulumi.Input[str] instance_id: Required. User-defined unique ID of this instance. :param pulumi.Input[Sequence[pulumi.Input[str]]] instance_owners: 'Optional. Input only. The owner of this instance after creation. Format: `alias@example.com` Currently supports one owner only. If not specified, all of - the service account users of your VM instance''s service account can use the instance.' + the service account users of your VM instance''s service account can use the instance. + If specified, sets the access mode to `Single user`. For more details, see + https://cloud.google.com/vertex-ai/docs/workbench/instances/manage-access-jupyterlab' :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Labels to apply to this instance. These can be later modified by the UpdateInstance method. @@ -1046,7 +1056,9 @@ def get(resource_name: str, :param pulumi.Input[str] instance_id: Required. User-defined unique ID of this instance. :param pulumi.Input[Sequence[pulumi.Input[str]]] instance_owners: 'Optional. Input only. The owner of this instance after creation. Format: `alias@example.com` Currently supports one owner only. If not specified, all of - the service account users of your VM instance''s service account can use the instance.' + the service account users of your VM instance''s service account can use the instance. + If specified, sets the access mode to `Single user`. For more details, see + https://cloud.google.com/vertex-ai/docs/workbench/instances/manage-access-jupyterlab' :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Labels to apply to this instance. These can be later modified by the UpdateInstance method. @@ -1176,7 +1188,9 @@ def instance_owners(self) -> pulumi.Output[Optional[Sequence[str]]]: """ 'Optional. Input only. The owner of this instance after creation. Format: `alias@example.com` Currently supports one owner only. If not specified, all of - the service account users of your VM instance''s service account can use the instance.' + the service account users of your VM instance''s service account can use the instance. + If specified, sets the access mode to `Single user`. For more details, see + https://cloud.google.com/vertex-ai/docs/workbench/instances/manage-access-jupyterlab' """ return pulumi.get(self, "instance_owners") diff --git a/sdk/python/pulumi_gcp/workflows/workflow.py b/sdk/python/pulumi_gcp/workflows/workflow.py index 2f52184276..02ade960c0 100644 --- a/sdk/python/pulumi_gcp/workflows/workflow.py +++ b/sdk/python/pulumi_gcp/workflows/workflow.py @@ -21,6 +21,7 @@ class WorkflowArgs: def __init__(__self__, *, call_log_level: Optional[pulumi.Input[str]] = None, crypto_key_name: Optional[pulumi.Input[str]] = None, + deletion_protection: Optional[pulumi.Input[bool]] = None, description: Optional[pulumi.Input[str]] = None, labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, name: Optional[pulumi.Input[str]] = None, @@ -63,6 +64,8 @@ def __init__(__self__, *, pulumi.set(__self__, "call_log_level", call_log_level) if crypto_key_name is not None: pulumi.set(__self__, "crypto_key_name", crypto_key_name) + if deletion_protection is not None: + pulumi.set(__self__, "deletion_protection", deletion_protection) if description is not None: pulumi.set(__self__, "description", description) if labels is not None: @@ -110,6 +113,15 @@ def crypto_key_name(self) -> Optional[pulumi.Input[str]]: def crypto_key_name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "crypto_key_name", value) + @property + @pulumi.getter(name="deletionProtection") + def deletion_protection(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "deletion_protection") + + @deletion_protection.setter + def deletion_protection(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "deletion_protection", value) + @property @pulumi.getter def description(self) -> Optional[pulumi.Input[str]]: @@ -236,6 +248,7 @@ def __init__(__self__, *, call_log_level: Optional[pulumi.Input[str]] = None, create_time: Optional[pulumi.Input[str]] = None, crypto_key_name: Optional[pulumi.Input[str]] = None, + deletion_protection: Optional[pulumi.Input[bool]] = None, description: Optional[pulumi.Input[str]] = None, effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, @@ -292,6 +305,8 @@ def __init__(__self__, *, pulumi.set(__self__, "create_time", create_time) if crypto_key_name is not None: pulumi.set(__self__, "crypto_key_name", crypto_key_name) + if deletion_protection is not None: + pulumi.set(__self__, "deletion_protection", deletion_protection) if description is not None: pulumi.set(__self__, "description", description) if effective_labels is not None: @@ -361,6 +376,15 @@ def crypto_key_name(self) -> Optional[pulumi.Input[str]]: def crypto_key_name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "crypto_key_name", value) + @property + @pulumi.getter(name="deletionProtection") + def deletion_protection(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "deletion_protection") + + @deletion_protection.setter + def deletion_protection(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "deletion_protection", value) + @property @pulumi.getter def description(self) -> Optional[pulumi.Input[str]]: @@ -549,6 +573,7 @@ def __init__(__self__, opts: Optional[pulumi.ResourceOptions] = None, call_log_level: Optional[pulumi.Input[str]] = None, crypto_key_name: Optional[pulumi.Input[str]] = None, + deletion_protection: Optional[pulumi.Input[bool]] = None, description: Optional[pulumi.Input[str]] = None, labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, name: Optional[pulumi.Input[str]] = None, @@ -591,6 +616,7 @@ def __init__(__self__, user_env_vars={ "url": "https://timeapi.io/api/Time/current/zone?timeZone=Europe/Amsterdam", }, + deletion_protection=False, source_contents=\"\"\"# This is a sample workflow. You can replace it with your source code. # # This workflow does the following: @@ -691,6 +717,7 @@ def __init__(__self__, user_env_vars={ "url": "https://timeapi.io/api/Time/current/zone?timeZone=Europe/Amsterdam", }, + deletion_protection=False, source_contents=\"\"\"# This is a sample workflow. You can replace it with your source code. # # This workflow does the following: @@ -741,6 +768,7 @@ def _internal_init(__self__, opts: Optional[pulumi.ResourceOptions] = None, call_log_level: Optional[pulumi.Input[str]] = None, crypto_key_name: Optional[pulumi.Input[str]] = None, + deletion_protection: Optional[pulumi.Input[bool]] = None, description: Optional[pulumi.Input[str]] = None, labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, name: Optional[pulumi.Input[str]] = None, @@ -761,6 +789,7 @@ def _internal_init(__self__, __props__.__dict__["call_log_level"] = call_log_level __props__.__dict__["crypto_key_name"] = crypto_key_name + __props__.__dict__["deletion_protection"] = deletion_protection __props__.__dict__["description"] = description __props__.__dict__["labels"] = labels __props__.__dict__["name"] = name @@ -791,6 +820,7 @@ def get(resource_name: str, call_log_level: Optional[pulumi.Input[str]] = None, create_time: Optional[pulumi.Input[str]] = None, crypto_key_name: Optional[pulumi.Input[str]] = None, + deletion_protection: Optional[pulumi.Input[bool]] = None, description: Optional[pulumi.Input[str]] = None, effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, @@ -853,6 +883,7 @@ def get(resource_name: str, __props__.__dict__["call_log_level"] = call_log_level __props__.__dict__["create_time"] = create_time __props__.__dict__["crypto_key_name"] = crypto_key_name + __props__.__dict__["deletion_protection"] = deletion_protection __props__.__dict__["description"] = description __props__.__dict__["effective_labels"] = effective_labels __props__.__dict__["labels"] = labels @@ -897,6 +928,11 @@ def crypto_key_name(self) -> pulumi.Output[Optional[str]]: """ return pulumi.get(self, "crypto_key_name") + @property + @pulumi.getter(name="deletionProtection") + def deletion_protection(self) -> pulumi.Output[Optional[bool]]: + return pulumi.get(self, "deletion_protection") + @property @pulumi.getter def description(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_gcp/workstations/workstation_config.py b/sdk/python/pulumi_gcp/workstations/workstation_config.py index 37abe843c9..44b3b63dfd 100644 --- a/sdk/python/pulumi_gcp/workstations/workstation_config.py +++ b/sdk/python/pulumi_gcp/workstations/workstation_config.py @@ -940,7 +940,7 @@ def __init__(__self__, parent="organizations/123456789", short_name="keyname") tag_value1 = gcp.tags.TagValue("tag_value1", - parent=tag_key1.name.apply(lambda name: f"tagKeys/{name}"), + parent=tag_key1.id, short_name="valuename") default = gcp.compute.Network("default", name="workstation-cluster", @@ -985,10 +985,10 @@ def __init__(__self__, "disable_public_ip_addresses": True, "disable_ssh": False, "vm_tags": pulumi.Output.all( - tagKey1Name=tag_key1.name, - tagValue1Name=tag_value1.name + tagKey1Id=tag_key1.id, + tagValue1Id=tag_value1.id ).apply(lambda resolved_outputs: { - f"tagKeys/{resolved_outputs['tagKey1Name']}": f"tagValues/{resolved_outputs['tagValue1Name']}", + resolved_outputs['tagKey1Id']: resolved_outputs['tagValue1Id'], }) , }, @@ -1458,7 +1458,7 @@ def __init__(__self__, parent="organizations/123456789", short_name="keyname") tag_value1 = gcp.tags.TagValue("tag_value1", - parent=tag_key1.name.apply(lambda name: f"tagKeys/{name}"), + parent=tag_key1.id, short_name="valuename") default = gcp.compute.Network("default", name="workstation-cluster", @@ -1503,10 +1503,10 @@ def __init__(__self__, "disable_public_ip_addresses": True, "disable_ssh": False, "vm_tags": pulumi.Output.all( - tagKey1Name=tag_key1.name, - tagValue1Name=tag_value1.name + tagKey1Id=tag_key1.id, + tagValue1Id=tag_value1.id ).apply(lambda resolved_outputs: { - f"tagKeys/{resolved_outputs['tagKey1Name']}": f"tagValues/{resolved_outputs['tagValue1Name']}", + resolved_outputs['tagKey1Id']: resolved_outputs['tagValue1Id'], }) , },